0

有没有办法在 Joomla 2.5 及更高版本中将 xml 文件包含到另一个文件中?

我不是在问如何编写 joomla xml 参数。问题很简单,就像标题一样。有没有办法在 Joomla 中将一个 xml 包含到另一个中?

我有 2 个文件templateDetails.xmlextend.xml 使用了这些示例:

http://msdn.microsoft.com/en-us/library/aa302291.aspx

我们可以将 XML 文件导入另一个 XML 文件吗?

起始码

模板详细信息.xml:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE install PUBLIC "-//Joomla! 2.5//DTD template 1.0//EN" "http://www.joomla.org/xml/dtd/1.6/template-install.dtd" [
       <!ENTITY extend SYSTEM "extend.xml">
    ]>
<extension version="2.5" type="template" client="site" method="upgrade">
  <name>...</name>
  <creationDate>...</creationDate>
  <author>...</author>
  <copyright>...</copyright>
  <authorEmail>...</authorEmail>
  <authorUrl>...</authorUrl>
  <version>1.0</version>
  <positions>
    <position>top</position>
  </positions>
  <config>
    <fields name="params">
      <fieldset name="basic">
        &extend;
      </fieldset>
    </fields>
  </config>
</extension>

扩展.xml:

<?xml version="1.0" encoding="utf-8"?>
<field name="somevar" type="list" default="2" label="My label" description="My desc">
      <option value="1">Yes</option>
      <option value="2">No</option>
</field>

我要么在某个地方犯了错误,要么应该使用另一种方法。任何帮助表示赞赏,

4

1 回答 1

0

不幸的是,我认为 Joomla 不可能做到这一点。这是我在开发的 Joomla 组件中减少 xml 代码重复的方法。我正在搜索 Stack Overflow 以查看是否有任何解决方案。问题在于 Joomla 加载 xml 文件的方式。它用于$xml = simplexml_load_file($file)加载文件,但要使用实体扩展,需要将其更改为$xml = simplexml_load_file($file,null, LIBXML_NOENT). Joomla 加载 xml 文件的位置有多个,因此每个位置都需要更改。我不知道 Joomla 开发人员没有使用扩展表单是否有特定原因,或者可能是我错过了一些东西并且有办法做到这一点。我把它记下来作为进一步调查的东西,并可能作为 Joomla 以后版本的拉取请求提出(我已经检查了 3.2.4 版本并且它没有改变)。

于 2014-05-10T12:37:37.540 回答