了解jdoc:包含在Joomla中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了了解jdoc:包含在Joomla中相关的知识,希望对你有一定的参考价值。

我是Joomla的新手,想要了解Joomla的功能之一。

在我们使用的joomla模板中

jdoc:include type="component"

声明。但我无法理解Joomla中如何实现此功能。如何在url中传递组件名称由Joomla的上述语句呈现?请帮我理解。

答案

如何在url中传递组件名称由Joomla的上述语句呈现?

澄清jdoc语句未在URL中传递。当Joomla在模板中呈现index.php并获取<jdoc:include type="component" />时,它将用实际的页面内容替换该代码块。

有一些不同的jdoc语句,你最常遇到的是:

<jdoc:include type="component" />的页面内容 <jdoc:include type="head" />页面的主要内容 <jdoc:include type="message" />用于系统消息 <jdoc:include type="module" name="nav" title="Nav menu" />显示单个模块,在本例中为nav <jdoc:include type="modules" name="col-right" style="xhtml" />用于定义模板上的位置,您可以从任意数量的模块放置输出(感谢Elin指出我对此的监督)

您将拥有任意数量的具有不同模块名称的jdoc语句,其他语句只应在模板中出现一次。

更多细节 不同的jdoc声明:https://docs.joomla.org/Jdoc_statements 解析如何工作:https://api.joomla.org/cms-2.5/classes/JDocumentHTML.html

===更新===

该语句如何知道应该呈现哪个内容页面?这是通过view =“Page_name”??

对,那是正确的。如果你走的话

domain.com/index.php?option=com_content&view=article&id=1 

在解析模板的index.php文件时,Joomla会在到达<jdoc:include type="component" />时插入第1条的内容

这里有一些关于解析过程中会发生什么的信息 https://docs.joomla.org/Advanced_topics

jdoc语句由类中的类呈现 /库/的Joomla /文件/ HTML /渲染/

希望这可以帮助!

另一答案

模板是如何执行的?

模板在两阶段过程中执行,充分利用PHP解析器为模板设计人员提供相当大的灵活性和性能。模板在文档对象的上下文中执行,因此$ this对象始终是JDocument类的实例化。

在模板执行开始之前,组件将被执行并且其输出被缓冲以供以后使用。

然后模板执行如下:

  • 加载模板参数(如果有)。
  • 加载模板语言(如果有)。
  • 如果启用了传统模式,则配置变量将复制为全局变量。
  • 模板文件(index.php)被加载并执行(通过PHP)。输出被缓冲。这是两阶段过程的第一阶段。标签之间的所有内容都以PHP代码的形式执行。输出这些标记之外的所有内容,否则将被忽略。由于输出正在缓冲,因此在此阶段不会向客户端Web浏览器发送任何内容。
  • 首先在Joomla中寻找一个favicon.ico文件!根目录,然后在模板根目录中。如果找到,后者将覆盖前者。
  • 现在,在阶段1中缓冲的输出将被解析为元素。这是该过程的第2阶段。对于找到的每个jdoc元素,将加载相应的渲染器类并调用其render方法。 render方法的输出替换输出缓冲区中的元素本身。在模块渲染器类的情况下,这会触发模块的执行和缓冲输出。
  • 某些特定于模板的HTTP标头将添加到要输出的标头列表中。
  • 然后将控制权传递回JApplication对象,该对象将处理将现在呈现的网页返回到客户端Web浏览器的其余过程。

from Joomla Documentation

另一答案

joomla是根据MVC mdoel.in joomla设计的,我们有这些扩展:

  • 零件
  • 插入
  • 方法jdoc中的模板:include type描述通常的扩展类型。和jdoc:include也用于确定模板的位置。

以上是关于了解jdoc:包含在Joomla中的主要内容,如果未能解决你的问题,请参考以下文章

Joomla消息/内容标签

如何通过单击适配器类中代码的项目中的删除按钮来删除列表视图中的项目后重新加载片段?

Joomla模块位置

搜索joomla 1.5

内容插入-Joomla 1.5

Joomla 1.5通道