Сборка для быстрого создания сайтов на MODX Готово

Сумма для сбора: 10 000 руб.

Последнюю неделю я активно занялся оформлением сборки MODX, чтобы ускорить создание новых сайтов. В сборке реализовано много мелочей, которые каждый раз приходится делать после установки MODX, например, создание страницы для 404 ошибки и указание её id в настройках, установка стандартного набора дополнений, robots.txt и sitemap.xml, редирект на основное зеркало (удаление www из адреса), настройка дружественных URL и всё в таком духе.



Под катом более подробно о том, что можно получить при установке сборки.

Список устанавливаемых дополнений

  • simpleUpdater — для лёгкого обновления версии MODX
  • FormIt — обработка форм, отправка заявок на электронную почту
  • autoRedirector — автоматический редирект при изменении URL страниц
  • CKEditor — визуальный редактор
  • Collections — для удобного отображения дочерних ресурсов
  • Console — на случай, если надо что оттдебажить или выполнить какой-то скрипт
  • FastUploadTV — удобная замена стандартному ТВ для картинок
  • MIGX — для создания табличек у ресурсов
  • Translit — автоматическая транслитерация адресов страниц
  • VersionX — сохраняет бэкапы элементов и ресурсов, чтобы всегда можно было откатиться
  • Ace — редактор кода
  • pdoTools — для вывода ресурсов и создания меню
  • AjaxForm — чтобы формы работали с помощью AJAX
  • MinifyX — объединяет стили и скрипты, минифицирует их
  • phpThumbOn — для создания превьюшек
  • tagElementPlugin — удобная навигация внутри админки
  • frontendManager — для редактирования ресурсов прямо из фронтенда

Системные настройки

  • allow_multiple_emails — 0 (чтобы у каждого пользователя была своя электронная почта)
  • friendly_alias_realtime — 1 (генерация псевдонима в реальном времени)
  • friendly_urls — 1 (включение дружественных URL)
  • friendly_urls_strict — 1 (строгий режим)
  • hidemenu_default — 1 (чтобы случайно новые ресурсы не появились в основном меню сайта)
  • publish_default — 1 (по умолчанию ресурс создаётся опубликованным)
  • use_alias_path — 1 (чтобы в URL учитывался псевдоним родителя, а не его замороженный URL)
  • friendly_alias_translit — russian (настройка транслитерации)
  • resource_tree_node_name — menutitle (чтобы названия ресурсов в дереве были покороче)
  • resource_tree_node_tooltip — alias (чтобы можно было понять, какой у ресурса адрес)
  • error_page — id страницы 404
  • site_unavailable_page — id страницы 404 (всё же лучше 404, чем главную показывать)
  • unauthorized_page — id страницы 404
  • error_page_header — HTTP/1.0 404 Not Found (раньше были проблемы с другим заголовком)
  • fastuploadtv.translit — 1 (чтобы загружаемые к ресурсам картинки транслитерировались)
  • locale — ru_RU.utf8 (вдруг, надо будет генерировать даты с названиями месецев)
  • cache_prefix — пустое значение (надо заполнять, если включён memCached. Значение брать из файла конфига)

Стандартный шаблон

После установки создаётся шаблон site. Он проставляется у главной страницы сайта и указывается как шаблон по умолчанию. В шаблоне подключен Bootstrap и FancyBox.

У меня никогда не было такого, чтобы не пригодилось дополнительное поле для прикрепления картинки к странице. Поэтому сборка создаёт ТВ img с типом FastUploadTV — для удобной загрузки изображений.

Часто телефон, адрес, электронную почту выносят в настройки системы или контекста. Я раньше использовал ClientConfig. Но со временем я понял, что эти поля логично искать на странице «Контакты». Поэтому в сборке я решил создать ТВ-поля для этих трёх параметров. Эти поля выводятся в админке при редактировании контактов.

ms2Gallery — платный компонент, поэтому в сборке для реализации галереи я использовал MIGX.

На странице прописан вывод дочерних ресурсов (например, новостей или отзывов). Отображение дочерних ресурсов можно отключить, убрав соответствующую галочку при редактировании ресурса.

Создание ресурсов

  • О компании
  • Специалисты
  • Отзывы
  • Галерея
  • Новости
  • Контактная информация
  • HTML карта сайта
  • Страница ошибки 404
  • robots.txt
  • sitemap.xml

Другое

  • Создаётся плагин для редиректа на основное зеркало (без www)
  • Переименовываются файлы ht.access в корне и в папке /core/ (чтобы заработали дружественные URL)
  • Удаляется файл changelog.txt, чтобы убрать сообщение о том, что безопасность сайта не в порядке
  • В файле конфига прописывается массив cache_options, чтобы при включении memCached не надо было вспоминать, как параметры пишутся — достаточно будет просто раскомментировать строчки и внести соответствующие изменения в настройки
  • Стандартная таблица символов Translit меня не устраивает. В ней букве Ы соответствует yj, Ц — cz и т. д. При установке сборки создаётся новая таблица символов и указывается в настройках.
  • В компоненте FastUploadTV жёстко прописан адрес папки /connectors/. А я её всегда переименовываю. При установке сборки в файл этого компонента вносятся изменения, чтобы картинка отображалась корректно.
  • Создаются правила кастомизации форм ресурсов, чтобы ТВ img отображался на основной вкладке ресурса, чтобы на странице контактов отображать поля адреса, телефона и E-mail
  • К странице редактирования ресурсов привязывается CSS-файл, чтобы чуть подправить отображение ТВ-параметров.
  • Создаётся сниппет year, чтобы выводить диапазон лет в блоке Copyright.

Демонстрация

http://s6158.h5.modhost.pro/manager/
Пользователь: s6158
Пароль: nXsvSB6trWfm



Краудфандинг

Изначально я хотел нанять дизайнера и сделать платный компонент из этой сборки. Но вчера Василий начал использовать очень интересную схему краудфандинга. Я хочу, чтобы эта сборка распространялась свободно, и каждый разработчик мог её использовать.

Но время, потраченное на её создание, мне хочется компенсировать. Так что все желающие получить сборку могут перечислить мне любую сумму через форму на сайте. Когда наберётся сумма в 10 000 руб., сборка появится в открытом доступе. Кроме того, будет открыт репозиторий на GitHub, чтобы каждый мог настроить сборку под себя.

Обязательно указывайте в примечании свою электронную почту, чтобы я мог связаться с вами, если сбор средств не удастся.

Всего собрано 10 000 руб.

====================================================================== 10 000 руб.

UPD. После окончания сбора не только исходники будут размещены в открытом доступе, но и появится инструкция — как на основании этих исходников создать свою сборку.

UPD 2. Сбор средств завершён. Всем спасибо.
Исходники сборки доступны на GitHub: github.com/ilyautkin/siteExtra
Сборка доступна для установки из репозитория modstore.pro: siteExtra
01 августа 2016, 17:09    Илья Уткин   G+  
25    5669 +13

