GcContent\Form\Document::load PHP Method

load() public method

Load properties from document type, tab and document
public load ( integer $documentTypeId, Model $document, Zend\ServiceManager\ServiceManager $serviceLocator ) : array
$documentTypeId integer Document type id
$document Gc\Document\Model Document model
$serviceLocator Zend\ServiceManager\ServiceManager 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;
    }

Usage Example

コード例 #1
0
 /**
  * Test
  *
  * @return void
  */
 public function testLoad()
 {
     $user = UserModel::fromArray(array('lastname' => 'Test', 'firstname' => 'Test', 'email' => '*****@*****.**', 'login' => 'test-user-model', 'user_acl_role_id' => 1));
     $user->setPassword('test-user-model-password');
     $user->save();
     $view = ViewModel::fromArray(array('name' => 'View', 'identifier' => 'ViewIdentifier', 'description' => 'Description', 'content' => ''));
     $view->save();
     $layout = LayoutModel::fromArray(array('name' => 'View', 'identifier' => 'ViewIdentifier', 'description' => 'Description', 'content' => ''));
     $layout->save();
     $documenttype = DocumentTypeModel::fromArray(array('name' => 'DocumentType', 'description' => 'description', 'icon_id' => 1, 'default_view_id' => $view->getId(), 'user_id' => $user->getId()));
     $documenttype->save();
     $documenttype->setDependencies(array($documenttype->getId()));
     $documenttype->save();
     $datatype = DatatypeModel::fromArray(array('name' => 'DatatypeTest', 'model' => 'Textstring'));
     $datatype->save();
     $tab = TabModel::fromArray(array('name' => 'test', 'description' => 'test', 'document_type_id' => $documenttype->getId()));
     $tab->save();
     $property = PropertyModel::fromArray(array('name' => 'test', 'identifier' => 'test', 'description' => 'test', 'tab_id' => $tab->getId(), 'datatype_id' => $datatype->getId(), 'is_required' => true));
     $property->save();
     $document = DocumentModel::fromArray(array('name' => 'test', 'url_key' => '', 'status' => DocumentModel::STATUS_ENABLE, 'user_id' => $user->getId(), 'document_type_id' => $documenttype->getId(), 'view_id' => $view->getId(), 'layout_id' => $layout->getId(), 'parent_id' => null));
     $document->save();
     $this->assertNull($this->object->load($document, array('locales' => array('en_GB' => 'English'))));
     $this->object->setData(array());
     $this->assertFalse($this->object->isValid());
     $document->delete();
     $documenttype->delete();
     $property->delete();
     $tab->delete();
     $view->delete();
     $layout->delete();
     $user->delete();
     $datatype->delete();
     unset($documenttype);
     unset($document);
     unset($property);
     unset($tab);
     unset($view);
     unset($layout);
     unset($user);
     unset($datatype);
 }
All Usage Examples Of GcContent\Form\Document::load