/** * 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]; }
/** * 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]; }