Joomla Content 事件
内容事件在内容创建过程中触发。这些事件在大多数的组件和视图中被触发 - 不限定于com_content组件。
onContentPrepare
说明
这是准备输出内容的第一步,大多数内容插件可以响应本事件完成功能。由于文章和相关参数是通过引用传递的,因此事件处理程序可以在显示之前对其进行修改。
参数
- context 内容的上下文 - 通常是组件和视图的拼接字符串 - 或者模块的名称 (如: com_content.article). 通过这个参数可以判断当前是否是我们需要处理的环境.
- &article (引用传递)内容对象 ,不同的触发组件可能内容不一样(如: 对于文章组建,我们可以通过 $article->text 得到文章的内容).
- ¶ms (引用传递)内容的参数.
- page An integer that determines the "page" of the content that is to be generated. Note that in the context of views that might not generate HTML output, a page is a reasonably abstract concept that depends on the context.
返回值
无或者True / False.
示例
onContentAfterTitle
说明
这个事件仅存在于 及以上版本. 它的作用就是在文章输出标题后允许你输出内容. 尽管这个插件传递的参数也是引用,但不建议在这个插件中修改内容,应该使用 onContentPrepare 事件来修改内容. 另外,对于文章组件,这个事件具有特殊的目的,文章组件使用这个事件来实现文章引言输出功能.
参数
有关这些参数的更多讨论,请参见onContentPrepare事件
- context 内容的上下文 - 通常是组件和视图的拼接字符串 - 或者模块的名称 (如: com_content.article). 通过这个参数可以判断当前是否是我们需要处理的环境.
- &article (引用传递)内容对象 ,不同的触发组件可能内容不一样(如: 对于文章组建,我们可以通过 $article->text 得到文章的内容).
- ¶ms (引用传递)内容的参数.
- page An integer that determines the "page" of the content that is to be generated. Note that in the context of views that might not generate HTML output, a page is a reasonably abstract concept that depends on the context.
返回值
字符串. 插件的返回值将会输出到占位符处. 大多数模板在文章分隔符之后显示此占位符
onContentBeforeDisplay
说明
在内容输出之前触发的事件
参数
有关这些参数的更多讨论,请参见onContentPrepare事件. 注意 不同于 onContentPrepare, 这个插件的参数都是值传递.
- context 内容的上下文 - 通常是组件和视图的拼接字符串 - 或者模块的名称 (如: com_content.article). 通过这个参数可以判断当前是否是我们需要处理的环境.
- article 内容对象 ,不同的触发组件可能内容不一样(如: 对于文章组建,我们可以通过 $article->text 得到文章的内容).
- params 内容的参数
- page An integer that determines the "page" of the content that is to be generated. Note that in the context of views that might not generate HTML output, a page is a reasonably abstract concept that depends on the context.
返回值
字符串. 插件的返回值将会输出到占位符处. 大多数模板在文章分隔符之后显示此占位符
示例
onContentAfterDisplay
说明
内容输出之后触发的事件
参数
有关这些参数的更多讨论,请参见onContentPrepare事件. 注意 不同于 onContentPrepare, 这个插件的参数都是值传递.
- context 内容的上下文 - 通常是组件和视图的拼接字符串 - 或者模块的名称 (如: com_content.article). 通过这个参数可以判断当前是否是我们需要处理的环境.
- article 内容对象 ,不同的触发组件可能内容不一样(如: 对于文章组建,我们可以通过 $article->text 得到文章的内容).
- params 内容的参数
- page An integer that determines the "page" of the content that is to be generated. Note that in the context of views that might not generate HTML output, a page is a reasonably abstract concept that depends on the context.
返回值
字符串. 插件的返回值将会输出到占位符处. 大多数模板在文章内容之后显示此占位符
onContentBeforeSave
说明
在内容存储到数据库之前会触发这个事件. 通过在插件返回false,可以终止保存操作. 以 JModelLegacy 举例说明,但我们终止了保存,可以通过调用 $this->setError($table->getError); 将错误信息输出给用户
参数
- context 内容的上下文 - 通常是组件和视图的拼接字符串 - 或者模块的名称 (如: com_content.article). 通过这个参数可以判断当前是否是我们需要处理的环境.
- &article (引用传递)JTableContent对象 该对象代表了内容的数据 .
- isNew bool值,如果内容是新建的,那么就为true,否则为false
- data 需要保存的数据. 这里的data已经经过了组件的校验处理. 从 后 需要插件自己负责设置这个属性,因为在 中核心的内容插件会使用到这个属性
返回值
成功返回true,失败返回false. 这个返回值将会影响保存的处理过程。如果返回false,保存会提示失败
onContentAfterSave
说明
将内容保存到数据库后,将触发此事件.
参数
- context 内容的上下文 - 通常是组件和视图的拼接字符串 - 或者模块的名称 (如: com_content.article). 通过这个参数可以判断当前是否是我们需要处理的环境.
- article JTableContent对象 该对象代表了内容的数据 .
- isNew bool值,如果内容是新建的,那么就为true,否则为false
返回值
无.
onContentPrepareForm
说明
在JForm渲染之前触发此事件. 通常可以在这个事件中修改内存中的JForm对象 如, 使用 JForm->loadFile() 添加新的字段 或者 JForm->removeField() 移除字段. 或者使用 JForm->setFieldAttribute() 去修改表单字段的属性。
参数
- form JForm 对象. 使用 $form->getName() 可以检查当前的表单是否是你需要处理的表单
- data 对象包含了表单的数据
返回值
- boolean 成功返回True,失败返回False.
示例
onContentPrepareData
说明
在获得JForm数据的时候被触发. 通常和onContentPrepareForm一起使用,可以实现动态的修改表单的字段和数据
参数
- context 内容的上下文 - 通常是组件和视图的拼接字符串 - 或者模块的名称 (如: com_content.article). 通过这个参数可以判断当前是否是我们需要处理的环境.
- data 对象包含了表单的数据
返回值
- boolean 成功返回True,失败返回False.
示例
onContentBeforeDelete
说明
在数据被从数据库删除之前触发此事件. 通过在插件返回false,可以终止保存操作. 以 JModelLegacy 举例说明,但我们终止了保存,可以通过调用 $this->setError($table->getError); 将错误信息输出给用户
参数
- context 内容的上下文 - 通常是组件和视图的拼接字符串 - 或者模块的名称 (如: com_content.article). 通过这个参数可以判断当前是否是我们需要处理的环境.
- data JTableContent 对象的引用,这个对象包含了正在删除的内容
返回值
成功返回true,失败返回false. 这个返回值将会影响保存的处理过程。如果返回false,保存会提示失败
示例
onContentAfterDelete
说明
数据从数据库中删除之后触发此事件
参数
- context 内容的上下文 - 通常是组件和视图的拼接字符串 - 或者模块的名称 (如: com_content.article). 通过这个参数可以判断当前是否是我们需要处理的环境.
- data JTableContent 对象的引用,这个对象包含了已经删除的内容
返回值
无
示例
onContentChangeState
说明
当内容的状态改变的时候触发此事件 (如.发布或者停止发布).
参数
- context 内容的上下文 - 通常是组件和视图的拼接字符串 - 或者模块的名称 (如: com_content.article). 通过这个参数可以判断当前是否是我们需要处理的环境.
- $pks 内容主键值(id)得数组.
- $value 新的状态值.
返回值
无
示例
onContentSearch
说明
此事件由各种与搜索相关的操作触发. 插件响应此事件来返回对应的搜索结果. 返回的结果必须包含下面的字段:
- browsernav
- catslug
- created
- href
- section
- slug
- text
- title
参数
- $text 搜索的字符串.
- $phrase 匹配模式 (exact|any|all). 默认为 "any".
- $ordering 排序选项 (newest|oldest|popular|alpha|category). 默认 "newest".
- $areas 搜索返回的数组,null表示搜索全部.
返回值
具有上述成员的stdClass对象数组
在以下文件中用到
- administrator/components/com_search/models/searches.php
- components/com_search/models/search.php
- plugins/search/categories/categories.php
- plugins/search/contacts/contacts.php
- plugins/search/content/content.php
- plugins/search/newsfeeds/newsfeeds.php
- plugins/search/tags/tags.php
- plugins/search/weblinks/weblinks.php
onContentSearchAreas
说明
当在输出搜索范围的时候这个事件被触发
参数
无
返回值
一个关联数组. 如, array( 'categories' => 'Categories' ).
在以下文件中用到
- components/com_search/models/search.php
- plugins/search/categories.php
- plugins/search/contacts.php
- plugins/search/content.php
- plugins/search/newsfeeds.php
- plugins/search/tags/tags.php
- plugins/search/weblinks.php
更多建议: