/** * 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'); } }
/** * 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; }