• Content count

  • Joined

  • Last visited


About TSP

  • Rank
    Needs Life

IPS Marketplace

  • Resources Contributor Total file submissions: 7

Recent Profile Visitors

102,999 profile views

TSP's Activity

  1. TSP added a topic in Product Feedback   

    Make it easier to target the ipsWidget-class for a pages block
    When a block is added in a widget position, it receives an outer li-class as such: 
    <li class="ipsWidget ipsWidget_horizontal ipsBox" data-blockid="app_cms_Blocks_52wbf4kut" data-blockconfig="true" data-blocktitle="Egne blokker" data-controller="core.front.widgets.block"> My block html </li>I may want to target the ipsWidget-class only for a specific block I've made in Pages because I don't want it to have the padding added for instance. 
    I can technically target it as such: .ipsWidget[data-blockid="app_cms_Blocks_52wbf4kut"], but this have some downsides: 
    It's not obvious what I'm targeting (Unless I leave a CSS-comment)I can't feel sure the ID wont changeThe ID will be different for each positionThe ID will be different for the same block across different communitiesI could also be more general and target .ipsWidget[data-blockid="*app_cms_Blocks"], but I may not want the same rules to apply to all blocks. 
    My suggestion is: If a template key is defined for the custom pages block, then incorporate that template-key into the li-element. Some options on how to go about this:
    Add it as a class. For instance class='ipsWidget ipsWidget_horizontal ipsBox custom-block-mykey'Add it to data-blockid: data-blockid="app_cms_Blocks_mykey_52wbf4kut"Add it to the controller. For example: data-controller="core.front.widgets.block.mykey or data-controller="core.front.widgets.block,core.front.widgets.block.mykey"
    • 1 reply
  2. TSP added a topic in Product Feedback   

    Do not clear autosave on submit, wait for confirmation
    I've mentioned this before... I just lost a rather long post which I'm not very tempted to write again. The reason is that you had the forum down for maintenance, which gave a 503-response. 
    Currently you clear the autosave / browser local storage for the editor the moment you click submit for that editor field. Please change this so it's only cleared when the browser receives confirmation of the content added as a post / comment / whatever in the database. 
    I want you to clear the contents "on the side of caution": I would rather erroneously have an autosave of something that've already been published than to not have an autosave of something which wasn't published...
    • 0 replies
  3. TSP added a topic in Product Feedback   

    Let us disable author option in search
    When members are not allowed to view profiles, they can still limit their search to posts from a specific author. 
    I would like it to be possible to disable this search author option. Either by having it be dependent on the profile module setting or add a new group setting, I guess the latter would be best. 
    The reason is that on some communities members really value their own privacy and being able to search for posts by specific members takes away some amount of privacy. 
    • 0 replies
  4. TSP added a post in a topic Unique menu manager?!   

    I would also like a menu manager to be something in the core. Ideally I think it should allow us to easily customize all menus. Like the user menu, "app line menu", the menu at the line with the breadcrumb etc. 
    It should all be easily managable within one central menu page, without having to go to the app list and change whether the menu tab for that app should be visible etc. 
  5. TSP added a topic in Product Feedback   

    My Activity when profiles are disabled
    When you disable profiles for a group, then your members also lose a way to view their own activity. 
    When I disable a groups ability to view profiles I don't want them to be able to view other members activity or their profile, because they want their privacy from other members. But I would still like for members to be able to view their own activity.
    • 0 replies
  6. TSP added a post in a topic Consider use of rem and em instead of px for font-sizes   

    Any thoughts? Would really make things easier for me at least.
  7. TSP added a topic in Product Feedback   

    Consider use of rem and em instead of px for font-sizes
    As per the suggested procedure outlined here: https://css-tricks.com/rems-ems/
    The benefit is that it'll be much easier to re-scale the size of text according to the preferences of the site owner for different resolutions, devices etc. without too much effort. Rem and em can also be used for margins and paddings btw. 
    The downside is that you'll need to go through all existing places where font-sizes (and possibly some cases it could be beneficial to use for margins and paddings too) in order to change to this, but I personally think it would be worth it. 
    Where I work we've already used this approach for other projects for quite a while. 
    @Rikki: Do you see any problems or challenges with this idea? Have it been considered?
    • 1 reply
  8. TSP added a post in a topic Can VNC please save the filtered forum list   

    Personally I would view it as more useful having it be an exclude list (or let the members chose whether the selected forums is what should be included OR excluded). 
    New forums can be added, and when you do it as an include list as it currently is, then your members will have to stay on top of it, making sure they know about new forums they might be interested in being added for themselves etc. Which also reduces the chance they'll find topics from those forums, even if they want to.
    I think it would be a good idea with some more filter options and to be able to save more than one "preset" for how to discover content, and it could be added as a tab or similar on top. 
  9. TSP added a post in a topic Loading Navigation twice - this sait & not only   

    The second occurrence is the mobile navigation.
    This is quite a common approach for menus on responsive sites. The reason being the menus are usually laid out quite differently on the mobile view and the desktop view. Which would make it impossible or at least very finicky to try and achieve it all with the same markup and just different CSS. It's easier to just have different markups to work with in that case.
  10. TSP added a comment on a blog entry Month in Review - June 2015   

    Gongratulations on switching to Git 
    Hope you'll enjoy it!
  11. TSP added a post in a topic Suggestion to improve rebuild process: go backwards   

    I've decided to at least try this idea. I can't see any disadvantages, if any IPS Developers could give me a good reason you don't already do this, then please do. And if there's no reason then I would wish you to implement this sort of idea into a future update. 
    Here is my changes: 
    Date: Sat Jun 27 23:33:13 2015 +0200 RebuildPosts rebuild backwards diff --git a/www/applications/core/extensions/core/Queue/RebuildPosts.php b/www/applications/core/extensions/core/Queue/RebuildPosts.php index ac35446..09a638b 100644 --- a/www/applications/core/extensions/core/Queue/RebuildPosts.php +++ b/www/applications/core/extensions/core/Queue/RebuildPosts.php @@ -63,6 +63,8 @@ class _RebuildPosts { return null; } + + $data['offset'] = $data['count'] + 1; return $data; } @@ -97,7 +99,7 @@ class _RebuildPosts catch( \RuntimeException $e ){} $where = ( is_subclass_of( $classname, 'IPS\Content\Comment' ) ) ? ( is_array( $classname::commentWhere() ) ? array( $classname::commentWhere() ) : array() ) : array(); - $select = $classname::db()->select( '*', $classname::$databaseTable, array_merge( $where, array( array( $classname::$databasePrefix . $classname::$databaseColumnId . ' > ?', $offset ) ) ), $classname::$databasePrefix . $classname::$databaseColumnId . ' ASC', array( 0, $this->rebuild ) ); + $select = $classname::db()->select( '*', $classname::$databaseTable, array_merge( $where, array( array( $classname::$databasePrefix . $classname::$databaseColumnId . ' < ?', $offset ) ) ), $classname::$databasePrefix . $classname::$databaseColumnId . ' DESC', array( 0, $this->rebuild ) ); $iterator = new \IPS\Patterns\ActiveRecordIterator( $select, $classname ); $last = NULL; @@ -107,10 +109,10 @@ class _RebuildPosts /* If the ID is greater than the max we started with, don't rebuild - we're done because this post and any newer will have been posted under 4.0 already */ - if( $item->$idColumn >= $data['count'] ) + /*if( $item->$idColumn >= $data['count'] ) { return NULL; - } + }*/ $member = \IPS\Member::load( $item->mapped('author') ); $extensions = \IPS\Application::load( $classname::$application )->extensions( 'core', 'EditorLocations' ); @@ -212,6 +214,6 @@ class _RebuildPosts throw new \OutOfRangeException; } - return array( 'text' => \IPS\Member::loggedIn()->language()->addToStack('rebuilding_stuff', FALSE, array( 'sprintf' => array( \IPS\Member::loggedIn()->language()->addToStack( $class::$title . '_pl', FALSE, array( 'strtolower' => TRUE ) ) ) ) ), 'complete' => $data['count'] ? ( round( 100 / $data['count'] * $offset, 2 ) ) : 100 ); + return array( 'text' => \IPS\Member::loggedIn()->language()->addToStack('rebuilding_stuff', FALSE, array( 'sprintf' => array( \IPS\Member::loggedIn()->language()->addToStack( $class::$title . '_pl', FALSE, array( 'strtolower' => TRUE ) ) ) ) ), 'complete' => $data['count'] ? ( round( 100 - (100 / $data['count'] * $offset), 2 ) ) : 100 ); } -} \ No newline at end of file +} diff --git a/www/system/Task/Task.php b/www/system/Task/Task.php index 7b84ffc..76d49fe 100644 --- a/www/system/Task/Task.php +++ b/www/system/Task/Task.php @@ -49,10 +49,18 @@ class _Task extends \IPS\Patterns\ActiveRecord throw new \InvalidArgumentException; } + $offset = 0; + if ( method_exists( $extensions[ $key ], 'preQueueData' ) ) { $class = new $extensions[ $key ]; $data = $class->preQueueData( $data ); + + if( isset( $data['offset'] ) and $data['offset'] != 0 ) + { + $offset = $data['offset']; + } + if ( $data === NULL ) { return; @@ -91,7 +99,8 @@ class _Task extends \IPS\Patterns\ActiveRecord 'date' => time(), 'app' => $app, 'key' => $key, - 'priority' => $priority + 'priority' => $priority, + 'offset' => $offset ) ); \IPS\DB::i()->update( 'core_tasks', array( 'enabled' => 1 ), array( '`key`=?', 'queue' ) );  
  12. TSP added a post in a topic Post anonymously Topics or Files   

    I've provided a more detailed reply to you in my support topic. Short version is that I started proper work on it this week and that I feel close to releasing the IPS 4 version, that will do nearly all the things it did in 3.4.
    However I don't have any time available to make this plugin do more than what I need it to do myself, but I do like your idea on it's usage.
  13. TSP added a post in a topic Error Codes Conventions   

    Could you get this into the documentation section? I was looking for this and I first spent 5-10 minutes trying to find it in the doc section, before I eventually managed to find it by a search. 
  14. TSP added a topic in Company Feedback   

    Your new release notes section is nice
    I noted that you had it in category view for a few days, and I didn't like that. So **in secret** I wanted you to change back to how it was with the "plain text document"-style.
    I see that you've refreshed the look now, and I really really like it on desktop. Nice job, @Rikki (I assume he did it). I'm still not quite fond of what seems to be your default mobile look in circumstances where you have such menu styles; where you'll get this huge menu list at the top before you then have to scroll down to the actual contents. I think it should collapse into a dropdown then or just show the selected menu item at the top and then have a "Expand"-button to display all the others. 
    But on desktop it's really nice! And I assume that it once again is a display of the powers of custom pages in Pages.
    • 10 replies
  15. TSP added a post in a topic Easy mode theme colorizer   

    My reasoning for using this is that it seems to find nearby colors to match and also applies same color to variables with the same color.
     If I could input the color codes to get me started I would feel it be more efficient than going through all of the variables myself and I would probably  be less likely to do changes that doesn't match well. 
    I would still edit the variables individually too, but without having to change the main blue everywhere myself for instance