Парсинг шаблона в переменной, в цикле
Здравствуйте. Подскажите пожалуйста, есть такая задача:
Нужно пройтись по товарам магазина и забрать с них определенные поля, после чего записать их в свой шаблон XML а потом в файл. Можно сделать так, бегать в цикле и писать значения куда нужно:
(где-то в начале файла)
На деле полей будет много, и они могут меняться, поэтому хотелось бы разруливать из подготовленного шаблона а в цикл отдавать для парсинга. Мне кажется так правильнее, возможно я ошибаюсь, у меня мало опыта. Подскажите пожалуйста, можно ли так сделать?
1
Нужно пройтись по товарам магазина и забрать с них определенные поля, после чего записать их в свой шаблон XML а потом в файл. Можно сделать так, бегать в цикле и писать значения куда нужно:
foreach ($product__list as $product__item) {
// Выборка необходимых свойств
$product__title = $product__item->get('pagetitle'); // Имя товара
$product__id = $product__item->get('id'); // id товара
$product__availability = $product__item->getTVvalue($product__tvInstock);
$product__url = $modx->makeUrl($product__id, "", "", "full");
// смотрим значение переменной и присваиваем TRUE или FALSE
($product__availability == $product__statusOn) ? TRUE : FALSE;
$data__body .= "<offer id='$product__id' available='$product__availability'>\n"; // Начало товара
$data__body .= "<url>$product__url</url>\n";
$data__body .= "<name>$product__url</name>\n";
$data__body .= "</offer>\n"; // Конец товара
}Но хотелось бы сам шаблон вынести из цикла, вверх по коду, к настройкам, что бы работать с ним отдельно, а в цикл его передавать на заполнение полей, то есть как-то так(где-то в начале файла)
$product__tplXML = "
<offer id='$product__id' available='$product__availability'>
<url>$product__url</url>
<name>$product__url</name>
";А потом в цикле делать как-то так:foreach ($product__list as $product__item) {
// Выборка необходимых свойсты
$product__title = $product__item->get('pagetitle'); // Имя товара
$product__id = $product__item->get('id'); // id товара
$product__availability = $product__item->getTVvalue($product__tvInstock);
$product__url = $modx->makeUrl($product__id, "", "", "full");
// смотрим значение переменной и присваиваем TRUE или FALSE
($product__availability == $product__statusOn) ? TRUE : FALSE;
$product__tplXML = $modx->parseChunk('product__tplXML',array('url' => $product__url));
// Записываем шаблон товара в тело
$data__body .= $product__tplXML;
}Но так, разуметься, не работает ($data__body .= $product__tplXML) на момент создания .= $product__tplXML (вверху кода) никаких переменных для записи ($product__title, $product__id и тд.) еще не существует, да и писать их нужно в цикле. На деле полей будет много, и они могут меняться, поэтому хотелось бы разруливать из подготовленного шаблона а в цикл отдавать для парсинга. Мне кажется так правильнее, возможно я ошибаюсь, у меня мало опыта. Подскажите пожалуйста, можно ли так сделать?
Комментарии: 1