/** * returns a single record matching the search crit. * If several records match the crit wil return the first one based on the sort param. * Note the variation that versioning inserts into the process * * @param scalar[] $searchCrit * @param string $sort * @return Zupal_Content_IDomain */ public function findOne($searchCrit = NULL, $sort = NULL, $pDomain = FALSE) { $table = $this->table(); $id_field = $table->idField(); $node_field = $this->node_field(); $select = $this->_select($searchCrit, $sort, $pDomain); if ($pDomain) { $row = $table->fetchRow($select); return $this->get($row); } else { if ($this->_is_versioned) { $node_stub = Zupal_Nodes::getInstance(); $cond = sprintf('( `%s`.%s = `%s`.node_id )', $table->tableName(), $this->node_field(), $node_stub->table()->tableName()); $cond .= sprintf(' AND (`%s`.%s = `%s`.version)', $table->tableName(), $id_field, $node_stub->table()->tableName()); //@TODO: cache this expression? $select->join($node_stub->table()->tableName(), $cond, array()); $row = $table->getAdapter()->fetchRow($select); $id = $row[$id_field]; // transfer data into domain objects. return is_null($id) ? NULL : $this->get($id); } else { $row = $this->table()->fetchRow($select); return $this->get($row); } } }
public function formmakervalidateAction() { $this->_helper->layout->disableLayout(); $this->view->table = $this->_getParam('table'); $this->view->detail = Zupal_Nodes::getInstance()->table()->getAdapter()->fetchAll('DESCRIBE ' . $this->view->table); }