2010-06-10 51 views
0

我想利用ZendX_JQuery dialogContainer視圖助手,爲了產生一個模式窗口,用戶可以輸入指定的信息(例如發送消息)。我試圖以這種方式使用dialogContainer視圖助手。ZendX_JQuery dialogContainer使用

首先,將ZendX庫包含在應用程序庫文件夾中。

其次,包括在bootstrap.php中內initViewHelper方法以下行文件

「$視圖 - > addHelperPath( 'ZendX/JQuery的/視圖/助手/', 'ZendX_JQuery_View_Helper');」

第三,添加以下條件在layout.phtml使JS的

"<?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(); 
     } 
    ?>" 

第四,創建延伸ZendX_JQuery_Form

我Application_Form_JQueryForm
"<?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的寬度或任何其他參數(color,css,height等等),這是在表單的JQueryForm的setDecorator部分中,我似乎無法獲得在視圖中調用時任中所產生的模態任何變化,在適當的方向任何幫助將不勝感激

在此先感謝,卡爾·約翰遜

回答

0

一個遲到的回答是肯定的 - 但很多意見 - 所以想通我會回答。你想爲模態設置的參數應該從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 UI站點上找到這些參數選項。

LK

+1

'jQueryParams'的'j'應該是小寫。 – shoaiblatif 2012-07-10 07:12:40