Разбор кодовых кодов / текстовых кодов в шаблонах для вывода PDF - PullRequest
0 голосов
/ 14 февраля 2012

Я написал скрипт, который экспортирует элемент каталога каталога в формате 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; ?>

когда шаблон анализирует шаблон, это работает, если я получаю данные, это не так. Есть ли какая-нибудь функция из контаоны, которую я могу использовать для декодирования этого, чтобы заставить мой foreach работать?

UPDATE

Большой вопрос: где Contao делает магию в движке шаблонов и как я могу сделать то же самое?

Спасибо

1 Ответ

0 голосов
/ 14 февраля 2012

Продолжить комментарий, данный Пеккой.Contao хранит определенные типы данных в виде сериализованного массива PHP.

Обычно в Backend любое поле хранится следующим образом:

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

Хранит эти данные как сериализованные, некоторые встроенные классы, такие какПользователь будет десериализовать такие данные, т. е. если вы используете $ this-> User.

Также обратите внимание, что все сериализованные массивы хранятся в типах BLOB в базе данных, поэтому database.sql для данного модуля можетдать вам подсказку о том, будет ли что-то в этом формате.

Функции сериализации / десериализации хранятся в system / functions.php, который содержит некоторые другие полезные функции PHP.

...