/** * get a row of data from the table * * @param int $id * @param bool format the data * @param bool load the rows joined data @since 2.0.5 (used in J Content plugin) * @return object row */ function getRow($id, $format = false, $loadJoin = false) { if (!isset($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); $row = $row[FabrikWorker::firstKey($row)]; $this->rows[$sig] = empty($row) ? new stdClass() : $row[0]; } else { $this->rows[$sig] = $fabrikDb->loadObject(); } } else { $rows = $fabrikDb->loadObjectList(); $formModel->setJoinData($rows); $this->rows[$sig] = empty($rows) ? new stdClass() : $rows[0]; } return $this->rows[$sig]; }