Ejemplo n.º 1
0
 protected function createFixture(array $data = array())
 {
     $person = new Person('Scheit', '*****@*****.**', 'Philipp', Date::create('21.11.1984'));
     $formPanel = new EntityFormPanel('Person bearbeiten', $this->getTranslationContainer(), new EntityForm($person, $this->getEntityMeta('Psc\\Doctrine\\TestEntities\\Person')->getSaveRequestMeta($person)));
     $formPanel->createComponents();
     $validator = new ComponentsValidator(new Set(array_merge(array('id' => '17', 'birthday' => '21.11.1984', 'name' => 'Scheit', 'firstName' => 'Philipp ', 'email' => '*****@*****.**', 'yearKnown' => 'true'), $data), $person->getSetMeta()), $formPanel->getEntityForm()->getComponents());
     return $validator;
 }
Ejemplo n.º 2
0
 /**
  * Erstellt aus dem Request und dem FormPanel ein Set mit allen FormularDaten
  *
  * man könnte sich hier auch mal vorstellen die formulardaten im set aufzusplitten
  * Sicherheit: alle Felder die nicht registriert sind durch Componenten oder den Formpanel (getControlFields) schmeissen hier eine Exception
  */
 public function createFormDataSet(FormData $requestData, EntityFormPanel $panel, Entity $entity)
 {
     $meta = $entity->getSetMeta();
     // wir müssen die Spezial-Felder vom EntityFormPanel hier tracken
     foreach ($panel->getControlFields() as $field) {
         $meta->setFieldType($field, Type::create('String'));
     }
     // sonderfeld disabled wird ignored
     $meta->setFieldType('disabled', Type::create('Array'));
     try {
         $set = new Set((array) $requestData, $meta);
     } catch (\Psc\Data\FieldNotDefinedException $e) {
         throw \Psc\Exception::create("In den FormularDaten befindet sich ein Feld '%s', welches kein Feld aus Entity getSetMeta ist (%s).", implode('.', $e->field), implode(', ', $e->avaibleFields));
     }
     return $set;
 }
Ejemplo n.º 3
0
 protected function initFormPanel(\Psc\CMS\EntityFormPanel $panel)
 {
     $entity = $panel->getEntity();
     $panel->setWhiteListProperties($this->getWhiteListProperties($entity, 'form'));
     // das wichtigste: wir müssen natürlich subscriben damit die onComponentCreated*() Funktionen auch aufgerufen werden
     $panel->subscribe($this);
     $panel->createRightAccordion($this->getEntityMeta());
     return $panel;
 }
Ejemplo n.º 4
0
 protected function initFormPanel(\Psc\CMS\EntityFormPanel $panel)
 {
     $panel->setPanelButtons(array('preview', 'save', 'reload', 'save-close'));
     return parent::initFormPanel($panel);
 }