2011-03-06 33 views
1

我試圖通過在佈局中調用的視圖幫助器來激活jQuery。在視圖幫助器中啓用jQuery與ZendX_JQuery一起使用

的問題是,jQuery是已經叫佈局的範圍,從而使包括文件,它是在視圖助手定義之前。

這裏是我的腳本:

Layout.phtml

<?php echo $this->doctype(); ?> 
<html> 
<head> 
    <?php echo $this->headTitle() ?> 
    <?php echo $this->headLink()->appendStylesheet('/css/base.css') ?> 
    <?php echo $this->headMeta() ?> 
    <?php echo $this->headStyle() ?> 
    <?php echo $this->jQuery() ?> 

</head> 
<body> 
[...] 
    <div id="droite" class="column grid_4"> 
     <!-- Column 2 start --> 
     <?php echo $this->render('partials/droite.phtml'); ?> 
     <!-- Column 2 end --> 
    </div> 
</body> 
</html> 

諧音/ droite.phtml

<?=$this->rolelinks(); ?> 

My_View_Helper_Rolelinks

<?php 

class My_View_Helper_Rolelinks extends Zend_View_Helper_Abstract 
{ 

    public function rolelinks() 
    { 
     if (Model_User::hasIdentity()) { 
      $role = Model_User::getRole(); 
      if ($role === 'admin') { 
       return $this->view->partial('partials/droite_admin.phtml'); 
       return; 
      } 
     } else { 
      return ''; 
     } 
    } 
} 

泛音/ droite_admin.phtml

<?php 
$this->jQuery() 
    ->UiEnable() 
    ->addJavascriptFile('/js/jquery.ui.datepicker-fr.js') 
    ->addJavascriptFile('/js/onload.js'); 
?> 

<div id="calendar"></div> 

大二

不知道這是做到這一點的正確方法,但主要想法是檢查用戶是否爲admin,以啓用jQuery並顯示日期選擇器(日曆)。

在此先感謝您的幫助。

+0

小心使用ZendX_JQuery得多,因爲是關於討論[不安](http://zend-framework-community.634137.n4.nabble.com/Discontinuing-Maintenance-of-ZendX-JQuery- Suggest-drop-for-2-0-td3221855i40.html)它。 – Marcin 2011-03-07 00:45:51

+0

即使不使用ZendX_JQuery,問題是要知道如何使用佈局腳本中調用的Zend_View_Helper激活jquery(即修改我的''元素)。 – ant1j 2011-03-07 14:33:45

回答

0

你可以嘗試,以檢查是否jQuery是在佈局已啓用,以避免雙重包容。

<head> 
    <?php echo $this->headTitle() ?> 
    <?php echo $this->headLink()->appendStylesheet('/css/base.css') ?> 
    <?php echo $this->headMeta() ?> 
    <?php echo $this->headStyle() ?> 

    <?php if (! $this->jQuery()->isEnabled()) { 
     echo $this->jQuery(); 
    } ?> 
</head> 
+0

不幸的是,目前我根本沒有收錄!據我所知,我需要在視圖腳本本身中定義我的View_Helper的「動作」(啓用jQuery),因爲之後呈現佈局腳本。 – ant1j 2011-03-07 14:15:38