コード例 #1
0
 public function chooseAction(HttpRequest $request)
 {
     $action = Primitive::choice('action')->setList($this->methodMap);
     if ($this->getDefaultAction()) {
         $action->setDefault($this->getDefaultAction());
     }
     Form::create()->add($action)->import($request->getGet())->importMore($request->getPost())->importMore($request->getAttached());
     if (!($command = $action->getValue())) {
         return $action->getDefault();
     }
     return $command;
 }
コード例 #2
0
 /**
  * @static
  * @param AbstractProtoClass $proto
  * @param array $fields
  * @return Form
  */
 public static function makeForm(AbstractProtoClass $proto, array $fields)
 {
     $form = Form::create();
     foreach ($fields as $field) {
         try {
             $property = self::getProperty($proto, $field);
         } catch (MissingElementException $e) {
             continue;
             //skip
         }
         $prefix = strrev(strrchr(strrev($field), '.'));
         $property->fillForm($form, $prefix);
         $primitive = $form->get($field);
         if ($primitive instanceof PrimitiveString) {
             if ($property->getMax()) {
                 $primitive->setImportFilter(Filter::chain()->add(Filter::trim()->setBoth())->add(Filter::safeUtf8())->add(Filter::htmlSpecialChars()));
             } else {
                 $primitive->setImportFilter(Filter::chain()->add(Filter::trim()->setBoth())->add(Filter::safeUtf8())->add(Filter::htmlSpecialChars())->add(Filter::replaceSymbols("\r", ''))->add(Filter::replaceSymbols("\n", ' ')));
             }
         }
     }
     return $form;
 }
コード例 #3
0
ファイル: EntityProto.php プロジェクト: justthefish/hesper
 /**
  * @return Form
  * @deprecated you should use PrototypedBuilder to make forms
  **/
 public final function makeForm()
 {
     return $this->attachPrimitives($this->baseProto() ? $this->baseProto()->makeForm() : Form::create());
 }
コード例 #4
0
 /**
  * @return Form
  **/
 protected function makeForm()
 {
     $form = Form::create();
     foreach ($this->getFormMapping() as $primitive) {
         $form->add($primitive);
     }
     return $form;
 }
コード例 #5
0
ファイル: FormBuilder.php プロジェクト: justthefish/hesper
 /**
  * @return Form
  **/
 protected function createEmpty()
 {
     return Form::create();
 }
コード例 #6
0
 /**
  * @return Form
  **/
 public function makeForm($prefix = null)
 {
     $form = Form::create();
     foreach ($this->getPropertyList() as $property) {
         $property->fillForm($form, $prefix);
     }
     return $form;
 }
コード例 #7
0
ファイル: FormUtils.php プロジェクト: justthefish/hesper
 /**
  * @return Form
  */
 public static function removePrefix(Form $form, $prefix)
 {
     $newForm = Form::create();
     foreach ($form->getPrimitiveList() as $primitive) {
         $primitive->setName(strtr($primitive->getName(), [$prefix => '']));
         $newForm->add($primitive);
     }
     return $newForm;
 }