[siteExtra] Версия 1.4.0 — шаблонизация Fenom

В новой версии сборки siteExtra шаблон и все чанки переписаны на Fenom.


При установке дополнения системная настройка pdotools_fenom_parser будет включена, чтобы Fenom был доступен в шаблоне и на страницах.

Благодаря Fenom настройка форм обратной связи на сайте удалось несколько облегчить. Чанк contact_form теперь может кастомизироваться за счёт параметров. Вы можете делать на его основе несколько совершенно разных форм:

  • form — чанк с HTML-разметкой формы
  • tpl — чанк с текстом письма
  • subject — тема письма
  • validate — валидация полей
  • success — HTML-разметка сообщения об успешной отправке формы
  • error — текст ошибки отправки формы

Например, чтобы сделать форму для заказа обратного звонка, можно вызвать чанк contact_form с такими параметрами:

{$_modx->getChunk('contact_form', [
  'form' => 'form.callback',
  'subject' => 'Заказ обратного звонка',
  'validate' => 'phone:required'
])}

В остальные параметры будут значения по умолчанию.

В чанке gallery можно найти пример обработки значения MIGX-ТВ на Fenom (без использования сниппета getImageList).
Илья Уткин
Илья Уткин
17 июня 2017, 13:08
modx.pro
8 498
Реклама

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

