在本节中将重点介绍content事件组所支持的事件以及他们的用法。

于2014-08-19日修改:系统提供了这么多的事件,那么如何来确定应该响应那一个事件来完成具体的任务,这个就要看两个方面。一个是事件执行的时间,一个是系统给该事件传递的参数。另外,需要注意的是onContent******这些事件并不是在都在系统的文章组件中触发的,他是系统事件。

OnContentPrepare

用法:

         这是文章组件准备输出内容的第一阶段,通常我们在这个事件中可以做一些内容重定向。由于Joomla系统会将文章的内容和文章的参数都以引用的方式传递给插件。因此事件处理插件可以在显示内容之前对内容进行修改。

参数: 

  •    context  传递给插件的内容相关信息,比喻说组件的名称和视图,或者是模块的名称(例如:com_content.articel)。通过这个参数可以判断是否需要对内容进行处理。
 于2014-08-19日修改:context这个词可以解释为上下文。他会随当前系统的环境(组件或者视图)变化而变化。它通常的格式是“组件+视图”或者“组件+任务”。我们一般用这个变量来确定当前的页面是否是我们需要处理的页面。
  •   $articel  视图提供的文章对象的引用。通过这个参数,我们可以获得文章的内容。$articel->text
  •   $row   相关的参数的数组的引用。视图决定这些信息的具体意义。
  •  $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.(没有用写过相关的插件,如果直接翻译的话,真的很难理解)

返回值:

   没有返回值。因为是引用传递参数的,所以修改了参数就修改了原来的内容。有时候我们可以返回一个bool值来表明执行是否成功。

 


onContentAfterTitle

用法:

这个事件目前只在J3.x中被支持。如果需要在内容和标题间加入内容,那么这个事件可以满足要求。尽管是通过引用传递参数,但这个事件并不推荐去用来修改文章的内容。(onPrepareContent去修改文章内容)。在这个事件中我们可以处理引言。

参数:

  • contentx  :同OnContentPrepare
  • &articel:视图产生的文章对象的引用
  • &params 相关的参数数组的引用
  • &limitstart  一个整型数,决定了产生内容的页数。

返回值

String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.

 


 

onContentBeforeDisplay

用法:

 这 个事件比较适合处理那些需要在产生内容之前放一些内容的需求。让视图去产生HTML,我们可以在这个事件中增加一些内容,包括使用文章的样式和相关的参数 (. For views that generate HTML, this might include the use of styles that are specified as part of the content or related parameters.)不要在这个 事件中修改文章的内容,在onPrepareContent中做。

参数:

  • context 同OnContentPrepare
  • &articel 同上
  • &param 同上
  • limistart 同上。

返回值

String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.


 

onContentAfterDisplay

用法:

这 个事件在产生内容之后被触发。让视图产生HTML,包括样式的终止和相关的参数( For views that generate HTML, this might include the use of styles that are specified as part of the content or related parameters),不要在这个 事件中修改文章的内容,在onPrepareContent中做。

参数:

  • context  同上
  • &article  同上
  • &param  同上
  • limitstart 同上

返回值

String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.


 

 onContentBeforeSave

用法:

 当 文章被存储到数据库之前,这个事件会被触发。你可以在这个事件中终止存储,仅仅需要返回false就行了。拿JModelLegacy来说,调 用$this->setError($table->getError)去给用于展示错误信息。( In the case ofJModelLegacy for example the error will then be set by calling $this->setError($table->getError); to be displayed to user.)

参数

  • context 同上
  • articel JTableContent对象的引用,这个参数包含了要储存到数据库内容的详细数据。
  • isNew  一个bool值,如果文章是刚刚新建的,那么这个值就会被设置为true(A boolean which is set to true if the content is about to be created.)

返回值

bool值。这个值将会影响存储过程。(Boolean. Result will affect the saving process. See description for details.)


 

onContentAfterSave

当文章被保存到数据库中去的时候这个事件被触发。尽管在这个事件中文章对象是引用传递参数,但是修改将不会被保存,因为储存数据到数据库的工作已经完成了。用这个事件,当用户保存文章后,可以重定义用户到合适的位置。

参数

  • context 同上
  • article 同onContentBeforeSave
  • isNew 同onContentBeforeSave

返回值:


 

onContentPrepareForm

用法:

在 JFrom被渲染之前被调用(Called before a JForm is rendered)。在这个事件中可以修改内存中的JFrom对象。例如。用JFrom->loadFile()去添加一个字段或者用 JFrom->removeField()去移除一个字段。也可以用JForm->setFiledAttribute()或者JFrom的 其他方法去修改表单的字段。

参数:

  • form 用于显示的JFrom对象。用$from->getName()方法去检查是否当前表单是你需要处理的表单。
  • data  一个对象。这个对象包含了表单的所有数据。

返回值:

boolean 成功返回true.


 

onContentPrepareData

用法:

当 JFrom的数据都获取到的时候这个事件被调用(Called before a JForm is rendered)。在这个事件中可以需改在内存中的JFrom对象的数据在JForm被渲染之前。这个事件通常和 onContentPrepareForm方法一起使用(这个事件添加数据到已经被修改的JFrom对象中)(This is usually used in tandem with the onContentPrepareForm method - this event adds the data to the already altered JForm.)

于2014-08-19日修改:当JForm的数据准备转换为HTML(rendered)之前被调用.这个事件通常和onContentPrepareForm一起使用。在onContentPrepareForm中修改表单,然后在onContentPrepareData中进行表单的输出。

 

参数

  • contenxt  同上
  • data  同onContentPrepareForm

返回值

bool值。成功返回true


 

onContentBeforeDelete

用法:

当文章将要从数据库中删除的时候这个事件将被触发。如果需要终止删除,让这个事件返回false就行了。就JModelLegacy来说,可以调用$this->setError($table->getError)去设置错误信息,然后展示给用户。 ( You can abort the delete by returning false. In the case ofJModelLegacy for example the error will then be set by calling $this->setError($table->getError); to be displayed to user.)

参数

  • context  同上
  • data JTableContent对象的引用。这个对象包含了被删除文章的所有信息。

返回值

bool值。这个结果会影响储存过程。(Boolean. Result will affect the saving process. See description for details.)

 


 

onContentAfterDelete

用法:

当文章从数据库中删除后这个事件被触发。一个常用的作用就是当用户删除文章后将用户重定向到合适的页面。

参数 

  • context 同上
  • articel  JTableContent对象的引用。这个对象包含了被删除文章的所有内容。

返回值


 

onContentChangeState

当文章的状态发生改变的时候(如:发布  不发布)这个事件被触发

参数

  • context 同上
  • $pks 保护了所有改变状态的文章的id数组( An array of primary key ids of the content that has changed state.)
  • $value 状态值。文章现在的状态。

返回值


 

onContentSearch


 

onContentSearchAreas

 

感觉很多地方都不懂,需要用心的学习一下,写一些相关的插件。

于2014-08-19日修改:还是需要多多写插件,才会对这些事件的具体使用有一个比较深入的了解。

 

 

评论

  • 未找到评论