Example #1
0
 /**
  * Initiate WhoDidIt Behavior
  *
  * @param object $model
  * @param array $config  behavior settings you would like to override
  * @return void
  * @access public
  */
 function setup(&$model, $config = array())
 {
     // Can't call Configure::read in the initialization above, but this is this
     // real default value, unlikely ever to be overridden in this application.
     $this->_defaults['user_model'] = Configure::read('security.auth_model');
     //assign default settings
     $this->settings[$model->alias] = $this->_defaults;
     //merge custom config with default settings
     $this->settings[$model->alias] = array_merge($this->settings[$model->alias], (array) $config);
     $hasFieldCreatedBy = $model->hasField($this->settings[$model->alias]['created_by_field']);
     $hasFieldModifiedBy = $model->hasField($this->settings[$model->alias]['modified_by_field']);
     $this->settings[$model->alias]['has_created_by'] = $hasFieldCreatedBy;
     $this->settings[$model->alias]['has_modified_by'] = $hasFieldModifiedBy;
     //handles model binding to the User model
     //according to the auto_bind settings (default true)
     if ($this->settings[$model->alias]['auto_bind']) {
         if ($hasFieldCreatedBy) {
             $commonBelongsTo = array('CreatedBy' => array('className' => $this->settings[$model->alias]['user_model'], 'foreignKey' => $this->settings[$model->alias]['created_by_field']));
             $model->bindModel(array('belongsTo' => $commonBelongsTo), false);
         }
         if ($hasFieldModifiedBy) {
             $commonBelongsTo = array('ModifiedBy' => array('className' => $this->settings[$model->alias]['user_model'], 'foreignKey' => $this->settings[$model->alias]['modified_by_field']));
             $model->bindModel(array('belongsTo' => $commonBelongsTo), false);
         }
     }
 }
Example #2
0
 /**
  * Initiate WhoMadeIt Behavior
  *
  * @param object $model
  * @param array $config  behavior settings you would like to override
  * @return void
  * @access public
  */
 function setup(&$model, $config = array())
 {
     if (false !== strpos($_GET['url'], '/export_excel:1')) {
         return;
     }
     //assigne default settings
     $this->settings[$model->alias] = $this->_defaults;
     //merge custom config with default settings
     $this->settings[$model->alias] = array_merge($this->settings[$model->alias], (array) $config);
     $hasFieldCreatedBy = $model->hasField($this->settings[$model->alias]['created_by_field']);
     $hasFieldModifiedBy = $model->hasField($this->settings[$model->alias]['modified_by_field']);
     $this->settings[$model->alias]['has_created_by'] = $hasFieldCreatedBy;
     $this->settings[$model->alias]['has_modified_by'] = $hasFieldModifiedBy;
     //handles model binding to the User model
     //according to the auto_bind settings (default true)
     if ($this->settings[$model->alias]['auto_bind']) {
         if ($hasFieldCreatedBy) {
             $commonBelongsTo = array('CreatedBy' => array('className' => $this->settings[$model->alias]['user_model'], 'foreignKey' => $this->settings[$model->alias]['created_by_field']));
             $model->bindModel(array('belongsTo' => $commonBelongsTo), false);
         }
         if ($hasFieldModifiedBy) {
             $commonBelongsTo = array('ModifiedBy' => array('className' => $this->settings[$model->alias]['user_model'], 'foreignKey' => $this->settings[$model->alias]['modified_by_field']));
             $model->bindModel(array('belongsTo' => $commonBelongsTo), false);
         }
     }
 }
