Оригінал: Components vs. Modules
Часто на форумах нові користувачі Joomla стикаються зі складнощами при визначенні понять «Модуль» та «Компонент». Однак, як тільки відмінності між ними стануть зрозумілі, це дозволить чіткіше зрозуміти архітектуру Joomla. Отже, чим же відрізняється компонент від модуля?
Ось проста відповідь: модуль може з'явитися на будь-якій сторінці і має досить просту будову. Компонент завантажується на свою власну сторінку і, як правило, складніше влаштований.
Такої відповіді повинно бути достатньо, щоб задовольнити проста цікавість. Якщо ж Вас цікавить більш докладну відповідь, тоді давайте почнемо з опису того, як Joomla завантажує сторінки.
Коли хто-небудь заходить на ваш сайт, він запускає файл index.php з каталогу Joomla. Цей файл завантажує різні класи та інші частини коду, які дозволяють Joomla працювати. Після цього, Joomla шукає каталог поточного шаблону і намагається завантажити index.php звідти. Отже, файл index.php міститься і в кореневому каталозі і в каталозі шаблону, причому кореневої index.php завантажує шаблонний.
Шаблонний index.php зазвичай виглядає як типовий HTML файл. У цьому файлі Ви знайдете рядок . Цей рядок призупиняє запис HTML рядків і включає код з mainbody.php. який завантажує один компонент. Це означає, що кожна сторінка Joomla завантажує компонент. (Можна прибрати цей рядок. Це призведе до того, що Joomla перестане завантажувати компоненти, і Ваш сайт втратить левову частку функціональності.) По-замовчуванню, Joomla буде завантажувати компонент, зіставлений з першим пунктом меню. Звичайно це пункт 'Home'. вказує на компонент 'frontpage'. Як правило, він містить посилання на новинні статті. Як тільки Ви клікніть на посилання, завантажиться компонент 'content' разом зі статтею. Інші лінки завантажують інші компоненти.
До того ж до mainbody.php в шаблоні містяться виклики функцій mosLoadModules (). наприклад mosLoadModules ( 'left') ;. Ця функція завантажує всі прикріплені до поточного компоненту модулі в 'ліву' частина екрану (по-замовчуванню, екран розділений на наступні частини: ліва ( 'left'), права ( 'right'), верх ( 'top'), низ ( ' bottom '), внутрішня (' inset '), пользователь1 (' user1 ') і пользователь2 (' user2 ')). Після конфігурації модуля в бекенд з'явиться список вибору, що дозволяє прикріпити даний модуль до будь-яких компонентів. Для завантаження модулів в усі позиції шаблони не потрібні, але вони стануть в нагоді для завантаження хоча б одного модуля так, щоб залишилося місце для меню до тих пір, поки Ви не захочете прописати його розташування самі.
Користувачів Вашого сайту зазвичай не хвилює відмінність між модулем і компонентом. Однак, адміністраторам сайту необхідно знати як управляти цими елементами. Модулі встановлюються / деінсталює в підміню модулів.
Якщо Ви клікніть на пункті 'ManageModules'. з'явиться інший список, який надає опції показу / приховування (publishing / unpublishing), позиціонування і розташування. Цей список може бути довшим першого за рахунок призначених для користувача модулів. Ці модулі містяться не в папці modules, а в базі даних, як статті. В іншому, вони нічим не відрізняються від інших модулів.
Всі модулі можуть мати будь-які свої параметри. Це дозволяє адміністраторам сайтів змінювати налаштування модуля без створення комплексного інтерфейсу. Наприклад, якщо розробник хоче дати адміністраторам можливість змінювати фон модуля, він може додати відповідний параметр в менеджмент модуля. Адміністратор клацне на заголовок модуля і зможе ввести, наприклад, backgroundcolor = green в табличці 'Parameters'.
Розробка адмінській частини компонента вимагає великих затрат часу, але в результаті виходить простий для використання інтерфейс, за допомогою якого адміністратор зможе легко їм управляти. При завантаженні адмінській частини компонента виконується файл admin. [Імя_компонента] .php з директорії / administrator / components /
com_ [імя_компонента]. Большеоб адмінській частини компонента (бекенд) можна прочитати в підручнику Daily Message Component Tutorial.