From afc02bc1c3db9ffe8c9bf660c8aa08666752edfb Mon Sep 17 00:00:00 2001 From: Antonio Gallo Date: Sun, 8 May 2011 15:26:22 +0000 Subject: h-source:added new EasyGiant SVN version --- h-source/Library/Model/Tree.php | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'h-source/Library/Model/Tree.php') diff --git a/h-source/Library/Model/Tree.php b/h-source/Library/Model/Tree.php index 4dcac8f..56a5db3 100755 --- a/h-source/Library/Model/Tree.php +++ b/h-source/Library/Model/Tree.php @@ -29,7 +29,7 @@ class Model_Tree extends Model_Base { //method to create the first part of where clause //$index: the index of $this->_tablesArray public function createTreeWhere($index) { - if (isset($this->on)) + if (!empty($this->on)) { return $this->on; } @@ -90,9 +90,9 @@ class Model_Tree extends Model_Base { $wherePlus = $this->createWhereClause(); - if (!isset($this->on)) + if (empty($this->on)) { - $on = null; + $on = array(); if (isset($where) and isset($wherePlus)) { @@ -105,7 +105,7 @@ class Model_Tree extends Model_Base { } else { - $on = (strcmp($where,'-') !== 0) ? $where : null; + $on = (isset($where[0]) and strcmp($where[0],'-') !== 0) ? $where : array(); $where = $wherePlus; } @@ -128,7 +128,7 @@ class Model_Tree extends Model_Base { $queryFields = (strcmp($fields,'') === 0) ? $elements['fields'] : $fields; - return $row = $this->db->select($elements['tables'],$queryFields,$elements['where'],$this->groupBy,$this->orderBy,$this->limit,$elements['on'],$this->using); + return $row = $this->db->select($elements['tables'],$queryFields,$elements['where'],$this->groupBy,$this->orderBy,$this->limit,$elements['on'],$this->using,$this->join); } public function send() @@ -158,6 +158,7 @@ class Model_Tree extends Model_Base { //$id: the id (primary key) of the record //$fields: the comma separated list of fields that have to be extracted public function selectId($id,$fields = null) { + $tempWhere = $this->where; $this->setWhereQueryClause(array($this->_idFieldsArray[0] => (int)$id)); $this->using = null; @@ -170,6 +171,8 @@ class Model_Tree extends Model_Base { { $values = $this->getAll('other'); } + + $this->where = $tempWhere; return (count($values) > 0) ? $values[0][$this->_tablesArray[0]] : array(); @@ -179,38 +182,38 @@ class Model_Tree extends Model_Base { //the number of records of the table $tableName is returned public function rowNumber() { $elements = $this->treeQueryElements($this->_tablesArray[0]); - return $this->db->get_num_rows($elements['tables'],$elements['where'],$this->groupBy,$elements['on'],$this->using); + return $this->db->get_num_rows($elements['tables'],$elements['where'],$this->groupBy,$elements['on'],$this->using,$this->join); } public function getMax($field) { $elements = $this->treeQueryElements($this->_tablesArray[0]); - return $this->db->getMax($elements['tables'],$field,$elements['where'],$this->groupBy,$elements['on'],$this->using); + return $this->db->getMax($elements['tables'],$field,$elements['where'],$this->groupBy,$elements['on'],$this->using,$this->join); } public function getMin($field) { $elements = $this->treeQueryElements($this->_tablesArray[0]); - return $this->db->getMin($elements['tables'],$field,$elements['where'],$this->groupBy,$elements['on'],$this->using); + return $this->db->getMin($elements['tables'],$field,$elements['where'],$this->groupBy,$elements['on'],$this->using,$this->join); } public function getSum($field) { $elements = $this->treeQueryElements($this->_tablesArray[0]); - return $this->db->getSum($elements['tables'],$field,$elements['where'],$this->groupBy,$elements['on'],$this->using); + return $this->db->getSum($elements['tables'],$field,$elements['where'],$this->groupBy,$elements['on'],$this->using,$this->join); } public function getAvg($field) { $elements = $this->treeQueryElements($this->_tablesArray[0]); - return $this->db->getAvg($elements['tables'],$field,$elements['where'],$this->groupBy,$elements['on'],$this->using); + return $this->db->getAvg($elements['tables'],$field,$elements['where'],$this->groupBy,$elements['on'],$this->using,$this->join); } //check if the table has the field $field equal to $value public function has($field,$value) { $elements = $this->treeQueryElements($this->_tablesArray[0]); - return $this->db->recordExists($elements['tables'],$field,$value,$elements['where'],$this->groupBy,$elements['on'],$this->using); + return $this->db->recordExists($elements['tables'],$field,$value,$elements['where'],$this->groupBy,$elements['on'],$this->using,$this->join); } // //get the number of records of the table $this->_tablesArray[0] -- cgit v1.2.3