所以我在 TYPO3 cms 中做一个自定义用户函数(php 脚本),我用 sql 获取数据,我想做的是从一页中获取所有内容。
我可以通过使用页面的 pid 从 tt_content 获取数据来轻松做到这一点,但是说一个插件内容 elemenet(图片中 1 下的元素)和 text&img 内容元素(图片中 2 下的元素)之间的 db 关系是什么?
我如何在数据库中链接它们,以便我知道它们都在谷歌地图容器下?
非常感谢!
TemplaVoila 将tt_content
uid(及其顺序)存储在 table pages
-in field 中tx_templavoila_flex
,它是标准 XML
要从给定页面获取所有元素,您需要获取该 XML 并vDEF
从所需列(作为公共 XML 节点)中读取带有索引的值。Uid 的tt_content
元素是用逗号分隔的,所以当你阅读节点时,你只需要使用explode by comma 来获得一个正确顺序的数组。样本:
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<T3FlexForms>
<data>
<sheet index="sDEF">
<language index="lDEF">
<field index="field_leftcolumn">
<value index="vDEF">284,190,221</value>
</field>
<field index="field_rightcolumn">
<value index="vDEF">134,130</value>
</field>
</language>
</sheet>
</data>
</T3FlexForms>
您可以在... TemplaVoila 源代码中检查如何使用这些 XML 结构,例如,将 XML 转换为 PHP 数组可能是最简单的:
$flexformContentArr = t3lib_div::xml2array($row['tx_templavoila_flex']);
@see:typo3conf/ext/templavoila/class.tx_templavoila_api.php
第 1362 行