/** * Override standard links() method, to make sure it reads correctly data from links.ini * file even if DataObjects uses prefix. * * @access public * @see DB_DataObject::links() * @return array */ function links() { $links = parent::links(); if (empty($this->_prefix)) { return $links; } else { $prefixedLinks = array(); if ($GLOBALS['_DB_DATAOBJECT']['LINKS'][$this->_database][$this->_tableName]) { $links = $GLOBALS['_DB_DATAOBJECT']['LINKS'][$this->_database][$this->_tableName]; foreach ($links as $k => $v) { // add prefix $prefixedLinks[$k] = $this->_prefix . $v; } } return $prefixedLinks; } }
/** * Generate parents records using the relationship defined in links.ini file * * @param DB_DataObject $do */ function generateParents(&$do) { $links = $do->links(); foreach ($links as $foreignKey => $linkedTableField) { if (!empty($do->{$foreignKey})) { // parent is already set continue; } list($linkedTable, $linkedField) = explode(':', $linkedTableField); $table = $do->getTableWithoutPrefix($linkedTable); $linkedPrimaryKeyVal = isset($do->{$foreignKey}) ? $do->{$foreignKey} : null; if (!empty($this) && is_a($this, 'DataGenerator')) { $do->{$foreignKey} = $this->addAncestor($table, $linkedPrimaryKeyVal); } else { $do->{$foreignKey} = DataGenerator::addAncestor($table, $linkedPrimaryKeyVal); } } }
public function links() { // avoid those annoying PEAR::DB strict standards warnings it causes $old = error_reporting(); error_reporting(error_reporting() & ~E_STRICT); $res = parent::links(); // reset error_reporting($old); return $res; }