Автор Тема: Использование своего контроллера, передача значений  (Прочитано 123 раз)

26 Декабря 2015, 10:43:19
  • Пользователь
  • **
  • Сообщений: 73
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Всем всего доброго!
Создал свой контроллер ClosseController.php
Вызывается из карточки товара по надатию кнопки.
Как мне в этом контроллере получить id продукта.
public function initContent() {
parent::initContent();

if (empty($_SESSION['login']) or empty($_SESSION['id']))
    {
        тут обработка  и надо получить id_product
    }
    else
    {
        тут обработка 2
    }
}
Спасибо!
26 Декабря 2015, 11:14:52
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 1217
  • Репутация: +30/-1
  • Сообщество PrestaShop
    • Просмотр профиля
$id_product = (int)Tools::getValue('id_product');Получить ид из формы или ссылки.
26 Декабря 2015, 12:20:43
Ответ #2
  • Пользователь
  • **
  • Сообщений: 73
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо за ответ!
Нет так я не получаю значения.
public function initContent() {
parent::initContent();

if (empty($_SESSION['login']) or empty($_SESSION['id']))
    {
       $id_product = (int)Tools::getValue('id_product');
       echo "<script>alert($id_product);</script>";
    }
    else
    {
        тут обработка 2
    }
}

Получаю 0

Можно конечно так...
В карточке продукта
<form action="путь.../index.php?controller=closses" method="post">
<select name="test">
 <option value="" selected="selected">Выбор</option>
 <option value="1">1</option>
 <option value="2">2</option>
</select>
<input type="submit" value="Значения!" />
</form>
В контроллере
$переменная=$_POST['test'];
Тогда да, получим значение в $переменная
Но мне необходимо не из списка выбирать а передать 3 разных значения.
Спасибо!
26 Декабря 2015, 14:03:17
Ответ #3
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86057
  • Репутация: +25403/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вы хотите передать ид товара на странице которого находится ваша кнопка?
26 Декабря 2015, 14:12:50
Ответ #4
  • Пользователь
  • **
  • Сообщений: 73
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Да так..
Не только ид товара а еще 3 значения.
26 Декабря 2015, 14:30:33
Ответ #5
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86057
  • Репутация: +25403/-0
  • Сообщество PrestaShop
    • Просмотр профиля
<form action="{$link->getPageLink('closses')|escape:'html':'UTF-8'}" method="post">
    <input type="hidden" id="product-id" value="{$product->id}" />
    <input type="hidden" id="var1" value="{$product->...}" />
    <input type="hidden" id="...." value="...." />
    ....
    <input type="submit" value="Это ваша кнопка" />
</form>
26 Декабря 2015, 14:59:45
Ответ #6
  • Пользователь
  • **
  • Сообщений: 73
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Срасибо большое.
И еще один вопрос.
Есть у продуктк атрибут выподающий список.
Выбор идет в
{if ($group.group_type == 'select')}
<select name="{$groupName}" id="group_{$id_attribute_group|intval}" class="form-control attribute_select no-print">
{foreach from=$group.attributes key=id_attribute item=group_attribute}
<option value="{$id_attribute|intval}"{if (isset($smarty.get.$groupName) && $smarty.get.$groupName|intval == $id_attribute) || $group.default == $id_attribute} selected="selected"{/if} title="{$group_attribute|escape:'html':'UTF-8'}">{$group_attribute|escape:'html':'UTF-8'}</option>
{/foreach}
</select>
Соответственно перед добавлением в карзину выбирается значение атрибута.
А как узнать какое значение выбрано перед нажатием в карзину.
Просто вывести список это можно, но какое значение выбрано...
Спасибо!
26 Декабря 2015, 15:40:02
Ответ #7
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 32999
  • Репутация: +26759/-0
    • Просмотр профиля
Выбраное значение ид комбинации сохраняется в
<input type="hidden" name="id_product_attribute" id="idCombination" value="" />
26 Декабря 2015, 15:54:07
Ответ #8
  • Пользователь
  • **
  • Сообщений: 73
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля