Доброй ночи, проблемка такая нарисовалась, помогите плиз, если есть мысли. Форма добавления товара в корзину реализована не стандартным чанком, а самописным сниппетом с названием
phx:findprice, тоесть вот такой вызов
price - это название TV-параметра, в котором хранится код цены в большой централизованнной базе.
Код сниппета
phx:findprice:
<?php
$price = 0;
If ($options == '') { $options = '*';}
$rs = $modx->db->query("SELECT * FROM price WHERE code = '$output';");
while($row = $modx->db->getRow($rs)) {
$price = $row['price'];
$modx->documentObject['price'] = $price;
$newvalue = "<p class=\"price\">Цена: <span class=\"shk-price\" id=\"stuff_[*id*]_price\">[*price*]</span> / " . $price . " / руб.
<button type=\"submit\" name=\"shk-submit\" class=\"shk-but\">В корзину</button></p>";
}
if ($newvalue <> '') {
} else {$newvalue = "<span class=\"shk-price\" id=\"stuff_[*id*]_price\">ТОВАР ОТСУТСВУЕТ</span></p>"; };
$top ="
<div class=\"shs-tocart shk-item\">
<form action=\"[~[*id*]~]\" method=\"post\">
<input type=\"hidden\" name=\"shk-id\" value=\"[". $options ."id". $options ."]\" />
<input type=\"hidden\" name=\"shk-name\" value=\"[". $options ."pagetitle". $options ."]\" />
<input type=\"hidden\" name=\"shk-count\" value=\"1\" size=\"2\" maxlength=\"3\" />
";
$bottom = "
</form>
</div>
";
$newvalue = $top . $newvalue . $bottom;
return $newvalue;,
?>
Цель этого сниппета: подгрузить динамически изменяющуюся цену из большой базы, получая код этой цены на входе, а не вбивать жестко цену в определенный TV-параметр каждого товара, потому что цена меняется в главной базе, а в базы остальных сайтов уже хроном подтягивается через определенный промежуток времени. В определенный TV-параметр товара вбивается только код цены в той большой базе, и вот из-за этого хитрого решения ваш модуль не отображает в добавленном товаре в корзине реальную цену, а ставит просто 1 руб.
сайт -
http://www.avtocams.ru/
Заранее благодарен за помощь.