Example #3
0
 /**
  * Initiate behavior for the model using specified settings.
  * Available settings:
  *
  * - view_counter: string :: the field in the table that has the count
  * - session_tracking false to disable, int for number of views to keep track of
  * 	views are tracked by displayField and will do funny things if displayField is not a string.
  *
  * @param object $Model Model using the behaviour
  * @param array $settings Settings to override for model.
  * @access public
  */
 public function setup($Model, $settings = array())
 {
     $default = array('view_counter' => 'views', 'session_tracking' => 20);
     if (!isset($this->__settings[$Model->alias])) {
         $this->__settings[$Model->alias] = $default;
     }
     $this->__settings[$Model->alias] = array_merge($this->__settings[$Model->alias], $settings);
     $Model->bindModel(array('hasMany' => array('ViewCount' => array('className' => 'ViewCounter.ViewCounterView', 'foreignKey' => 'foreign_key', 'conditions' => array('model' => $Model->plugin . '.' . $Model->alias), 'limit' => 0))));
     $Model->ViewCount->bindModel(array('belongsTo' => array($Model->alias => array('className' => $Model->plugin . '.' . $Model->alias, 'foreignKey' => 'foreign_key', 'counterCache' => 'views'))));
 }
 /**
  * Initiate behavior for the model using settings.
  *
  * @param object $model Model using the behavior
  * @param array $settings Settings to override for model.
  * @access public
  */
 function setup(&$model, $config = array())
 {
     $this->settings[$model->alias] = array_merge($this->_defaults, (array) $config);
     $hasFieldCreatedBy = $model->hasField($this->settings[$model->alias]['created_by_field']);
     $hasFieldModifiedBy = $model->hasField($this->settings[$model->alias]['modified_by_field']);
     $this->settings[$model->alias]['has_created_by'] = $hasFieldCreatedBy;
     $this->settings[$model->alias]['has_modified_by'] = $hasFieldModifiedBy;
     //handles model binding to the User model
     //according to the auto_bind settings (default true)
     if ($this->settings[$model->alias]['auto_bind']) {
         if ($hasFieldCreatedBy) {
             $commonBelongsTo = array(Inflector::classify($this->settings[$model->alias]['created_by_field']) => array('counterCache' => strtolower($model->alias) . "_count", 'className' => $this->settings[$model->alias]['user_model'], 'foreignKey' => $this->settings[$model->alias]['created_by_field']));
             $model->bindModel(array('belongsTo' => $commonBelongsTo), false);
         }
         if ($hasFieldModifiedBy) {
             $commonBelongsTo = array(Inflector::classify($this->settings[$model->alias]['modified_by_field']) => array('className' => $this->settings[$model->alias]['user_model'], 'foreignKey' => $this->settings[$model->alias]['modified_by_field']));
             $model->bindModel(array('belongsTo' => $commonBelongsTo), false);
         }
     }
 }
 /**
  * Initiate behaviour for the model using settings.
  *
  * @param object $Model Model using the behaviour
  * @param array $settings Settings to override for model.
  * @access public
  */
 public function setup($Model, $settings = array())
 {
     $default = $this->defaults;
     if (!isset($this->__settings[$Model->alias])) {
         $this->__settings[$Model->alias] = $default;
     }
     $this->__settings[$Model->alias] = array_merge($this->__settings[$Model->alias], (array) $settings);
     $Model->bindModel(array('hasOne' => array('GlobalContent' => array('className' => 'Contents.GlobalContent', 'foreignKey' => 'foreign_key', 'conditions' => array('or' => array('GlobalContent.model' => $Model->plugin . '.' . $Model->alias)), 'dependent' => true))), false);
     $Model->virtualFields['content_image_path_full'] = 'IF((GlobalContent.image = \'\' OR GlobalContent.image IS NULL), "/contents/img/no-image.png", CONCAT("/files/global_content/image/", GlobalContent.dir, "/", GlobalContent.image))';
     foreach ($Model->GlobalContent->actsAs['Filemanager.Upload']['image']['thumbnailSizes'] as $name => $size) {
         $Model->virtualFields['content_image_path_' . $name] = 'IF((GlobalContent.image = "" OR GlobalContent.image IS NULL), "/contents/img/no-image.png", CONCAT("/files/global_content/image/", GlobalContent.dir, "/", "' . $name . '_", GlobalContent.image))';
     }
 }
