Увлекшись CMS Joomlа начал собирать со всего рунета необходимые расширения для комфортной работы, получилась сначала серия сборок на Joomla 1.5.хх, которая в общем-то до сих пор меня полностью устраивает. Однако жгучее желание опробовать плоды прогресса одолело и я погрузился сначала в поиск аналогов всего функционала что был на 1.5 на платформу 2.5, потом решив создать тестовую сборку "все в одном".
В общем и целом я доволен результатом, сторонний функционал удалось подобрать на 95% от того что есть для 1.5 + плюшки самой 2.5. В итоге получился очень даже неплохой конструктор. Как и прежде, основное что я хотел, это чтобы при случае можно было быстро развернуть движок на хостере и сразу начать затачивать его под клиента и дизайн не отвлекаясь и не тратя время на такие важные но одинаковые для всех вещи как защита, удобство администрирования, средства разработки, стандартные компоненты и настройки.
Цель: Сделать удобную универсальную функциональную корпоративную сборку-конструктор, для рабочих проектов, максимально используя технологии "Web 2.0"
Общие особенности
- основной упор на широчайшие возможности администрирования и автоматизации (в самом широком смысле) - сильный упор на защищенность движка : переработанный .htaccess (там теперь вообще много полезного и интересного, гляньте), установленый плагин firewall-а, доп.защита админки УРЛ ключем с оповещениями, компоненты по мониторингу настроек сервера и движка, логирование и оповещений действий в админке и пр. - возможность быстрого обновления ядра и расширений - установка происходит не встроенным инсталятором joomla а с помощью инсталятора Joomla Pack Installer (akeeba). принцип один и тот-же. Но необходимо будет сделать ещё несколько настроек (см. ниже в конце статьи) Забегая вперед, крайне рекомендую сохранить эту страницу себе на диск и обновлять ее при каждой новой версии сборок. Пригодится при установке и настройке сборки. - по умолчанию логин/пароль - admin 12345 (Важно! При установке лучше не менять дефолтный пароль, это можно сделать потом через админпанель.)
Состав сборки JOOMтльменский набор 2.5 версия Base
- !nonumber PRO (Все основные расширения от этого автора типа advancedmodulemanager, modulesanywhere, sourcerer и пр.) - jsn_poweradmin_j2.5 тулсы для администтрирования - com_acesql - работа с базой (упрощенный аналог phpmyadmin) - pkg_allicons.1.1.1 Организация отдельной вкладки ярлыков на главной странице администрирования - pkg_fabrik_3.0.5.2 Программный фреймворк для создания приложений в Джумле - pkg_virtualdomains-1.1.1-mccoy-j1.6-r144 Мультисайтовость.zip - Admin_List_Factory_2.2.0 TODO для админов - com_admintools-2.1.12-pro - com_akeeba-backup-3.3.5-pro - com_eXtplorer_2.1.0_RC5 - com_OSContent_v1.5_J17 mass add content - com_csvi_4.3 - универсальная система импорта-экспорта - cupdater-1.0 notification_update_system - mod_minisystem инфа о нагрузке на проц для linux - mod_missing_metatag_articles - plg_admin_bar_unlocker_j16 - plg_ajaxtoggler 2.2.0 - plg_awoelogin-1.7.0 при входе можно юзать мыло вместо логина - plg_jQueryIntegrator_j1.6 - Модификация фильтра контента по тексту статьи в CMS Joomla 2.5 - по методу joomfans - Разбивка меню "Компоненты". Долго искал аналог ААMenuна J2.5, так и не нашел. Пришлось залазить в код (mod_menu) и тупо по названию компонентов переносить в новый пункт "Админу". Грубо но работает.
Защита
- Переработанный .htaccess (там теперь вообще много полезного и интересного, гляньте) - com_encrypt 18.2 шифрование форм - com_rsfirewall 1.4.0_rev43 - jsecure_joomla 2.1.10 ULR ключ на админку - plg_cleanresponse_gzip_j16 чистка кода - plg_easycalccheckplus_v2.5-3 капча в виде примеров - plg_marcosinterceptor10j16 анти sqlинъекции
- ZOO 2.5.16 конструктор каталогов - com_jcomments_2.3.0 + all exts - система коментариев - JCE 2.1.3 Визуальный редактор (+rus + plg_jcemediabox_114 + jce_caption_202 + jce_emotions_201 + jce_filemanager_2010 + jce_iframe_200 + jce_imgmanager_ext_207 + jce_mediamanager_206 + jce_templatemanager_203) - attachments-3.0.2 rus - система файлового хранилища и прикрепления файлов к статьям - mod_callback_1.5.7_1.5-1.7 Форма заказа обратного звонка - RS_Form_PRO 1.4.0 R43 конструктор форм - Simple_Image_Gallery 2.5.7 плагин организующий вывод изображений с различными эффектами - com_blog_calendar_1.6.5a календарь публикаций - com_oneclickregistration-v1.3.2-forJ1.7 - contentnotifier_210 значки new и update у материалов - eRelated_News_2.1_j16 связные статьи - extended-menu-module-1.1.0-joomla16 - lumion Модуль для Joomla 2.5, который позволяет посетителям сообщать об опечатках. - mod_aidanews2_25_2.1.0 Комбайн вывода материалов/новостей - mod_ariimageslider - mod_grabber_1.4.6.2_J16-J17-J25 Грабер с расширенными функциями - mod_image_show_gk4_J!17 - mod_jt_superfish_menu_v21 - mod_jvcontact_j1624_1.6.2.4 простая форма обр.звязи с конструктором полей - mod_yt_meganewsii_j17 Ещё один комбайн вывода материалов/новостей - mod_skype_status_1.7.2 - отображает статус контакта - plugin_jw_ts-v2.5 - создание табов и слайсов - mvThumbnails 0.9.9.8 автопревьюшки - plg_content_autopagebreak авто установка тега "подробнее" - plg_content_cdaccesstext_2.5.x.2.0.2 text for some group level - plg_content_cdlockarticle_2.5.x.2.0.3 protect your articles with password - plg_content_cdspoiler_2.5.x.2.0.2 text spoiler - plg_jw_allvideos-v4.4_ вставка видео на сайт - plg_me_edocs_v1.2 publish doc files - RAXO_All-mode_PRO v1.4 Ещё один комбайн вывода материалов/новостей - universalAjaxLiveSearchInstaller_J15_J16_J17_J25 Поиск на лету. Много настроек и вариантов поиска по компонентам - widgetkit_1.2.1 сборник модулей от YOO
Некоторые модули сайта и плагины установлены но не подключены, чтобы не перегружать сайт или по причине своей функциональной специфичности.
Понятно что по краткому описанию не всегда понятно что расширение умеет и как его настраивать, поэтому если будут вопросы то используйте для начала поисковик по названию расширения. Демок и обзоров в сети достаточно.
Необходимый уровень знаний
- уверенное владение поисковыми системами :) - уверенное владение базовыми возможностями Joomla (администрироваие,установка) - базовые/уверенные знания PHP,CSS,HTML,JS - базовые/уверенные представления об отладке, владение FireFox-FireBug, IE8-F12 - базовые знания по установке и работе с локальными web-серверами - базовые представления о серверном ПО, методах защиты (chmod, .htaccess) - базовые представления о БД MySQL, PhpMyAdmin - базовые знания о строении расширений joomla т.е. архитектуре MVC (например знать как найти языковой файл к расширению или как менять вид вывода материалов в шаблоне сайта а не в папке com_content) - в идеале, знания в области js (Для успешной интеграции всех интерактивных "web2.0" плюшек, вернее устранение(обход) возможных конфликтов разных библиотек типа mootools, jquery и пр.)
Минимальные системные требования
Для локальной работы: Необходим полноценный вебсервер типа Zend Server(Обрезанный Денвер врядли подойдет) ибо важны не только версии компонентов но и их взамосвязь и настройки. Для установки на хостинг: нормальный хостер :) (например sweb.ru) у которого помимо всего прочего должно быть: - mod_rewrite ON - register_globals OFF - корректная работа с .htaccess - внятная, оперативная служба поддержки ...а без всего этого такой хостинг и даром не нужен :)
А вообще надо понимать, что голой Joomle много не надо, она может и на PHP 4.x и MySQL 4.x работать спокойно, но большинство современных компонентов, использующих модные web 2.0 "плюшки", требуют уже соответствующие обновления. Что-ж, это плата за всякие аяксы, удобности и автоматизации (На нормальных "хостингах" как правило все уже стоит как надо)
Особенности установки :
Если устанавливаете сборку на сервер то возникает вопрос: как туда быстро закачать все это много-мегабайтное безобразие. Объясняю, скачиваете нужный архив 7z (ссылки внизу статьи) себе на комп, распаковываете, снова запаковываете в zip (я храню в 7z т.к. он лучше сжимает), закачиваете zip к себе на сервер, ТАМ распаковываете (часто функция удаленной распаковки есть в web-файловых менеджерах доступных из панели управления вашим хостингом, или можно скачать маленький скриптик для этого) и можно запускать инсталятор (просто набираем адрес сайта в браузере). Незабываем, при инсталяции не меняем дефолтный логин/пароль (admin/12345) а сделаем это позже (связано с особенностями инсталятора)
Во время установки инсталятор ругнется что мол вы восстанавливаете бекап на другом сервере и хотите ли вы ввести новые параметры сервера, отвечаем да и вносим как обычно свои данные MySQL .(Обащаем внимание что в поле default database по умолчанию стоит "MySQLi", а нам надо переключить на просто "MySQL".) После первого захода в админку, идем в меню "Сайт->Общие настройки" и проверяем во всех вкладках, на всякий случай, что используются URL вашего сервера. (Все таки мы использовали не родной инсталятор, за все приходится платить :) , но ничего страшного, после этой процедуры Joomla будет установлена как положено, зато теперь вы сможете сами перетаскивать сайт куда захотите, достаточно сделать такуюже свежую резервную копию в компоненте akeeba backup, с настройками архива не в jpa а в zip) . А самое главное, смените пароль и email у пользователя admin, удалите всех остальных пользователей.
Для того чтобы на сайте включить красивые ссылки (SEF) идем в админке в общие настройки и в блоке "Search Engine Optimization" меняем все значения на "да". (если на сайте все нормально то mod_rewrite установлен как надо) Настраиваем в компоненте "Artio JoomSEF"
Для того чтобы максимально обезопасить свой сайт и обеспечить работоспособность firewall-а (отдельный плагин к Joomla) необходимо чтобы в настройках ПХП было выставлено значение register_globals OFF. Вы можете выставить это значение самостоятельно для своего сайта, для этого откройте файл .htaccess в корне сайта (если у вас htaccess.txt то переименуйте его) и любом месте с новой строки добавьте php_flag register_globals OFF (в данной сборке УЖЕ все сделано) Если кому интересны подробности то прошу сюда
Также не забудьте в компоненте jsecure включить защиту и придумать ключевое слово для защиты входа в админку по ключевому слову типа www.youresite.ru/administrator?sekretword (простой но очень эффективный способ "спрятать" вход в админку)
И напоследок, что касается защиты, в сборку включен очень полезный компонент шифрования данных стандартных форм. Однако если вы используетет сторонние модули авторизации на сайте (в этой сборке, например, yoologin) и обнаружили что не можете с Frontend-а зайти на сайт (пишет логин или пароль неверный) то проверьте наличие соответствующего расширения в Компоненты-Encryption configuration (я установил все что нашел) а самое главное, для выбранного типа модуля авторизации проверьте название (id,name формы и полей) и если нужно поправьте. Есть два метода шифрования - DES (попроще но работающий везде - выбран по умолчанию) и RSA (посерьезнее, но требует поддержки на сервере)
Полезный совет! Если вы "убили" сайт (например выставили неподдерживаемое шифрование, или функцию в firewall-е которая подвешивает намертво сайт, или забыли ключевое url слово на вход, или ещё какую дрянь которая вызывает 500-ую ошибку) и не можете зайти в админку, то можно попробовать следующее: Идете по фтп в папку сайта\plugins\system\название_плагина и зная имя предполагаемого виновника, ищите соответствующий php файл (в нашем случае по порядку: encrypt.php, rsfirewall.php, jsecure.php и пр) переименовываете его (т.е. вы сделали данное расширение нерабочим) теперь можно зайти в админку, переименовываете файл обратно, и в свойствах расширения устраняете свой косяк.
Сборка содержит расширения работающие с интернетом, поэтому чтобы небыло тормозов при локальной работе я временно отключил эти расширения. Если у вас есть постоянное подключение к интернету (трафик небольшой), или вы установили сборку на хостинг, то рекомендую проделать следующее: идем в админпанель-плагины, после этого в таблице плагинов находим и включаем: (ускорим себе поиск если поиспользуем фильтр или сортировку по id) 1) content - blogping - Плагин "приглашает" пауков при обновлении контента (ускоряется индексация страниц в поисковиках и каталогах) 2) В JCE редакторе включаем on-line проверка правописания: идем в Компоненты->JCE->Groups->Default->Параметры плагина-> Ищем Spell Checker, жмем "Стандартный" и меняем в поле "Движок" значение с "Внутренний PHP" на "Google"
Самое больное место место во всех крупных разработках это совместимость JS библиотек используемых разными расширениями (в Joomla больше всего безобразничают mootools и jquery) Если с первым мало что можно сделать, то со вторым попроще. В сборках установлен plg jqueryintegrator - добавление в джумлу свежих библиотек jquery. В связи с этим маленький нюанс, если новое расширение использует jquery и если в его настройках есть выбор "загружать jquery" или нет, то незабудьте переключить в "не загружать", иначе возможны js конфликты. Ну или просто не включайте plg jqueryintegrator, в общем тут нужен опыт и практика, пробуйте! Можно поиграться также с plg system_scjquery (примирялка jquery и mootools. Убирает $ из jquery) или plg_ki_mootools_control-0.1 (плагин для отладки mootools скриптов) но уэто уже для более опытных.
Особенности локальной установки:
Если в процессе установки появляются ошибки mysql или после установки видим "белый экран" в админке или кракозябры, скорей всего у вас старые версии (или апача или майскула или пыпыха) или неустановлены необходимые расширения в пхп, поэтому чтобы не мучиться с обновлениями и настройками рекомендую воспользоваться готовой бесплатной простой и профессиональной сборкой Zend Server (Обрезанный Денвер врядли подойдет) При установке Zend Server выбрать конфигурацию custom и дополнительно выбрать Addtional Extensions, phpMyAdmin и MySQL Server. Также у вас должно быть активно подключение к интернету (zend скачивает свежие phpMyAdmin и MySQL Server, да, спорное решение, но что есть то есть) Сайты потом создавать в папке "куда_поставили_zend\Apache2\htdocs\папка_сайта" . Обращение в браузере: "localhost/папка_сайта" Для дотошных, вот мой сервер: ZendServer-CE-5.0.2_RC153-5.3.2-Windows_x86 (конфигурация custom) / апач 2.2.15 / пых 5.3.2 / майскул 5.1.47
Если после установки выдает "internаl server error" то необходимо проверить настройку вашего сервера. Откройте конфигурационный файл вебсервера httpd.conf и найдите строку LoadModule rewrite_module modules/mod_rewrite.so Если она закомментирована - раскомментируйте её и перезапустите сервер (связано с особеностью SEF-ЧПУ и в частности компонента Artio JoomSEF). ( В Зенде для этого есть удобный Web интерфейс - http://localhost:10081/ZendServer )
Также лучше сразу поправить некоторые переменные в файле php.ini max_execution_time = 50 memory_limit = 16M и также перезапустить вебсервер ( В Зенде также все это можно сделать через панель управления )
При установке на нормальный хостинг, подобных проблем быть не должно, в противном случае методы лечения те-же, только через сапорт.
Сборка распространяются бесплатно в ознакомительных целях по принципу "как есть", на свой страх и риск.
P.S. Просьба в случае обнаружения ошибок, (мало-ли, несовместимость компонентов, вспышки на солнце) сразу писать мне Исправим,отладим, сделаем конфетку.
В письме указывайте пожалуйста конкретное место (ссылка,скриншот) и описывайте свои действия поподробнее а также не забудьте указать версию сборки, название вашего сервера (самосборный,zend,appserv,денвер и пр.) с указанием точной версии, а также версии апача, майскула, пхп и по возможности(в идеале) сообщения из firebug-a и из ИЕ8-F12
Скачать JOOMтльменский набор 2.5
JOOMтльменский набор. Версия Base - Скачать (17,7 мб)
[fix] При попытке создания или редактирования материала была ошибка. Причина: плагин "Editor Button - Insert Gallery" (ID=10340) попавший из J1.5. Исправлено. Спасибо sergco04
========== 1.1 версия Base ==========
[add] Сильно доработанный .htaccess В плане защиты и оптимизации [add] com_csvi_4.3 - универсальная система импорта-экспорта [add] mod_skype_status_1.7.2 - отображает статус контакта [add] plugin_jw_ts-v2.5 - создание табов и слайсов