We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 26704
    • 115 Posts
    Здравствуйте,
    появилась следующая идея - на сайте имеется небольшое количество собственноручно созданных сниппетов, под крайне узко специализированные нужды конкретного сайта. Все прекрасно работает и меня всем устраивает, вот только 1 но. В каждом из них присутствует ряд настроек (типа лимиты на запрос, лимиты на вывод и прочие), настройки правятся прямо в коде что достаточно не удобно и я не вижу смысла в добавлении возможности вызова сниппетов с параметрами (так как не вижу особой разницы в редактировании их из шаблона или же из их кода).

    А что хотелось бы? Хотелось бы иметь модуль, который бы позволял из интерфейсной части административной панели редактировать данные настройки. При этом модуль должен работать автономно: в его настройках необходимо указать лишь группу(ы) к которой принадлежат сниппеты. Модуль сам производит анализ сниппетов (допустим читает специальную вставку с комментариями для определения списка и типа параметров) и строит интерфейс с его настройками.

    Задача, для моего уровня программирования на php выглядит больно страшной. Но... Создать такое больно хочется. И для начала небольшой вопрос: мы в сниппетах можем использовать глобальное пространство имен $modx, а как можно создать свое пространство имен доступное из всех сниппетов? Заранее спасибо.
      • 28957
      • 122 Posts
      Используйте таблицу modx_system_settings. И надо написать не модуль, а плагин, который добавляет новую вкладку в конфигурацию ( событие OnInterfaceSettingsRender). Пример, можете посмотреть в плагине TinyMCE.
      После этого обращяться к ним через $modx->config[’my_name’]
        suvit
        РROGWAY
        • 26586
        • 184 Posts
        Насколько я помню, как раз модули и могут иметь общие настройки со сниплетами.
        Например, плагин QuickEdit зависит от модуля QuickEdit.
        В результате плагин, может читать конфигурацию модуля.

        И ничего лишнего не надо писать и перхватывать.