Пример #1
0
 /**
  * Get any configuration fields associated with the Inputfield
  *
  * @return InputfieldWrapper
  *
  */
 public function ___getConfigInputfields()
 {
     $wrapper = new InputfieldWrapper();
     $fieldgroupContext = $this->flags & Field::flagFieldgroupContext;
     if ($fieldgroupContext) {
         $allowContext = $this->type->getConfigAllowContext($this);
         if (!is_array($allowContext)) {
             $allowContext = array();
         }
     } else {
         $allowContext = array();
     }
     if (!$fieldgroupContext || count($allowContext)) {
         $inputfields = new InputfieldWrapper();
         if (!$fieldgroupContext) {
             $inputfields->head = $this->_('Field type details');
         }
         $inputfields->attr('title', $this->_('Details'));
         try {
             $fieldtypeInputfields = $this->type->getConfigInputfields($this);
             if (!$fieldtypeInputfields) {
                 $fieldtypeInputfields = new InputfieldWrapper();
             }
             $configArray = $this->type->getConfigArray($this);
             if (count($configArray)) {
                 $w = new InputfieldWrapper();
                 $w->importArray($configArray);
                 $w->populateValues($this);
                 $fieldtypeInputfields->import($w);
             }
             foreach ($fieldtypeInputfields as $inputfield) {
                 if ($fieldgroupContext && !in_array($inputfield->name, $allowContext)) {
                     continue;
                 }
                 $inputfields->append($inputfield);
             }
         } catch (Exception $e) {
             $this->trackException($e, false, true);
         }
         if (count($inputfields)) {
             $wrapper->append($inputfields);
         }
     }
     $inputfields = new InputfieldWrapper();
     $dummyPage = $this->wire('pages')->get("/");
     // only using this to satisfy param requirement
     if ($inputfield = $this->getInputfield($dummyPage)) {
         if ($fieldgroupContext) {
             $allowContext = array('visibility', 'collapsed', 'columnWidth', 'required', 'requiredIf', 'showIf');
             $allowContext = array_merge($allowContext, $inputfield->getConfigAllowContext($this));
         } else {
             $allowContext = array();
             $inputfields->head = $this->_('Input field settings');
         }
         $inputfields->attr('title', $this->_('Input'));
         $inputfieldInputfields = $inputfield->getConfigInputfields();
         if (!$inputfieldInputfields) {
             $inputfieldInputfields = new InputfieldWrapper();
         }
         $configArray = $inputfield->getConfigArray();
         if (count($configArray)) {
             $w = new InputfieldWrapper();
             $w->importArray($configArray);
             $w->populateValues($this);
             $inputfieldInputfields->import($w);
         }
         foreach ($inputfieldInputfields as $i) {
             if ($fieldgroupContext && !in_array($i->name, $allowContext)) {
                 continue;
             }
             $inputfields->append($i);
         }
     }
     $wrapper->append($inputfields);
     return $wrapper;
 }