У меня есть этот фрагмент (я хочу получить элементы из XML-файла):
$movies = simplexml_load_file('http://www.example.com/example.xml');
$out = "";
foreach ($movies as $movie) {
$properties = array(
'photo' => $movie->image,
'title' => $movie->title,
'desc' => $movie->teaser,
'channel' => $movie->channel,
'date' => $movie->date);
$out .= $modx->getChunk('tpl_movies-item', $properties);
}
return $out;
И кусок tpl_movies-item:
<article>
[[+photo]]
[[+title]]
[[+desc]]
[[+date]]
[[+channel]]
aaa
</article>
Он показывает только «aaa» (но когда я добавляю «echo $ properties [‘photo’]», он печатает правильное значение), когда я изменяю значения в массиве на строки, например. ‘desc’ => «lololololol» это работает правильно. Не могли бы вы помочь мне, что мне делать?
Проблема, вероятно, в вашем утверждении foreach, так как simplexml_load_file()
потребности ->children()
перебрать разных потомков объекта под рукой. Пытаться:
foreach ($movies->children() as $movie) {
$properties = array(
'photo' => (string)$movie->image,
'title' => (string)$movie->title,
'desc' => (string)$movie->teaser,
'channel' => (string)$movie->channel,
'date' => (string)$movie->date);
$out .= $modx->getChunk('tpl_movies-item', $properties);
}
ОБНОВИТЬ
Попробуйте привести свойства как string
как в примере выше, так как они могут быть возвращены как объекты.
Других решений пока нет …