codecamp

Joomla Content 事件

内容事件在内容创建过程中触发。这些事件在大多数的组件和视图中被触发 - 不限定于com_content组件。

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.

返回值

无或者True / False.

示例

onContentAfterTitle

说明

这个事件仅存在于 Joomla 3.x 及以上版本. 它的作用就是在文章输出标题后允许你输出内容. 尽管这个插件传递的参数也是引用,但不建议在这个插件中修改内容,应该使用 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.

返回值

字符串. 插件的返回值将会输出到占位符处. 大多数模板在文章分隔符之后显示此占位符

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已经经过了组件的校验处理. 从 Joomla 3.7后 需要插件自己负责设置这个属性,因为在 Joomla 4.0 中核心的内容插件会使用到这个属性

返回值

成功返回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 对象的引用,这个对象包含了已经删除的内容

返回值

示例

content/finder/finder.php

onContentChangeState

说明

当内容的状态改变的时候触发此事件 (如.发布或者停止发布).

参数

  • context 内容的上下文 - 通常是组件和视图的拼接字符串 - 或者模块的名称 (如: com_content.article). 通过这个参数可以判断当前是否是我们需要处理的环境.
  • $pks 内容主键值(id)得数组.
  • $value 新的状态值.

返回值

示例

content/finder/finder.php

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对象数组

在以下文件中用到

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


Joomla Behaviour 事件
Joomla 系统事件
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

处理URL请求参数

Joomla 错误和调试

Joomla 缓存

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }