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

Под катом более подробно о том, что можно получить при установке сборки.
После установки создаётся шаблон site. Он проставляется у главной страницы сайта и указывается как шаблон по умолчанию. В шаблоне подключен Bootstrap и FancyBox.
У меня никогда не было такого, чтобы не пригодилось дополнительное поле для прикрепления картинки к странице. Поэтому сборка создаёт ТВ img с типом FastUploadTV — для удобной загрузки изображений.
Часто телефон, адрес, электронную почту выносят в настройки системы или контекста. Я раньше использовал ClientConfig. Но со временем я понял, что эти поля логично искать на странице «Контакты». Поэтому в сборке я решил создать ТВ-поля для этих трёх параметров. Эти поля выводятся в админке при редактировании контактов.
ms2Gallery — платный компонент, поэтому в сборке для реализации галереи я использовал MIGX.
На странице прописан вывод дочерних ресурсов (например, новостей или отзывов). Отображение дочерних ресурсов можно отключить, убрав соответствующую галочку при редактировании ресурса.
http://s6158.h5.modhost.pro/manager/
Пользователь: s6158
Пароль: nXsvSB6trWfm
Изначально я хотел нанять дизайнера и сделать платный компонент из этой сборки. Но вчера Василий начал использовать очень интересную схему краудфандинга. Я хочу, чтобы эта сборка распространялась свободно, и каждый разработчик мог её использовать.
Но время, потраченное на её создание, мне хочется компенсировать. Так что все желающие получить сборку могут перечислить мне любую сумму через форму на сайте. Когда наберётся сумма в 10 000 руб., сборка появится в открытом доступе. Кроме того, будет открыт репозиторий на GitHub, чтобы каждый мог настроить сборку под себя.
Обязательно указывайте в примечании свою электронную почту, чтобы я мог связаться с вами, если сбор средств не удастся.
====================================================================== 10 000 руб.
UPD. После окончания сбора не только исходники будут размещены в открытом доступе, но и появится инструкция — как на основании этих исходников создать свою сборку.
UPD 2. Сбор средств завершён. Всем спасибо.
Исходники сборки доступны на GitHub: github.com/ilyautkin/siteExtra
Сборка доступна для установки из репозитория modstore.pro: siteExtra

