Bolt CMS活动

时间:2015-07-13 10:05:23

标签: php oop bolt-cms

我正在处理保存活动,但运气有限。

我目前尝试了两种方法,但成效有限。

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);
}

1 个答案:

答案 0 :(得分:2)

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

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")