Дмитрий Суворов
17 июня 2017, 17:48
Круто!
Кстати, ссылка на siteExtra уже не актуальна, верный url: modstore.pro/packages/sites-themes/siteextra
    Илья Уткин
    Илья Уткин Администратор
    17 июня 2017, 17:52
    Поправил. Странно, откуда я такую ссылку взял =))
      man
      man Старожил
      18 июня 2017, 11:35
      Добрый день Илья!
      А стоит ожидать версию с фалами?
      P.S. Иногда твой пак очень помогает, спасибо)
        Александр
        Александр Старожил
        19 июня 2017, 16:13
        Илья, спасибо большое
      Валентина Павлова
      30 июня 2017, 01:51
      Спасибо за обновление сборки! Но по умолчанию параметр pdotools_fenom_parser был отключен…
        Иван Чуваев
        Иван Чуваев Старожил
        10 июля 2017, 11:18
        Спасибо за сборку!
        Возможно это не относится конкретно к этой сборке, но экспериментальным путем было выявлено, что на PHP 5,6 тормозит, на PHP 7 и выше все хорошо, все «летает».
          Николай Савин
          Николай Савин Администратор
          10 июля 2017, 17:10
          Дык PHP 7 по определению шустрее.
          Никита Серов
          Никита Серов Старожил
          18 июля 2017, 15:11
          Илья, возможно глупый вопрос, однако не могу разобраться. В дереве ресурсов есть пункт, допустим «О компании». Как я могу изменить его название? При редактировании нигде нет такой надписи, как «О компании»?
          Кажется у меня опять что-то не так установилось(( Несколько компонентов не установились, как и в прошлый раз, на старой версии.
            Илья Уткин
            Илья Уткин Администратор
            18 июля 2017, 15:24
            «О компании» — это «пункт меню». Поле находится в правой части:



            Насколько я помню, были какие-то проблемы при попытке установить MIGX. Попробуй сначала устанавливать MIGX, а потом siteExtra. Если при установке что-то зависло, можно обновить и попробовать установить siteExtra ещё раз — ничего дублироваться не будет, просто всё доустанавливается.
              Никита Серов
              Никита Серов Старожил
              18 июля 2017, 15:26
              О, точно! Увидел! Спасибо. Да, установил все компоненты и сделал переустановку siteExtra и все работает!
            Никита Серов
            Никита Серов Старожил
            20 июля 2017, 16:14
            Вот еще вопрос, а почему сайт перестает работать, если подключить к нему vkAPI?
            А именно блок комментариев?
            vk.com/dev/Comments

            Страница перестает выводиться, как-будто не формируется, однако блок комментариев загружается…
              Илья Уткин
              Илья Уткин Администратор
              21 июля 2017, 09:06
              В коде виджета комментариев поставь пробелы перед и после всех фигурных скобок
              ...
              VK.init( { apiId: 000000000, onlyWidgets: true } ); // Здесь
              ...
              VK.Widgets.Comments("vk_comments", { limit: 10, attach: "*" } ); // и здесь
              ...
                Никита Серов
                Никита Серов Старожил
                21 июля 2017, 09:23
                Спасибо большое! Получилось. Вот я так и знал, что решение очень простое.
              Miša Bulic
              Miša Bulic Старожил
              25 июля 2017, 10:54
              Сборка интересная, только я вот феном никогда не использовал. Полгода не заходил сюда и после установки сборки вообще ничего не понимаю, как там всё сделано, где квадратные скобки? =) Как этим вообще пользоваться? Где почитать документацию?
                Василий Наумкин
                Василий Наумкин Администратор
                25 июля 2017, 12:17
                Слабо в поисковике набрать «Fenom MODX»?
                Никита Серов
                Никита Серов Старожил
                04 августа 2017, 09:19
                Вот простите, но опять вопрос. Может у меня что-то криво установилось, но не могу понять почему с формы контактов не приходят сообщения. Адрес электронной почты указал везде и в системных настройках и контактах. Может где-то не там смотрю… Помогите разобраться.
                  Илья Уткин
                  Илья Уткин Администратор
                  04 августа 2017, 09:43
                  FormIt без AjaxForm письма нормально отправляет? QuickEmail ошибку не показывает?

                  siteExtra — это не готовый сайт, а просто помощник программиста. Без усилий сайт не сделать, за это программисту и платят.
                    Никита Серов
                    Никита Серов Старожил
                    04 августа 2017, 09:46
                    Да я понимаю, ошибку вроде не показывает. Раньше я по другому делал, там указывался адрес куда отправлять письма, тут не могу понять. Буду разбираться.
                  Ivanov Denis
                  Ivanov Denis Старожил
                  21 августа 2017, 16:24
                  Приветствую. Спасибо за сборку. Сделали один сайт с его помощью. Реально упрощает. Но локально не получается. Как решить проблему с дружественными урл на XAMPP, установленный в Mac OS?
                    Илья Уткин
                    Илья Уткин Администратор
                    22 августа 2017, 13:17
                    Понятия не имею… Я работаю на Ubuntu. А как вы решали эту проблему раньше, когда сборку не использовали?
                      Ivanov Denis
                      Ivanov Denis Старожил
                      22 августа 2017, 13:25
                      Пока кроме запуска Винды на виртуальной машине ничего не помогает. Если найдется решение, кричите.
                    Андрей
                    Андрей Старожил
                    01 сентября 2017, 08:47
                    Илья, подскажите, как сделать свои поля по примеру того, как вы сделали на странице контактов? То есть не на вкладке Дополнительные поля, я прямо на основной вкладке.
                    Дмитрий
                    Дмитрий Старожил
                    11 октября 2017, 13:09
                    Огромная Благодарность за Вашу сборку! Для новичка это — настоящая «палочка-выручалочка»
                      DeHuCkA
                      DeHuCkA Старожил
                      27 ноября 2017, 22:56
                      Илья, здравствуйте!
                      Сборка отличная, но Fenom не хочется учить, возможно ли его отключить?
                        Илья Уткин
                        Илья Уткин Администратор
                        28 ноября 2017, 08:27
                        Отключить можно, но все чанки надо будет переписать тогда на обычный синтаксис парсера MODX.
                          DeHuCkA
                          DeHuCkA Старожил
                          07 декабря 2017, 22:47
                          Илья, я правильно понимаю, что установка на рабочий сайт не рекомендуется? Например я уже внес изменения в чанки, они перепишутся?

                          Еще заметил глюк, при переносе с хостинга на хостинг (в рамках одного хостинга) и смены адреса core в отчете об ошибках сыпется следующие

                          [2017-12-07 22:40:18] (ERROR @ xxx/core/model/modx/transport/modtransportpackage.class.php : 672) Could not retrieve from fastuploadtv-1.0.0-pl.transport.zip?revolution_version=Revolution-2.6.0-pl
                          [2017-12-07 22:40:18] (ERROR @ xxx/core/model/modx/transport/modtransportpackage.class.php : 435) MODX could not download the file. You must enable allow_url_fopen, cURL or fsockopen to use remote transport packaging.
                          [2017-12-07 22:40:21] (ERROR @ xxx/core/model/modx/transport/modtransportpackage.class.php : 207) Невозможно осуществить передачу пакета versionx-2.1.3-pl.transport.zip в /home/o/oshinberg/stombest.ru/core/packages/.
                          И так по каждому дополнению которое вшито в сборку, происходит это из за обновления списков установленных дополнений. Если удалить дополнение и поставить заново из репозитария, то ошибка пропадает. Может есть комплексное решение этой болячки?
                            DeHuCkA
                            DeHuCkA Старожил
                            07 декабря 2017, 22:48
                            Все на что ругается MODx включено, пробовал поменять с https на http.
                        DeHuCkA
                        DeHuCkA Старожил
                        07 декабря 2017, 23:01
                        И еще один глюк, иногда (я не понял логики), при обращении к страницам сайта (те страницы которые были в сборке) страница открывается, но использует не свой шаблон. Выглядит это как редерект, я даже создал отдельный пост на эту тему. Но в адресной строке стоит правильный урл, а вот шаблон похоже что нет.

                        Ошибок ни в modx не в серверном файле нет
                          Александр Янк
                          Александр Янк Старожил
                          04 января 2018, 13:07
                          Баг репорт:

                          В чанке form.contact_form указан неправильный тип инпут полю type=«phone» такого в синтаксисе нет, есть type=«tel»
                          <input type="phone" id="af_phone" name="phone" value="" placeholder="" class="form-control" />
                          .
                          Вот так правильно:
                          <input type="tel" id="af_phone" name="phone" value="" placeholder="" class="form-control" >
                          Кстати, обратные слеши тоже не нужны!

                          Личный вопрос от меня:
                          В чанке tpl.contact_form есть такой код {$message | nl2br}, что означает nl2br?

                          joxi.ru/nAyXp7jHXdJ5d2
                            Илья Уткин
                            Илья Уткин Администратор
                            04 января 2018, 13:13
                            Да, надо будет поправить)

                            nl2br — New line to br — переносы строк превращаются в тег <br>
                            Александр Янк
                            Александр Янк Старожил
                            04 января 2018, 13:40
                            Еще два бага:

                            В чанке form.contact_form пустой action="" на него ругается валидатор:

                            <form action="" method="post" class="ajax_form form-horizontal well" style="max-width: 530px;">
                            раньше я так заполнял action="[[~[[*id]]]]" а вот как сейчас, на феноме, надо в документации порыться.

                            — В тебе письма приходит «Сообщение с сайта http://*****.ru/» раньше это решалось такой строкой

                            &emailSubject=`Письмо с сайта [[++site_url:replace=`http://== `:replace=`https://== `:replace=`/== `]]`
                            согласись, не очень красиво joxi.ru/82Q7jyzs1an7Dr
                              Илья Уткин
                              Илья Уткин Администратор
                              04 января 2018, 13:44
                              Можно использовать [[++http_host]] — тогда не надо ничего реплейсить)
                              Александр Янк
                              Александр Янк Старожил
                              12 января 2018, 10:30
                              Илья, если не сложно поясни действия этого кода:
                              {var $defaul = true}
                              {switch $_modx->resource.id}
                                  {case 4}
                                      {var $defaul = false}
                                      {include 'specialists'}
                              {/switch}
                              {switch $_modx->resource.parent}
                                  {case 4}
                                      {var $defaul = false}
                                      {include 'content_specialist'}
                              {/switch}
                              {if $defaul}
                                  {include 'content_default'}
                              {/if}
                              В целом я вижу условия, я их понимаю, но не понимаю, что означает
                              {var $defaul = false}
                                Илья Уткин
                                Илья Уткин Администратор
                                12 января 2018, 13:09
                                Это нужно, чтобы не выводить дефолтный чанк на страницах, у которых контент имеет другой вид. Если бы условие было одно (например, проверка только по id), то такая конструкция не понадобилась бы:

                                {switch $_modx->resource.id}
                                    {case 4}
                                        {include 'specialists'}
                                    {case default}
                                        {include 'content_default'}
                                {/switch}

                                Но тут мы проверяем id, потом проверяем parent и нам надо как-то понять, что ни одно из условий не выполнилось. Для этого используется так называемый «флаг» — переменная $default. Если условие выполнено, я флаг выключаю (ставлю false) — тогда дефолтный чанк не будет выведен.
                                  Алексей
                                  Алексей Старожил
                                  12 января 2018, 13:09
                                  Если сработает условие по modx->resource.id и/или modx->resource.parent то блок
                                  {if $defaul}
                                      {include 'content_default'}
                                  {/if}
                                  не сработает т.к. переменная default будет иметь булевое значение false.

                                  Из доки по php:
                                  Если выражение принимает значение TRUE, PHP выполнит инструкцию, а если оно принимает значение FALSE — проигнорирует.
                                  p.s. Одновременно ответили :-)
                                  Miša Bulic
                                  Miša Bulic Старожил
                                  19 января 2018, 17:26
                                  Вышел релиз Bootstrap 4, Не хотите переделать шаблон под него?
                                  И по умолчанию можно убрать расширение у html документов?
                                  Дмитрий
                                  Дмитрий Старожил
                                  27 января 2018, 15:56
                                  Я только одного не понял, зачем было все всовывать в один шаблон, а потом с такими костылями решать кучу проблем. И по большому счету, куча ошибок, замысловатых логических вычислений и полностью вывернутая на изнанку идея MODx о шаблонах ресурсов и группировании документов по общему признаку (шаблону).

                                  А как по вашему начинающему разработчику (ведь именно для них сделана эта сборка) понимать эту идеологию, если вы уводите его в сторону от традиционного подхода? Они еще не понимают и не читают «традиционный язык MODx» и не понимают взаимосвязей, а вы им Fenom для развлечения – «Благодаря Fenom настройка форм обратной связи на сайте удалось несколько облегчить». Не велика ли плата за это?

                                  Я понимаю, что вам нравится Fenom и все замысловатые решения перекликаются с другими Дополнениями, но такой подход мне кажется не оправданным для такого простого сайта.
                                  Для сайта-визитки всего этого не нужно, задача решается простыми «стандартными» решениями, без необходимости наворачивать такой огород.
                                  Здравым объяснением такому подходу может быть только одно – забота об админе, чтобы тот не «заблудился» в 2-5 шаблонах.

                                  А может я Вас не понял. Если можно, ответьте только на один вопрос, зачем вы «Все» поместили в один шаблон? Ответ: «- Второй мне не понадобился», не катит :)

                                  Благодарю Вас за интересный опыт и возможность почитать ваш код.
                                    Владимир
                                    Владимир Старожил
                                    27 января 2018, 20:35
                                    Если я правильно помню, идея была в том, что бы создать свои сборки для своих нужд. Т.е. это как раз не в продакшн, а к осмыслению и переделыванию под себя.
                                    Олег
                                    Олег Старожил
                                    18 мая 2018, 19:11
                                    Перестал устанавливаться пакет. Уже на втором сайте подряд (ставил в обоих случаях ни чистую 2.6.2).
                                    Страницы создает, а пакеты не устанавливает
                                    Список ошибок во время установки к сожалению не сохранил.
                                    Хостинг — timeweb и reg.ru
                                    пробовал php 5.6,7.1,7.2

                                    После установки пакетов вручную попробовал переустановить siteExtra и получил такие ошибки:
                                    /*
                                    * MODX Console Output
                                    *
                                    * @date 2018-05-18 19:02:42
                                    */
                                    Пробуем установить пакет с подписью: siteextra-1.4.6-rc

                                    Пакет найден… сейчас идёт подготовка к его установке.

                                    Загрузка рабочего пространства пакета…

                                    Рабочее пространство загружено, сейчас устанавливаем пакет…

                                    Skipping vehicle object of class modChunk (data object exists and cannot be upgraded); criteria: Array
                                    (
                                    [name] => head
                                    )

                                    Skipping vehicle object of class modChunk (data object exists and cannot be upgraded); criteria: Array
                                    (
                                    [name] => menu
                                    )

                                    Skipping vehicle object of class modChunk (data object exists and cannot be upgraded); criteria: Array
                                    (
                                    [name] => child_list
                                    )

                                    Skipping vehicle object of class modChunk (data object exists and cannot be upgraded); criteria: Array
                                    (
                                    [name] => header
                                    )

                                    Skipping vehicle object of class modChunk (data object exists and cannot be upgraded); criteria: Array
                                    (
                                    [name] => content
                                    )

                                    Skipping vehicle object of class modChunk (data object exists and cannot be upgraded); criteria: Array
                                    (
                                    [name] => content_default
                                    )

                                    Skipping vehicle object of class modChunk (data object exists and cannot be upgraded); criteria: Array
                                    (
                                    [name] => content_specialist
                                    )

                                    Skipping vehicle object of class modChunk (data object exists and cannot be upgraded); criteria: Array
                                    (
                                    [name] => aside
                                    )

                                    Skipping vehicle object of class modChunk (data object exists and cannot be upgraded); criteria: Array
                                    (
                                    [name] => footer
                                    )

                                    Skipping vehicle object of class modChunk (data object exists and cannot be upgraded); criteria: Array
                                    (
                                    [name] => contact_form
                                    )

                                    Skipping vehicle object of class modChunk (data object exists and cannot be upgraded); criteria: Array
                                    (
                                    [name] => form.contact_form
                                    )

                                    Skipping vehicle object of class modChunk (data object exists and cannot be upgraded); criteria: Array
                                    (
                                    [name] => tpl.contact_form
                                    )

                                    Skipping vehicle object of class modChunk (data object exists and cannot be upgraded); criteria: Array
                                    (
                                    [name] => specialists
                                    )

                                    Skipping vehicle object of class modChunk (data object exists and cannot be upgraded); criteria: Array
                                    (
                                    [name] => gallery
                                    )

                                    Skipping vehicle object of class modChunk (data object exists and cannot be upgraded); criteria: Array
                                    (
                                    [name] => block.gallery
                                    )

                                    Skipping vehicle object of class modChunk (data object exists and cannot be upgraded); criteria: Array
                                    (
                                    [name] => scripts
                                    )

                                    Skipping vehicle object of class modSnippet (data object exists and cannot be upgraded); criteria: Array
                                    (
                                    [name] => clearPhone
                                    )

                                    Skipping vehicle object of class modSnippet (data object exists and cannot be upgraded); criteria: Array
                                    (
                                    [name] => rtrim
                                    )

                                    Skipping vehicle object of class modPlugin (data object exists and cannot be upgraded); criteria: Array
                                    (
                                    [name] => addManagerCss
                                    )

                                    Skipping vehicle object of class modPluginEvent (data object exists and cannot be upgraded); criteria: Array
                                    (
                                    [pluginid] => 1
                                    [event] => OnManagerPageInit
                                    )

                                    Skipping vehicle object of class modPlugin (data object exists and cannot be upgraded); criteria: Array
                                    (
                                    [name] => siteRedirect
                                    )

                                    Skipping vehicle object of class modPluginEvent (data object exists and cannot be upgraded); criteria: Array
                                    (
                                    [pluginid] => 2
                                    [event] => OnHandleRequest
                                    )

                                    Skipping vehicle object of class modTemplate (data object exists and cannot be upgraded); criteria: Array
                                    (
                                    [templatename] => siteExtra
                                    )

                                    Attempting to preserve files at /путь/assets/components/siteextra into archive /путь/core/packages/siteextra-1.4.6-rc/modCategory/c983a246ddd203de34c0f0615d86f21e.0.preserved.zip

                                    Attempting to preserve files at /путь/core/components/siteextra into archive /путь/core/packages/siteextra-1.4.6-rc/modCategory/c983a246ddd203de34c0f0615d86f21e.1.preserved.zip

                                    PHP notice: Undefined index: install_addons

                                    PHP warning: in_array() expects parameter 2 to be array, null given

                                    PHP notice: Undefined index: install_addons

                                    PHP warning: in_array() expects parameter 2 to be array, null given

                                    PHP notice: Undefined index: install_addons

                                    PHP warning: in_array() expects parameter 2 to be array, null given

                                    PHP notice: Undefined index: install_addons

                                    PHP warning: in_array() expects parameter 2 to be array, null given

                                    PHP notice: Undefined index: install_addons

                                    PHP warning: in_array() expects parameter 2 to be array, null given

                                    PHP notice: Undefined index: install_addons

                                    PHP warning: in_array() expects parameter 2 to be array, null given

                                    PHP notice: Undefined index: install_addons

                                    PHP warning: in_array() expects parameter 2 to be array, null given

                                    PHP notice: Undefined index: install_addons

                                    PHP warning: in_array() expects parameter 2 to be array, null given

                                    PHP notice: Undefined index: install_addons

                                    PHP warning: in_array() expects parameter 2 to be array, null given

                                    PHP notice: Undefined index: install_addons

                                    PHP warning: in_array() expects parameter 2 to be array, null given

                                    PHP notice: Undefined index: install_addons

                                    PHP warning: in_array() expects parameter 2 to be array, null given

                                    PHP notice: Undefined index: install_addons

                                    PHP warning: in_array() expects parameter 2 to be array, null given

                                    PHP notice: Undefined index: install_addons

                                    PHP warning: in_array() expects parameter 2 to be array, null given

                                    PHP notice: Undefined index: install_addons

                                    PHP warning: in_array() expects parameter 2 to be array, null given

                                    PHP notice: Undefined index: install_addons

                                    PHP warning: in_array() expects parameter 2 to be array, null given

                                    PHP notice: Undefined index: install_addons

                                    PHP warning: in_array() expects parameter 2 to be array, null given

                                    PHP notice: Undefined index: install_addons

                                    PHP warning: in_array() expects parameter 2 to be array, null given

                                    PHP notice: Undefined index: install_addons

                                    PHP warning: in_array() expects parameter 2 to be array, null given

                                    PHP notice: Undefined index: install_addons

                                    PHP warning: in_array() expects parameter 2 to be array, null given

                                    PHP notice: Undefined index: install_addons

                                    PHP warning: in_array() expects parameter 2 to be array, null given

                                    PHP notice: Undefined index: install_addons

                                    PHP warning: in_array() expects parameter 2 to be array, null given

                                    PHP notice: Undefined index: install_addons

                                    PHP warning: in_array() expects parameter 2 to be array, null given

                                    PHP notice: Undefined index: install_addons

                                    PHP warning: in_array() expects parameter 2 to be array, null given

                                    PHP notice: Undefined index: install_addons

                                    PHP warning: in_array() expects parameter 2 to be array, null given

                                    PHP notice: Undefined index: install_addons

                                    PHP warning: in_array() expects parameter 2 to be array, null given

                                    PHP notice: Undefined index: install_addons

                                    PHP warning: in_array() expects parameter 2 to be array, null given

                                    PHP notice: Undefined index: install_addons

                                    PHP warning: in_array() expects parameter 2 to be array, null given

                                    Успешно установлен пакет siteextra-1.4.6-rc

                                    /* EOF */
                                      Андрей
                                      Андрей Старожил
                                      18 мая 2018, 23:01
                                      Обнови движок до 2.6.3, там исправлено.

                                      MODX Revolution 2.6.3-pl (April, 19, 2018)
                                      ====================================
                                      — Fix installation of transport packages with setup options [#13861]
                                        Олег
                                        Олег Старожил
                                        26 мая 2018, 20:13
                                        Спасибо за ответ.
                                        Обновил, но все равно полно ошибок во время установки и опять установились только ресурсы и шаблоны/чанки.
                                      Александр Янк
                                      Александр Янк Старожил
                                      25 июня 2018, 11:35
                                      Илья, к тебе вопрос. Галерея выводится на внутренней странице, а что если я хочу вывести 6 послдених фоток на какую нибудь другую страницу, например на главную.

                                      Вот мой вопрос тут modx.pro/help/15735/ развернуто, прошу внеси ясность.
                                        Илья Уткин
                                        Илья Уткин Администратор
                                        25 июня 2018, 12:00
                                        В сборке есть чанк block_gallery. Его можно вызвать на любой странице и будет выведена галерея.
                                          Александр Янк
                                          Александр Янк Старожил
                                          25 июня 2018, 12:29
                                          спасибо большое.

                                          ЗЫ. block.gallery =))
                                        Евгений Ка
                                        Евгений Ка Старожил
                                        07 марта 2019, 17:51
                                        Вопрос про версию 1.5.0.

                                        Установил с нуля.
                                        Написано, что контактные данные перенесены в ClientConfig

                                        Однако там есть только 5 параметров
                                        admin_groups
                                        clear_cache
                                        context_aware
                                        google_fonts_api_key
                                        vertical_tabs

                                        Может я не там ищу или это всё-таки глюк?
                                        Благодарю.
                                          Илья Уткин
                                          Илья Уткин Администратор
                                          07 марта 2019, 19:27
                                          В админке в верхнем меню должен появиться пункт «Контакты» (это где содержимое, медиа, пакеты и пр.)
                                          Максим
                                          Максим Старожил
                                          19 июня 2020, 10:12
                                          А кто-нибудь делал резолвер для кастомизации главного меню в админке, чтобы не руками каждый раз пункты добавлять/переносить? Или может знает куда копать или найти похожее что-то?
                                          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                                          52