Beispiel #1
0
 /**
  * Mark a node change, triggering cascade cache clearing
  *
  * @param AppModel $model
  * @param int $id
  */
 public function changed($model, $id = null)
 {
     if (empty($id)) {
         $id = $model->getID();
     }
     if ($model->Behaviors->enabled('Translate')) {
         $locales = SlConfigure::read('I18n.locales');
         foreach ($locales as $locale) {
             $key = Inflector::underscore($model->alias) . "_{$id}_{$locale}";
             Cache::delete($key, 'models');
         }
     } else {
         $key = Inflector::underscore($model->alias) . "_{$id}";
         Cache::delete($key, 'models');
     }
 }
Beispiel #2
0
 /**
  * Create, save and pass token to ModelName::$tokens
  *
  * @param AppModel $Model
  * @param string $name
  * @param mixed $id
  * @return mixed string token or false
  * @access public
  */
 public function createToken($Model, $name, $id = null)
 {
     $id = empty($id) ? $Model->getID() : $id;
     if (empty($id) || (bool) $Model->Token->find('count', array('conditions' => array('model' => $Model->name, 'foreign_key' => $id, 'name' => $name)))) {
         return false;
     }
     do {
         $token = $this->generateToken($Model);
     } while ((bool) $Model->Token->find('count', array('conditions' => array('value' => $token))));
     $data = array('Token' => array('model' => $Model->name, 'foreign_key' => $id, 'name' => $name, 'value' => $token));
     $Model->Token->create($data);
     if ($Model->Token->save()) {
         return $Model->tokens[$name] = $token;
     }
     return false;
 }