Ejemplo n.º 1
0
 private function drawDetailView_processField($field)
 {
     if (ArrayHelper::keyExists('widget', $field)) {
         $className = ArrayHelper::getValue($field, 'widget.0', '');
         if ($className != '') {
             if (method_exists($className, 'onDraw')) {
                 return $className::onDraw($field, $this);
             }
         }
     }
     if (isset($field['drawDetailView'])) {
         $method = $field['drawDetailView'];
         return call_user_func($method, $this, $field);
     }
     if (ArrayHelper::keyExists('type', $field)) {
         $options = [];
         if (is_array($field['type'])) {
             $name = $field['type'][0];
             if (isset($field['type'][1])) {
                 $options = $field['type'][1];
             }
         } else {
             $name = $field['type'];
         }
         $fieldName = $field[self::POS_DB_NAME];
         switch ($name) {
             case 'place':
                 return \cs\models\Place::initFromModel($this, $fieldName);
             case 'radioList':
                 $value = $this->{$fieldName};
                 return $options[$value];
             case 'file':
                 return \cs\Widget\FileUpload2\FileUpload::drawDetailView($this, $field);
             case 'checkbox':
                 $value = $this->{$fieldName};
                 if (is_null($value)) {
                     return '';
                 }
                 if ($value == 0) {
                     return 'Нет';
                 }
                 if ($value == 1) {
                     return 'Да';
                 }
         }
     }
     if (isset($field[self::POS_RULE])) {
         if ($field[self::POS_RULE] != '') {
             $dbName = $field[self::POS_DB_NAME];
             switch ($field[self::POS_RULE]) {
                 case 'string':
                     return $this->{$dbName};
                 case 'url':
                     return Html::a($this->{$dbName}, $this->{$dbName});
                 case 'integer':
                     return $this->{$dbName};
                 case 'date':
                     return $this->{$dbName};
             }
         }
     }
 }