我正在处理保存活动,但运气有限。
我目前尝试了两种方法,但成效有限。
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);
}
答案 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")