Комментарии (162)

  1. Владимир 01 августа 2016, 18:00 # 0
    Доброго дня! Используемый в сборке phpThumbOn это личные предпочтения или он реально лучше pThumb?
    1. Илья Уткин 01 августа 2016, 18:03 # +2
      Не знаю. Я раньше пользовался phpThumbOf, так как другого и не знал. А как появился phpThumbOn, перешел на него. Так что это больше дело привычки.

      Ничего не мешает установить pThumb и поменять вызовы на него.
      1. Владимир 01 августа 2016, 18:22 # +2
        Ок, тогда принимайте 5 копеек по моему внутреннему курсу. Пусть будет)
        Отправил.
        1. Евгений 01 августа 2016, 18:49 # -10
          Зачем велосипед изобретать, если можно поставить минишоп и использовать его галерею?
          Да и вообще зачем нужна сборка без минишопа?!
          1. Илья Уткин 01 августа 2016, 18:52 # +5
            Да, вы совершенно правы
            1. Евгений 01 августа 2016, 18:54 # -7
      2. @ndrew 02 августа 2016, 06:04 # +1
        По сути кто разбирается в modx эту сборку собрать под себя и с намного лучшим дизайном не составит труда.
        А те кто не в теме без вашей же помощи (наверняка платной) не разберется что бы все наладить. Умно ;) Вангую и мне кучу минусов )))
        1. Владимир 02 августа 2016, 06:17 # +1
          Если в репозитараии появится множество готовых сборок (равно как и еще любых других расширений) все только выиграют.

          PS Люди всегда рады халяве, а как кинуть монетку в копилку разработчиков — так нет, увы. Бесплатно было бы — качали бы аж шум бы стоял и ставили бы Илье плюсики, как и с новым Тикетс и т.п.
          Почему так?
          1. Илья Уткин 02 августа 2016, 06:42 # +2
            Есть большая прослойка между теми, кто умеет собирать пакеты и теми, кто первый раз видит MODX.

            И в сборке дизайн — не главное. Главное — набор готовых решений.
            1. Stan Ezersky 02 августа 2016, 10:18 # 0
              Полностью согласен.

              Для человека, который первый раз видит MODX важно содержание, а не внешний вид, который можно сделать любым.
              1. Алексей 06 августа 2016, 21:16 # 0
                Субъективно:
                Новичку как раз не эта сборка нужна, наоборот — чистый modx и вперед.
                Но это только мое субъективное мнение и оно не в счет.

                Объективно:
                Никому не мешает, может кому то пригодится и действительно принесет пользу в его задаче

                Опасливо:
                Про деловых_мэнов, которым нужен инструмент для делинга (бизнессинга) пускай сами определят: нанять и заплатить или самому слепить (вон сборка есть), ну это так, на случай комментов от деловых_мэнов… )
          2. Дмитрий 02 августа 2016, 10:34 # +2
            ушла 1т
            1. Игорь Терентьев 02 августа 2016, 14:29 # +3
              Хорошее дополнение.
              Но если нужно все под себя настроить, то лучше использовать парочку скриптов, описанных здесь.
              Для установки дополнений:
              gist.githubusercontent.com/ig0r74/80c27500e9c28d1261d3/raw/fbf095e0be76f84ee103775a2ba773695738f643/packages.php
              Для настроек, TV, чанков и т.д.: gist.githubusercontent.com/ig0r74/722b2a14d57ca100d906/raw/9daf4e3f847a9be58239729cc27fc057db34304f/settings.php
              1. Илья Уткин 02 августа 2016, 14:33 # 0
                Да, я кстати видел это решение. Только почему-то забыл о нём. Ну, теперь уже обратного пути нет))
              2. Антон Левиц 02 августа 2016, 14:44 # +1
                Немного не по теме
                s6158.h5.modhost.pro/robots.txt

                Это нормально что в роботс идет скрипт хвостом от frontendmanager?

                User-agent: *
                Allow: /
                
                Host: s6158.h5.modhost.pro 
                Sitemap: http://s6158.h5.modhost.pro/sitemap.xml
                <script type="text/javascript">frontendManagerConfig={"ctx":"web","jsUrl":"\/assets\/components\/frontendmanager\/js\/","cssUrl":"\/assets\/components\/frontendmanager\/css\/"};</script><link rel="stylesheet" href="/assets/components/frontendmanager/css/web/frontend.css" type="text/css"><script type="text/javascript" src="/assets/components/frontendmanager/js/web/frontend.js"></script><div id="frontendManager" class="fm-panel" >
                	<a href="manager" target="_blank" class="logo"><img src="manager/templates/default/images/modx-icon-color.svg"></a>
                	<a href="manager/?a=resource/update&id=2" data-action="iframe"><span class="icon-edit"></span> <span class="fm-text">Редактировать страницу</span></a>
                	<a href="manager/?a=security/user" data-action="iframe"><span class="icon-users"></span> <span class="fm-text">Пользователи</span></a>
                	<a href="manager/?id=0&a=context/update&key=web" data-action="iframe"><span class="icon-earth"></span> <span class="fm-text">Настройки контекста</span></a>
                	<a href="manager/?a=system/settings" data-action="iframe"><span class="icon-settings"></span> <span class="fm-text">Настройки</span></a>
                </div>
                1. Антон Левиц 02 августа 2016, 14:47 # +1
                  туплю, это потому что из админки забыл выйти
                  1. Илья Уткин 02 августа 2016, 18:25 # 0
                    Del
                  2. Игорь Терентьев 02 августа 2016, 14:47 # +2
                    Это только для авторизованных в админке пользователей.
                    1. Илья Уткин 02 августа 2016, 14:48 # +1
                      Это больше вопрос, конечно, к дополнению FrontendManager. Он, по идее, должен отключаться на текстовых страницах. Но в любом случае — этот код появляется, только если вы авторизованы в админке. Попробуйте открыть в анонимном режиме браузера.
                      1. but1head 02 августа 2016, 18:25 # +2
                        Комитнул правку Ильи, в модстор выложу чуть позже
                        1. @ndrew 02 августа 2016, 20:13 # +1
                          Про открытие и закрытие панели по триггеру с куками не забудь.
                      2. Кирилл 02 августа 2016, 18:19 # +1
                        Автоматизация вещь хорошая и нужная, компонент однозначно полезный. В своих проектах я тоже делал нечто подобное, жалко времени нету исправить небольшие ошибки и доделать настройки под TinyMCE4. Если кому интересно, описание и ссылка для скачивания компонента. Быть может, Илья что-либо добавит к себе в компонент, например во всех проектах я добавляю SEO TV поля.
                        1. Владимир 02 августа 2016, 20:34 # 0
                          А исходников нет часом? ))
                          1. Кирилл 02 августа 2016, 20:44 # +1
                            Есть, в ближайшие дни могу на гитхаб выложить.
                            1. Владимир 02 августа 2016, 20:45 # 0
                              Да, было бы замечательно!
                              1. Кирилл 03 августа 2016, 06:37 # +1
                                Исходники, не уверен что самые актуальные. По мере появления свободного времени исправлю некоторые ошибки и обновлю системные настройки. В частности, документы robots.txt и sitemap.xml создаются с дублирующим разрешением. Если есть какие то предложения, что можно добавить\изменить, пишите.

                                Кстати, интересный момент с таблицей транлитизации для translit. В идеале, сделать транслит по правилам яндекса. Может у кого-то есть таблица и настройки вырезаемых символов?
                                1. Владимир 03 августа 2016, 07:23 # 0
                                  Спасибо! Будем посмотреть )
                                  1. Владимир 03 августа 2016, 07:32 # 0
                                    О транслитерации, а интересно, реально, замена транслитерации с одних правил на другие может значительно изменить качество индексации сайта и его позиции? Если нет, чем плохи те правила, что прописаны в дефолтном translit?
                                    1. Кирилл 03 августа 2016, 08:47 # 0
                                      Не знаю, на самом деле, один из СЕОшников просил делать URL по правилам яндекса. Насколько это влияет на позиции или индексацию, сказать не могу, но из рекомендаций яндекса, пункт 4 следует, что робот все таки транслит переводит, и наверное ему понятнее будет по своим правилам переводить, а то еще напутает чего :D

                                      Насколько я помню, в таблице по умолчанию не так много расхождений. Основная задача всякие спецсимволы вырезать или заменять на "-".
                                      1. Владимир 03 августа 2016, 10:06 # 0
                                        Все без исключения спецсимволы вырезаются при значении системной настройки MODX friendly_alias_restrict_chars = alphanumeric — я только ее и использую.
                                        1. Кирилл 04 августа 2016, 08:52 # +1
                                          Исходник на гитхабе исправил, видимо не ту версию первый раз выложил (пакет не создавался, выдавалась ошибка). В самом компоненте подправил небольшие баги, добавил friendly_alias_restrict_chars -> alphanumeric и сделал таблицу транслитизации по яндексу, после установки компонента translit копируется, в системных настройках прописывается. Обновляйтесь :)
                                          1. Владимир 04 августа 2016, 10:29 # 0
                                            О! Спасибо :)
                          2. Борис 03 августа 2016, 09:05 # 0
                            6 компонентов лишнее.
                            Парочку вообще заменить надо.
                            1. Илья Уткин 03 августа 2016, 10:05 # 0
                              А конкретнее?
                              1. Владимир 03 августа 2016, 10:44 # +1
                                Пардон, я тут одну мечту озвучу
                                Очень был бы уместен на Modhost.pro конструктор сборок, что бы 1) создавать свои конфигурации и хранить их в личном кабинете, в конфигурациях выбирать расширения, системные настройки, часто используемые ресурсы (404, сайтмап, роботс и т.п.), возможно, дополнять лексиконы, может быть создавать некий необходимый набор тивишек, но мне видится обязательным в сборке только расширения и системные настройки с ресурсами, а остальное может как раз быть с отдельном пакете, так может быть более гибко, ну и 2), раз уж я говорю применительно к Modhost.pro, это выбор сохраненной конфигурации при создании нового сайта на аккаунте. Да, можно и как платную услугу, о халяве я не мечтаю.
                                А вот такой пакет как у вас, Илья, именно как дополняющий и корректирующий то, что в конструкторе не предусмотреть…
                                Вот. Размечтался :)
                                1. Alexander V 03 августа 2016, 11:27 # 0
                                  Можешь так. Есть другие варианты.
                                  1. Владимир 03 августа 2016, 11:29 # 0
                                    Я не о том, «можешь». Я о том, что хотел бы что бы на Modhost.pro был конструктор сборок. Только об этом.
                                  2. Илья Уткин 03 августа 2016, 11:36 # 0
                                    Решений для создания настроек и ресурсов полным полно. В моей сборке это не главное.

                                    В сборке ТВ-шки привязываются к шаблону, для ресурсов создаются правила кастомизации, чтобы клиенту потом было удобнее пользоваться, в шаблоне уже готовы типовые выводы для дочерних ресурсов, правятся файлы компонентов FastUpload и Translit.

                                    Это нужно, конечно, далеко не всем, но в конструкторе, каким бы он ни был продвинутым, такие изменения будет сложно прописать.

                                    После того, как соберётся сумма, я размещу исходники на гитхабе — вы сможете лишнее удалить, что-то исправить, а что-то добавить — и сделать свою сборку. В этом весь смысл.
                                    1. Владимир 03 августа 2016, 11:40 # 0
                                      В этом весь смысл.
                                      — согласен, понимаю, не спорю :)
                                  3. Борис 03 августа 2016, 11:35 # 0
                                    simpleUpdater — оставляет много мусора
                                    CKEditor — Тина удобнее
                                    Console — случаев много?
                                    FastUploadTV — чем удобнее?
                                    VersionX — много мусора в базе
                                    AjaxForm — без настройки форм не взлетит, либо надо сразу чанки с настроенной формой.
                                    MinifyX — объединит что, 1-2 файла вашей сборки?
                                    tagElementPlugin — пользовался сам несколько раз и всё.
                                    frontendManager — на вкус и цвет, но мне не понравился.
                                    1. Владимир 03 августа 2016, 11:42 # 0
                                      FastUploadTV — чем удобнее?
                                      — чем удобнее чем что? Вроде нет удобнее для загрузки изображения в тивишку, если именно в тивишке нужно хранить картинку. Или есть?
                                      1. Илья Уткин 03 августа 2016, 11:43 # +2
                                        simpleUpdater — оставляет много мусора
                                        CKEditor — Тина удобнее
                                        Это вкусовщина, каждый выбирает для себя. На основе моей сборки можно сделать свою, удалив или заменив эти компоненты

                                        Console — случаев много?
                                        У меня много, да

                                        FastUploadTV — чем удобнее?
                                        А есть какая-то альтернатива?

                                        VersionX — много мусора в базе
                                        Мне пару раз это дополнение сэкономило много времени. Я готов мириться с мусором. Но опять же, в своей сборке можно будет это дополнение удалить.

                                        AjaxForm — без настройки форм не взлетит, либо надо сразу чанки с настроенной формой.
                                        В сборке как раз чанки с настроенной формой. Даже сообщение об успешной отправке показывается во всплывающем окне

                                        MinifyX — объединит что, 1-2 файла вашей сборки?
                                        Так поверх сборки нужно свою вёрстку натягивать, чтобы готовый сайт получился. Тут MinifyX и пригодится.

                                        tagElementPlugin — пользовался сам несколько раз и всё.
                                        frontendManager — на вкус и цвет, но мне не понравился.
                                        Точно так же — можно не пользоваться, а в своей сборке можно будет и удалить.
                                        1. Кирилл 03 августа 2016, 11:58 # +3
                                          Логичнее тогда выбор устанавливаемых компонентов сделать, перед установкой пакета. По умолчанию пусть галочки на всех стоят, кому надо отключит лишнее.
                                          1. Илья Уткин 03 августа 2016, 12:02 # +5
                                            Да, я как-то не подумал об этом. Надо будет сделать.
                                            1. Василий Столейков 04 августа 2016, 11:43 # 0
                                              Если это будет сделано, то можно будет вообще сделать универсальную сборку и понапихать пакетов сколько угодно ))))
                                              Если бы туда ещё и системные настройки изменяемые например. И остальное… Эх, размечтался вслух...
                                              Да, визуальный установщик с галочками будет бомбой!
                                        2. but1head 04 августа 2016, 23:03 # 0
                                          frontendManager — на вкус и цвет, но мне не понравился.
                                          Почему? Если не секрет.
                                    2. Петр 04 августа 2016, 09:55 # +1
                                      Несомненно это круто! И в частности что планируешь выложить на гит, чтобы можно было под себя что то сделать, за это огромный плюс.
                                      Я использую свои сборки для создания (не сочтите за рекламу), но в них есть свои недостатки.
                                      Собираю vapor_ом, и одна из проблем это после установки на чистый Modx приходится накатывать обновление modx (некоторые компоненты не корректно устанавливаются). Хоть это и не сильно критично, но все же хотелось без этого. например вот

                                      Вообще было бы здорово сделать одну универсальную, то есть. При установки будет спрашивать магазин у тебя или визитка, ну и в зависимости от этого будет устанавливать нужные компоненты.

                                      Хотя на мой взгляд, установка компонентов это не самое критичное. Больше всего времени уходит на настройку (системные настройки, группы пользователей и т.д) а сами компоненты можно и самому по быстрому накатить.
                                      1. Alexander V 04 августа 2016, 12:52 # +1
                                        ИМХО, полезней сделать хак для /setup/ и набор рецептов или просто список приложений, которые необходимо доустановить.
                                        1. Илья 04 августа 2016, 20:51 # +1
                                          Хотел оплатить, появилась ошибка, попробую позже. :(


                                          p.s. Сервису сообщил об ошибке
                                          1. Василий Наумкин 04 августа 2016, 21:27 # 0
                                            Пусть зададут вопрос у нас, как положено.

                                            Логин-пароль можно в личку.
                                            1. Илья 04 августа 2016, 21:38 # 0
                                              Логин и пароль к чему?
                                              Я хотел закинуть свои пять копеек для этой сборки.
                                              Форма оплаты с сайта Ильи (https://ilyaut.ru/pay/)
                                              1. Василий Наумкин 04 августа 2016, 21:40 # 0
                                                Шутка не зашла, бывает.

                                                Смысл был в том, чтобы Единая касса задала у нас тут вопрос, чего это у неё не работает — и дала логины пароли, чтобы мы ей помогли.

                                                Не обращай внимания, в общем.
                                                1. Илья 04 августа 2016, 21:53 # +1
                                                  :) Ну да ладно.

                                                  Мне больше интересна не сборка, а как она создавалась.
                                                  1. Владимир 05 августа 2016, 10:26 # 0
                                                    Вот-вот!)))
                                                    1. Илья Уткин 05 августа 2016, 10:28 # +3
                                                      Так будут исходники. Даже, думаю, статейку накидаю — как на их основе сделать свою сборку
                                                      1. Владимир 05 августа 2016, 10:30 # 0
                                                        Даже, думаю, статейку накидаю
                                                        — «Да пребудет с тобой Сила» ))
                                                        1. Владимир 05 августа 2016, 10:33 # +1
                                                          Мне кажется, что если данную чудесную мысль озвучить в топике, то сбор ускорится :))
                                                          1. Илья Уткин 05 августа 2016, 10:36 # 0
                                                            Я думал, это и так понятно. На всякий случай, дополнил топик)
                                                            1. Владимир 05 августа 2016, 10:40 # 0
                                                              и так понятно
                                                              — факты говорят иное))))
                                                              А шрифт в UPD мелковат, не заметят кто уже читал, глаз же «замыливается»
                                            2. Abu 05 августа 2016, 00:14 # +1
                                              Отличная сборка. Надо бы ещё clientconfig добавить, имхо, незаменимое дополнение, вместо тв-шек забить туда всякие соц-сети, телефоны, адреса и выводить плейсхолдерами самое то.
                                              1. Здоров Александр 05 августа 2016, 07:41 # 0
                                                Я раньше использовал ClientConfig. Но со временем я понял, что эти поля логично искать на странице «Контакты».
                                                в описании автор привел свой аргумент отказа от этого дополнения.
                                                Да, могу согласиться в том, что контакты разумней искать на странице контактов, но есть еще такие вещи как слоган, логотип и прочая прочая ересь, и чтобы клиент потом не жаловался что ему нужна возможность смены (и не плодить в шаблонах выводы тв с разных ресурсов) удобней это дополнение. но тут дело вкуса
                                                1. Илья Уткин 05 августа 2016, 10:04 # +3
                                                  Да, надо добавить. Я сделаю возможность выбора, какие дополнения надо устанавливать — галочками. И ClientConfig добавлю
                                                  1. Здоров Александр 05 августа 2016, 10:07 # 0
                                                    слишком смелая мечта, но не рассматриваете вариант старой доброй evo, когда ставится система, на последнем шаге был выбор какие пакеты ставить. но я с ней мало успел пообщаться, там или скачивались и ставились пакеты, или они уже были в коробке. но вот в памяти остался этот плюсик хороший)
                                                    1. Илья Уткин 05 августа 2016, 10:31 # +1
                                                      Я когда-то давным-давно делал так: ilyaut.ru/tips-and-tricks/create-a-build-of-modx-revo/
                                                      Но потом этот способ перестал работать — как-то изменился установщик, а я и не стал разбираться.

                                                      Я думаю, что пакет всё же удобнее. Его можно ставить не только на чистый сайт, но и на существующий уже — ресурсы не удаляются, существующие ТВ и шаблоны не затираются — я постарался всё сделать аккуратно.
                                                      1. Здоров Александр 05 августа 2016, 10:37 # 0
                                                        задумка классная, посмотрите еще дополнение Image+ в последнее время стало самым лучшим решением для превью новостей, каталога с картинками и прочим. В общем что это дает: загрузили картинку и появляется область, по которой картинку можно обрезать в точном соответствии с тем, какой размер должен быть, при этом можно выбирать какую область оставить простым перетаскиванием по картинку, хоть всю, но главное сохранит пропорции и выведет очень небольшое по весу изображение.
                                                        1. Илья Уткин 05 августа 2016, 10:42 # +1
                                                          Насколько я понял, там для загрузки используется обычный MODX браузер? Это не очень удобно, так как часто у клиента заполнением сайта занимается не очень квалифицированный персонал. Это приводит к тому, что картинки беспорядочно загружаются в корень (или, даже если настроить источник файлов — то в одну папку). А FastUploadTV позволяет делать загрузку в один клик — не надо выбирать папку, в которую файл должен загрузиться. Плюс загруженные файлы транслитерируются.

                                                          Но дополнение себе запишу в список, спасибо.
                                                          1. Здоров Александр 05 августа 2016, 10:47 # 0
                                                            да, обычный загрузчик modx, написал скорее для того, чтобы взгляули, я не находил особых упоминаний об этом компоненте на наших площадках, а лично мне он решил огромную головную боль, когда как не объясней, все равно в квадратные картинки пихают прямоугольные)
                                                            по вопросу куда класть картинки: обычно указываю источник для конкретных мест (новости, каталог), остальным создаю еще одну папку куда все летим не нужное, обычно понимают что вот сюда клади, в эту папку. пока проблем не было, но вот про автоперевод у FastUploadTV не знал, попробую одной особе поставить. большое спасибо за ответ
                                              2. @ndrew 05 августа 2016, 04:45 # 0
                                                В modx готовые сборки ни когда не будут котироваться. Потому что это конструктор, каждый собирает под себя, это плюс и минус движка. Одни и те же вещи можно реализовать по разному и всегда будут от разных людей вопросы типа — почему тут этот компонент, а почему не этот он ведь лучше… и тд.
                                                Кто хоть немного почитал о модэксе и вник в азы эту сборку (а может быть и лучше) на коленке за день соберет.
                                                А кто не в теме тот будет засыпать примитивными вопросами — «тут куда, а тут не робит» и тд. ИМХО.
                                                1. Илья 05 августа 2016, 09:49 # +1
                                                  Ну не скажи, мне удобнее поставить сборку, где уже настроена временная зона, где настроен 24-часовой формат времени, чпу, паттерн чпу, карта сайта, страницы ошибок, два-три компонента (тот же pdotools), уже добавленный modstore.

                                                  Настройка и установка этого всего завсегда сэкономит минимум 30 минут, а то и час.
                                                  Ну а дальше да, конструктор.
                                                  1. Андрей П 05 августа 2016, 10:55 # +1
                                                    Что-то мне подсказывает, что собранная сумма, пока подтверждает слова уважаемого @ndrew. Хотя сам я, именно на готовой сборке, что здесь, в сообществе публиковалась, учился. Ведь для новичка дело не только в компонентах и как они обвязаны, а в правильном построении, чтобы не плодить лишнего кода.
                                                    1. Alexander V 05 августа 2016, 15:35 # 0
                                                      Вся первоначальная настройка у каждого своя. К набору обязательных приложений это тоже относится.
                                                    2. Alexander V 05 августа 2016, 15:58 # 0
                                                      Котироваться будут. Но только среди начинающих и желательно бесплатно.
                                                      1. Илья Уткин 05 августа 2016, 16:00 # 0
                                                        Так эта сборка и будет бесплатной. Надо только один раз собрать сумму
                                                        1. Alexander V 05 августа 2016, 16:06 # 0
                                                          Надеюсь соберешь. Честно говоря, все эти донейты и краудфаундинги так себе решение.
                                                          1. Alexander V 05 августа 2016, 16:11 # 0
                                                            Ведь сейчас у тебя по-сути донейт. Есть, кто поддержит, но это единицы. Остальные засухарились и жду, когда накопится. Есть люди, которые не прочь купить например за 500 руб. Вот он и будет сидеть ждать, когда наберете. Какой ему смысл донейта в то, чего нет.
                                                            p.s. С последним погорячился, ведь перечисливший получает сборку, но сути это не отменяет.
                                                            1. Илья Уткин 05 августа 2016, 16:15 # +1
                                                              А ему я на почту скину пакет, если сумма не соберётся. Я думаю, к концу следующей недели подведу итог. Всем задонатившим скину на почту пакет и исходники.
                                                              1. Alexander V 05 августа 2016, 16:22 # +1
                                                                Выше в комментарии я предлагал вариант инсталятора. Вот это будет интересное решение. Получится, что-то вроде решений Битрикс.
                                                                1. Илья 05 августа 2016, 19:54 # 0
                                                                  Не знаю как у битрикса.

                                                                  Думаю, можно будет сделать инсталятор, в который и выкачает и установит нужную версию и нужные пакеты сразу поставит и внесёт нужные настройки.
                                                                  1. @ndrew 06 августа 2016, 04:08 # 0
                                                                    Ага еще дизайн привяжет… и губу закатает. )))
                                                                      1. Владимир 06 августа 2016, 15:54 # 0
                                                                        Готовые решения- залог популярности
                                                                        1. @ndrew 06 августа 2016, 17:09 # 0
                                                                          Ну так а что Вы хотите, в среднем только такие сборки по 20к руб. + минимальная редакция «малый бизнес» = 52к руб. и с редакцией «бизнес» = 85к руб.

                                                                          И это хозяйство еще надо материалами заполнить и тд.
                                                                          1. Alexander V 06 августа 2016, 17:20 # 0
                                                                            Я ничего не хочу. Я просто привел пример реализации. Кстати лицензии никто в здравом уме не покупает за полную стоимость. 40-50% скидка есть у любого разработчика.
                                                                        2. Владимир 06 августа 2016, 06:53 # 0
                                                                          (для Alexander V ) Инсталятор хорошо, но Илья же пишет что отказался в пользу расширения устанавливаемого на рабочий сайт ни чего не затирая. И в этом есть очень рациональное зерно.
                                                            2. Купчинский Михаил 05 августа 2016, 17:48 # +1
                                                              Отправил тоже немного денежек)
                                                              1. Игорь 06 августа 2016, 12:57 # +1
                                                                Добавил немного)
                                                              2. Галич Сергей 06 августа 2016, 13:17 # +1
                                                                tvs_below_content 1

                                                                на мой взгляд упрощает редактирование страниц
                                                                1. Роман Викторович Зайцев 07 августа 2016, 21:25 # +1
                                                                  Отправил немного денежек.
                                                                  1. ck 08 августа 2016, 12:42 # +1
                                                                    Также поучаствовал.
                                                                    1. Илья Уткин 08 августа 2016, 14:38 # +3
                                                                      Сбор средств успешно завершён. Статью обновил. Исходники открыты. Всем большое спасибо.
                                                                      1. Alex Lenk 08 августа 2016, 14:52 # +2
                                                                        Последние 300 рубликов мои :) извини что так мало
                                                                        1. Илья Уткин 08 августа 2016, 14:54 # +1
                                                                          Да, я понял. Это не мало. Каждый по чуть-чуть, вот и сумма набралась.
                                                                          1. Роман Садоян 08 августа 2016, 15:53 # +1
                                                                            Может имена героев оставить, пусть все видят, кто донатил?!
                                                                            1. Илья Уткин 08 августа 2016, 15:57 # +1
                                                                              Не все писали ники. Большинство указывало только электронную почту. Не думаю, что всем будет приятно, если их почту выставить в паблик. Как-то не подумал, действительно.
                                                                      2. Илья Уткин 08 августа 2016, 20:44 # 0
                                                                        Сборка уже в магазине https://modstore.pro/packages/sites-themes/siteextra
                                                                        1. Павлик Мышкин 09 августа 2016, 09:06 # 0
                                                                          Планируете добавить в сборку дополнительного пользователя в админке? Администратора сайта или редактора, у которого есть доступ к редактированию текстов и загрузке изображений.
                                                                          1. Илья Уткин 09 августа 2016, 09:49 # 0
                                                                            М-м-м… нет, не планирую. Может, кто-то сделает и поделится решением. Посмотрим
                                                                          2. Алексей Бгатов 09 августа 2016, 12:26 # 0
                                                                            Илья, здравствуйте.
                                                                            Планируете ли дорабатывать simpleUpdater?
                                                                            хотел попросить — добавьте пожалуйста в папку setup файл .htaccess со строкой RewriteEngine Off
                                                                            ибо кастомный хтакцесс с удалением слэшей не дает запустить установку.
                                                                            а так — очень удобный компонентик, заценил
                                                                            1. Иванов 04 сентября 2016, 22:17 # 0
                                                                              Илья! Ты великий человек!

                                                                              Подпись: Паша Устюгов из скайп чата.
                                                                              1. Илья Уткин 04 сентября 2016, 22:23 # +1
                                                                                Ой, да ладно, тут ничего такого особенного =)
                                                                              2. Павел 11 октября 2016, 18:09 # 0
                                                                                Подскажите кто-нибудь одну вещь.
                                                                                Как при создании ТВ указать, для каких шаблонов она доступна?
                                                                                1. Павел 11 октября 2016, 20:13 # +3
                                                                                  Сам спросил, сам и отвечаю)) Может кому пригодится.

                                                                                  В общем правим резолвер tvs. Он находится здесь: siteExtra-master/_build/resolvers/resolve.tvs.php

                                                                                  В общем меняем вызовы тивишек:

                                                                                          $name = 'address';
                                                                                          if (!$tv = $modx->getObject('modTemplateVar', array('name' => $name))) {
                                                                                              $tv = $modx->newObject('modTemplateVar');
                                                                                          }
                                                                                          $tv->fromArray(array(
                                                                                              'name'         => $name,
                                                                                              'type'         => 'text',
                                                                                              'caption'      => 'Адрес',
                                                                                              'category'     => $cat_id
                                                                                          ));
                                                                                          $tv->save();
                                                                                          $tvs[] = $tv->get('id');
                                                                                          
                                                                                          $name = 'phone';
                                                                                          if (!$tv = $modx->getObject('modTemplateVar', array('name' => $name))) {
                                                                                              $tv = $modx->newObject('modTemplateVar');
                                                                                          }
                                                                                          $tv->fromArray(array(
                                                                                              'name'         => $name,
                                                                                              'type'         => 'text',
                                                                                              'caption'      => 'Телефон',
                                                                                              'category'     => $cat_id
                                                                                          ));
                                                                                          $tv->save();
                                                                                          $tvs[] = $tv->get('id');
                                                                                  

                                                                                  На:

                                                                                          $name = 'address';
                                                                                          $tempID = '1,2'; // Пишем id наших шаблонов
                                                                                          if (!$tv = $modx->getObject('modTemplateVar', array('name' => $name))) {
                                                                                              $tv = $modx->newObject('modTemplateVar');
                                                                                          }
                                                                                          $tv->fromArray(array(
                                                                                              'name'         => $name,
                                                                                              'type'         => 'text',
                                                                                              'caption'      => 'Адрес',
                                                                                              'category'     => $cat_id
                                                                                          ));
                                                                                          $tv->save();
                                                                                          $tvs[] = $tv->get('id').'-'.$tempID;
                                                                                          
                                                                                          $name = 'phone';
                                                                                          $tempID = '2';  // Пишем id наших шаблонов
                                                                                          if (!$tv = $modx->getObject('modTemplateVar', array('name' => $name))) {
                                                                                              $tv = $modx->newObject('modTemplateVar');
                                                                                          }
                                                                                          $tv->fromArray(array(
                                                                                              'name'         => $name,
                                                                                              'type'         => 'text',
                                                                                              'caption'      => 'Телефон',
                                                                                              'category'     => $cat_id
                                                                                          ));
                                                                                          $tv->save();
                                                                                          $tvs[] = $tv->get('id').'-'.$tempID;
                                                                                  

                                                                                  Можно указать один шаблон, а можно несколько через запятую.

                                                                                  А также заменяем скрипт который записывает id этих шаблонов для тивишек.

                                                                                  Меняем:

                                                                                  foreach ($modx->getCollection('modTemplate') as $template) {
                                                                                              $templateId = $template->id;
                                                                                              foreach ($tvs as $k => $tvid) {
                                                                                                  if (!$tvt = $modx->getObject('modTemplateVarTemplate', array('tmplvarid' => $tvid, 'templateid' => $templateId))) {
                                                                                                      $record = array('tmplvarid' => $tvid, 'templateid' => $templateId);
                                                                                                      $keys = array_keys($record);
                                                                                                      $fields = '`' . implode('`,`', $keys) . '`';
                                                                                                      $placeholders = substr(str_repeat('?,', count($keys)), 0, -1);
                                                                                                      $sql = "INSERT INTO {$modx->getTableName('modTemplateVarTemplate')} ({$fields}) VALUES ({$placeholders});";
                                                                                                      $modx->prepare($sql)->execute(array_values($record));
                                                                                                  }
                                                                                              }
                                                                                          }
                                                                                  

                                                                                  На:

                                                                                  foreach ($modx->getCollection('modTemplate') as $template) {
                                                                                              $templateId = $template->id;
                                                                                              foreach ($tvs as $k => $tv) {
                                                                                                  $tvOpt = explode("-", $tv);
                                                                                                  $tvid = $tvOpt[0];
                                                                                                  $tvTemps = explode(",",$tvOpt[1]);
                                                                                                  
                                                                                                  foreach ($tvTemps as $tvTemp){
                                                                                                      if($templateId == $tvTemp){
                                                                                                          if (!$tvt = $modx->getObject('modTemplateVarTemplate', array('tmplvarid' => $tvid, 'templateid' => $templateId))) {
                                                                                                              $record = array('tmplvarid' => $tvid, 'templateid' => $templateId);
                                                                                                              $keys = array_keys($record);
                                                                                                              $fields = '`' . implode('`,`', $keys) . '`';
                                                                                                              $placeholders = substr(str_repeat('?,', count($keys)), 0, -1);
                                                                                                              $sql = "INSERT INTO {$modx->getTableName('modTemplateVarTemplate')} ({$fields}) VALUES ({$placeholders});";
                                                                                                              $modx->prepare($sql)->execute(array_values($record));
                                                                                                          }
                                                                                                      }
                                                                                                  }
                                                                                              }
                                                                                          }
                                                                                  

                                                                                  Скажу, что этого очень не хватало. Думаю, что Илья может доработать это дело получше)). А вообще хотелось бы увидеть подобный функционал в этом пакете.
                                                                                  1. Илья Уткин 12 октября 2016, 08:29 # 0
                                                                                    Ну, в сборке ТВ-шки прицепляются ко всем шаблонам (вроде). Делать настройку в виде интерфейса сложновато.

                                                                                    А если делать свою сборку, то вариант выше — вполне подойдёт. Мне надо в сборке добавить чекбоксы — какие чанки создавать, какие дополнения устанавливать. Вот это будет удобно, но никак руки не дойдут)))
                                                                                    1. Павел 12 октября 2016, 13:48 # 0
                                                                                      Ещё бы разобраться, как новый источник файлов создавать… ну и права желательно… и вообще круто будет)
                                                                                      1. Илья Уткин 12 октября 2016, 16:09 # 0
                                                                                        Вот тут и источник создаётся, и пользователь с ограниченным доступом: modx.pro/solutions/10026-script-to-create-user-defined/
                                                                                        1. Павел 13 октября 2016, 19:01 # 0
                                                                                          Сколько пробовал, не получается. Пробовал новый резолвер создать, в него всё это дело записал.
                                                                                          Установка пакета не завершается, хотя скрипт всё выполняет, что от него требуется, Илья, не подскажешь, почему так, как более опытный)

                                                                                          <?php
                                                                                          
                                                                                          /** @var $modx modX */
                                                                                          if (!$modx = $object->xpdo AND !$object->xpdo instanceof modX) {
                                                                                              return true;
                                                                                          }
                                                                                          
                                                                                          /** @var $options */
                                                                                          switch ($options[xPDOTransport::PACKAGE_ACTION]) {
                                                                                              case xPDOTransport::ACTION_INSTALL:
                                                                                              case xPDOTransport::ACTION_UPGRADE:
                                                                                          	// Скрипт вставлял здесь
                                                                                                  break;
                                                                                              case xPDOTransport::ACTION_UNINSTALL:
                                                                                                  break;
                                                                                          }
                                                                                          
                                                                                          return true;
                                                                                          
                                                                                          
                                                                                          1. Илья Уткин 14 октября 2016, 08:18 # 0
                                                                                            Попробуй убрать все $modx->setLogLevel и $modx->log — может, это прерывает его работу…
                                                                                            1. Павел 14 октября 2016, 13:50 # 0
                                                                                              Эффект тот же, не помогает. Даже пробовал сниппет создать с этим скриптом и его запустить через runsnippet — та же ситуация.

                                                                                              Даже попробовал создать только шаблон политики доступа, всё создалось, но опять виснет.

                                                                                              <?php
                                                                                              
                                                                                              /** @var $modx modX */
                                                                                              if (!$modx = $object->xpdo AND !$object->xpdo instanceof modX) {
                                                                                                  return true;
                                                                                              }
                                                                                              
                                                                                              /** @var $options */
                                                                                              switch ($options[xPDOTransport::PACKAGE_ACTION]) {
                                                                                                  case xPDOTransport::ACTION_INSTALL:
                                                                                                  case xPDOTransport::ACTION_UPGRADE:
                                                                                              
                                                                                                      $NAME = 'manager';
                                                                                                      $groupName = $NAME;                     // Название группы пользователей
                                                                                                      $mediaSourceName = $NAME;               // Название медиа источника
                                                                                                      $roleAuthority = 9;                     // Ранг роли
                                                                                                      $mediaSourcePath = 'assets/uploads/';   // Путь для медиа источника, если указать пустую строку медиа источник создаваться не будет
                                                                                                      $bindMediaSourceTv = true;              // Привязывать ли источник файлов ко всем tv. Предыдущие источники будут отвязаны
                                                                                                      $contextKey = 'web';
                                                                                                      $users = array(
                                                                                                          $NAME => array(
                                                                                                              'username' => $NAME,
                                                                                                              'password' => $NAME,            // min 6 символов
                                                                                                              'email' => '',
                                                                                                          ),
                                                                                                      );
                                                                                              
                                                                                                      $accessPolicy = array(
                                                                                                          'access_permissions' => 0, //Страницы и действия, связанные с правами доступа.
                                                                                                          'dashboards' => 0, //Просмотр и управление панелями.
                                                                                                          'element_tree' => 0, //Возможность просмотра дерева элементов в левой навигационной панели.
                                                                                                          'menu_reports' => 0, //Показывать в верхнем меню пункт «Отчёты».
                                                                                                          'menu_security' => 0, //Показывать в верхнем меню пункт «Безопасность».
                                                                                                          'menu_site' => 0, //Показывать в верхнем меню пункт «Сайт».
                                                                                                          'menu_system' => 0, //Показывать в верхнем меню пункт «Система».
                                                                                                          'menu_tools' => 0, //Показывать в верхнем меню пункт «Инструменты».
                                                                                                          'new_static_resource' => 0, //Создавать новые статичные ресурсы.
                                                                                                          'packages' => 0, //Использовать пакеты в системе управления пакетами.
                                                                                                          'remove_locks' => 0, //Удалять все блокировки на сайте.
                                                                                                          'settings' => 0, //Смотреть и редактировать системные настройки.
                                                                                                          'sources' => 0, //Управлять источниками файлов и типами источников файлов.
                                                                                                      );
                                                                                              
                                                                                                      //Создаем новый шаблон политики доступа на основании админавского
                                                                                              
                                                                                                      if ($templatePolicy = $modx->getObject('modAccessPolicyTemplate', array('name' => $NAME))) {
                                                                                                          $templatePolicyId = $templatePolicy->id;
                                                                                                      } else {
                                                                                                          $response = $modx->runProcessor('security/access/policy/template/duplicate', array(
                                                                                                              'id' => 1, // Administrator template id
                                                                                                          ));
                                                                                              
                                                                                                          $templatePolicyId = $response->getObject()['id'];
                                                                                              
                                                                                                          $response = $modx->runProcessor('security/access/policy/template/update', array(
                                                                                                              'id' => $templatePolicyId,
                                                                                                              'name' => $NAME,
                                                                                                          ));
                                                                                              
                                                                                                      }
                                                                                                      
                                                                                                      break;
                                                                                                  case xPDOTransport::ACTION_UNINSTALL:
                                                                                                      break;
                                                                                              }
                                                                                              
                                                                                              return true;
                                                                                              
                                                                                              
                                                                                              И что самое интересное, ошибок то нет…
                                                                                2. Егор 14 октября 2016, 06:07 # 0
                                                                                  Отличная сборка! Только вот вложенные URL почему-то не хотят работать.
                                                                                  1. Илья Уткин 14 октября 2016, 08:18 # 0
                                                                                    .htaccess переименован?
                                                                                    1. Егор 14 октября 2016, 10:00 # 0
                                                                                      Да, все дополнением переименовалось, проверил. На демо-сайте тоже s6158.h5.modhost.pro/spec-1.html вместо s6158.h5.modhost.pro/specialists/spec-1.html. И он, кстати, 500 ошибку выдает.
                                                                                      1. Илья Уткин 14 октября 2016, 17:48 # 0
                                                                                        Да, это глюк. Но для новых страниц всё должно быть нормально. Попробуйте создать нового специалиста.
                                                                                        1. Егор 14 октября 2016, 18:34 # 0
                                                                                          Спасибо! Да, действительно все заработало)
                                                                                  2. Василий Наумкин 29 октября 2016, 14:52 # +2
                                                                                    Плагин siteRedirect постоянно делает редирект, даже если сайт уже настроен по инструкции.

                                                                                    Меня в поддержке уже задолбали вот такими вопросами:
                                                                                    Сделал все по инструкции, но что-то ничего не работает.
                                                                                    При попытке перейти на поддомен из админки или по прямому адресу осуществляется редирект на главную в основном контексте.
                                                                                    Подозреваю, что это из-за правил сервера, там стоит перенаправление на один хост с https.
                                                                                    Но, я убирал это правило и даже давал время на всякий случай на сохранение настроек, но все равно, даже при попытке перейти на служебный домен s6xxx.modhost.pro осуществляется редирект на основной xxxx.ru
                                                                                    Можете помочь?

                                                                                    Подозреваю, мало кто из пользователей siteExtra знает о том, что них уже есть плагин с редиректом.
                                                                                    1. Илья Уткин 29 октября 2016, 15:35 # 0
                                                                                      Блин, да, косяк… надо его выключить по умолчанию. Как раз планировал заняться исправлением косяков в сборке.
                                                                                      1. Василий Наумкин 29 октября 2016, 17:15 # +1
                                                                                        Спасибо!
                                                                                        1. Илья Уткин 31 октября 2016, 09:19 # 0
                                                                                          Обновил, заодно поправил пару багов)
                                                                                    2. Павел 08 ноября 2016, 16:43 # 0
                                                                                      Подскажите пожалуйста… Возникла проблема с установкой пакетов… Бывают пакеты, у которых одинаковые названия. А устанавливается всё равно первый пакет, который репозитории… а нужно скачать второй, указание версии не помогает.



                                                                                       'ColorPicker' => '1.0.2-rc2',
                                                                                      
                                                                                      1. Илья Уткин 08 ноября 2016, 17:10 # 0
                                                                                        Хм… странная ситуация)) Варианта два.

                                                                                        1. Дописать в результатах поиска пакетов дополнительную проверку версии
                                                                                        2. Самостоятельно обновить нужный пакет в репозитории, чтобы у него дата обновления была более свежей.
                                                                                        1. Павел 08 ноября 2016, 17:32 # 0
                                                                                          Обновить компонент не получится, так как это репозиторий modx.com… Значит проверку только можно написать. А не подскажешь пожалуйста, как простенькую проверку сделать… а то не знаю, даже как тестить это дело))
                                                                                          1. Илья Уткин 08 ноября 2016, 17:36 # +1
                                                                                            			foreach ($foundPackages as $foundPackage) {
                                                                                                                            if ($foundPackage->name == 'ColorPicker' && $foundPackage->signature != 'colorpicker-1.0.2-rc2.transport') continue;
                                                                                            				/* @var modTransportPackage $foundPackage */
                                                                                            				if ($foundPackage->name == $packageName) {
                                                                                            1. Павел 08 ноября 2016, 18:00 # 0
                                                                                              Спасибо, но теперь он вообще ничего не устанавливает.
                                                                                              1. Илья Уткин 08 ноября 2016, 19:20 # 0
                                                                                                А если colorpicker-1.0.2-rc2? Без .transport
                                                                                                1. Павел 08 ноября 2016, 19:28 # 0
                                                                                                  Спасибо за помощь. Я сделал проверку на другой пакет, сейчас всё норм.
                                                                                                  if ($foundPackage->signature == 'colorpicker2-1.0-beta1') continue; // Временное решение
                                                                                                  
                                                                                      2. Иван 23 ноября 2016, 20:34 # -1
                                                                                        Установил сборку. Если создать редирект со СТРАНИЦА_1, на СТРАНИЦА_2, то редирект не срабатывает, а открывается страница 404. Разве это правильно? Думал проблема в автоматическом редиректе, взял его удалил и установил другой, но тоже самое происходит. Может быть я настройки где-то недосмотрел, подскажите пожалуйста как исправить.
                                                                                        1. Alex Ander 31 декабря 2016, 05:13 # 0
                                                                                          Огромное спасибо за сборку. Установил, все более-менее понятно.
                                                                                          Но на странице вывода специалистов блок с 1ым персонажем отображается больше соседних по размеру из-за того, что вместо установленной выводится дефолтная картинка-заглушка большего размера.
                                                                                          Если отредактировать ресурс и нажать сохранить, то блок выводится как надо, но после рефреша страницы снова картинка меняется на большую дефолтную.
                                                                                          Подскажите пожалуйста куда копать и в чем проблема?
                                                                                          1. Роман Б. 31 января 2017, 02:38 # 0
                                                                                            Разметка то сдвинута… Обратите внимание на ровнение панели меню, полосой над ним, краем телефонного номера в заголовке…
                                                                                            1. Илья Уткин 31 января 2017, 07:59 # +1
                                                                                              Да, элементу <nav> надо бы добавить класс row
                                                                                              1. Роман Б. 31 января 2017, 10:27 # 0
                                                                                                Итак, в чанке «menu», в первой строке:
                                                                                                <nav class="navbar navbar-default container">
                                                                                                
                                                                                                дописал:
                                                                                                <nav class="navbar navbar-default container row">
                                                                                                
                                                                                                Выровнялось.
                                                                                                Спасибо Илья.
                                                                                            2. Михаил 09 февраля 2017, 13:04 # 0
                                                                                              Поставил эту сборку… Прямо из коробки возникает вот такая ошибка.

                                                                                              Она не критична но всё равно не приятно(((.
                                                                                              1. Илья Уткин 09 февраля 2017, 13:56 # 0
                                                                                                Я тоже сталкивался с таким… пока не нашёл причину, времени особо не было разобраться… =((
                                                                                              2. Андрей П 19 марта 2017, 00:29 # 0
                                                                                                Скажите пожалуйста, будет ли сборка работать с https? И нужно ли будет в связи с этим вносить какие-нибудь изменения, кроме стандартных?
                                                                                                1. Илья Уткин 19 марта 2017, 08:46 # 0
                                                                                                  Да, будет работать, никаких изменений вносить не нужно.
                                                                                                2. Михаил 27 марта 2017, 15:24 # 0
                                                                                                  Исправьте пожайлуста этот баГ ((( У меня уже два заказчика жалуются на него…
                                                                                                  1. Илья Уткин 27 марта 2017, 15:31 # 0
                                                                                                    Закомментируйте строчки 552-555 в файле core/model/modx/sources/modfilemediasource.class.php. В чём дело я ещё не разбирался, но это должно помочь.
                                                                                                  2. Михаил 27 марта 2017, 15:29 # 0
                                                                                                    Скажите пожалуйста где искать параметр fastuploadtv.translit ????
                                                                                                    1. Илья Уткин 27 марта 2017, 15:33 # 0
                                                                                                      В системных настройках:

                                                                                                    2. Михаил 27 марта 2017, 15:32 # 0
                                                                                                      Вот этот параметр нада отключить что бы загрузка файлов была нормально не барахлила… И вообще желательно удалить этот компонет он бажный какой то…
                                                                                                      fastuploadtv.translit
                                                                                                      1. Илья Уткин 27 марта 2017, 15:32 # 0
                                                                                                        del
                                                                                                        1. Михаил 27 марта 2017, 15:35 # 0
                                                                                                          Есть аналог компонента filetranslit называется работает совместно с translit
                                                                                                          1. Михаил 27 марта 2017, 15:37 # 0
                                                                                                            Илья обновите пожалуйсто сборочку)))) я ей часто пользуюсь))) Оч. удобная
                                                                                                            1. Илья Уткин 27 марта 2017, 15:38 # +1
                                                                                                              Удалять компонент я не буду. Вы можете создать свою сборку — вот инструкция: modx.pro/solutions/9491-how-to-create-a-build-for-modx/
                                                                                                              1. Михаил 27 марта 2017, 15:40 # 0
                                                                                                                Ок СПС
                                                                                                            2. Андрей П 22 апреля 2017, 13:02 # +1
                                                                                                              Илья, сборка 1.3.1 в MODX 2.5.7 закачивается, но установить нельзя. Нажатие на кнопку «Установить» к действию не приводит.
                                                                                                              pdoTools при этом и закачивается и устанавливается нормально

                                                                                                              На другом проекте успешно обновляется со старой версии. Если же удалить пакет, ситуация повторяется
                                                                                                              1. Никита 25 апреля 2017, 15:13 # 0
                                                                                                                Присоединяюсь. Устанавливается только часть пакетов из сборки. Постоянные ошибки, возможно что-то я делаю неверно?
                                                                                                                1. Илья Уткин 25 апреля 2017, 15:16 # +1
                                                                                                                  У меня не было времени потестировать с новой версией MODX. Попробуй сначала вручную установить все пакеты из списка, а потом попробовать запустить установку сборки.
                                                                                                                  1. Никита 25 апреля 2017, 15:17 # 0
                                                                                                                    Хорошо, сейчас попробую.
                                                                                                                    1. Никита 25 апреля 2017, 15:50 # 0
                                                                                                                      Установил все пакеты и потом установил сам пакет сборки.

                                                                                                                      Вроде как все хорошо.
                                                                                                                2. Олег 25 апреля 2017, 19:00 # 0
                                                                                                                  Спасибо!
                                                                                                                  Поставил — реально сокращает время старта проекта.
                                                                                                                  1. Aleksandr Huz 30 апреля 2017, 20:55 # 0
                                                                                                                    Илья, привет.
                                                                                                                    Подскажи, пожалуйста, как для чанков поставить категорию. Сейчас они все в одной категории.

                                                                                                                    Вот что я написал в файле transport.chunks.php, но это не работает:
                                                                                                                    $tmp = array(
                                                                                                                        'head' => array(
                                                                                                                            'file' => 'head',
                                                                                                                            'description' => '',
                                                                                                                            'category' => 'base'
                                                                                                                        )
                                                                                                                    );
                                                                                                                    
                                                                                                                    $setted = false;
                                                                                                                    foreach ($tmp as $k => $v) {
                                                                                                                        
                                                                                                                        // create category
                                                                                                                        $ifCategory = $this->modx->getObject( 'modCategory', array('category' => $v['category']) );
                                                                                                                        if( $ifCategory == '' ){
                                                                                                                          $category = $this->modx->newObject('modCategory');
                                                                                                                          $category->set('category', $v['category']);
                                                                                                                          $category->save();
                                                                                                                          $id_category = $category->get('id'); 
                                                                                                                        } else {
                                                                                                                          $id_category = $ifCategory->get('id');
                                                                                                                        }
                                                                                                                    
                                                                                                                        /** @var modchunk $chunk */
                                                                                                                        $chunk = $this->modx->newObject('modChunk');
                                                                                                                        $chunk->fromArray(array(
                                                                                                                            'name' => $k,
                                                                                                                            'category' => $id_category,
                                                                                                                            'description' => @$v['description'],
                                                                                                                            'content' => file_get_contents($this->config['PACKAGE_ROOT'] . 'core/components/'.strtolower($this->config['PACKAGE_NAME']).'/elements/chunks/chunk.' . $v['file'] . '.html'),
                                                                                                                            'static' => false,
                                                                                                                        ), '', true, true);
                                                                                                                        $chunks[] = $chunk;
                                                                                                                    }
                                                                                                                    unset($tmp, $properties);
                                                                                                                     
                                                                                                                    1. Aleksandr Huz 27 мая 2017, 16:36 # 0
                                                                                                                      Илья, компонент не устанавливается на php 7.1.2
                                                                                                                      1. Alex Lenk 07 июня 2017, 20:34 # 0
                                                                                                                        Илья, пакет 1.3.1-beta не устанавливается на версию MODX Revolution 2.5.7-pl
                                                                                                                        Вот ошибка joxi.ru/YmEkgL7Cg1qjA6
                                                                                                                        установил версию 1.2.2 все отлично, попробовал из под нее обновить до последней версии 1.3.1-beta ничего не вышло, точно такая же ошибка.
                                                                                                                        1. Илья Уткин 15 июня 2017, 21:02 # 0
                                                                                                                          Поправил. Можно пробовать 1.3.2-beta
                                                                                                                        2. Павел Ершов 01 августа 2017, 18:57 # 0
                                                                                                                          Прошу подсказать по поводу счетчиков яндекс метрики, гугла и колтача

                                                                                                                          Если вставлять, то отрубаются скрипты, в шапке висит что то типа

                                                                                                                          {var $site_folder = $_modx->config.site_folder_name} {var $assets = $_modx->config.assets_url} {'!MinifyX' | snippet: [ 'minifyCss' => 1, 'minifyJs' => 1, 'cssSources' => $assets ~ 'components/' ~ $site_folder ~ '/fancybox/source/jquery.fancybox.css', 'jsSources' => $assets ~ 'components/' ~ $site_folder ~ '/fancybox/source/jquery.fancybox.pack.js,' ~ $assets ~ 'components/' ~ $site_folder ~ '/web/js/script.js,' ]} {$_modx->getPlaceholder('MinifyX.css')}

                                                                                                                          я не программист, но мне важно это исправить. Заранее спасибо
                                                                                                                          1. Илья Уткин 02 августа 2017, 06:55 # +2
                                                                                                                            В кодах счётчиков поставьте пробелы перед и после фигурных скобок. На них «спотыкается» парсер.

                                                                                                                            //                                                      		
                                                                                                                            1. Павел Ершов 02 августа 2017, 09:40 # 0
                                                                                                                              Илья, огромное спасибо!
                                                                                                                          2. Павел Ершов 21 августа 2017, 11:53 # 0
                                                                                                                            Прошу помощи
                                                                                                                            Появилась проблема
                                                                                                                            Идем по пунктам меню

                                                                                                                            site.ru/o-kompanii
                                                                                                                            site.ru/contacti

                                                                                                                            Идем в подраздел со вложенными страницами site.ru/uslugi/

                                                                                                                            Если после этого переходим в другие пункты, то наблюдаем 404 и соответственно урлы

                                                                                                                            site.ru/uslugi/o-kompanii
                                                                                                                            site.ru/uslugi/contacti

                                                                                                                            Проблемы в htaccess?

                                                                                                                            Заранее спасибо за помощь
                                                                                                                            1. Сергей Малышев 08 сентября 2017, 14:45 # 0
                                                                                                                              Сниппет Articles пишет ошибку кэширования в лог файл. Файл кэша у меня 36.cache.php начинается так:
                                                                                                                              <?php  return '/**
                                                                                                                               * Articles
                                                                                                                               *
                                                                                                                               * Copyright 2011-12 by Shaun McCormick <shaun+articles@modx.com>
                                                                                                                              т.е. при попытке создать кэш-файл в начало файла почему-то пишется
                                                                                                                              <?php  return '
                                                                                                                              Пришлось сниппет удалить и не пользоваться им.
                                                                                                                              1. Андрей 09 сентября 2017, 02:25 # 0
                                                                                                                                А откуда взялся Articles? Вобщем то замена ему это Collections.
                                                                                                                              2. Сергей Малышев 09 сентября 2017, 11:35 # 0
                                                                                                                                Разобрался. Действительно сборка не при чем. При создании сайта грузил еще компоненты и загрузил Articles. Потом выяснилось, что компонент не Ice.
                                                                                                                                По сборке: понравилась тем, что по ней можно изучать те решения, о которых раньше не подозревал.
                                                                                                                                Не плохо бы включить в сборку:
                                                                                                                                SEO Tab
                                                                                                                                SEO Pro
                                                                                                                                modDevTools
                                                                                                                                Batcher
                                                                                                                                BreadCrumb
                                                                                                                                controlErrorLog
                                                                                                                                LogPageNotFound
                                                                                                                                Tickets
                                                                                                                                YandexMap

                                                                                                                                А дальше выбирайте галочками при установке то, что вам нужно.
                                                                                                                                1. Владимир 09 сентября 2017, 11:52 # +1
                                                                                                                                  Вот еще попробуйте modstore.pro/packages/utilities/modmysettings, не идеальна, но ее можно и переделать так же под себя
                                                                                                                                  BreadCrumb
                                                                                                                                  включить, вы пишете, а зачем он вам? Если вы используете pdoTools, то в этом «швейцарском ножике» все уже есть, собственно и SEO Tab вам вряд ли тогда к месту, так как pdoSitemap с ним не дружит (что бы оттуда брать приоритеты и т.п.), а у pdoSitemap недостатков в общем нет, что б еще сниппет от SEO Tab использовать для карты сайта. Это, конечно, все только личное мое мнение.
                                                                                                                                  1. Сергей Малышев 09 сентября 2017, 12:34 # 0
                                                                                                                                    Насчет BreadCrumb согласен.
                                                                                                                                    Вместо pdoSitemap использовал StercSeoSiteMap. pdoSitemap действительно не заработал.
                                                                                                                                    Однако от SEO Tab отказываться не собираюсь, так как закладки позволяют настраивать каждую страницу как мне нужно.
                                                                                                                                Вы должны авторизоваться, чтобы оставлять комментарии.