bestmodules / alertify-bundle
Symfony AlertifyBundle
此包的规范存储库似乎已丢失,因此已冻结此包。
Requires
- friendsofsymfony/jsrouting-bundle: 1.*@dev
Requires (Dev)
- symfony/class-loader: ~2.1
This package is not auto-updated.
Last update: 2024-01-20 13:26:10 UTC
README
目的是什么?
此包允许您轻松地协调警报和其他通知。在配置中声明(或直接使用默认配置)并使用以下库分发警报(或您自己的)
- TwitterBootstrap (http://twitter.github.com/bootstrap/javascript.html#modals) 或
- Noty (http://needim.github.com/noty/) 或
- Toastr (https://github.com/CodeSeven/toastr)
安装
首先,通过composer需要它
composer.phar require bestmodules/alertify-bundle:dev-master
在您的AppKernel.php中添加它
public function registerBundles() {
$bundles = array(
[...]
new AppVentus\AlertifyBundle\AvAlertifyBundle(),
[...]
然后,只需发布您的资产,annnnnnd 就完成了!
配置
要定义警报的默认配置,您可以在config.yml中添加以下行
av_alertify: contexts: front: engine: "toastr" \#Could be noty, modal, toastr, alert or your own layout: "top-right" \#Is relative according to the selected engine translationDomain: "messages" \#Where do you want to store the translation strings admin: engine: "myOwnSystem" layout: "bottomRight" translationDomain: "messages"
默认情况下,即使您没有声明任何上下文,Alertify也会设置默认值。您可以通过这种方式轻松地覆盖这些设置
av_alertify: default: context: app \#default: front engine: noty \#default: toastr layout: bottomLeft \#default: top-right translationDomain: messages \#default: flash contexts: ...
使用
使用很简单,只需遵循以下步骤
将此块添加到您的twig布局的末尾
{% block alertify %}
{{ app.session|alertify|raw }}
{% endblock %}
现在,在任何地方,您都可以将警报放入会话的闪存中并享受。(已弃用)
$this->get('session')->getFlashBag()->add('success', 'ok');
$this->get('session')->getFlashBag()->add('warning', array('body' => 'ok');
$this->get('session')->getFlashBag()->add('warning', array('body' => 'ok', 'context' => 'front');
您可以通过使用服务“alertify”将消息发布到会话闪存中。例如
$this->container->get('alertify')->success([ 'engine' => 'alert', 'title' => "Password successfully changed", ]);
如果您在应用程序中有两个上下文(例如前端和后端),我建议您在每个端点的控制器中覆盖这些函数以传递自动上下文,如下所示
class BaseFrontController { /** * congrat user through flashbag : all happened successfully * Will automatically inject context * @param string $content */ public function congrat($content) { $content = array('body' => $content, 'context' => 'front'); $this->get('av.shortcuts')->congrat($content); } }
使用自定义库显示警报
AvAlertify附带了一些库以简化使用,但您可以使用自定义库(请随意提交拉取请求,您的库可能对社区很有趣)。您只需遵循以下步骤
av_alertify: contexts: front: engine: "myOwnSystem" layout: "bottomRight" \#it's up to your library translationDomain: "messages"
然后只需覆盖app/Resources/AvAlertifyBundle/views/Modal/myOwnSystem.html.twig并添加警报初始化。
选项
模态框
要调用模态框,请使用名为'modal'的闪存
$this->get('session')->getFlashBag()->add("success", array('engine' => 'modal', 'title' => "Wow", 'button_class' => "btn btn-primary btn-large", "body"=> "<div>Some info</div>"));
如您所见,您可以通过传递一些参数来自定义模态框,可用的是
title:
(html) string
button-class:
you con specify classes to customize your button
body:
html string
hasHeader:
boolean (default = true)
hasFooter:
boolean (default = true)
deleteIcon:
string : icon-class (for example: "fa fa-times")
id:
string : (default: "alertify-modal")
回调类型
您可以使用一种最终的Alert类型,回调函数Callbach允许您调用项目中的任何操作,如果您想在aler中添加动态内容,这将非常棒。要使用它,被调用的操作必须渲染一个视图。例如,在模态框中包含表单非常有用。
$this->get('session')
->getFlashBag()
->set('callback', array(
'engine' => 'modal',
'title' => 'Wow',
'action' => 'AcmeBundle:Default:hello',
'button_class' => 'btn btn-primary btn-large',
'body' => '<p>Yeah that's crazy !</p>'
)
);
这种类型非常简单易用,只需调用回调aler,然后在选项中定义“type”为所需的最终aler类型,操作为要调用的操作,以及aler选择的其他特定选项。
Ajax模式
我们告诉您在布局中添加alertify过滤器。这很好,但您如果想在应用程序中使用Ajax呢?
实际上,这个库并不是为此而设计的,但您可以简单地添加这段代码来触发新Ajax内容中的aler。
{% if app.request.isXmlHttpRequest %}
{{ app.session|alertify|raw }}
{% endif %}
确认模态框
在点击链接或提交表单后,我们有时希望提示用户确认他们已经理解了所做的事情。您可以通过遵循此处文档的简单方式来实现:(https://github.com/AppVentus/AvAlertifyBundle/blob/master/README_Confirm.md)