Как добавить к модулю административный настроечный переключатель?

[16 июля 2019 г.]    Российская сборка Magento 2.52.2
Magento 2: модули и услуги
magereport.com: составление перечня необходимых для установки заплаток SUPEE
#1 forastr
  • Группа: Пользователь
  • Сообщений: 36
  • Регистрация: 18.01.2012

02.03.2012 15:06

Делаю свой бекенд.Хочу сделать поле например выпадающее да и нет..и у этого поля настройка есть в двух местах, глобальная и для каждого продукта к примеру. Как вывсети чекбокс и надпись Use Config Settings..это в многих настройках бекенда стандартной magento есть.я открываю system.xml там ничего такого нету ,хотя надпись есть.Подскажите пожалуйста как это сделать?

#2 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

02.03.2012 15:43

Просто посмотрите, как другие модули делают настроечный переключатель.

#3 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

02.03.2012 16:08

В раздел Система Настройки настроечный переключатель добавляется следуюбщим образом:
<multicurrency translate="label">
    <label>Кэшировать ли страницы с ценниками в дополнительных валютах?</label>
    <comment>
        <![CDATA[
            Данная опция имеет значение только в том случае,
            если Ваш магазин позволяет посетителю переключать валюту ценников.
            <br/>
            Очевидно, что при включении данной опции объём кэша
            (под который в быстрых системах кэширования
            задействуется оперативная память сервера)
            будет кратен количеству валют вашего магазина.
        ]]>
    </comment>
    <frontend_type>select</frontend_type>
    <source_model>adminhtml/system_config_source_yesno</source_model>
    <sort_order>3000</sort_order>
    <show_in_default>1</show_in_default>
    <show_in_website>1</show_in_website>
    <show_in_store>1</show_in_store>
</multicurrency>


В данном примере:
frontend_type указывает тип элемента управления: выпадающий список.
source_model указывает множество значений (в данном примере: значения "да" и "нет").
Значения параметров show_in_default, show_in_website, show_in_store указывают, будет ли настройка отображаться соответственно в глобальной области настроек, в области настроек сайта и в области настроек магазина.
Если вы переключитесь, устиановите сначала глобальное значение, а потом переключитесь на область настроек магазина, то система позволит вам перекрыть значение настройки для конкретного магазина, и в то же время вы сможете поставить флажок Use Default.

На товарные вкладки настроечный переключатель добавляется вручную.
Для примера посмотрите вкладку "Складской учёт".
Шаблон этой вкладки расположен в файле app/design/adminhtml/default/default/template/catalog/product/tab/inventory.phtml:

<tr>
    <td class="label"><label for="inventory_manage_stock"><?php echo Mage::helper('catalog')->__('Manage Stock') ?></label></td>
    <td class="value"><select id="inventory_manage_stock" name="<?php echo $this->getFieldSuffix() ?>[stock_data][manage_stock]" class="select" <?php echo $_readonly;?>>
        <option value="1"><?php echo Mage::helper('catalog')->__('Yes') ?></option>
        <option value="0"<?php if ($this->getConfigFieldValue('manage_stock') == 0): ?> selected="selected"<?php endif; ?>><?php echo Mage::helper('catalog')->__('No') ?></option>
    </select>
    <input type="hidden" id="inventory_manage_stock_default" value="<?php echo $this->getDefaultConfigValue('manage_stock'); ?>" />

    <?php $_checked = ($this->getFieldValue('use_config_manage_stock') || $this->IsNew()) ? 'checked="checked"' : '' ?>
    <input type="checkbox" id="inventory_use_config_manage_stock" name="<?php echo $this->getFieldSuffix() ?>[stock_data][use_config_manage_stock]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" class="checkbox" <?php echo $_readonly;?>/>
    <label for="inventory_use_config_manage_stock" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
    <?php if (!$this->isReadonly()):?><script type="text/javascript">toggleValueElements($('inventory_use_config_manage_stock'), $('inventory_use_config_manage_stock').parentNode);</script><?php endif; ?></td>
    <td class="value scope-label"><?php echo Mage::helper('catalog')->__('[GLOBAL]') ?></td>
</tr>


#4 forastr
  • Группа: Пользователь
  • Сообщений: 36
  • Регистрация: 18.01.2012

02.03.2012 16:56

Спасибо большое ,Дмитрий!

#5 forastr
  • Группа: Пользователь
  • Сообщений: 36
  • Регистрация: 18.01.2012

05.03.2012 16:15

Еще один вопрос: подскажите ,пожалуйста как правильно делается следующее:
я создал новый атрибут к продукту (вкладка каталог-продукты-создать-общее), он сразу отобразился , я в шаблонах ничего не правил! А сейчас хочу к нему снизу добваить настроечный переключатель, как говорилось выше.мне сейчас в ручную надо создать шаблон app/design/adminhtml/default/default/template/catalog/product/tab/general.phtml и описать с помощью таблицы , строк и ячеек все отображаемые на этой вкладке пункты , по аналогии с написанным в inventory.phtml?как правильно в этом случае поступать?

#6 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

05.03.2012 20:05

Одна тема — один вопрос.

Поделиться темой: