Произвольный конфиг плагина Есть решение

Всем привет!

Создаю конфиг для плагина на стандартном интерфейсе.

Интересует вопрос:

Каким образом можно сохранить два произвольных значения на один уникальный идентификатор.

4 ответа

  • 2
    Михаил Ушенин Webasyst 4 февраля 2015 08:45 # Решение

    Возможно, вам подойдёт использование массива:

    <input name="products[id][]" value="111">

    <input name="products[category][]" value="666">

    <input name="products[id][]" value="555">

    <input name="products[category][]" value="777">

    Все значения будут переданы внутри одного поля с идентификатором products.

    • +1
      Minya Jam Minya Jam 4 февраля 2015 09:14 #

      Я понимаю, что инпуты в виде массив значений, но как в таком виде вывести на страницу настроек плагина.

      Почитал про

      waHtmlControl::CUSTOM

      Я так понимаю, при указании этого параметра, можно сформировать произвольный html-код?

  • 1
    Михаил Ушенин Webasyst 4 февраля 2015 08:08 #

    Идентификатор чего вы имеете в виду? Можно более подробно, по возможности с примером?

  • 1
    Minya Jam 4 февраля 2015 08:40 #

    $setting_key — произвольный уникальный текстовый идентификатор поля настроек.

    В общем хочется сохранять значения в таком виде как на картинке:


  • 1
    Леонид Вакуленко Webasyst 4 февраля 2015 10:20 #

    Вообще говоря, плагин на странице своих настроек может рисовать произвольный HTML. И сохранять настройки куда угодно. Даже файлом settings.php пользоваться не обязательно: генерация из него HTML происходит в классе shopPlugin->getControls(), а сохранение настроек из POST'а - в shopPlugin->saveSettings(). Так что достаточно переопределить эти два метода. А там уж дело ваше, как и куда сохранять этот массив. Хошь в отдельную свою таблицу, хошь сериализацией в wa_app_settings.

    (А у вас как есть не сохраняется, потому что стандартная shopPlugin->saveSettings() этого делать не умеет.)

    • +1
      Леонид Вакуленко Леонид Вакуленко Webasyst 4 февраля 2015 10:24 #

      Не два метода, а три... Ещё ->getSettings(). Вообще, посмотрите код класса shopPlugin. Там кроме работы с настройками и нет ничего, по сути.

    • +1
      Minya Jam Minya Jam 5 февраля 2015 02:33 #

      Спасибо Леонид за замечание.

      Причина НЕ сохранения заключалась в не правильном формате инпута, аттрибута name.

      <input name=\"shop_pluginname[products][666]\" value=\"111\">

      Проверил, данные хранятся в сериализованном виде. Так что все нормально.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите