2010-06-10 17 views
0

Je suis amené à utiliser l'assistant de vue ZendX_JQuery dialogContainer, afin de produire une fenêtre modale, où les utilisateurs peuvent entrer des informations spécifiées (par exemple envoyer un message). J'essaie d'utiliser l'assistant de vue dialogContainer de cette manière.ZendX_JQuery Utilisation de dialogContainer

Commencez par inclure la bibliothèque ZendX dans le dossier de la bibliothèque d'applications.

En second lieu, inclure la ligne suivante dans la méthode initViewHelper dans le fichier Bootstrap.php

"$ view-> addHelperPath ('ZendX/JQuery/Voir/Aide /', 'ZendX_JQuery_View_Helper');"

troisième, ajoutant ce qui suit sous condition permettant de js dans le 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(); 
     } 
    ?>" 

quatrième, ce qui crée mon Application_Form_JQueryForm extension 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));  
} 

} » Ce formulaire est ensuite instancié dans les contrôleurs méthode d'action, et appelé dans la vue

Et ainsi le problème de la mienne, peu importe ce que je essayez, par exemple pour définir, la largeur de dialogContainer ou tout autre paramètre (couleur, css, height, etc.), ceci étant dans la partie setDecorator de JQueryForm pour le formulaire, je n'arrive pas à obtenir tout changement que ce soit dans le modal résultant lorsqu'il est appelé à la vue, toute aide dans la bonne direction serait grandement apprécié

Merci à l'avance, Kalle Johansson

Répondre

0

Une réponse tardive pour sûr - mais beaucoup de vues - donc pensé Je répondrais. Les paramètres que vous souhaitez définir pour le modal doivent être définis à partir du tableau JQueryParams. Par exemple:

$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' 
     ), 
    )), 
)); 

Vous pouvez trouver ces options de paramètres sur le site de l'interface utilisateur jQuery.

LK

+1

'j' de' jQueryParams' devrait être en minuscules. – shoaiblatif