ZendX_JQuery dialogContainer Использование - PullRequest
0 голосов
/ 10 июня 2010

Я собираюсь воспользоваться помощником вида ZendX_JQuery dialogContainer для создания модального окна, в котором пользователи могут вводить указанную информацию (например, отправлять сообщение). Я пытаюсь использовать помощник вида dialogContainer таким образом.

Прежде всего, включите библиотеку ZendX в папку библиотеки приложений.

Во-вторых, включите следующую строку в метод initViewHelper в файле Bootstrap.php

"$ view-> addHelperPath ('ZendX / JQuery / View / Helper /', 'ZendX_JQuery_View_Helper');"

в-третьих, добавив следующее условное включение js в layout.phtml

  "<?php if($this->jQuery()->isEnabled()){
              $this->jQuery()->setLocalPath($this->baseUrl()
              .'/js/jquery/js/jquery-1.4.2.min.js')                   
              ->setUiLocalPath($this->baseUrl()
              .'/js/jquery/js/jquery-ui-1.8.custom.min.js')                   
              ->addStylesheet($this->baseUrl()
              .'/js/jquery/css/ui-lightness/jquery-ui-1.8.custom.css');
              echo $this->jQuery();
        }
   ?>"

в-четвертых, создание моего Application_Form_JQueryForm, расширяющего ZendX_JQuery_Form

   "<?php
     class Application_Form_JQueryForm extends ZendX_JQuery_Form
      {
       private $form;

       public function init()
      {
         $this->form =  $this->setAction(Zend_Controller_Front::getInstance()->getBaseUrl() . '/index/index')
                      ->setMethod('post');


    $this->form->setDecorators(array(
        'FormElements',
        'Form',
        array ('DialogContainer', array(
            'id'    => 'tabContainer',
            'style' => 'width: 600px;',
            'title' => 'Send a private message to Kalle',
            'JQueryParams'  => array(
                'tabPosition'   => 'top',                    
            ),
        )),
    ));

   $topic = new Zend_Form_Element_Text('topic');
    $topic->setValue('topic')
          ->setRequired(true)
          ->setValidators(array('validators' => array(
              'validator' => 'StringLength',
              'options' => array(1,15)
          )))
          ->setDecorators(array(
               'ViewHelper',
               'Description',
               'Errors',
               array('HtmlTag', array('tag' => 'dl'))));

    $textarea = new Zend_Form_Element_Textarea('textarea');
    $textarea->setValue('post a comment')
             ->setAttribs(array(
                 'rows' => 4,
                 'cols' => 20
             ))
             ->setRequired(true)
             ->setValidators(array('validators' => array(
              'validator' => 'StringLength',
              'options' => array(1,15)
             )))
             ->setDecorators(array(
               'ViewHelper',
               'Description',
               'Errors',
                 array('HtmlTag', array('tag' => 'dl'))));

    $submit = new Zend_Form_Element_Submit('submit');
    $submit->setLabel('Send your comment')
           ->setDecorators(array(
               'ViewHelper',
               'Description',
               'Errors',
               array('Description', array('escape' => false, 'tag' => 'span')),
               array('HtmlTag', array('tag' => 'dl'))))
            ->setDescription('or <a href="/index/index/send/false">Cancel</a>');


    $this->form->addElements(array($topic, $textarea, $submit));       
}

}» Затем эта форма создается в методе действия контроллеров и вызывается в представлении.

И так, к моей проблеме, независимо от того, что я пытаюсь, например, установить ширину dialogContainer или любой другой параметр (цвет, CSS, высота и т. Д.), Это происходит в часть setDecorator для формы JQueryForm, кажется, я не могу получить никаких изменений в получающемся модале при вызове в представлении, любая помощь в правильном направлении будет принята с благодарностью

Заранее спасибо, Калле Йоханссон

1 Ответ

0 голосов
/ 21 апреля 2011

Поздний ответ наверняка - но много просмотров - так решил, что я отвечу. Параметры, которые вы хотите установить для модальных, должны быть установлены из массива JQueryParams. Итак - например:

$this->form->setDecorators(array(
   'FormElements',
   'Form',
   array ('DialogContainer', array(
           'id'           => 'tabContainer',
           'style'        => 'width: 600px;',
           'title'        => 'Send a private message to Kalle',
           'JQueryParams' => array(
               'tabPosition' => 'top', 
               'width'       => '600',
               'height'      => '450'
       ),
   )),
));

Эти параметры можно найти на сайте пользовательского интерфейса jQuery.

LK

...