IPS 4.4.0 provides a new method
/** * Can be used by 3rd parties to add own club navigation tabs before they get sorted * * @param array $tabs Tabs * @param \IPS\Node\Model|NULL $container Container * @return array */ protected function _tabs( array $tabs, \IPS\Node\Model $container = NULL ) : array
which allows hooks to add own tabs to club navigation bar.
Changes to the queue/task system:
We've created 3 new constants
'REBUILD_SLOW' => 50, // Number of items to be rebuit per-cycle for routines that take a while 'REBUILD_NORMAL' => 250, // Number of items to be rebuit per-cycle for most routines 'REBUILD_QUICK' => 500, // Number of items to be rebuit per-cycle for routines that are fast
which should be used in your queue extensions depending on the task and the time it takes.
It's now easier to add or remove buttons to the editor within the \IPS\Helpers\Form\Editor class.
Additional plugins are handled via $defaultOptions['ipsPlugins']
New useful methods:
Item::lastModificationDate() - The sitemap generation uses this method to get the last modification date.
Email Templates Change:
If your custom application includes email templates, please create also emailstats__key language strings for each email template. This language strings are used for the email statistics which were introduced in IPS 4.4.0
New Form Helper:
- Content\ItemTopic - implements the logic to allow content items to create, update and delete their topic ( pages app & downloads app)
Core BC Breaks (warnings):
- Node\Model::canOnAny and Node\Model::can() got a new parameter
- Node\Model::modPermission 3rd parameter is required, there's no default value anymore
- Member::moderateNewContent got a new parameter
- Member::postRegistration got a new parameter
- Content\Item::followers() & containerFollowers - method signature changed, the last parameter was replaced
- Content\Item::can() , canComment ,canReview , canCommentReview, moderateNewItems, moderateNewComments, moderateNewReviews- got a new parameter $considerPostBeforeRegistering which is used to determine if the content was created by a guest
public static function canOnAny( $permission, $member=NULL, $where = array(), $considerPostBeforeRegistering = TRUE )
- ActiveRecord - new property $caches allow you to define datastore keys which will automatically be cleared after save&delete was called. There's no need to implement this logic anymore..
- The \IPS\Helpers\Table\Content constructor got a new parameter for a callback function, which is executed at the end of the getRows method. This way you don't need to implement an own Content Table Helper just to prepare the data for the output.
- Most of the not extensible classes like share services, file storage engines, package types, payment gateways, license key generation methods, server types, converters, and widget types or classes which were required to be placed in a specific directory are extensible now...