/** * Set hash when record created * * @param Doctrine_Event $event * @return void */ public function postSave(Doctrine_Event $event) { $object = $event->getInvoker(); $_object = Doctrine_Core::getTable('sfCategory')->find($object->getId()); $level = $_object->getLevel(); if ($_object->getNode()->hasParent()) { if ($level > 0) { for ($i = 1; $i < $level; $i++) { $_object = $_object->getNode()->getParent(); } } } $tree = Doctrine_Core::getTable('sfCategory')->getTree(); $tree = $tree->fetchBranch($_object->getId(), array(), Doctrine_Core::HYDRATE_ARRAY_HIERARCHY); $_tree = $this->setHierarchicalSlug($tree); return parent::postSave($event); }
/** * Set hash when record created * * @param Doctrine_Event $event * @return void */ public function postSave(Doctrine_Event $event) { $object = $event->getInvoker(); if (!$object->slug) { $i = 0; $prefix = ''; $_slug = ''; foreach ($this->_options['fields'] as $val) { if ($i > 0) { $prefix = '-'; } $_slug .= $prefix . trim($object->{$val}); $i++; } $slug = strtolower($this->translitIt($_slug)); if (isset($this->_options['time'])) { $slug .= '-' . time(); } $object->slug = $slug; $object->save(); } return parent::postSave($event); }
/** * Set hash when record created * * @param Doctrine_Event $event * @return void */ public function postDelete(Doctrine_Event $event) { parent::postDelete($event); $object = $event->getInvoker(); $_formats = sfConfig::get('imagecache_formats'); $columns = $this->_table->getColumns(); foreach ($columns as $column_name => $def) { if ($extra = $def['extra']) { if ($extra['type'] == 'image') { $value = $object->get($column_name); if (!empty($value)) { $_format = $_formats[$extra['imageCacheFormat']]; $file = sfConfig::get('sf_upload_dir') . '/' . trim($extra['path']) . '/' . $value; unlink($file); foreach ($_formats as $format => $options) { $cached_file = sfConfig::get('sf_upload_dir') . '/cache/' . trim($format) . '/' . $extra['path'] . '/' . $value; unlink($cached_file); } } unset($value); } } } }