And*_*rew 4 css zend-framework jquery-ui
我有一个使用jQuery UI的Zend Framework应用程序.
在我的控制器中,我使用FlashMessenger助手设置错误/成功消息,如下所示:
// ExampleController.php
$this->_helper->FlashMessenger('Sorry, could not complete your request.');
Run Code Online (Sandbox Code Playgroud)
在我的布局中,我使用Noumenal FlashMessenger View Helper显示消息
// layout.phtml
<?php echo $this->flashMessenger(); ?>
Run Code Online (Sandbox Code Playgroud)
我想利用我的jQuery UI主题的CSS样式来设置我的错误消息,如下所示:
<div class="ui-state-error ui-corner-all">
<p><span class="ui-icon ui-icon-alert"></span>
<strong>Alert:</strong> Sample ui-state-error style.</p>
</div>
Run Code Online (Sandbox Code Playgroud)
...但是View Helper正在完成所有的工作,所以我无法改变我想要的类.所以在走下死路之前,我想我会问社区.这是我的问题:
'error'=>'ui-state-error', 'info'=>'ui-state-highlight'等写完Noumenal FlashMessenger View Helper后,我应该可以提供帮助.:-)
回答你的问题:
您可以设置不同的信息水平,例如error,warning等等,通过传递数组以FlashMessenger动作助手,而不是一个简单的字符串:
// ExampleController.php
$this->_helper->FlashMessenger(
array('error'=>'Sorry, could not complete your request.')
);
Run Code Online (Sandbox Code Playgroud)
视图助手旨在识别这一点.
在布局中输出FlashMessages时,可以传递可选参数以指定默认消息级别(warning默认情况下)和消息模板.
通过调整代码片段来考虑不同的消息级别,您可以通过在布局中进行以下调用来实现所需的结果:
// layout.phtml
$template = '<div class="ui-state-error ui-corner-all">
<p class="%s"><span class="ui-icon ui-icon-alert"></span>
<span class="flash-message">%s</span></p>
</div>';
echo $this->flashMessenger('error', $template);
Run Code Online (Sandbox Code Playgroud)
(您可能会发现将模板设置为视图变量更好,例如,您的引导程序.)
执行此操作视图助手将根据需要为您构建格式正确的Flash消息.
使用CSS将有足够的空间来适当地设置消息的样式.例如:
.alert {
color: red;
}
.alert .flash-message:before {
content: "<strong>Alert</strong> ";
}
.notice {
color:yellow;
}
.notice .flash-message:before {
content: "<strong>Notice</strong> ";
}
Run Code Online (Sandbox Code Playgroud)
我告诉你即兴发挥......
我在我的博客上写了Zend Framework FlashMessenger和视图助手的指南.也许给那个读一读.另外,请给我发电子邮件让我知道你的困难 - 这将帮助我了解我需要改进的地方.
我希望有所帮助.