Merge branch 'tine20.com/2012.10' into 2013.03
authorPhilipp Schüle <p.schuele@metaways.de>
Thu, 23 May 2013 15:26:36 +0000 (17:26 +0200)
committerPhilipp Schüle <p.schuele@metaways.de>
Thu, 23 May 2013 15:26:36 +0000 (17:26 +0200)
1  2 
tine20/Tinebase/Backend/Sql/Abstract.php

@@@ -266,30 -266,6 +266,30 @@@ abstract class Tinebase_Backend_Sql_Abs
      }
      
      /**
 +     * fetch a single property for all records defined in array of $ids
 +     * 
 +     * @param array|string $ids
 +     * @param string $property
 +     * @return array (key = id, value = property value)
 +     */
 +    public function getPropertyByIds($ids, $property)
 +    {
 +        $select = $this->_getSelect(array($property, $this->_identifier));
 +        $select->where($this->_db->quoteIdentifier($this->_tableName . '.' . $this->_identifier) . ' IN (?)', (array) $ids);
 +        Tinebase_Backend_Sql_Abstract::traitGroup($select);
 +        
 +        $stmt = $this->_db->query($select);
 +        $queryResult = $stmt->fetchAll();
 +        $stmt->closeCursor();
 +        
 +        $result = array();
 +        foreach($queryResult as $row) {
 +            $result[$row[$this->_identifier]] = $row[$property];
 +        }
 +        return $result;
 +    }
 +    
 +    /**
       * converts raw data from adapter into a single record
       *
       * @param  array $_rawData
          
          Tinebase_Backend_Sql_Abstract::traitGroup($select);
          
 -        //if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' ' . $select->__toString());
 +        if (Tinebase_Core::isLogLevel(Zend_Log::TRACE)) Tinebase_Core::getLogger()->trace(__METHOD__ . '::' . __LINE__ . ' ' . $select->__toString());
          
          $stmt = $this->_db->query($select);
          $queryResult = $stmt->fetchAll();
       * @param  array|string|boolean                 $_cols columns to get, * per default / use self::IDCOL or TRUE to get only ids
       * @return Tinebase_Record_RecordSet|array
       */
 -    public function search(Tinebase_Model_Filter_FilterGroup $_filter = NULL, Tinebase_Model_Pagination $_pagination = NULL, $_cols = '*')    
 +    public function search(Tinebase_Model_Filter_FilterGroup $_filter = NULL, Tinebase_Model_Pagination $_pagination = NULL, $_cols = '*')
      {
          if ($_pagination === NULL) {
              $_pagination = new Tinebase_Model_Pagination(NULL, TRUE);
          }
          $this->_addSecondarySort($_pagination);
          $_pagination->appendPaginationSql($select);
 -        
 +
 +        Tinebase_Backend_Sql_Abstract::traitGroup($select);
 +
          if ($getIdValuePair) {
              return $this->_fetch($select, self::FETCH_MODE_PAIR);
          } else {
          $recordArray = array_intersect_key($recordArray, $this->_schema);
          
          $this->_prepareData($recordArray);
-                 
+         
          $where  = array(
              $this->_db->quoteInto($this->_db->quoteIdentifier($identifier) . ' = ?', $id),
          );
          if ($_record->has('customfields')) {
              Tinebase_CustomField::getInstance()->saveRecordCustomFields($_record);
          }
-                 
+         
          $this->_updateForeignKeys('update', $_record);
          
          $result = $this->get($id, true);