/** * {@inheritdoc} */ public function renderRelationField($name, $label, $mode, $value = '', $expanded = false, $buttons = true) { self::$logger->debug('>>renderRelationField(name=[' . $name . '], label=[' . $label . '], mode=[' . $mode . '], value=[' . $value . '], expanded=[' . $expanded . '], buttons=[' . $buttons . '])'); $config = ConfigProvider::getInstance(); $html = ''; $rel = $this->BO->getPropObject($name); if ($mode == 'create' || $mode == 'edit') { if ($rel->getRelationType() == 'MANY-TO-MANY') { try { // check to see if the rel is on this class $rel->getSide(get_class($this->BO)); $widget = new RecordSelector($rel, $label, $name, get_class($this->BO)); $html .= $widget->render($expanded, $buttons); } catch (IllegalArguementException $iae) { // the rel may be on a parent class $widget = new RecordSelector($rel, $label, $name, get_parent_class($this->BO)); $html .= $widget->render($expanded, $buttons); } } else { $rel = new RecordSelector($rel, $label, $name); $html .= $rel->render($expanded, $buttons); } } if ($mode == 'view') { if ($rel->getRelationType() == 'MANY-TO-ONE') { $html .= $this->renderDefaultField($name, $label, 'view', $rel->getRelatedClassDisplayFieldValue()); } elseif ($rel->getRelationType() == 'MANY-TO-MANY') { try { // check to see if the rel is on this class $rel->getSide(get_class($this->BO)); $html .= $this->renderDefaultField($name, $label, 'view', $rel->getRelatedClassDisplayFieldValue(get_class($this->BO))); } catch (IllegalArguementException $iae) { // the rel may be on a parent class $html .= $this->renderDefaultField($name, $label, 'view', $rel->getRelatedClassDisplayFieldValue(get_parent_class($this->BO))); } } else { $rel = new RecordSelector($rel, $label, $name); $html .= $rel->render($expanded, $buttons); } } self::$logger->debug('<<renderRelationField [' . $html . ']'); return $html; }