Symfony 1.4 формы: использование <p>вместо <li> - PullRequest
0 голосов
/ 11 февраля 2012

При вызове формы, используя

print $widget->render()

вместо печати

<li>
       <label ...>
       <input ...>
</li>

Как ее можно напечатать

<p>
    <label ...>
    <input ...>
</p>

PS: в моей форме:

public function configure()
{
    $this->widgetSchema->setFormFormatterName('list');
}

Ответы [ 2 ]

2 голосов
/ 11 февраля 2012

Вам нужно будет создать свой собственный класс форматера схемы формы, как объяснено здесь .Например, чтобы использовать абзац, вы можете просто повторно объявить переменную $ rowFormat:

#lib/widget/sfWidgetFormSchemaFormatterParagraph.class.php

class sfWidgetFormSchemaFormatterParagraph extends sfWidgetFormSchemaFormatter
{
    protected $rowFormat = "<p>
                         %label% \n %error% <br/> %field%
                         %help% %hidden_fields%\n</p>\n";
}

Если вы хотите использовать этот формат для всех форм вашего проекта, добавьте его в свой класс ProjectConfiguration (и удалите $ this-> widgetSchema-> setFormFormatterName ('list') из вашей формы):

class ProjectConfiguration extends sfProjectConfiguration
{
    public function setup()
    {
      // ...

      sfWidgetFormSchema::setDefaultFormFormatterName('paragraph');
    }
 }

Если вы хотите использовать его только для одной формы, добавьте этот класс формы:

    public function setup()
    {
         $this->widgetSchema->addFormFormatter('paragraph', new sfWidgetFormSchemaFormatterParagraph($this->widgetSchema));
         $this->widgetSchema->setFormFormatterName('paragraph');
         parent::setup();
    }
0 голосов
/ 11 февраля 2012

Просто посмотрите на sfWidgetFormSchemaFormatterList и sfWidgetFormSchemaFormatter.class.php.Из этого вы можете создать собственную схему, скажем, sfWidgetFormSchemaFormatterParagraph, и изменить свойства класса в соответствии с вашими потребностями.(вам, вероятно, нужно изменить только $decoratorFormat и $rowFormat. Что-то вроде:

$rowFormat = "<p> %error%%label%\n  %field%%help%\n%hidden_fields%</p>"
$decoratorFormat = "%content%"
...