Example #6
0
 /**
  *
  * @param object $Model Model using the behavior
  * @param array $settings Settings to override for model.
  * @access public
  * @return void
  */
 public function setup($Model, $config = null)
 {
     if ($Model->alias == 'Lock' || !$Model->Behaviors->enabled('Locks.Lockable')) {
         return;
     }
     $Model->bindModel(array('hasOne' => array('Lock' => array('className' => 'Locks.Lock', 'foreignKey' => 'foreign_key', 'conditions' => array('Lock.class' => $Model->plugin . '.' . $Model->alias), 'fields' => array('Lock.id', 'Lock.created', 'Lock.user_id'), 'dependent' => true))), false);
     if (rand(0, 50) == 0) {
         $this->__gc($Model);
     }
     if (is_array($config)) {
         $this->settings[$Model->alias] = array_merge($this->_defaults, $config);
     } else {
         $this->settings[$Model->alias] = $this->_defaults;
     }
 }
 /**
  * Gets the user associated to the current access token.
  *
  * Will return array of all user fields by default
  * You can specify specific fields like so:
  *
  * $id = $this->OAuth->user('id');
  *
  * @param type $field
  * @return mixed array of user fields if $field is blank, string value if $field is set and $fields is avaliable, false on failure
  */
 public function user($field = null, $token = null)
 {
     if (!$this->_user) {
         $this->AccessToken->bindModel(array('belongsTo' => array('User' => array('className' => $this->authenticate['userModel'], 'foreignKey' => 'user_id'))));
         $token = empty($token) ? $this->getBearerToken() : $token;
         $data = $this->AccessToken->find('first', array('conditions' => array('oauth_token' => $token), 'recursive' => 1));
         if (!$data) {
             return false;
         }
         $this->_user = $data['User'];
     }
     if (empty($field)) {
         return $this->_user;
     } elseif (isset($this->_user[$field])) {
         return $this->_user[$field];
     }
     return false;
 }
 /**
  * Initiate behavior for the model using specified settings.
  * Available settings:
  *
  * - view_counter: string :: the field in the table that has the count
  * - session_tracking false to disable, int for number of views to keep track of
  * 	views are tracked by displayField and will do funny things if displayField is not a string.
  *
  * @param object $Model Model using the behaviour
  * @param array $settings Settings to override for model.
  * @access public
  */
 public function setup($Model, $settings = array())
 {
     $Model->bindModel(array('hasMany' => array('ViewCount' => array('className' => 'ViewCounter.ViewCounterView', 'foreignKey' => 'foreign_key', 'conditions' => array('model' => $Model->plugin . '.' . $Model->alias), 'limit' => 0))));
     $Model->ViewCount->bindModel(array('belongsTo' => array($Model->alias => array('className' => $Model->alias, 'foreignKey' => 'foreign_key', 'counterCache' => 'views'))));
 }
Example #9
0
 /**
  * Initiate behavior for the model using settings.
  *
  * @param object $Model Model using the behaviour
  * @param array $settings Settings to override for model.
  * @access public
  */
 function setup(&$Model, $settings = array())
 {
     $Model->bindModel(array('hasOne' => array('Favorite' => array('dependent' => true, 'foreignKey' => 'foreign_id', 'conditions' => array('user_id' => User::get('id'))))), false);
 }
