Exemplo n.º 1
0
 /**
  * {@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;
 }