【问题标题】:Bolt CMS Events螺栓 CMS 事件
【发布时间】:2015-07-13 10:05:23
【问题描述】:

我正在处理保存事件,但运气有限。

我目前尝试了两种方法,但收效甚微。

1) 我要么永远无法触发函数,

2) 我不太确定将什么传递给方法二的函数。

我要做的就是将事件信息转储到内容保存中。非常感谢任何帮助,真的很喜欢这个 CMS

尝试一——根本不运行函数

class Extension extends BaseExtension
{


public function initialize() {
    $this->addCss('assets/extension.css');
    $this->addJavascript('assets/start.js', true);

    $this->app['dispatcher']->addListener(\Bolt\Events\StorageEvents::POST_SAVE, 'postSave');

}

function postSave(\Bolt\StorageEvent $event)
{
    dump($event);
}

尝试二——我应该输入什么作为参数?

class Extension extends BaseExtension
{


public function initialize() {
    $this->addCss('assets/extension.css');
    $this->addJavascript('assets/start.js', true);

    $this->app['dispatcher']->addListener(\Bolt\Events\StorageEvents::POST_SAVE,$this->postsave($this->?????));

}

function postSave(\Bolt\StorageEvent $event)
{
    dump($event);
}

【问题讨论】:

    标签: php oop bolt-cms


    【解决方案1】:

    希望我的回答不会太晚! 您只需修改内容并将其保存回数据库即可:

    public function postSave(\Bolt\Events\StorageEvent $event) {
        // get the content
        $content = $event->getContent();
        // get a field out of the contenttype
        $data = $content->get("myField");
        // now modify $data here
        $data = "new data - what ever you want";
        // set data to the content
        $content->setValue("data", $data);
        // write the modified content to the database
        $this->app['storage']->saveContent($content);
    }
    

    请注意,每次保存内容时都会触发该函数。因此,只需添加这样的 if 语句来修改您真正想要的内容:

    if ($event->getContentType() == "my_type")
    

    【讨论】:

      【解决方案2】:

      需要的参数是一个php回调,其格式如下:

      $this->app['dispatcher']->addListener(\Bolt\Events\StorageEvents::POST_SAVE, array($this, 'postSave'));
      

      该语法表示在当前类中运行 postSave 方法。所以这适用于您的示例编号 1。

      现在您可以在 postSave 方法中转储事件并查看结果。

      【讨论】:

      • 感谢您抽出宝贵的时间,罗斯,也感谢其他任何人在重新保存或更新内容类型时,保存请求是 AJAX 请求,因此即使您有回声,它们也可能不会显示但代码仍在运行
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-29
      • 1970-01-01
      • 1970-01-01
      • 2014-07-29
      • 1970-01-01
      • 2018-06-14
      • 1970-01-01
      相关资源
      最近更新 更多