bestmodules/alertify-bundle

Symfony AlertifyBundle

此包的规范存储库似乎已丢失,因此已冻结此包。

安装: 120

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 21

语言:CSS

类型:symfony-bundle

dev-master 2015-03-01 19:06 UTC

This package is not auto-updated.

Last update: 2024-01-20 13:26:10 UTC


README

目的是什么?

此包允许您轻松地协调警报和其他通知。在配置中声明(或直接使用默认配置)并使用以下库分发警报(或您自己的

安装

首先,通过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