Example #10
0
 /**
  * beforeFind
  *
  * @param object $model 
  * @param array $query 
  * @return array
  */
 public function beforeFind(&$model, $query)
 {
     foreach ($this->settings[$model->alias] as $modelName => $settings) {
         $fk = $settings['foreignKey'];
         if (isset($query['foreignKey'])) {
             if (isset($query['foreignKey'][$modelName])) {
                 $fk = $query['foreignKey'][$modelName];
             } elseif ($query['foreignKey'] === false) {
                 $fk = false;
             }
         }
         if ($fk && $model->alias === $modelName) {
             $id = $model->{$settings['callback']}();
             if ($id) {
                 $conditions = array($model->alias . '.id' => $id);
                 $query['conditions'] = Set::merge($query['conditions'], $conditions);
             }
         } elseif ($fk && $model->hasField($fk)) {
             $fkValue = $model->{$settings['callback']}();
             if ($fkValue) {
                 $conditions = array($model->alias . '.' . $fk => $fkValue);
                 $query['conditions'] = Set::merge($query['conditions'], $conditions);
             }
         }
         if ($fk) {
             $assocs['hasMany'] = $model->hasMany;
             $assocs['hasOne'] = $model->hasOne;
             $assocs['hasAndBelongsToMany'] = $model->hasAndBelongsToMany;
             foreach ($assocs as $type => $assoc) {
                 if (!empty($assoc)) {
                     foreach ($assoc as $key => $alias) {
                         $_model = $alias;
                         $assocParams = array();
                         if (is_array($alias)) {
                             $_model = $key;
                             $assocParams = $alias;
                         }
                         $fk = $this->settings[$_model][$modelName]['foreignKey'];
                         if (isset($query['contain'][$_model]['foreignKey'])) {
                             if (isset($query['contain'][$_model]['foreignKey'][$modelName])) {
                                 $fk = $query['contain'][$_model]['foreignKey'][$modelName];
                             } elseif ($query['contain'][$_model]['foreignKey'] === false) {
                                 $fk = false;
                             }
                         }
                         if ($fk && $model->{$_model}->hasField($fk)) {
                             $fkValue = $model->{$_model}->{$this->settings[$_model][$modelName]['callback']}();
                             if ($fkValue) {
                                 $conditions = array($_model . '.' . $fk => $fkValue);
                                 $assocParams = Set::merge($assocParams, compact('conditions'));
                                 $model->bindModel(array($type => array($_model => $assocParams)));
                             }
                         }
                     }
                 }
             }
         }
     }
     return $query;
 }
 /**
  * Initiate behaviour for the model using settings.
  *
  * @param object $Model Model using the behaviour
  * @param array $settings Settings to override for model.
  * @access public
  *
  * @return void
  */
 public function setup($Model, $settings = array())
 {
     $this->settings[$Model->alias] = array_merge($this->_defaults, $settings);
     $Model->bindModel(array('belongsTo' => array($this->settings[$Model->alias]['categoryAlias'] => array('className' => $this->settings[$Model->alias]['categoryClass'], 'foreignKey' => $this->settings[$Model->alias]['foreignKey'], 'fields' => array($this->settings[$Model->alias]['categoryAlias'] . '.id', $this->settings[$Model->alias]['categoryAlias'] . '.title', $this->settings[$Model->alias]['categoryAlias'] . '.slug', $this->settings[$Model->alias]['categoryAlias'] . '.active', $this->settings[$Model->alias]['categoryAlias'] . '.group_id', $this->settings[$Model->alias]['categoryAlias'] . '.parent_id')))), $this->settings[$Model->alias]['resetBinding']);
 }
Example #12
0
 /**
  * Initiate behaviour for the model using settings.
  *
  * @param object $Model Model using the behaviour
  * @param array $settings Settings to override for model.
  * @access public
  */
 public function setup(&$Model, $settings = array())
 {
     $this->settings[$Model->alias] = array_merge($this->_defaults, $settings);
     $Model->bindModel(array('belongsTo' => array($this->settings[$Model->alias]['categoryAlias'] => array('className' => $this->settings[$Model->alias]['categoryClass'], 'foreignKey' => $this->settings[$Model->alias]['foreignKey'], 'counterCache' => $this->settings[$Model->alias]['counterCache']))), $this->settings[$Model->alias]['resetBinding']);
 }
 /**
  * Before find callback,
  * bind Nodeattachment with hasMany relation
  *
  * @param object $model
  * @param array $query
  * @return array $query
  */
 public function beforeFind(&$model, $query)
 {
     $model->bindModel(array('hasMany' => array('Nodeattachment' => array('order' => array('Nodeattachment.priority ASC', 'Nodeattachment.created ASC')))));
     return $query;
 }