Перестал работать php код


#1

Здравствуйте,

После переноса самописного модуля с шаблона basic на responsive перестала работать вот эта часть кода:

{foreach from=$products item=“oi” name=“i” }
{$oi.amount}
{/foreach}

Раньше подставлялось число отсюда:
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5
, а сейчас всегда число 1 ставится.


#2

это место не лежит в каком либо хуке который перезаписывает другой модуль?или же весь шаблон другой модуль может перезаписывать


#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();
    }

}


#4

Распечатайте массив и посмотрите что там.

{$products|fn_print_r}


#5

Распечатал,

Переменная amount передается, но всегда равна 1, независимо от того какое количество выбираю, хотя должна меняться.


#6

до этого момента она чему равна?

if (empty($_REQUEST[‘amount’])) {
$_REQUEST[‘amount’] = 1;
}

Может клик по ссылке/кнопке не захватывает форму содержащую поле количество ?


#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());
        });
    });

#8

Попробуйте поставить

$product['amount'] = $_REQUEST['amount'];

после

fn_gather_additional_product_data($product, true, true);


#9

Не сработало


#10

Дайте ссылку, где форму посмотреть


#11

Спасибо за помощь.
Вообще обратился к программисту, он починил. Сказал что была проблема в том, что скрипты обращались к кнопке по ID, но сейчас там идентификатор является классом.