Home » Database » DB_DataObject_FormBuilder » Bug #8625
modify getDataObjectString
Details
| Request #8625 | modify getDataObjectString |
|---|---|
| Submitted | 2006-09-03 18:59 UTC |
| From | b_j at tar dot hu |
| Status | No Feedback |
| Package | DB_DataObject_FormBuilder |
| PHP Version | Irrelevant |
| 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;
}