/** * Fires an event. * * @param Core\Base\Model $object Processed object. * @param string $event Event name. * @param array $arguments Array of arguments. * * @static * @access public * * @return void */ public static function fire(Core\Base\Model $object, $event, array $arguments = array()) { $listeners = $object->listeners($event); foreach ($listeners as $listener) { call_user_func_array($listener, $arguments); } }
/** * Decorator entry point. * * @param Base\Model $resource Currently processed resource. * * @static * @access public * * @return void */ public static function decorate(Base\Model $resource) { if (date_default_timezone_get() !== 'UTC') { self::$timezoneAwareFields = $resource::timezoneAwareFields(); $resource->on('beforeSave', array(__CLASS__, 'remove')); $resource->on('afterSave', array(__CLASS__, 'add')); $resource->on('afterCreate', array(__CLASS__, 'add')); } }
/** * Decorator entry point. * * @param Base\Model $resource Currently processed resource. * * @static * @access public * * @return void */ public static function decorate(Base\Model $resource) { $_fields = $resource::encryptedFields(); foreach ($_fields as $key => $value) { if ($key) { self::$encryptedFields[$key] = $value; } else { self::$encryptedFields[$value] = 'AES-256-CBC'; } } $resource->on('afterCreate', array(__CLASS__, 'decrypt')); $resource->on('beforeSave', array(__CLASS__, 'encrypt')); $resource->on('afterSave', array(__CLASS__, 'decrypt')); }
/** * Decorator entry point. * * @param Base\Model $resource Currently processed resource. * * @static * @access public * * @return void */ public static function decorate(Base\Model $resource) { $resource->on('afterCreate', array(__CLASS__, 'fetch')); $resource->on('beforeValidate', array(__CLASS__, 'format')); $resource->on('afterValidate', array(__CLASS__, 'fetch')); $resource->on('beforeSave', array(__CLASS__, 'format')); $resource->on('afterSave', array(__CLASS__, 'fetch')); }
/** * Loads Resource object. * * @param Request $request Current router request. * * @return void */ protected function loadResource(Request $request) { if (!$this->resource->exists()) { if (!$request->get('id')) { $request->redirectTo('index'); } $resourceModel = $this->resource; $this->resource = $resourceModel::find()->where($resourceModel::primaryKeyField() . ' = ?', array($request->get('id')))->first(); if (!$this->resource) { Helpers\FlashMessage::set($this->labels['errors']['not_exists'], 'danger'); $request->redirectTo('index'); } } }
/** * Decorator entry point. * * @param Base\Model $resource Currently processed resource. * * @static * @access public * * @return void */ public static function decorate(Base\Model $resource) { $_fields = $resource::serializableFields(); foreach ($_fields as $key => $value) { if (!is_numeric($key)) { self::$serializedFields[$key] = $value; } else { self::$serializedFields[$value] = 'serialize'; } } $resource->on('afterCreate', array(__CLASS__, 'unserialize')); $resource->on('beforeValidate', array(__CLASS__, 'serialize')); $resource->on('afterValidate', array(__CLASS__, 'unserialize')); $resource->on('beforeSave', array(__CLASS__, 'serialize')); $resource->on('afterSave', array(__CLASS__, 'unserialize')); }
/** * Deletes all related file to an attachment. * * @param Base\Model $resource Currently processed resource. * @param string $attachment Attachment file name. * @param string $name Name of the file. * * @access private * @static * * @return void */ private static function deleteThumbnails(Base\Model $resource, $attachment, $name) { $_storage_path = $resource->attachmentsStoragePath($attachment); foreach (self::$attachments[$attachment]['thumbnails'] as $thumbnail) { try { if (file_exists($_storage_path . "{$thumbnail['size']}-{$name}")) { Helpers\File::delete($_storage_path . "{$thumbnail['size']}-{$name}"); } } catch (\Exception $e) { var_log($e->getMessage()); } } }
/** * Retracts a resource ownership data. * * @param \Core\Base\Model $resource Resource instance. * * @return void */ public static function resetResource(Base\Model $resource) { $query = new Core\Modules\DB\Query(); Core\DB()->run($query->remove()->from('cms_ownership')->where('resource_id = ? AND model = ?', array($resource->getPrimaryKeyValue(), get_class($resource)))); }