Exemple #1
0
 public function prependChild(User_Model_Node $node, $data)
 {
     $newNode = $this->fetchNew();
     $newNode->setFromArray($data);
     $anchor = $node->pleft;
     $newNode->pleft = $anchor + 1;
     $newNode->pright = $anchor + 2;
     $newNode->parent_id = $node->getIdentity();
     $db = $this->getAdapter();
     $tableName = $this->info('name');
     try {
         $db->beginTransaction();
         $db->update($tableName, array('pright' => new Zend_Db_Expr('pright+2')), array('pright > ?' => $anchor));
         $db->update($tableName, array('pleft' => new Zend_Db_Expr('pleft+2')), array('pleft > ?' => $anchor));
         $newNode->save();
         if (!empty($data['photo'])) {
             $newNode->setPhoto($data['photo']);
         }
         $this->updateTree();
         $db->commit();
     } catch (Exception $e) {
         $db->rollBack();
         throw $e;
     }
 }
Exemple #2
0
 public function deleteNode(User_Model_Node $node, $node_id = NULL)
 {
     $result = $node->getDescendent(true);
     $db = $this->getAdapter();
     parent::deleteNode($node);
 }