PEAR is archived and read-only

This mirror preserves historical PEAR package releases and metadata so existing references remain available.

Home » Database » DB_DataObject_FormBuilder » Bug #8625

modify getDataObjectString

Details

Request #8625modify getDataObjectString
Submitted2006-09-03 18:59 UTC
Fromb_j at tar dot hu
StatusNo Feedback
PackageDB_DataObject_FormBuilder
PHP VersionIrrelevant
Roadmaps(Not assigned)

Comments

[2006-09-03 18:59 UTC] b_j at tar dot hu

Description:
------------
function getDataObjectString(&$do, $displayFields = false, $linkDisplayLevel = null, $level = 1) {
//BJ
$_BJ_ListSeparator=','; //default: ', '
$_BJ_FieldSeparator=' | '; //default: ', '
$_BJ_SubLinkSeparatorLeft=''; //default: '('
$_BJ_SubLinkSeparatorRight=''; //default: ')'
if ($linkDisplayLevel === null) {
$linkDisplayLevel = (isset($this) && isset($this->linkDisplayLevel)) ? $this->linkDisplayLevel : 3;
}
if (!is_array($links = $do->links())) {
$links = array();
}
if ($displayFields === false) {
if (isset($do->fb_linkDisplayFields)) {
$displayFields = $do->fb_linkDisplayFields;
} elseif (isset($this) && isset($this->linkDisplayFields) && $this->linkDisplayFields) {
$displayFields = $this->linkDisplayFields;
}
if (!$displayFields) {
$displayFields = array_keys($do->table());
}
}
$ret = '';
$first = true;
foreach ($displayFields as $field) {
if ($first) {
$first = false;
} else {
//$ret .= ', ';
//BJ
$ret .= $this->_BJ_FieldSeparator;
}
if (isset($do->$field)) {
if ($linkDisplayLevel > $level && isset($links[$field])) {
/*list ($linkTable, $linkField) = $links[$field];
$subDo = DB_DataObject::factory($linkTable);
$subDo->$linkField = $do->$field;*/
if ($subDo = $do->getLink($field)) {
if (isset($this) && is_a($this, 'DB_DataObject_FormBuilder')) {
//$ret .= '('.$this->getDataObjectString($subDo, false, $linkDisplayLevel, $level + 1).')';
//BJ
$fieldvalue=$this->getDataObjectString(
$subDo, false, $linkDisplayLevel, $level + 1
);
} else {
//$ret .= '('.DB_DataObject_FormBuilder::getDataObjectString($subDo, false, $linkDisplayLevel, $level + 1).')';
//BJ
$fieldvalue=DB_DataObject_FormBuilder::getDataObjectString(
$subDo, false, $linkDisplayLevel, $level + 1
);
}
//BJ
$ret .= $this->_BJ_SubLinkSeparatorLeft.
$fieldvalue.$this->_BJ_SubLinkSeparatorRight;
continue;
}
}
$ret .= $do->$field;
}
}
return $ret;
}