Пример #1
0
 /**
  * @description delete node/brunch
  * @return Evil_Object_Fixed_ParentId
  * @author Se#
  * @version 0.0.2
  */
 public function erase()
 {
     parent::erase();
     // delete node itself
     $this->_fixed->delete($this->_fixed->getAdapter()->quoteInto(array('id = ?'), array($this->_id)));
     // get children ids
     $childrenIds = $this->_getChildrenIds($this->_id);
     // delete children
     $this->_fixed->delete('id IN ("' . implode('","', $childrenIds) . '")');
     return $this;
 }
Пример #2
0
 /**
  * @description load node/branch
  * @throws Exception
  * @param null|string $id
  * @param null|string $lk
  * @param null|string $rk
  * @param null|array where some additional where clause
  * @return Evil_Object_Fixed_NestedSets
  * @author Se#
  * @version 0.0.2
  */
 public function load($id = null, $lk = null, $rk = null, $where = null)
 {
     if (null !== $id) {
         $this->_id = $id;
     } else {
         $select = $this->_fixed->select()->order('lk ASC');
         $select = $this->_applyWhere($select, $where);
         return $this->_fixed->fetchAll($select);
     }
     if (empty($lk) || empty($rk)) {
         // get node info
         parent::load($id);
         $this->_loaded = false;
         $node = $this->_data;
         if (isset($node['lk']) && isset($node['rk'])) {
             $lk = $node['lk'];
             $rk = $node['rk'];
         } else {
             throw new Exception(' Unknown node "' . $id . '"');
         }
     }
     $select = $this->_fixed->select()->where('lk>=?', $lk)->where('rk<=?', $rk)->order('lk ASC');
     $this->_data = $this->_fixed->fetchAll($select);
     $this->_data = is_object($this->_data) ? $this->_data->toArray() : $this->_data;
     return $this;
 }