Exemple #1
0
 /**
  * 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'));
     }
 }
Exemple #3
0
 /**
  * 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'));
 }
Exemple #4
0
 /**
  * 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'));
 }
Exemple #5
0
 /**
  * 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'));
 }
Exemple #7
0
 /**
  * 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());
         }
     }
 }
Exemple #8
0
 /**
  * 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))));
 }