[addData] Добавление дополнительных данных

Компонент addData для MODX позволяет добавлять дополнительные данные к ресурсу. Если взять магазин, для примера, то к товару можно легко добавлять требуемые характеристики. При желании эти характеристики можно сгруппировать и дать описание каждой характеристики, который будет отображаться в Popover при наведении (используется Bootstrap3).

Для того чтобы у ресурса появился таб, вам необходимо в Приложения/Дополнительные данные указать все возможные характеристики, которые вы будете использовать. Ну а на странице ресурса выбирать необходимые, именно для этого документа с указанием значения.
Изначально вкладка появляется у всех ресурсов, включая контейнеры (вдруг кому-то надо), но можно в системной настройке adddata_templates указать ID шаблонов через запятую. И тогда вкладка будет только у ресурсов, которые используют указанные шаблоны.

В общем, во фронте должно получится примерно так:



Как видно, реализовано вкладками, где в первой вкладке описание (поле content ресурса), во второй характеристики товара. На третью не обращайте внимание — компонент урезан.
Запоминание и управление историей вкладок — есть.

Параметры

  • &cssBootstrap — Путь до файла со стилями Bootstrap3, если включен параметр &hookBootstrap.
  • &jsBootstrap — Путь до файла со скриптами Bootstrap3, если включен параметр hookBootstrap.
  • &hookBootstrap — Если Да, то будут подключены стили и скрипты Bootstrap3 (для popover и tab). По умолчанию: Нет
  • &frontendCss — Путь до файла со стилями.
  • &frontendJs — Путь до файла со скриптами.
  • &tplOuter — Чанк оформления всего блока вкладок. По умолчанию addDataOuter
  • &tplTab — Чанк оформления каждой вкладки. По умолчанию addDataTab
  • &tplContent — Чанк оформления содержимого вкладки. По умолчанию addDataContent
  • &tplTableOuter — Чанк-обёртка таблицы характеристик. По умолчанию addDataTableOuter
  • &tplTable — Чанк оформления одного пункта таблицы. По умолчанию addDataTable

Примеры

Собственно после простого вызова сниппета addData вы получите результат, как на картинке выше))

[[addData]]
Компонент писался для своего сайта, делюсь с сообществом.
Желающие задонатить и поддержать проект — буду благодарен.

Спасибо!

upd. Компонент в modstore
Марат Марабар
23 марта 2017, 14:02
modx.pro
11
4 574
+13
Поблагодарить автора Отправить деньги

Комментарии: 20

gagra33332
23 марта 2017, 17:38
0
А где компонент?!
Либо мне пора протирать монитор?
Sergey Leleko
23 марта 2017, 18:37
0
Интересное решение, скорее хочется опробовать:)
    Александр
    24 марта 2017, 03:46
    0
    Очень-очень жду! Мне почти в каждый третий проект такой компонент нужен )
      Илья Уткин
      24 марта 2017, 08:05
      0
      А как эти данные хранятся? Прям в таблице modx_site_content создаются новые поля? Или в отдельной таблице? Или в поле properties в виде JSON?
        Марат Марабар
        24 марта 2017, 08:08
        0
        В своих таблицах.
          Илья Уткин
          24 марта 2017, 08:14
          0
          На каждую пару параметр-ресурс одна запись в таблице? Или все параметры, относящиеся к одному ресурсу находятся в одной строке?
      Виталий Батушев
      24 марта 2017, 08:11
      0
      Перед донатом, конечно, хотелось бы посмотреть. Ждем-с.
        v2254303
        24 марта 2017, 11:36
        0
        Данные можно будет использовать в mfilter?
          Марат Марабар
          24 марта 2017, 11:47
          0
          Ну через join скорее всего — да
            v2254303
            24 марта 2017, 12:10
            0
            А чем не устроили характеристики minishop? Кроме того что нельзя задать описание для характеристики
              Марат Марабар
              24 марта 2017, 12:20
              +2
              Ты же сам ответил уже на свой вопрос))
              Да и потом addData не привязан к miniShop2, он работает с любыми ресурсами.
                Павел Голубев
                24 марта 2017, 19:42
                0
                Характеристика в Minishop — это обычный TV?
                Stan Ezersky
                01 июня 2017, 11:20
                0
                А работа с mFilter2 не проверялась?
              Stan Ezersky
              17 апреля 2017, 11:24
              +1
              Отличное решение!
                Алексей
                07 марта 2018, 12:09
                0
                Добрый день!
                Подскажите, в вкладке есть кнопка импорт. Но при нажатие на нее ничего не происходит.
                В журнале:
                [2018-03-07 12:07:46] (ERROR @ C:\OpenServer\domains\sot33.ru\core\xpdo\xpdo.class.php : 644) Could not load class: addDataDesc from mysql.adddatadesc.
                [2018-03-07 12:07:46] (ERROR @ C:\OpenServer\domains\sot33.ru\core\xpdo\xpdo.class.php : 644) Could not load class: addDataDesc from mysql.adddatadesc.
                [2018-03-07 12:07:46] (ERROR @ C:\OpenServer\domains\sot33.ru\core\xpdo\xpdo.class.php : 592) No class specified for loadClass
                [2018-03-07 12:07:46] (ERROR @ C:\OpenServer\domains\sot33.ru\core\xpdo\xpdo.class.php : 762) ::getSelectColumns() is not a valid static method.
                [2018-03-07 12:07:46] (ERROR @ C:\OpenServer\domains\sot33.ru\core\components\adddata\model\adddata\adddata.class.php : 51) PHP warning: Invalid argument supplied for foreach()
                Не пойму в чем причина.
                Спасибо!
                  Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                  20