Под катом более подробно о том, что можно получить при установке сборки.
Список устанавливаемых дополнений
- 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
Комментарии: 175
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Ничего не мешает установить pThumb и поменять вызовы на него.
Отправил.
Да и вообще зачем нужна сборка без минишопа?!
А те кто не в теме без вашей же помощи (наверняка платной) не разберется что бы все наладить. Умно ;) Вангую и мне кучу минусов )))
PS Люди всегда рады халяве, а как кинуть монетку в копилку разработчиков — так нет, увы. Бесплатно было бы — качали бы аж шум бы стоял и ставили бы Илье плюсики, как и с новым Тикетс и т.п.
Почему так?
И в сборке дизайн — не главное. Главное — набор готовых решений.
Для человека, который первый раз видит MODX важно содержание, а не внешний вид, который можно сделать любым.
Новичку как раз не эта сборка нужна, наоборот — чистый modx и вперед.
Но это только мое субъективное мнение и оно не в счет.
Объективно:
Никому не мешает, может кому то пригодится и действительно принесет пользу в его задаче
Опасливо:
Про деловых_мэнов, которым нужен инструмент для делинга (бизнессинга) пускай сами определят: нанять и заплатить или самому слепить (вон сборка есть), ну это так, на случай комментов от деловых_мэнов… )
Но если нужно все под себя настроить, то лучше использовать парочку скриптов, описанных здесь.
Для установки дополнений:
gist.githubusercontent.com/ig0r74/80c27500e9c28d1261d3/raw/fbf095e0be76f84ee103775a2ba773695738f643/packages.php
Для настроек, TV, чанков и т.д.: gist.githubusercontent.com/ig0r74/722b2a14d57ca100d906/raw/9daf4e3f847a9be58239729cc27fc057db34304f/settings.php
Антон Левицs6158.h5.modhost.pro/robots.txt
Это нормально что в роботс идет скрипт хвостом от frontendmanager?
Антон ЛевицКстати, интересный момент с таблицей транлитизации для translit. В идеале, сделать транслит по правилам яндекса. Может у кого-то есть таблица и настройки вырезаемых символов?
Насколько я помню, в таблице по умолчанию не так много расхождений. Основная задача всякие спецсимволы вырезать или заменять на "-".
Парочку вообще заменить надо.
Очень был бы уместен на Modhost.pro конструктор сборок, что бы 1) создавать свои конфигурации и хранить их в личном кабинете, в конфигурациях выбирать расширения, системные настройки, часто используемые ресурсы (404, сайтмап, роботс и т.п.), возможно, дополнять лексиконы, может быть создавать некий необходимый набор тивишек, но мне видится обязательным в сборке только расширения и системные настройки с ресурсами, а остальное может как раз быть с отдельном пакете, так может быть более гибко, ну и 2), раз уж я говорю применительно к Modhost.pro, это выбор сохраненной конфигурации при создании нового сайта на аккаунте. Да, можно и как платную услугу, о халяве я не мечтаю.
А вот такой пакет как у вас, Илья, именно как дополняющий и корректирующий то, что в конструкторе не предусмотреть…
Вот. Размечтался :)
В сборке ТВ-шки привязываются к шаблону, для ресурсов создаются правила кастомизации, чтобы клиенту потом было удобнее пользоваться, в шаблоне уже готовы типовые выводы для дочерних ресурсов, правятся файлы компонентов FastUpload и Translit.
Это нужно, конечно, далеко не всем, но в конструкторе, каким бы он ни был продвинутым, такие изменения будет сложно прописать.
После того, как соберётся сумма, я размещу исходники на гитхабе — вы сможете лишнее удалить, что-то исправить, а что-то добавить — и сделать свою сборку. В этом весь смысл.
CKEditor — Тина удобнее
Console — случаев много?
FastUploadTV — чем удобнее?
VersionX — много мусора в базе
AjaxForm — без настройки форм не взлетит, либо надо сразу чанки с настроенной формой.
MinifyX — объединит что, 1-2 файла вашей сборки?
tagElementPlugin — пользовался сам несколько раз и всё.
frontendManager — на вкус и цвет, но мне не понравился.
У меня много, да
А есть какая-то альтернатива?
Мне пару раз это дополнение сэкономило много времени. Я готов мириться с мусором. Но опять же, в своей сборке можно будет это дополнение удалить.
В сборке как раз чанки с настроенной формой. Даже сообщение об успешной отправке показывается во всплывающем окне
Так поверх сборки нужно свою вёрстку натягивать, чтобы готовый сайт получился. Тут MinifyX и пригодится.
Точно так же — можно не пользоваться, а в своей сборке можно будет и удалить.
Если бы туда ещё и системные настройки изменяемые например. И остальное… Эх, размечтался вслух...
Да, визуальный установщик с галочками будет бомбой!
Я использую свои сборки для создания (не сочтите за рекламу), но в них есть свои недостатки.
Собираю vapor_ом, и одна из проблем это после установки на чистый Modx приходится накатывать обновление modx (некоторые компоненты не корректно устанавливаются). Хоть это и не сильно критично, но все же хотелось без этого. например вот
Вообще было бы здорово сделать одну универсальную, то есть. При установки будет спрашивать магазин у тебя или визитка, ну и в зависимости от этого будет устанавливать нужные компоненты.
Хотя на мой взгляд, установка компонентов это не самое критичное. Больше всего времени уходит на настройку (системные настройки, группы пользователей и т.д) а сами компоненты можно и самому по быстрому накатить.
p.s. Сервису сообщил об ошибке
Логин-пароль можно в личку.
Я хотел закинуть свои пять копеек для этой сборки.
Форма оплаты с сайта Ильи (https://ilyaut.ru/pay/)
Смысл был в том, чтобы Единая касса задала у нас тут вопрос, чего это у неё не работает — и дала логины пароли, чтобы мы ей помогли.
Не обращай внимания, в общем.
Мне больше интересна не сборка, а как она создавалась.
А шрифт в UPD мелковат, не заметят кто уже читал, глаз же «замыливается»
Да, могу согласиться в том, что контакты разумней искать на странице контактов, но есть еще такие вещи как слоган, логотип и прочая прочая ересь, и чтобы клиент потом не жаловался что ему нужна возможность смены (и не плодить в шаблонах выводы тв с разных ресурсов) удобней это дополнение. но тут дело вкуса
Но потом этот способ перестал работать — как-то изменился установщик, а я и не стал разбираться.
Я думаю, что пакет всё же удобнее. Его можно ставить не только на чистый сайт, но и на существующий уже — ресурсы не удаляются, существующие ТВ и шаблоны не затираются — я постарался всё сделать аккуратно.
Но дополнение себе запишу в список, спасибо.
по вопросу куда класть картинки: обычно указываю источник для конкретных мест (новости, каталог), остальным создаю еще одну папку куда все летим не нужное, обычно понимают что вот сюда клади, в эту папку. пока проблем не было, но вот про автоперевод у FastUploadTV не знал, попробую одной особе поставить. большое спасибо за ответ
Кто хоть немного почитал о модэксе и вник в азы эту сборку (а может быть и лучше) на коленке за день соберет.
А кто не в теме тот будет засыпать примитивными вопросами — «тут куда, а тут не робит» и тд. ИМХО.
Настройка и установка этого всего завсегда сэкономит минимум 30 минут, а то и час.
Ну а дальше да, конструктор.
p.s. С последним погорячился, ведь перечисливший получает сборку, но сути это не отменяет.
Думаю, можно будет сделать инсталятор, в который и выкачает и установит нужную версию и нужные пакеты сразу поставит и внесёт нужные настройки.
marketplace.1c-bitrix.ru/solutions/category/14/
И это хозяйство еще надо материалами заполнить и тд.
на мой взгляд упрощает редактирование страниц
Планируете ли дорабатывать simpleUpdater?
хотел попросить — добавьте пожалуйста в папку setup файл .htaccess со строкой RewriteEngine Off
ибо кастомный хтакцесс с удалением слэшей не дает запустить установку.
а так — очень удобный компонентик, заценил
Подпись: Паша Устюгов из скайп чата.
Как при создании ТВ указать, для каких шаблонов она доступна?
В общем правим резолвер tvs. Он находится здесь: siteExtra-master/_build/resolvers/resolve.tvs.php
В общем меняем вызовы тивишек:
На:
Можно указать один шаблон, а можно несколько через запятую.
А также заменяем скрипт который записывает id этих шаблонов для тивишек.
Меняем:
На:
Скажу, что этого очень не хватало. Думаю, что Илья может доработать это дело получше)). А вообще хотелось бы увидеть подобный функционал в этом пакете.
А если делать свою сборку, то вариант выше — вполне подойдёт. Мне надо в сборке добавить чекбоксы — какие чанки создавать, какие дополнения устанавливать. Вот это будет удобно, но никак руки не дойдут)))
Установка пакета не завершается, хотя скрипт всё выполняет, что от него требуется, Илья, не подскажешь, почему так, как более опытный)
Даже попробовал создать только шаблон политики доступа, всё создалось, но опять виснет.
И что самое интересное, ошибок то нет…
Меня в поддержке уже задолбали вот такими вопросами:
Подозреваю, мало кто из пользователей siteExtra знает о том, что них уже есть плагин с редиректом.
1. Дописать в результатах поиска пакетов дополнительную проверку версии
2. Самостоятельно обновить нужный пакет в репозитории, чтобы у него дата обновления была более свежей.
Но на странице вывода специалистов блок с 1ым персонажем отображается больше соседних по размеру из-за того, что вместо установленной выводится дефолтная картинка-заглушка большего размера.
Если отредактировать ресурс и нажать сохранить, то блок выводится как надо, но после рефреша страницы снова картинка меняется на большую дефолтную.
Подскажите пожалуйста куда копать и в чем проблема?
дописал:
Выровнялось.
Спасибо Илья.
Она не критична но всё равно не приятно(((.
fastuploadtv.translit
pdoTools при этом и закачивается и устанавливается нормально
На другом проекте успешно обновляется со старой версии. Если же удалить пакет, ситуация повторяется
Вроде как все хорошо.
Поставил — реально сокращает время старта проекта.
Подскажи, пожалуйста, как для чанков поставить категорию. Сейчас они все в одной категории.
Вот что я написал в файле transport.chunks.php, но это не работает:
Вот ошибка joxi.ru/YmEkgL7Cg1qjA6
установил версию 1.2.2 все отлично, попробовал из под нее обновить до последней версии 1.3.1-beta ничего не вышло, точно такая же ошибка.
Если вставлять, то отрубаются скрипты, в шапке висит что то типа
{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')}
я не программист, но мне важно это исправить. Заранее спасибо
Появилась проблема
Идем по пунктам меню
site.ru/o-kompanii
site.ru/contacti
Идем в подраздел со вложенными страницами site.ru/uslugi/
Если после этого переходим в другие пункты, то наблюдаем 404 и соответственно урлы
site.ru/uslugi/o-kompanii
site.ru/uslugi/contacti
Проблемы в htaccess?
Заранее спасибо за помощь
т.е. при попытке создать кэш-файл в начало файла почему-то пишется
Пришлось сниппет удалить и не пользоваться им.
По сборке: понравилась тем, что по ней можно изучать те решения, о которых раньше не подозревал.
Не плохо бы включить в сборку:
SEO Tab
SEO Pro
modDevTools
Batcher
BreadCrumb
controlErrorLog
LogPageNotFound
Tickets
YandexMap
А дальше выбирайте галочками при установке то, что вам нужно.
включить, вы пишете, а зачем он вам? Если вы используете pdoTools, то в этом «швейцарском ножике» все уже есть, собственно и SEO Tab вам вряд ли тогда к месту, так как pdoSitemap с ним не дружит (что бы оттуда брать приоритеты и т.п.), а у pdoSitemap недостатков в общем нет, что б еще сниппет от SEO Tab использовать для карты сайта. Это, конечно, все только личное мое мнение.
Вместо pdoSitemap использовал StercSeoSiteMap. pdoSitemap действительно не заработал.
Однако от SEO Tab отказываться не собираюсь, так как закладки позволяют настраивать каждую страницу как мне нужно.
Сносила и снова ставила, но эффект тот же joxi.ru/823eN9uJWRPkrO не могу понять почему :(
Также если вас не Затруднит подскажите как можно вывести галерею с пагинацией?
Как то нужно прикрутить pdoPage видимо?
Чтобы галерею вывести с пагинацией, воспользуйтесь сниппетом getImageList
Делаю так. принтуется массив. все поля есть но шаблон не ренедерится.
данная конструкция не отрабатывает видимо с феномом
создал чанк и перенес код туда все отрисовалось!
Спасибо.
Письмо не приходит на мою электронную почту. Пробовал даже напрямую прописать свой адрес электронной почты ({var $emailto = $emailto ?: 'myemail@mail.ru'}), всё равно ничего не приходит на почту.
При том на странице приходит уведомление, что «Сообщение отправлено».
Что нужно допиливать и где, подскажите пожалуйста?