了解 jdoc:include 在 Joomla 中

Man*_*mar 2 php oop joomla joomla2.5

我是 Joomla 的新手,想了解 Joomla 的其中一项功能。

在我们使用的 joomla 模板中

jdoc:include type="component"
Run Code Online (Sandbox Code Playgroud)

陈述。但我无法理解这个功能是如何在 Joomla 中实现的。Joomla 的上述语句是如何在 url 中传递组件名称的?请帮我理解。

Dav*_*roa 5

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

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

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

<jdoc:include type="component" /> 用于系统消息
<jdoc:include type="head" />页面头部内容的页面内容以显示单个模块,在这种情况下,nav定义模板上的位置,您可以在其中放置来自任意数量模块的输出(感谢Elin指出我的疏忽这个)
<jdoc:include type="message" />
<jdoc:include type="module" name="nav" title="Nav menu" />
<jdoc:include type="modules" name="col-right" style="xhtml" />

您将拥有任意数量的具有不同模块名称的 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 
Run Code Online (Sandbox Code Playgroud)

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

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

jdoc 语句由
/libraries/joomla/document/html/renderer/ 中的类呈现

希望这可以帮助!