/**
  * 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;
     }
 }
Exemple #2
0
 /**
  * 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;
 }