Билдер сайтов на MODX из прототипов в Figma
Определимся сразу с вводными:
Существует набор варфреймов в FIGMA — это может быть 10 шапок, 5 футеров, 12 обложек и так далее. Из этих элементов мы собираем прототип, не исключая кастомизации. После разработки дизайна мы знаем, из каких примерно блоков состоит макет. Набор блоков, из которых состоит макет, мы передаем в компонент MODX, который в ответ нам отдает сборку с настроенными шаблонами, TV-полями и ресурсами в соотвествии с макетом. Остается доработать верстку и несобранный функционал.
КАКИЕ ЗАДАЧИ РЕШАЕТ БИЛДЕР
Задача 1: Стандартизация проектов
От проекта к проекту повторяются базовые настройки, метод организации контента и многое другое. Хочется, чтобы никто из участников процесса не изобретал каждый раз велосипед. Например, если сменился программист, ему не приходилось долго вчитываться в требование к сборке, а мне слышать: «я обычно делаю по-другому».
Задача 2: Увеличить скорость разработки сайта
Для меня как менеджера проектов увеличение скорости равно уменьшению себестоимости. При первых подсчетах (на пальцах) сборщик обещал до 70% экономии от общего бюджета на типовых сайтах. На данный момент лучший результат около 50%. Я понимаю, что данный расчет приблизительный и быстро посчитать выгоду невозможно.
Задача 3: Повысить качество
Это пункт перекликается с первым, в сборке уже есть много настроенных элементов, которые уже протестированы и исключают ошибку. Помимо стандартизации, при сборке мы можем генерировать чеклист для ручных тестов. По нему в конце может пробежаться тот-же контетщик и отметить что не так.
ИЗ ЧЕГО СОСТОИТ
Библиотека в FIGMA
Тут все просто. Я собрал самые популярные паттерны и пронумеровал их.
Библиотека модулей/чанков
Каждый блок из FIGMA мы сверстали (UIkit 3) и подключили к MODX, описали все возможные элементы, которые нужно создать для этого чанка, это может быть TV или системная настройка. Например вот так выглядет CENTER-HEAD-2:
И его код:
Компонент MODX
Компонент из коробки имеет 4 заготовленные структуры:
Внутри структуры мы можем настраивать вручную набор чанков (в перспективе забирать из FIGMA)
Результатом работы компонента является архив, который мы устанавливаем на чистый MODX и получаем дельно настроенную заготовку для разработки сайта, в которой есть:
MVP билдера показал, что можно сэкономить на повторяющихся задачах и работа была проделана не зря, но есть вероятность что данных подход работает только в моей реальности, поэтому жду в комментариях любые мысли, которые возникли у вас при чтении данного материала. Спасибо!)
Пример сборки.
P.S — Разработкой занимался Павел Гвоздь
UPD: modstore.pro/packages/sites-themes/prolektsitebuilder
- Я менеджер проектов с техническим бэкграундом. В статье будет мало кода, много концепций. Еще, так как я менеджер, мои проблемы отличаются от проблем программистов.
- Задача данного текста — это получить фидбэк от тех, кто в потенциале мог бы использовать данный инструмент в своих проектах или критику от тех, кому идея показалось бредовой.
- У проекта уже есть MVP, который решает свою задачу, что и сподвигло меня написать эту статью.
Существует набор варфреймов в FIGMA — это может быть 10 шапок, 5 футеров, 12 обложек и так далее. Из этих элементов мы собираем прототип, не исключая кастомизации. После разработки дизайна мы знаем, из каких примерно блоков состоит макет. Набор блоков, из которых состоит макет, мы передаем в компонент MODX, который в ответ нам отдает сборку с настроенными шаблонами, TV-полями и ресурсами в соотвествии с макетом. Остается доработать верстку и несобранный функционал.
КАКИЕ ЗАДАЧИ РЕШАЕТ БИЛДЕР
Задача 1: Стандартизация проектов
От проекта к проекту повторяются базовые настройки, метод организации контента и многое другое. Хочется, чтобы никто из участников процесса не изобретал каждый раз велосипед. Например, если сменился программист, ему не приходилось долго вчитываться в требование к сборке, а мне слышать: «я обычно делаю по-другому».
Задача 2: Увеличить скорость разработки сайта
Для меня как менеджера проектов увеличение скорости равно уменьшению себестоимости. При первых подсчетах (на пальцах) сборщик обещал до 70% экономии от общего бюджета на типовых сайтах. На данный момент лучший результат около 50%. Я понимаю, что данный расчет приблизительный и быстро посчитать выгоду невозможно.
Задача 3: Повысить качество
Это пункт перекликается с первым, в сборке уже есть много настроенных элементов, которые уже протестированы и исключают ошибку. Помимо стандартизации, при сборке мы можем генерировать чеклист для ручных тестов. По нему в конце может пробежаться тот-же контетщик и отметить что не так.
ИЗ ЧЕГО СОСТОИТ
Библиотека в FIGMA
Тут все просто. Я собрал самые популярные паттерны и пронумеровал их.
Библиотека модулей/чанков
Каждый блок из FIGMA мы сверстали (UIkit 3) и подключили к MODX, описали все возможные элементы, которые нужно создать для этого чанка, это может быть TV или системная настройка. Например вот так выглядет CENTER-HEAD-2:
И его код:
{$_modx->regClientCss('assets/template/css/center-head-2.css')}
{var $searchPage = $_modx->config.content_search_page}
{var $contactsPage = $_modx->config.content_contacts_page}
{var $comparePage = $_modx->config.content_compare_page}
<div class="center-header">
<div class="uk-container">
<div class="uk-grid uk-grid-medium uk-flex-middle uk-flex-between" uk-grid>
<div class="uk-width-auto@m">
<a class="logo" href="/">
<img src="{1 | resource: 'logo'}" alt="{$_modx->config.site_name}">
</a>
</div>
<div class="uk-width-auto@m">
<form class="search-block msearch2" action="" method="get" id="mse2_form">
<div class="search-block__field">
<input class="search-block__input" type="text" name="" placeholder="Поиск" value="">
<button class="search-block__btn" type="submit">
<span class="icon icon-loupe"></span>
</button>
</div>
</form>
</div>
<div class="uk-width-auto@m">
<a class="uk-button" href="#callbackForm" uk-toggle>Заказать звонок</a>
</div>
<div class="uk-width-auto@m">
<a href="tel:{$contactsPage | resource: 'phone'}" class="center-header__phone">{$contactsPage | resource: 'phone'}</a>
<div class="center-header__hours">{$contactsPage | resource: 'schedule'}</div>
</div>
<div class="uk-width-auto@m uk-text-right uk-flex-last@m">
{if $comparePage?}
<a class="center-header__elem-icon" href="{$compare| url}">
<span class="icon icon-compare"></span>
</a>
{/if}
{'!msMiniCart' | snippet: [
'tpl' => '@INLINE
{var $cartPage = $_modx->config.content_cart_page}
<a id="msMiniCart" class="center-header__basket" href="{$cartPage | url}">
<span class="icon icon-cart"></span>
<span class="ms2_total_count">{$total_count}</span>
<div class="center-header__basket_title">Корзина</div>
<div class="center-header__basket_status">{if $total_cost}<span class="ms2_total_cost">{$total_cost} {"ms2_frontend_currency" | lexicon} </span>{else}Пусто{/if}</div>
</a>'
]}
</div>
</div>
</div>
</div>
Компонент MODX
Компонент из коробки имеет 4 заготовленные структуры:
- Лендинг
- Визитка
- Корпоративный
- Интернет магазин
Внутри структуры мы можем настраивать вручную набор чанков (в перспективе забирать из FIGMA)
Результатом работы компонента является архив, который мы устанавливаем на чистый MODX и получаем дельно настроенную заготовку для разработки сайта, в которой есть:
- Базовая настройка, например ЧПУ
- Частичная настройка страниц, подключен слайдер, контакты, подключено меню в шапке, настроены формы обратной связи.
- Установлены бесплатные дополнения, pdoTools, translit и т.д.
MVP билдера показал, что можно сэкономить на повторяющихся задачах и работа была проделана не зря, но есть вероятность что данных подход работает только в моей реальности, поэтому жду в комментариях любые мысли, которые возникли у вас при чтении данного материала. Спасибо!)
Пример сборки.
P.S — Разработкой занимался Павел Гвоздь
UPD: modstore.pro/packages/sites-themes/prolektsitebuilder
Комментарии: 25
Интересная идея, хотелось бы увидеть реализацию!
Из предложений, может
Из предложений, может
Результатом работы компонента является архив:
заменить на настройку при установке компонента? Тогда архив не нужен
Спасибо, надеюсь комментарии сообщества приблизят к публичной версии.
Ты имеешь в виду, что мы манипулируем со сборкой на которой установлен компонент, а не скачиваем отдельный архив? Можно рассмотреть как один из вариантов развития проекта.
Ты имеешь в виду, что мы манипулируем со сборкой на которой установлен компонент, а не скачиваем отдельный архив? Можно рассмотреть как один из вариантов развития проекта.
Задумка интересная. За UiKit пламенный лайк, отличный инструмент
Гениальная мысль.
{$_modx->regClientCss('assets/template/css/center-head-2.css')}
А склеивать и минифицировать в один CSS не нужно?
Кстати перехватить ивент то можно, было бы желание
Отличная идея в рамках modx. Мне кажется на многих системах к этому все и идет, те же сборки на opencart или bitrix с выбором внешнего вида почти каждого элемента. А тут еще и верстка правильная и сам базовый шаблон интересный. Под свои проекты (не как разработчик) я бы использовал, особенно если со всем этим будут идти и работать еще какие-нибудь нестандартные фичи (типа оптовых цен и тп).
Колюня, тема огонь!
Есть уже нароботка какая то? Можно мне первому потестить? )
Телеграм — motoset
Есть уже нароботка какая то? Можно мне первому потестить? )
Телеграм — motoset
Я вот в сомнениях, писать этот текст или нет.
Но если он появился, то я все же решил написать.
Дмитрий, Вы близко знакомы с Николаем? Пили на брудершафт?
Что за обращения — Колюня? Так даже близким друзьям не говорят… Так можно сказать только другу, с которым родился в одной палате роддома и уже 40 лет бок о бок живешь.
Но если он появился, то я все же решил написать.
Дмитрий, Вы близко знакомы с Николаем? Пили на брудершафт?
Что за обращения — Колюня? Так даже близким друзьям не говорят… Так можно сказать только другу, с которым родился в одной палате роддома и уже 40 лет бок о бок живешь.
Александр, это задело вашу тонкую душевную организацию? ))
Если в сомнениях дак и не надо писать ниче
Если в сомнениях дак и не надо писать ниче
Колька если обиделся — сам напишет. В заступниках не нуждается ))
Я заступаюсь не за Николая. Я заступаюсь за логику, мораль и здравый смысл)
Когда релиз будет? Я не спец в верстке и мне такой модуль пригодился бы.
Спустя долгое время вернулись к разработке, думаю осенью выкатим
Любая движуха для MODX полезна!
Если это даст возможность создавать стандартные сайты ( разнообразие которых будет расти ), то это оч сильно усилит присутствие MODX на рынке.
Главное интерент-магазин, услуги и блог полноценный сделайте в заготовках.
Если это даст возможность создавать стандартные сайты ( разнообразие которых будет расти ), то это оч сильно усилит присутствие MODX на рынке.
Главное интерент-магазин, услуги и блог полноценный сделайте в заготовках.
- К тильде возможно придем если экономически целесообразно будет
- Можно собирать любую структуру, не обязательно то что заготовлено
Да в заготовках все это будет, вернулись к компоненту спустя долгое время)
@Николай Хохлунов, здравствуйте. Как можно записаться на бета-тест билдера?
Добрый день, запустили бетку modstore.pro/packages/sites-themes/prolektsitebuilder
Хм… я как-то ожидал конструктор сайтов как тильда. Установил и блоки натыкал на сайте. Но задача конечно сложная… Вообще даже не тестировал. А привязка конкретно к блогу, интернет-магазину жесткая? Произвольный сайт из блоков можно собрать? Например сообщество MODX или сообщество майнкрафт?
Добрый день, спасибо за тест
А как это может быть монеторизовано. За эксклюзивные блоки и темы оплата?
Возможно за сборки, может еще как то, пока не решили, тестируем)
Добрый день, готовим материал с подробным описанием. Напишем вам в ВК, который указан в профиле, что бы помочь
добрый день
компонент нельзя загрузить с репозитория
компонент нельзя загрузить с репозитория
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.