我刚刚参与了一个项目,该项目使用joomla来管理其主页,并开始学习joomla的基础知识。
到目前为止,我看到joomla非常好,如果你有静态内容的页面,你可以很好地管理它们。但我现在想要的是向这些页面添加动态内容(从数据库或其他后端获取)。如果我理解正确的原则,就可以使用模块甚至组件(我不确定插件如何帮助这些事情)。但是,我是否需要为每个包含动态内容的视图创建一个模块?
我想要的是一个服务,我可以实现数据获取逻辑,然后应该可以使用WYSIWYG编辑器创建视图,我可以使用php插入获取的值。我已经知道可以通过扩展程序Sourcerer在WYSIWYG编辑器中使用php。
最后,我希望在WYSIWYG编辑器中有这样的东西:
{source}
<?php
$data = service.fetchData(...); // fetches view specific data from a central service which gets the data from a backend or a database
?>
{/source}
...html code (in WYSIWYG style)
<p>Hello {source}<?= $data['name']?> {/source} </p> <------ accessing the php data in the html
... further html code
我怎样才能实现这样的目标,这样对于不是php开发人员的人来说,使用动态内容创建视图并且不为每个具有动态内容的不同视图创建新模块也很容易?或者我只是不理解joomla的原理,这可以用一些完全不同的(更容易?)的方式来完成?
答案 0 :(得分:1)
您确实可以使用模块或插件来插入动态内容。但是你只需要编写一个模块或插件,因为它们都可以使用参数。
根据您的描述,我认为实现结果的最简单方法是
a)创建内容插件,替换文章文字中的自定义代码;它应该是易于解析的东西,比如
[myservice:{year:2017, country:'uk'}]
因此您的插件可以轻松测试代码,然后检索所需的参数。
b)为编辑器创建 editors-xtd插件,以允许用户轻松插入代码。这将使用户可以轻松插入数据并可能防止大多数错误。
这种方法具有编码最少的优点(插件可以像单个文件一样简单,而对于模块,您必须编写更多文件)。除此之外,使用[loadposition]
短代码模块也可以正常工作。但是,您仍然需要一个editors-xtd插件来帮助用户编写短代码并传入参数。