Почему не выводиться значение плейсхолдера ?
Здравствуйте, подскажите пожалуйста, я немного изменил исходник сниппета msGallery, что бы он выводил кол-во картинок в галереи для каждого товара и назвал его «msGalleryMain»
Вот что я добавил:
Вот код php который выполняется по средствам ajax:
То в плейсхолдере где была 2-ка изначально теперь 0 скриншот 2. Но вот интересный момент что если в сниппете здесь вот записать что то типа такого $modx->setPlaceholder('PlcCoutGallery',«qwe»);
то будет все время выводиться qwe и даже после ajax. А почему вот после ajax не выводиться кол-во элементов не понимаю, просто вот если выводить вот так «echo $countElem» то выводиться кол-во и после ajax даже. Подскажите пожалуйста почему не выводиться кол-во элементов через плейсхолдер поле ajax.
Заранее благодарю за ответ
Вот что я добавил:
array_shift($files);
foreach($files as $key => $value) {
$output[] = $pdoFetch->getChunk($tpl, array(
'urlImg' => $value["medium"],
'Id' => $IdItem,
));
}
$countElem = count($output);
$modx->setPlaceholder('PlcCoutGallery',$countElem);
$output = implode("\n",$output);
return $output;
А в самом чанке вот как происходит вызов данного сниппета, чанк называется — tpl.msProducts.row2:<div class="galleryBlock">
[[!msGalleryMain?
&tpl=`tplImagesGroup`
&product = {$id}
&IdItem = {$id}
]]
</div>
<div class="iconinfo">
[[+PlcCoutGallery]]
</div>
И собственно всё хорошо, получаю html разметку картинок галереи с помощью чанка tplImagesGroup а потом через плейсхолдер [[+PlcCoutGallery]] выводиться кол-во картинок. Перезагружаю страницу и вижу что кол-во картинок выводиться, прикрепил скриншот 1. Но теперь если я с помощью ajax-а выбираю опять же категорию «Плитка», что приводит к тому что все те же товары я снова получаю но только уже через ajax теперь.Вот код php который выполняется по средствам ajax:
<?php
/* include MODX_API BEGIN */
define('MODX_API_MODE', true);
require_once($_SERVER['DOCUMENT_ROOT'].'/index.php');
$modx=new modX();
$modx->initialize('web');
/* include MODX_API END */
$param = array(
"tpl" => "tpl.msProducts.row2",
"parents" => $_POST["Id"],
"depth" => "0",
"includeThumbs" => "medium",
"sortby" => "pagetitle",
"sortdir" => "ASC",
"limit" => "8"
);
$output = $modx->runSnippet('msProducts',$param);
$modx->getParser()->processElementTags('', $output, false, false, '[[', ']]', array(), 10);
$modx->getParser()->processElementTags('', $output, true, true, '[[', ']]', array(), 10);
if(empty($output)) {
echo "-1";
}
else {
echo $output;
}
То в плейсхолдере где была 2-ка изначально теперь 0 скриншот 2. Но вот интересный момент что если в сниппете здесь вот записать что то типа такого $modx->setPlaceholder('PlcCoutGallery',«qwe»);
то будет все время выводиться qwe и даже после ajax. А почему вот после ajax не выводиться кол-во элементов не понимаю, просто вот если выводить вот так «echo $countElem» то выводиться кол-во и после ajax даже. Подскажите пожалуйста почему не выводиться кол-во элементов через плейсхолдер поле ajax.
Заранее благодарю за ответ