[英]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.