Автор Тема: Программное расширение формы редактирования документа MODx Evo (1.0.10)  (Прочитано 4679 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн metasar

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
  • Версия modx: Evo 1.0.10
Здравствуйте, уважаемые форумчане!

Ответьте пожалуйста на несколько вопросов, касательно разработки модуля для MODx Evo (1.0.10).
1. Можно ли расширить форму редактирования документа не за счет TV-параметров, а программно через API и управлять этим через свой модуль?
2. Можно ли программно создавать TV-параметры и привязывать их к шаблону? И насколько это хорошо или плохо с точки зрения разработчика MODx Evo?

Оффлайн jean179

  • Главный модератор
  • Продвинутый
  • *****
  • Сообщений: 483
  • jean179.ru
    • Просмотр профиля
    • Отдых в Анапе в частном секторе
  • Версия modx: 1.12
Что вы изобретаете велосипеды?! Пользуйтесь стандартными возможностями. Хотите что-то реализовать спросите, а то что вы предложили - БРЕД!


Вот объясните: на кой черт вам сдалось создавать поля динамически?! Хотите чтобы можно было привязывать к одному полю галерею - MultiPhotos вам в руки. Хотите цены к товару привязать разные - TvTable, файлы - MultiFiles. Все построено на разборке строки в формате json. Нужно динамически выбрать селекты из значений в базе? Так можно обойтись привязкой и выбрать простым sql-запросом в селект значений из базы и подставить в зависимости от задачи. ЕСТЬ КУЧА СТАНДАРТНЫХ СПОСОБОВ!



Хотите собственные особо извращенные формы - пишите свой модуль, который будет работать со своей таблицей или со стандартной. Вот только очень сомневаюсь, что сходу получится лучше (ну наверняка же судя по воросу даже API не открывали!), чем у программистов, которые писали MODX Evolution и которые писали расширения.


Лучше спросите как реализовать задумку, тут вам без таких извращений кучу решений ГОТОВЫХ посоветуют. Останется только доделать/адаптировать под себя.
« Последнее редактирование: 02 Сентябрь 2013, 14:13:16 от jean179 »

Оффлайн sadex13

  • Разработчик
  • *****
  • Сообщений: 1097
    • Просмотр профиля
  • Версия modx: Evo 1.0.6, ClipperCMS 1.2.6
Любую форму редактирования чего бы то ни было в Ево, естественно, можно расширить, в разумных пределах. И для этого совершенно не обязательно использовать TV или API Ево, подойдет и типовое PHP. Нужно учесть, что для этого может понадобиться создание своих дополнительных таблиц в БД, и/или дополнение существующих таблиц своими полями.
MODX Evo как раз и удобна тем, что в структуре этой CMS можно легко создавать любые php-скрипты, при этом совсем не обязательно придерживаться ограничений, заданных API этой CMS.
FluxBB (PHP/MySQL) - легкий и быстрый форум для MODX с открытым кодом, минимальные требования к ресурсам.

Оффлайн metasar

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
  • Версия modx: Evo 1.0.10
Лучше спросите как реализовать задумку, тут вам без таких извращений кучу решений ГОТОВЫХ посоветуют. Останется только доделать/адаптировать под себя.

Я хочу сделать расширенный поиск по сайту (через параметры шаблона) с модулем управления.
У шаблона может быть 10-20 параметров, по которым будет осуществляться фильтрация. Шаблонов таких сейчас несколько, но буду появляться новые. Таким образом, если делать через TV, то придется нагенерить тучу TV-шек, управлять ими через стандартный интерфейс пользователя неудобно (а таком количестве). Дать вносить изменения неподготовленному пользователю - подвергнуть всю системы риску того, что он все сломает. Добавить новый TV в логику работы фильтра - лезть в код фильтрации или вызова Ditto - обычному пользователю нельзя это доверять. Вообщем, при подходе через Ditto и набор TV получается небезопасно, неудобно, и хаос.

Поэтому и была идея добавлять параметры программно, через модуль управления, не засоряя админку TV-ками, организовав централизованный доступ и управление параметрами документа и безопасное изменение расширенного поиска.

Офиц. API открывал и даже читал - но не увидел там ничего про программное создание TV или чего-то подобного.

Оффлайн metasar

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
  • Версия modx: Evo 1.0.10
Любую форму редактирования чего бы то ни было в Ево, естественно, можно расширить, в разумных пределах. И для этого совершенно не обязательно использовать TV или API Ево, подойдет и типовое PHP. Нужно учесть, что для этого может понадобиться создание своих дополнительных таблиц в БД, и/или дополнение существующих таблиц своими полями.
MODX Evo как раз и удобна тем, что в структуре этой CMS можно легко создавать любые php-скрипты, при этом совсем не обязательно придерживаться ограничений, заданных API этой CMS.

Хотелось бы добавлять что-то в MODx через стандартные возможности (модули, плагины, сниппеты), чтобы потом это можно было легко использовать на других сайтах.

Оффлайн una

  • Разработчик
  • *****
  • Сообщений: 582
    • Просмотр профиля
  • Версия modx: evo, revo
Я хочу сделать расширенный поиск по сайту (через параметры шаблона) с модулем управления.
Никак не могу найти хороший поиск с фильтрацией для modx, посему - подпишусь.

Оффлайн jean179

  • Главный модератор
  • Продвинутый
  • *****
  • Сообщений: 483
  • jean179.ru
    • Просмотр профиля
    • Отдых в Анапе в частном секторе
  • Версия modx: 1.12
Цитировать (выделенное)
Я хочу сделать расширенный поиск по сайту (через параметры шаблона) с модулем управления.
Нормального поиска вы не найдете ни в одной системе! Вообще их нет как класса. Для нормального МОРФОЛОГИЧЕСКОГО поиска нужна огромная библиотека SPHINKS, да и то там есть куча косяков. Поэтому если нужен морфологический поиск, прикручивают от гугла или яндекса.
Цитировать (выделенное)
У шаблона может быть 10-20 параметров, по которым будет осуществляться фильтрация. Шаблонов таких сейчас несколько, но буду появляться новые. Таким образом, если делать через TV, то придется нагенерить тучу TV-шек, управлять ими через стандартный интерфейс пользователя неудобно (а таком количестве). Дать вносить изменения неподготовленному пользователю - подвергнуть всю системы риску того, что он все сломает. Добавить новый TV в логику работы фильтра - лезть в код фильтрации или вызова Ditto - обычному пользователю нельзя это доверять. Вообщем, при подходе через Ditto и набор TV получается небезопасно, неудобно, и хаос.
Вот объясните мне дураку, на кой хрен вам сдался поиск в админке? Тупо чтобы был? Поиск и фильтрация элементов нужно во ФРОНТЭНДЕ. А уж тут вы делаете простую обработку формы ввода у пользователя и формируете ДИНАМИЧЕСКИ граничные параметры и выводите уже от них фильтрованные документы.


Смущает куча TV? Ну так разнесите их по кладкам в админке — плагин managermanager.


Вот что нужно совершенно не понятно. Скажите проще, чтобы даже такой дурак как я понял: "хочу сделать фильтрацию на странице с ...." А ваше объяснение ни на йоту не проеснило что же вы хотите сделать.


Цитировать (выделенное)
Офиц. API открывал и даже читал - но не увидел там ничего про программное создание TV или чего-то подобного.
Для работы с документами есть расширение CakeMODX например.

Оффлайн metasar

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
  • Версия modx: Evo 1.0.10
Есть набор товаров, у каждой категории товаров свои характеристики. По характеристикам нужна фильтрация. Модуль нужен для управления настройкой доступных характеристик и их значений для конкретной категории. Это в админке. На фронтэнде нужна форма фильтрации формирующаяся на основе выбранной категории товаров, т.е. если категория товаров №1, то форма выводит набор характеристик именно для этой категории, если категория другая, то и набор характеристик для фильтрации соответственно меняется.

Оффлайн jean179

  • Главный модератор
  • Продвинутый
  • *****
  • Сообщений: 483
  • jean179.ru
    • Просмотр профиля
    • Отдых в Анапе в частном секторе
  • Версия modx: 1.12
Ну так я примерно и думал. Модуль здесь нафиг не нужен.


В админке поиск не нужен. И для управления страницами есть другие модули. А для каждого вида товаров - свой шаблон где только нужные в данном случае TV подключены. Вот их-то и заполняет менеджер + их можно в отдельную вкладку-таб выложить через плагин managermanager. Будут кокие-то общие поля, а будут специфические. Например: для телевизоров общие поля цена, производитель, габариты; специфические: диагональ, флешка, цифровой декодер. Для холодильника будут общие поля цена, производитель, габариты; специфические: сколько камер, нофрост и так далее.


Во фронтэнде вы делаете форму для отбора параметров. Кто вам мешает вывести на каждой категории свою форму? Никто, правда ведь. Вот уже по результату введеных в форме значений вы через runSnippet вызываете отбор ditto или doclister на ваш вкус и цвет. Можете свой велосипед изобрести.


А уж в формах можете прилепить кучу js скриптов для красивого изменения форм.

Оффлайн metasar

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
  • Версия modx: Evo 1.0.10
Спасибо! Буду пробовать.