/**
  * 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);
 }
示例#2
0
 /**
  * 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);
 }