GcContent\Form\DocumentInformation::load PHP Метод

load() публичный Метод

Load document form from DocumentModel
public load ( Model $document, array $config ) : void
$document Gc\Document\Model Document model
$config array Configuration
Результат void
    public function load(DocumentModel $document, array $config)
    {
        $this->get('document-name')->setValue($document->getName());
        $this->get('document-url_key')->setValue($document->getUrlKey());
        $status = new Element\Checkbox('document-status');
        $status->setLabel('Publish')->setValue($document->isPublished())->setAttribute('id', 'status')->setAttribute('class', 'input-checkbox')->setCheckedValue((string) DocumentModel::STATUS_ENABLE);
        $this->add($status);
        $showInNav = new Element\Checkbox('document-show_in_nav');
        $showInNav->setLabel('Show in nav')->setValue($document->showInNav())->setAttribute('id', 'show_in_nav')->setAttribute('class', 'input-checkbox')->setCheckedValue((string) DocumentModel::STATUS_ENABLE);
        $this->add($showInNav);
        $canBeCached = new Element\Checkbox('document-can_be_cached');
        $canBeCached->setLabel('Can be cached')->setValue($document->canBeCached())->setAttribute('id', 'can_be_cached')->setAttribute('class', 'input-checkbox')->setCheckedValue((string) DocumentModel::STATUS_ENABLE);
        $this->add($canBeCached);
        array_unshift($config['locales'], '-- Use parent configuration');
        $locale = new Element\Select('document-locale');
        $locale->setLabel('Locale')->setValueOptions($config['locales'])->setValue($document->getLocale())->setAttribute('id', 'locale')->setAttribute('class', 'form-control');
        $this->add($locale);
        $documentType = $document->getDocumentType();
        $viewsCollection = $documentType->getAvailableViews();
        $select = $viewsCollection->getSelect();
        $viewSelected = $document->getViewId();
        $viewModel = View\Model::fromId($document->getDocumentType()->getDefaultViewId());
        if (!empty($viewModel)) {
            $select = $select + array($viewModel->getId() => $viewModel->getName());
            if (empty($viewSelected)) {
                $viewSelected = $viewModel->getId();
            }
        }
        $view = new Element\Select('document-view');
        $view->setValueOptions($select)->setValue((string) $viewSelected)->setAttribute('id', 'view')->setAttribute('class', 'form-control')->setLabel('View');
        $inputFilterFactory = $this->getInputFilter();
        $inputFilterFactory->add(array('name' => 'document-view', 'required' => true, 'validators' => array(array('name' => 'not_empty'))), 'document-view');
        $this->add($view);
        $layoutsCollection = new Layout\Collection();
        $layout = new Element\Select('document-layout');
        $layout->setValueOptions($layoutsCollection->getSelect())->setValue((string) $document->getLayoutId())->setAttribute('id', 'layout')->setAttribute('class', 'form-control')->setLabel('Layout');
        $inputFilterFactory->add(array('name' => 'document-layout', 'required' => true, 'validators' => array(array('name' => 'not_empty'))), 'document-layout');
        $this->add($layout);
        $this->remove('document_type');
        $this->remove('parent');
        $moreInformation = new Element\Hidden('more_information');
        $moreInformation->setAttribute('content', '');
        $this->add($moreInformation);
        $this->parentId = $document->getParentId();
        $this->documentId = $document->getId();
        $this->loadValues($document);
    }

Usage Example

Пример #1
0
 /**
  * Load properties from document type, tab and document
  *
  * @param integer        $documentTypeId Document type id
  * @param DocumentModel  $document       Document model
  * @param ServiceManager $serviceLocator Service manager
  *
  * @return array
  */
 public function load($documentTypeId, DocumentModel $document, ServiceManager $serviceLocator)
 {
     $tabs = $this->loadTabs($documentTypeId);
     $tabsArray = array();
     $idx = 1;
     foreach ($tabs as $tab) {
         $tabsArray[] = $tab->getName();
         $properties = $this->loadProperties($documentTypeId, $tab->getId(), $document->getId());
         $fieldset = new ZendForm\Fieldset('tabs-' . $idx);
         foreach ($properties as $property) {
             $elements = AbstractForm::addContent($fieldset, Datatype\Model::loadEditor($serviceLocator, $property));
             if (!is_array($elements)) {
                 $elements = array($elements);
             }
             foreach ($elements as $element) {
                 if (empty($element)) {
                     continue;
                 }
                 $element->setOption('required', $property->isRequired());
                 $element->setOption('description', $property->getDescription());
             }
         }
         $this->add($fieldset);
         $idx++;
     }
     $formDocumentAdd = new DocumentInformation();
     $formDocumentAdd->load($document, $serviceLocator->get('Config'));
     $formDocumentAdd->setAttribute('name', 'tabs-' . $idx);
     $this->add($formDocumentAdd);
     return $tabsArray;
 }
DocumentInformation