Автор Тема: Модуль с переключателем режимов  (Прочитано 776 раз)

19 Август 2014, 11:10:09
  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
У меня небольшая проблема с программированием модуля PS 1.6. Нужно в модуль добавить стандартный переключатель (Yes/No) для выбора чего-ли (например чтобы в шаблоне выводилось в зависимости от режима та или иная строка).
{if $кнопка на YES}
  <a href="#" title="">текст</a>
{else}
  другой текст
{/if}
19 Август 2014, 11:45:31
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Добавьте радиокнопку в шаблон, получите выбранное значение по Ajax, в зависимотси от это значения передайте новые данные.
Примеров полно. Модуль, который настраивается в админке, имеет такие переключатели.
19 Август 2014, 11:57:09
Ответ #2
  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо. Дайте пример. Как по ajax передать?
19 Август 2014, 11:59:50
Ответ #3
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
19 Август 2014, 12:08:20
Ответ #4
  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Благодарю, буду читать документацию
19 Август 2014, 12:43:33
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вам нужно добавить переключатель в администрируему часть модуля, чтобы администратор устанавливал режимы?
Или вам нужно дать возможность покупателям менять режим в фронтенде?
.
19 Август 2014, 13:12:02
Ответ #6
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
1. Значение переключателя при установке модуля
public function install()
{
if (!parent::install() || ...
                                    Configuration::updateValue('PS_MYMODULE_MYVAR', 1)...

2. Вывод переключателя в админке
$fields_form = array(
'form' => array(
'legend' => array(
'title' => $this->l('My title'),
'icon' => 'icon-myicon'
),
'input' => array(
array(
'type' => 'switch',
'is_bool' => true, //retro compat 1.5
'label' => $this->l('Name'),
'name' => 'PS_MYMODULE_MYVAR',
'desc' => $this->l('........'),
'values' => array(
array(
'id' => 'active_on',
'value' => 1,
'label' => $this->l('Enabled')
),
array(
'id' => 'active_off',
'value' => 0,
'label' => $this->l('Disabled')
)
),
),
),
'submit' => array(
'title' => $this->l('Save'),
'class' => 'btn btn-default pull-right',
'name' => 'submitMyModule',
)
),
);

3. Инициализация переменной smarty (шаблон)
$this->smarty->assign('myvar', Configuration::get('PS_MYMODULE_MYVAR'));
4. Показ в шаблоне tpl в зависимости от значения
{if isset($myvar) && $myvar}
        // первый вариант
{else}
        // второй вариант
{/if}
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
19 Август 2014, 14:23:50
Ответ #7
  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вам нужно добавить переключатель в администрируему часть модуля, чтобы администратор устанавливал режимы?
Или вам нужно дать возможность покупателям менять режим в фронтенде?
.
да, из админ панели
19 Август 2014, 14:40:58
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 1285
  • Репутация: +13/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Тогда ajax не нужен.
PrestaMan написал как добавить переключатель.
Там еще можно проверку значения добавить при сохранении.
19 Август 2014, 15:22:22
Ответ #9
  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
спасибо буду пробовать