コード例 #1
0
ファイル: list.php プロジェクト: pascal26/fabrik
 /**
  * Get a row of data from the table
  *
  * @param   int   $id        Id
  * @param   bool  $format    The data
  * @param   bool  $loadJoin  Load the rows joined data @since 2.0.5 (used in J Content plugin)
  *
  * @return  object	Row
  */
 public function getRow($id, $format = false, $loadJoin = false)
 {
     if (is_null($this->rows)) {
         $this->rows = array();
     }
     $sig = $id . '.' . $format . '.' . $loadJoin;
     if (array_key_exists($sig, $this->rows)) {
         return $this->rows[$sig];
     }
     $fabrikDb = $this->getDb();
     $formModel = $this->getFormModel();
     $formModel->reset();
     $this->reset();
     $formModel->rowId = $id;
     $sql = $formModel->buildQuery();
     $fabrikDb->setQuery($sql);
     if (!$loadJoin) {
         if ($format == true) {
             $row = $fabrikDb->loadObject();
             $row = array($row);
             $this->formatData($row);
             /* $$$ hugh - if table is grouped, formatData will have turned $row into an
              * assoc array, so can't assume 0 is first key.
              * $this->rows[$sig] = $row[0][0];
              */
             $row = FArrayHelper::getValue($row, FArrayHelper::firstKey($row), array());
             $this->rows[$sig] = FArrayHelper::getValue($row, 0, new stdClass());
         } else {
             $this->rows[$sig] = $fabrikDb->loadObject();
         }
     } else {
         $rows = $fabrikDb->loadObjectList();
         $formModel->setJoinData($rows);
         if ($format == true) {
             $rows = array(ArrayHelper::toObject($rows));
             $this->formatData($rows);
             $rows = $rows[0];
             /* $$$ hugh - if list is grouped, formatData will have re-index as assoc array,
             			 /* so can't assume 0 is first key.
             			*/
             $this->rows[$sig] = FArrayHelper::getValue($rows, FArrayHelper::firstKey($rows), array());
         } else {
             // Content plugin - rows is 1 dimensional array
             $this->rows[$sig] = $rows;
         }
     }
     if (is_array($this->rows[$sig])) {
         $this->rows[$sig] = ArrayHelper::toObject($this->rows[$sig]);
     }
     return $this->rows[$sig];
 }
コード例 #2
0
ファイル: list.php プロジェクト: rogeriocc/fabrik
 /**
  * Get a row of data from the table
  *
  * @param   int   $id        id
  * @param   bool  $format    the data
  * @param   bool  $loadJoin  load the rows joined data @since 2.0.5 (used in J Content plugin)
  *
  * @return  object	row
  */
 public function getRow($id, $format = false, $loadJoin = false)
 {
     if (is_null($this->rows)) {
         $this->rows = array();
     }
     $sig = $id . '.' . $format . '.' . $loadJoin;
     if (array_key_exists($sig, $this->rows)) {
         return $this->rows[$sig];
     }
     $fabrikDb = $this->getDb();
     $formModel = $this->getFormModel();
     $formModel->_rowId = $id;
     unset($formModel->query);
     $sql = $formModel->_buildQuery();
     $fabrikDb->setQuery($sql);
     if (!$loadJoin) {
         if ($format == true) {
             $row = $fabrikDb->loadObject();
             $row = array($row);
             $this->formatData($row);
             /* $$$ hugh - if table is grouped, formatData will have turned $row into an
              * assoc array, so can't assume 0 is first key.
              * $this->rows[$sig] = $row[0][0];
              */
             $row = JArrayHelper::getValue($row, FArrayHelper::firstKey($row), array());
             $this->rows[$sig] = JArrayHelper::getValue($row, 0, new stdClass());
         } else {
             $this->rows[$sig] = $fabrikDb->loadObject();
         }
         if ($fabrikDb->getErrorNum()) {
             JError::raiseError(500, $fabrikDb->getErrorMsg());
         }
     } else {
         $rows = $fabrikDb->loadObjectList();
         if ($fabrikDb->getErrorNum()) {
             JError::raiseError(500, $fabrikDb->getErrorMsg());
         }
         $formModel->setJoinData($rows);
         if ($format == true) {
             $this->formatData($rows);
             /* $$$ hugh - if list is grouped, formatData will have re-index as assoc array,
             			/* so can't assume 0 is first key.
             			 */
             $this->rows[$sig] = JArrayHelper::getValue($rows, FArrayHelper::firstKey($rows), array());
         } else {
             $this->rows[$sig] = JArrayHelper::getValue($rows, 0, array());
         }
     }
     return $this->rows[$sig];
 }