rus
26.Сентябрь.2019 05:56:05
1
Здравствуйте,
После переноса самописного модуля с шаблона basic на responsive перестала работать вот эта часть кода:
{foreach from=$products item=“oi” name=“i” }
{$oi.amount}
{/foreach}
Раньше подставлялось число отсюда:
, а сейчас всегда число 1 ставится.
это место не лежит в каком либо хуке который перезаписывает другой модуль?или же весь шаблон другой модуль может перезаписывать
rus
26.Сентябрь.2019 10:58:19
3
Это место находится в файле kp.tpl (форма коммерческого предложения, которую можно открыть со страницы сайта).
Также есть вот такой хук:
/app/addons/new_addon/controllers/frontend/products.post.php
<?php
use Tygh\Registry;
if ($mode == 'get_kp') {
if (empty($_REQUEST['amount'])) {
$_REQUEST['amount'] = 1;
}
$product = fn_get_product_data($_REQUEST['product_id'], $auth,
CART_LANGUAGE,
'',
true,
true,
true,
true,
fn_is_preview_action($auth, $_REQUEST),
true,
false,
true);
$product['amount'] = $_REQUEST['amount'];
fn_gather_additional_product_data($product, true, true);
$products = array($product);
Registry::get('view')->assign('products', $products);
$html = Registry::get('view')->displayMail('addons/new_addon/kp.tpl', false, 'C', Registry::get('runtime.company_id'), CART_LANGUAGE);
if (!empty($_REQUEST['format']) && $_REQUEST['format'] == 'window') {
Pdf::render($html, 'Коммерческое предложение ' . $product['product']);
} else {
fn_echo($html);
die();
}
}
Распечатайте массив и посмотрите что там.
{$products|fn_print_r}
rus
26.Сентябрь.2019 15:30:32
5
Распечатал,
Переменная amount передается, но всегда равна 1, независимо от того какое количество выбираю, хотя должна меняться.
до этого момента она чему равна?
if (empty($_REQUEST[‘amount’])) {
$_REQUEST[‘amount’] = 1;
}
Может клик по ссылке/кнопке не захватывает форму содержащую поле количество ?
rus
27.Сентябрь.2019 04:55:54
7
до этого момента она чему равна?
if (empty($_REQUEST[‘amount’])) {
$_REQUEST[‘amount’] = 1;
}
Не знаю к сожалению как проверить.
Может клик по ссылке/кнопке не захватывает форму содержащую поле количество ?
За клик как я понял следующий хук отвечает:
design/themes/responsive/templates/addons/new_addon/hooks/index/scripts.post.tpl
Т.е. тут должно количество в URL передаваться, но также не передается.
$('#csc-get-cp').click(function () {
$('#csc-get-cp').attr('href', fn_query_remove($('#csc-get-cp').attr('href'), ['amount']));
$('#csc-get-cp').attr('href', $('#csc-get-cp').attr('href') + '&amount=' + $('.cm-amount').val());
});
});
Попробуйте поставить
$product['amount'] = $_REQUEST['amount'];
после
fn_gather_additional_product_data($product, true, true);
rus:
Не сработало
Дайте ссылку, где форму посмотреть
rus
30.Сентябрь.2019 10:28:10
11
Спасибо за помощь.
Вообще обратился к программисту, он починил. Сказал что была проблема в том, что скрипты обращались к кнопке по ID, но сейчас там идентификатор является классом.
1 лайк