簡體   English   中英

Bolt CMS活動

[英]Bolt CMS Events

我正在保存事件,但運氣有限。

我目前嘗試了兩種方法,但取得的成功有限。

1)我要么永遠無法觸發該功能,

2)我不太確定方法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);
}

希望我的回答不會太晚! 您只需修改內容並將其保存回數據庫即可:

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

所需的參數是php回調,其格式如下:

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

該語法是說要在當前類中運行postSave方法。 因此,這將適用於您的示例編號1。

現在,您可以將事件轉儲到postSave方法中並查看結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM