Здравствуйте!
Подскажите, подключился к хуку fn_get_promotions_post в my_changes, все работает на странице товара.
Хочу сделать блок для добавление на витрину, но в упор нет измененных данных, тащит только стандартные.
добавил addon/my_changes/schemas/block_manager/blocks.post.php в нем прописал info.tpl
добавил addon/my_changes/block/my_changes.tpl на витрину добавляется, а данные не полные.
Смотрите еще схему
app/schemas/block_manager/templates.php
Нужно использовать bulk_modifier
Спасибо.
Добрый вечер!
Так и не получилось сделать.
Понимаю, что можно наплодить файлов в addons/…/view и инклудить их по типу
{$params= [‘active’ => true, ‘get_hidden’ => false]}
{$promotions = $params|fn_get_promotions}
{include file=“views/promotions/list.tpl” promotions=$promotions.0}
или просто {$promotions = $params|fn_get_promotions} и дальше уже обрабатывать.
Но все же хотелось бы по правильному в блоках сразу иметь доступ к $promotions.
Пробовал добавлять в addon/my_changes/schemas/block_manager/templates.post.php
Код
‘bulk_modifier’ => array (
‘fn_get_promotions’ => array (
‘promotion’ => ‘#this’,
),
),
Подскажите)
Вот так:
$schema[‘my_changes’] = array (
Код
‘content’ => array(
‘promotions’ => array(
‘type’ => ‘function’,
‘function’ => array(‘fn_get_promotions’)
),
),
‘templates’ => array(
‘addons/my_changes/blocks/my_changes.tpl’ => array(),
),
‘wrappers’ => ‘blocks/wrappers’,
);
return $schema;
Работает, за исключением ошибки Illegal string offset ‘storefront_id’ в fn.promotions.php, line: 52
Попробуйте вызывать fn_get_promotions через свою какую-нибудь функцию
Спасибо, отпишусь.
Сделал так:
function fn_my_func() {
fn_get_promotions();
}
Не работает. С параметрами тоже.
И так тоже:
function fn_my_func() {
return fn_get_promotions();
}
Не работает или та же ошибка? Если ошибка, попробуйте
function fn_my_func() {
list($promotions, $search) = fn_get_promotions(array(
'storefront_id' => false
));
return array($promotions, $search);
}
Да, так все работает, спасибо.
P.S. а если в blocks.post.php добавить
‘params’ => array (
‘storefront_id’ => false
Попробуйте, и так должно сработать