
Уже довольно давно существует скрипт от bezumkin для создания сайтов на сервере с уже установленными необходимыми пакетами.
Но иногда нужно быстренько развернуть сайт на обычном shared-хостинге. Я как-то сделал себе отдельный сайтик, где настроил нужные мне дополнения, создал файлы robots.txt и sitemap.xml, настроил дружественные URL и прочие мелочи. Соответственно, если нужно было развернуть новый сайт я брал свою заготовку, переносил ее на новое место и занимался уже созданием сайтов.
Но тут решил попробовать сделать свою заготовку еще более простой в использовании — скачал, установил и все. Не нужно менять пути, не нужно в конфиге прописывать доступ к базе и пр.
В MODX REVO очень удобный установщик, я решил использовать его. В папку с установкой MODX я перенес свою папку assets, core/components и core/packages
После этого зашел в базу данных с помощью phpMyAdmin, удалил таблицы modx_users и modx_user_attributes, чтобы на каждом сайте можно было ставить разные доступы прямо во время установки — чтобы не приходилось менять пароль уже в админке.
Дамп этой базы данных положил в папку setup (чтобы он удалился по окончании установки) и в файл setup/controllers/complete.php (перед последней строчкой) добавил следующие строки для импорта файла базы данных в новую базы (затираются все таблицы, кроме modx_users и modx_user_attributes):
// Импортируем файл базы данных
$mysqlDatabaseName = $install->settings->get('dbase');
$mysqlUserName = $install->settings->get('database_user');
$mysqlPassword = $install->settings->get('database_password');
$mysqlHostName = $install->settings->get('database_server');
$mysqlImportFilename = MODX_SETUP_PATH . 'ilyaut_modx.sql'; // это дамп базы
$command='mysql -h' .$mysqlHostName .' -u' .$mysqlUserName .' -p' .
$mysqlPassword .' ' .$mysqlDatabaseName .' < ' .$mysqlImportFilename;
exec($command);
// Конец импортаТаким образом после всей установки мы импортируем базу уже со всеми нужными нам ресурсами, сниппетами, ТВ, чанками, пакетами и пр.
Ну и на последок, кому интересно, моя сборка: ilyaut-0.0.1.zip. Скачиваем, разархивируем, заходим по адресу site.ru/setup/ и устанавливаем как обычный MODX. Не забудьте переименовать файл ht.access в .htaccess
Список установленных дополнений и настроек:
- Настроен редирект с адреса www.site.ru на site.ru
- В дереве ресурсов добавлены два новых ресурса: robots.txt и sitemap.xml
- Стандартный шаблон изменен — разбит на чанки header, aside, footer и пр.
- Добавлен ТВ img с типом ввода — Изображение
- Созданы чанки с вызовом Wayfinder, getPage, getResources
- Добавлен плагин editButton от />
- В настройках включены дружественные URL
- Установлены пакеты:
- Ace
- Batcher
- Breadcrumbs
- DirectResize Revo
- FormIt
- getPage
- getResourceField
- getResources
- GoogleSiteMap
- Login
- phpThumbOf (с уже отключенным плагином phpThumbOfCacheManager)
- Quip
- TinyMCE
- translit (настроена транслитерация псевдонимов)
- Wayfinder
Вроде, все. Если будут вопросы, задавайте, постараюсь ответить. Периодически стараюсь обновлять пакеты и версию MODX, так что можно скачивать сборку по ссылке. Кроме того, можно запросто сделать свою сборку и работать с ней.
UPD. Ах, да, я не стал заморачиваться с префиксами, оставил стандартный префикс modx_, так что если вам нужны другие префиксы, просто сделайте свою сборку.
G+
UPD-2. Перенес топик в соответствующий блог.
Оригинал статьи community.modx-cms.ru/blog/research/8928.html
Объектная
А используемую версию сборки выложить не могу — там прописаны все мои стандартные доступы (SMTP, привязка к магазину SimpleDream), указаны электронные адреса для форм обратной связи и пр.
Можно было бы все это поудалять и выложить, но могу же что-то упустить… Да и поддерживать надо будет сборку — вышло критическое обновление, обнови у себя в Dropbox сборку, на гитхабе сборку и не забудь для гитхаба опять поудалять все лишнее.
Спасибо, интересные статьи на вашем сайте.
Сборки, для разных нужд, постоянно актуальны. К сожалению, Vapor, будучи весьма удобным скриптом, не работает на многих shared-хостингах (например, Таймвеб рубит процессы длящиеся более 10 сек.).
Если у вас будет время, расскажите, какие сегодня есть самые технологичные способы делать сборки и, отдельно, сборки шаблонов со встроенными ресурсами (PackMan же не добавляет ресурсы в пакет). Иметь коллекцию из подготовленных шаблонов весьма полезно, особенно оформленных в транспортные пакеты.
С нетерпением жду развитие данной темы.
Спасибо.
То есть установил MODX, создал нужные ресурсы, поставил и настроил нужные пакеты, а потом сделал дамп базы данных и файлов. На новый сайт я заливаю не MODX, а сам сайт, правлю пути в конфигах — и готово, осталось верстку перенести в шаблоны.
Но вот шаблоны бы вместе с ресурсами в транспортный пакет хотелось как то быстро оформлять. Интересно кто и как это делает. Конечно, совсем универсальным такой пакет с шаблоном не будет, но экономия времени точно возникнет. Вот, уже коммерческие шаблоны, оформленные в транспортные пакеты, появились themeforest.net/category/cms-themes/modx-themes
Актуальная тема, тренд, как модно сейчас говорить))
Устанавливаем чистую модикс, смотрим по справке какие нужны дополнения, устанавливаем дополнения все из репозитория находясь в админке стандартным способом, в последнюю очередь ставим этот шаблон/дизайн также как и дополнение, предварительно просто закинуть нужно архив этот в папку core/packages, после этого при установке дополнения этого указать место репозитория локально и как система его обнаружит стандартно: скачать, а затем установить.
после этого обновляем страницу бэкенда, в меню появиться пункт отдельный касаемый настроек именно уже шаблона и настройки эти будут отображаться в бэкенде в удобной форме с подписанными полями и вкладками по теме самого шаблона.
Если по теме то вариантов переноса сайта с локального формата на хостинг несколько, можно любые использовать, как говорится кому что нравится.
<?php require "../core/config/config.inc.php"; $connect = mysql_connect("$database_server", "$database_user", "$database_password") or die("Error connect MySQL!"); mysql_select_db($dbase, $connect); $sql = "DROP TABLE $table_prefix"."access_actiondom,$table_prefix"."access_actions,$table_prefix"."access_category,$table_prefix"."access_context,$table_prefix"."access_elements,$table_prefix"."access_media_source,$table_prefix"."access_menus,$table_prefix"."access_permissions,$table_prefix"."access_policies,$table_prefix"."access_policy_template_groups,$table_prefix"."access_policy_templates,$table_prefix"."access_resource_groups,$table_prefix"."access_resources,$table_prefix"."access_templatevars,$table_prefix"."actiondom,$table_prefix"."actions,$table_prefix"."actions_fields,$table_prefix"."active_users,$table_prefix"."categories,$table_prefix"."categories_closure,$table_prefix"."class_map,$table_prefix"."content_type,$table_prefix"."context,$table_prefix"."context_resource,$table_prefix"."context_setting,$table_prefix"."dashboard,$table_prefix"."dashboard_widget,$table_prefix"."dashboard_widget_placement,$table_prefix"."document_groups,$table_prefix"."documentgroup_names,$table_prefix"."element_property_sets,$table_prefix"."extension_packages,$table_prefix"."fc_profiles,$table_prefix"."fc_profiles_usergroups,$table_prefix"."fc_sets,$table_prefix"."lexicon_entries,$table_prefix"."manager_log,$table_prefix"."media_sources,$table_prefix"."media_sources_contexts,$table_prefix"."media_sources_elements,$table_prefix"."member_groups,$table_prefix"."membergroup_names,$table_prefix"."menus,$table_prefix"."namespaces,$table_prefix"."property_set,$table_prefix"."register_messages,$table_prefix"."register_queues,$table_prefix"."register_topics,$table_prefix"."session,$table_prefix"."site_content,$table_prefix"."site_htmlsnippets,$table_prefix"."site_plugin_events,$table_prefix"."site_plugins,$table_prefix"."site_snippets,$table_prefix"."site_templates,$table_prefix"."site_tmplvar_access,$table_prefix"."site_tmplvar_contentvalues,$table_prefix"."site_tmplvar_templates,$table_prefix"."site_tmplvars,$table_prefix"."system_eventnames,$table_prefix"."system_settings,$table_prefix"."transport_packages,$table_prefix"."transport_providers,$table_prefix"."user_group_roles,$table_prefix"."user_group_settings,$table_prefix"."user_messages,$table_prefix"."user_settings,$table_prefix"."workspaces"; $result = mysql_query($sql, $connect); if (false === $result) die ('Error database SQL query '); $command="mysql -u$database_user -p$database_password --default-character-set=utf8 $dbase < dump.sql"; $importdb = shell_exec($command); mysql_close($connect); ?>Не решили как на последних версиях сделать сборку? Может есть какое то решение?
rtfm.modx.com/extras/revo/packman
modx.pro/solutions/5114-organization-routine-during-a-fresh-install-of-modx/