我是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类的实例化。
在模板执行开始之前,组件将被执行并且其输出被缓冲以供以后使用。
然后模板执行如下:
joomla是根据MVC mdoel.in joomla设计的,我们有这些扩展: