-1

所以我的问题是是否有一个 Concrete 5 处理程序/侦听器而不是

isEditMode() 

告诉用户是否处于活动编辑模式,或者他是否刚刚发布了他的编辑?

就像是

isPublished() 或 isEditModeActive()

谢谢你


感谢您的关注!

所以我在第二个例子中尝试了事件处理程序:1.我在/config中创建了site_events.php 2.我添加了

<?PHP Events::extendPageType('inhalt', 'on_page_version_approve');?>
  1. 我添加到 site.php

    定义('ENABLE_APPLICATION_EVENTS',真);

  2. 在我添加的引用 inhalt.php 页面类型上

    功能 on_page_version_approve() { echo "页面已发布"; }

... 没发生什么事。在它所写的描述中,引用 inhalt.php 必须存在于 /controllers 中。然而,这种情况并非如此。我实际上不太了解事件处理的结构。如果你能帮助我,那就太好了......无论如何提前谢谢:)

4

1 回答 1

0

听起来您想要具体5 所称的事件(http://www.concrete5.org/documentation/developers/system/events/)。

根据文档,您将获得Page注册函数的 as 参数。

没有什么比你要找的更具体了,但是:

  1. 对于已发布,使用on_page_version_approve.
  2. 对于编辑,请尝试on_before_render. 它有点通用(即,它被调用的次数远远超过您的兴趣),但您可以执行类似if ($page->getCollectionCheckedOutUserID()). 不过,您应该对此进行一些试验。例如,如果您查看主页进行编辑,然后其他人加载实时版本,则该事件可能会再次被调用,并且Page可能会显示“已签出”。但也许你可以检查->isEditMode(),它应该检查它与登录用户...
于 2013-03-24T04:17:05.590 回答