Esempio n. 1
0
 /**
  * Link loaded entity to parent object
  *
  * @param \XLite\Model\AEntity $entity      Loaded entity
  * @param \XLite\Model\AEntity $parent      Entity parent callback
  * @param array                $parentAssoc Entity mapped propery method
  *
  * @return void
  */
 protected function linkLoadedEntity(\XLite\Model\AEntity $entity, \XLite\Model\AEntity $parent, array $parentAssoc)
 {
     parent::linkLoadedEntity($entity, $parent, $parentAssoc);
     if ($parent instanceof \XLite\Model\Category) {
         $quickFlags = new \XLite\Model\Category\QuickFlags();
         $entity->setQuickFlags($quickFlags);
         $quickFlags->setCategory($entity);
         // Update indexes in the nested set
         if (isset($parent)) {
             $this->defineUpdateIndexQuery('lpos', $parent->getRpos() - 1)->execute();
             $this->defineUpdateIndexQuery('rpos', $parent->getRpos() - 1)->execute();
             $entity->setLpos($parent->getRpos());
             $entity->setRpos($parent->getRpos() + 1);
             $parent->setRpos($parent->getRpos() + 2);
         } else {
             $rpos = $this->getMaxRightPos();
             $entity->setLpos($rpos + 1);
             $entity->setRpos($rpos + 2);
         }
     }
 }