我想覆盖留言簿功能。确切地说,我想覆盖 [mysite] /concrete5/core/controllers/blocks/guestbook.php
上的action_form_save_entry()
函数
我试图以这些方式覆盖它:
/core/
目录。他们的论坛从不帮助。谷歌的结果也被误用“核心”关键字。所有结果只是将“核心”含义视为/concrete5/
目录中存在的内容,而不是真正的/concrete5/core
看起来/ concrete5 / core /目录只出现在较新的版本上。 CMIIW。
不过,也许我也应该告诉你我想用这个功能做些什么。可能你有另一个解决方法,而不是简单地覆盖它。我想为它添加短信通知功能。因此,每当有人提交新评论时,都会向特定页面的管理员发送短信。答案 0 :(得分:2)
是的,/ concrete / core目录结构是5.6的新功能。关于c5的教程和文档可能......缺乏...但在这种情况下,只是他们落后了一点。
“真正的”留言簿控制器位于 /concrete/blocks/guestbook/controller.php 。你会发现它只是一个类的shell:
class GuestbookBlockController extends Concrete5_Controller_Block_Guestbook {}
您引用的文件定义了Concrete5_Controller_Block_Guestbook
。
因此,解决方案是覆盖真实的控制器,而不是它扩展的任何内容(即,您正在查看的文件)。以这种方式思考,您需要在 /blocks/guestbook/controller.php 创建文件时更清楚。事实上,只需复制我引用的controller.php ,因为您需要保留(有时是多个)类。然后,您可以覆盖特定的功能。 (不要忘记调用parent :: action_save_form_entry())。