我试图通过在布局中调用的视图助手来激活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>
所以
不确定这是正确的方法,但主要的想法是检查用户是否是管理员以启用jQuery并显示日期选择器(日历)。
提前感谢您的帮助。
答案 0 :(得分: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>