我无法理解在Cake中实现通知系统的最佳方式。我正在使用Pines Notify Framework作为视觉效果。CakePHP通知系统与jquery
我希望这些通知出现在每个页面上,所以我认为在应用程序控制器中使用的组件会完成这项工作,但我不确定如何与组件中的视图进行交互。
基本上,当某些条件满足时,我需要组件在当前控制器的视图中调用Jquery脚本。
我无法理解在Cake中实现通知系统的最佳方式。我正在使用Pines Notify Framework作为视觉效果。CakePHP通知系统与jquery
我希望这些通知出现在每个页面上,所以我认为在应用程序控制器中使用的组件会完成这项工作,但我不确定如何与组件中的视图进行交互。
基本上,当某些条件满足时,我需要组件在当前控制器的视图中调用Jquery脚本。
基本上,当某些条件得到满足时,我需要组件 在当前控制器的视图中调用Jquery脚本。
你知道服务器端和客户端语言的区别吗?这是行不通的。 PHP无法在浏览器中与JS交谈。
您必须使用Websockets或带有长轮询的AJAX,Comet才能使JS脚本通过JSON与服务器通信,以便从那里获取通知。
我最终做的只是让setFlash()调用抛出pnotify事件的特定通知视图。
即控制器
$this->Session->setFlash('Something occurred.', 'notify');
然后在notify.ctp
<script>var stack_topleft = {"dir1": "down", "dir2": "right", "push": "top"};
$(document).ready(function() {
$.pnotify.defaults.styling = "bootstrap3";
$.pnotify.defaults.history = false;
$.pnotify({
title: 'Regular Success',
text: '<?php echo $message; ?>'
});
});</script>
,因为我有点CakePHP的小白这可能是一个粗略的答案,但它的工作原理。
安装目录:
1)包括在你的主模板涡轮tribble.js脚本:
echo $this->Html->script([
'jquery.min', // JQuery is required
'turbo-tribble'
]);
2)包括在你的主模板涡轮tribble.css样式表:
echo $this->Html->css([
'turbo-tribble'
]);
3)将下面的代码段添加到您的主模板中:
<div id="turbo-tribble">
<?php echo $this->Flash->render('tribble'); ?>
</div>
4)将turbo_tribble.ctp
添加到src/Template/Element/Flash
文件夹;
5)将代码从AppController.php
添加到您的AppController.php
;
比,你可以很容易地使用这个插件通知您的jQuery以及来自您的控制器:
更多信息,发现这里http://turbo-tribble.ml/