コード例 #1
0
ファイル: Dbp.php プロジェクト: arslbbt/mangentovies
 /**
  * Db tree constructor
  *
  * $fields = array(
  *      Varien_Data_Tree_Dbp::ID_FIELD       => string,
  *      Varien_Data_Tree_Dbp::PATH_FIELD     => string,
  *      Varien_Data_Tree_Dbp::ORDER_FIELD    => string
  * )
  *
  * @param Zend_Db_Adapter_Abstract $connection
  * @param string $table
  * @param array $fields
  */
 public function __construct($connection, $table, $fields)
 {
     parent::__construct();
     if (!$connection) {
         throw new Exception('Wrong "$connection" parametr');
     }
     $this->_conn = $connection;
     $this->_table = $table;
     if (!isset($fields[self::ID_FIELD]) || !isset($fields[self::PATH_FIELD]) || !isset($fields[self::ORDER_FIELD])) {
         throw new Exception('"$fields" tree configuratin array');
     }
     $this->_idField = $fields[self::ID_FIELD];
     $this->_pathField = $fields[self::PATH_FIELD];
     $this->_orderField = $fields[self::ORDER_FIELD];
     $this->_select = $this->_conn->select();
     $this->_select->from($this->_table);
 }
コード例 #2
0
ファイル: Node.php プロジェクト: Airmal/Magento-Em
 public function copyTo($parentNode, $prevNode = null)
 {
     $this->_tree->copyNodeTo($this, $parentNode, $prevNode);
     return $this;
 }
コード例 #3
0
ファイル: Db.php プロジェクト: relue/magento2
 public function removeNode($node)
 {
     // For reorder old node branch
     $dataReorderOld = array($this->_orderField => new Zend_Db_Expr($this->_conn->quoteIdentifier($this->_orderField) . '-1'));
     $conditionReorderOld = $this->_conn->quoteIdentifier($this->_parentField) . '=' . $node->getData($this->_parentField) . ' AND ' . $this->_conn->quoteIdentifier($this->_orderField) . '>' . $node->getData($this->_orderField);
     $this->_conn->beginTransaction();
     try {
         $condition = $this->_conn->quoteInto("{$this->_idField}=?", $node->getId());
         $this->_conn->delete($this->_table, $condition);
         // Update old node branch
         $this->_conn->update($this->_table, $dataReorderOld, $conditionReorderOld);
         $this->_conn->commit();
     } catch (Exception $e) {
         $this->_conn->rollBack();
         throw new Exception('Can\'t remove tree node');
     }
     parent::removeNode($node);
     return $this;
 }