正在分析pdf输出模板中的contao/typeplight代码


Parsing contao / typolight codes in templates for pdf output

我写了一个脚本,如果用户将contao目录项保存在后端视图中,该脚本将该项导出为PDF。

我的问题是,如果我打印出变量$entry['data']['link_img']['ref'],在模板中会有这样的代码。:

a:3:{i:0;s:2:"14";i:1;s:2:"15";i:2;s:2:"13";}(序列化数组,与foreach规范不匹配)

php代码如下:

<?php foreach ($entry['data']['link_img']['ref'] as $link_img):?>
    <? print($link_img); ?>
        <a href="werke-detail/items/<?php echo $link_img['alias']; ?>.html">
    <?php echo $link_img['title']; ?> </a><br />
<?php endforeach; ?>

当contao解析模板时,这是有效的,如果我得到数据,它就不会。contao中有没有一个函数可以用来解码,让我的foreach工作?

更新

最大的问题是:Contao在模板引擎中的魔力在哪里?我如何才能做到这一点?

感谢

扩展Pekka给出的注释。Contao将某些数据类型存储为序列化的PHP数组。

通常在后端中存储的任何字段如下:

$GLOBALS['TL_DCA']['tl_dca']['fields']['yourfield']['eval']['multiple'] = true;

将这些数据存储为序列化的,一些内置类(如User)将取消序列化这些数据,即如果您使用$this->User。

此外,请注意,所有序列化的数组都存储在数据库中的BLOB类型中,因此给定模块的database.sql可以为您提供有关某些内容是否会采用该格式的线索。

serialize/unserialize函数存储在system/functions.php中,其中包含一些其他有用的php函数。