Побудова компонент та модулів для системи управління контентом Joomla

Курсова робота

на тему: «Побудова компонент та модулів для системи управління контентом Joomla»




План



1. Joomla як система управління вмістом інтернет-сайту

2. Теоретична частина:

2.1 Основи CMS

2.2 Історія виникнення «Joomla»

2.3 Характеристики і особливості «Joomla»

2.4 Функції «Joomla»

2.5 Меню сайту

2.6 Взаємозв’язок меню з модулями

2.7 Елементи меню

2.8 Розширення в «Joomla»

2.9 Побудова власних компонент і модулів

2.10 Приклад компоненти helloworld

2.11 Приклад написання модуля

3. Практична частина

Висновок

Список використаної літератури

joomla cайт модуль


1. Joomla як система управління вмістом інтернет-сайту



Метою моєї курсової роботи є ознайомлення з CMS Joomla і її основними розширеннями: компонентами і модулями.

Система управління контентом – це програмний комплекс, що дозволяє автоматизувати процес управління як сайтом в цілому, так і суттю в рамках сайту: макетами сторінок, шаблонами виведення даних, структурою, інформаційним наповненням, користувачами і правами доступу, а також що по можливості надає додаткові сервіси: списки розсилання, ведення статистики, пошук, засоби взаємодії з користувачами і так далі.

Необхідність систем управління для власників сайтів почала виявлятися в той момент, коли кількість матеріалів на веб-сайтах почала стрімко рости. Це призвело до того, що традиційні «ручні» технології розробки і підтримки сайтів, коли сайт складався із статичних сторінок і набору додаткових спеціалізованих скриптів, почали не встигати за швидко змінними потребами. 

Однією з найбільш поширених систем управління контентом є Joomla.

Joomla – система управління вмістом інтернет-сайту з відкритим кодом, з допомогою якої можна легко створювати і редагувати власні сайти. Joomla є безкоштовною і вільно поширюваною системою, в яку будь-який користувач (за наявності спеціальних знань і навиків) може вносити зміни. Дві основні особливості цієї системи - простота адміністрування і гнучкість в створенні шаблонів - привели до того, що ця система почала використовуватися для створення найрізноманітніших сайтів, від корпоративних у внутрішніх мережах до шкільних.

Система управління контентом Joomla має модульну структуру і в своєму базовому варіанті не забезпечує всіх необхідних можливостей, потрібних для реалізації готового проекту. Розширення дозволяють істотно збільшити функціональність створюваного сайту.




2. Теоретична частина



2.1 Основи CMS



В останні роки стали популярні системи управління контентом (або як їх ще прийнято називати CMS - від англ. «Content Managment System»). За допомогою подібних систем досвідчений користувач може при необхідності легко	 створити базовий веб-проект.

CMS — комп'ютерна програма або система, яка використовується для забезпечення і організації сумісного процесу створення, редагування і управління текстових і мультимедіа документів. . Головна характеристика таких систем – це простота створення і редагування інформаційного наповнення динамічних веб-сторінок. Системи управління вмістом, зазвичай, дуже складні, вони можуть містити в собі служби розсилання новин, форуми і інтернет-магазини – і при цьому легко редагуються. Останнім часом появляється дедалі більше сайтів, які розроблені під управлінням CMS.
 У часи, коли системи управління контентом практично не застосовувалися - розробка чергового веб-проекту була пов'язана зі створенням коду розмітки кожної сторінки, або з важким програмуванням та інтеграцією графічного оформлення в кожну сторінку. Процес займав величезну кількість часу, а результат виконував обмежену кількість функцій і важко модернізувався. Сучасні системи управління контентом знімають необхідність постійного програмування. Досить вибрати готовий модуль, з тисячі раніше створених і протестованих. Інтеграція в систему не займе багато часу, так як всі додатки розробляються за єдиним стандартом.

Зараз системи управління це не тільки зручна оболонка-менеджер для користувача, але й потужний інструмент для веб-розробника . Завдяки таким системам, все рідше виникає необхідність у розробці веб-проектів «з нуля» - підготовленому користувачеві достатньо просто вибрати, встановити та налаштувати існуючу систему, щоб швидко і без додаткових різних витрат одержати прийнятний результат професійного рівня.

Сучасна CMS система повинна дозволяти, не вдаючись до додаткового програмування, виконувати: редагувати вміст сторінок, включаючи додавання / видалення графіки; додавання нових сторінок; зміна структури сайту і різноманітних даних; налаштування реєстраційних форм; управління опитуваннями, голосуваннями і форумами; висновок статистики відвідувань ; розподіл прав з управління сайтом серед користувачів.



2.2 Історія виникнення Joomla



Joomla - це вільно поширювальна система управління вмістом, яка як і раніше випробовує зростання популярності, починаючи з 2006 року, коли вона була перейменована з Mambo. Дві основні особливості системи - простота адміністрування і гнучкість в створенні шаблонів - привели до того, що ця система почала використовуватися для створення найрізноманітніших сайтів, від корпоративних у внутрішніх мережах до шкільних.

У 2000 році компанія Rice Studios(раніше називалася Miro, знаходиться в місті Мельбурн, Австралія) випустила першу реалізацію програмного продукту під назвою CMS «Mambo». Спочатку Mambo мала закритий початковий код. Пізніше, в квітні 2001 року, третя версія Mambo почала розповсюджуватися по двох різних ліцензіях, одна з яких була Open Source. Ця версія отримала назву Mambo Site Server і була випущена під ліцензією GNU GPL.

У 2002 «Mambo Site Server» почав називатися «Mambo Open Source», щоб була видна різниця між комерційною і версією з відкритим початковим кодом.

Проект Mambo Open Source виявився надзвичайно успішним і отримав велику кількість престижних нагород Open-Source.

У 2004 році журнал Linux Format нагородив Mambo званням «Кращий проект року вільного програмного забезпечення», а журнал Linux User and Developer — званням «Краще програмне забезпечення для Linux або відкритого програмного забезпечення». Але найважливіше, що шаблони, пропоновані системою Mambo, стають предметом заздрості користувачів будь-якої , сучасної на той час, системи управління вмістом.

У 2005 році Mambo була нагородженна, ще важливішими званнями, таких як «Краще відкрите рішення» і «Краща демонстрація - закінчене промислове рішення» - на виставці LinuxWorld, що проходила в Бостоні, і «Краще відкрите рішення» - на виставці LinuxWorld в Сан-Франциско.

У 2005 році комерційна версія Mambo була перейменована в «Jango». Була створена організація Mambo Foundation і поставлена мета, щоб ця організація сприяла захисту принципів Mambo і забезпечувала більш структуровану методологію роботи.

Створення Mambo Foundation створило розкол в співтоваристві Mambo Open Source. Створення цієї організації розглядалося багатьма як спроба Rise Studio отримати контроль над проектом Mambo Open Source.

В серпні 2005 року розгорається суперечка, пов'язана з ухваленням рішень в координаційній раді Mambo Foundation.

Mambo Foundation, що в основному складався з Mambo Open Source розробників, публічно оголосив про те, що вони мають намір відмовитися від Mambo Open Source. Вони об'єднуються в некомерційну організацію під назвою «Open Source Matters і утворюють свою власну групу, в яку входять основні розробники, що вирішили порвати зв'язки з Rise Studio (Miro) і покинути проект Mambo.

Open Source Matters створила Joomla. Проект, з 100% відкритим початковим кодом і GPL-ліцензією. Після серйозного доопрацювання, у вересні 2005 року, Open Source Matters випустила Joomla 1.0. За минулі місяці Mambo також реформує свої команди і структури підтримки і відмовляється від подальшого розвитку версії 4.5.3, вирішивши продовжити підтримку поточної стабільної бази програмного коду.

З настанням 2006 року обидва проекти - Mambo і Joomla - продовжили свій переможний хід, при цьому обидва вони були засновані на одній і тій же базовій версії 4.5.2. 

Різні обмеження в Joomla 1,0 змусили розробників задуматися, як би все перебудувати. Після тривалого періоду розвитку, і декілька бета-версій, Joomla 1,5 була випущена в середині 2007 року.

До теперішнього часу в обох проектах був проведений повний рефакторинг початкових текстів і випущені нові версії - Mambo 4,6 і Joomla 1.5.

Joomla 1,5 сильно відрізняється від Joomla 1,0 і Маmbо. Joomla 1,5 вводить багато нових класів і реалізує повноцінний фреймворк. Радикальною зміною є введення MVC (модель-вид-контролер) стуктури компонентів. Ці зміни привели до істотного зниження сумісності Joomla і Маmbо.

Анонсована , ведеться повним ходом і непогано висвітлюється, наступна версія — Joomla 1.6. За попередніми анонсами вона буде сумісна з Joomla 1,5, але повністю перейде на PHP 5,0, і не планує підтримку режиму Legacy Mode, а отже і розширень, розроблених для Joomla 1,0.



2.3 Характеристики і особливості Joomla



		Зручна панель управління сайтом;

		Створення, редагування, видалення розділів і категорій сайту;

		Редагуюче меню сайту;

		Можливості управління блоками сайту;

		Необмежена кількість сторінок;

		Вбудований WYSIWYG-редактор сторінок сайту;

		Можливість звантажування файлів (картинок, звуків) на сайт;

		Аутентифікація користувачів і адміністраторів;

		Засоби для створення опитування;

		Можливість об’єднання з форумом;

		Можливість встановлення терміну початку і закінчення публікації матеріалів;

		Створення закритих областей сайту;

		Попередній перегляд публікованого матеріалу;

		Шаблони дизайну сайту;

		Велика кількість розширення (що дозволяє адаптувати Joomla під потрібні потреби);

		І багато іншого.



2.4 Функції Joomla



Здавалось би, потужність і простота – не сумісні, в це важко повірити, особливо, якщо раніше не використовували ніяку іншу CMS. Проте слід звернути увагу на наступні особливості Joomla:

	Повноцінне управління сайтом через Web-інтерфейс;

	Web-інтерфейс дозволяє керувати основними елементами сайту – сторінками, графікою, файлами і іншими даними;

	Функції схвалення контенту, які дозволяють контролювати матеріали, опубліковані віддаленими авторами (ніхто не зможе опублікувати на вашому сайті матеріал без вашого схвалення);

	Ієрархічне управління групами користувачів;

	Автоматизоване управління меню сайту;

	Можливість автоматичного опублікування і видалення матеріалу за розкладом;

	Захист користувацьких облікових записів;

	Проте більш переконливими є функції управління контентом (вмістом сайту) і можливість взаємодії користувачів і СМS:

	Вбудовані WYSIWYG-редактори (What You See Is What You Get), які дозволяють створювати сторінки сайту без знання HTML;

	Автоматичний пошук по сайту;

	Вбудована можливість створення опитування (голосування);

	Управління рекламними банерами;

	Плагіни для організації інтернет магазинів, наприклад, корзина, галарея зображень і інші;

	Багатомовність.

	Але це ще не все. В доповнення до всього вище написаного потрібно відмітити наступні особливості Joomla:

	Повна відкритість вихідного коду – звантажуючи вихідний код, маємо право його змінити;

	Підтримка операційних систем Windows і Linux;

	Підтримка кешування сторінок для підвищення продуктивності сайту.



2.5 Меню сайту



Меню в «Joomla» - це модуль, який відображається в певному, заздалегідь позначеному місці, що складається з посилань на статичні документи, вміст категорій і різні компоненти системи управління контентом.

Меню є ключовою частиною сайтів, створених на базі Joomla, яка максимально полегшує навігацію для користувача. 

Верхнє меню розташовується на сторінці як можна вище. Воно призначене для того, щоб забезпечити користувачу швидкий доступ до найбільш важливому контенту. Таке меню часто відображає концепції, товари, контакти, адреса компанії і мови. 

Головне меню - центральна навігаційна область сторінки. Тут завжди має бути посилання для повернення користувача на першу сторінку. Це меню повинно з'являтися точно в одній і тій же позиції на кожній сторінці веб-сайту. Головне меню - важлива точка, до якої звертається користувач. 

Інші меню можуть з’являться в будь-яких місцях (позиціях модулів).



2.6 Взаємозв’язок меню з модулями



Для кожного меню є свій модуль, який відповідає за зовнішній вигляд і розміщення меню на сторінці. На даний час є шість різних меню, які встановлюються за замовчуванням разом з демонстраційним вмістом Joomla. Якщо перейти на сторінку Menu Manager (Меню), можна побачити всі шість меню.

Відразу ж зауважимо: щоб перейти до редагування вибраного меню, потрібно клацнути не за посиланням у стовпці Title (Заголовок), як можна було б подумати, а по іконці в стовпчику Menu Items (Пункти меню). Нижче наводиться список цих шести меню:

• Main Menu (Головне меню). Містить основні елементи навігації для вмісту за умовчанням.

• User Menu (Меню користувача). Спеціальне меню, що містить деякі функції, доступні зареєстрованим користувачам.

• Top Menu (Меню верхнього рівня). Дублює деякі посилання з головного меню.

• Other Menu (Меню інше). Містить чотири посилання на сайти, що мають відношення до проекту Joomla.

• Example Pages (Приклади сторінок). Посилання на сторінки, що демонструють різні шаблони розміщення вмісту.

• Key Concepts (Ключові концепції). Посилання на сторінки, де наводиться опис шаблонів і розширень.

Така структура меню є всього лише рекомендацією або прикладом. Ці шість меню встановлюються разом з демонстраційним вмістом, коли в ході установки вибирається параметр Install Sample Data (Встановити демо-дані). У більшості випадків доведеться створювати власні меню або видозмінювати існуючі. 

Важливо зрозуміти, що кожне меню пов'язане як мінімум з одним модулем, який визначає його зовнішній вигляд і місцерозташування меню.

Управління зовнішнім виглядом меню здійснюється за допомогою Менеджера модулів, наприклад, у ньому можна вказати, чи слід підкреслювати текст посилання при наведенні покажчика миші, визначити колір шрифту і зовнішній вигляд посилань (чи повинні вони бути схожими на кнопки). Всі ці характеристики можуть бути визначені у файлі шаблону, що містить каскадні таблиці стилів (Cascading Style Sheets - CSS).



2.7 Елементи меню



Основними будівельними блоками для меню є елементи меню. Кожному елементу меню відповідає єдине посилання в зовнішньому інтерфейсі.

Сайти на базі Joomla генерують всі сторінки динамічно. Коли користувач клікає по будь-якім посиланні, система Joomla бере інформацію з цього посилання і на її основі визначає, що повинна містити сторінка і як вона має виглядати.

Можемо уявити собі посилання меню, які складається з трьох частин, що визначають:

-Куди слід виконати перехід.

-Як повинна виглядати сторінка після переходу по посиланню.

-Як повинні виглядати самі посилання.

Посилання в меню контролюються елементами цього меню (в даному випадку mainmenu) в менеджері меню, які визначають, до якої сторінки варто перейти і на що повинні бути схожі ці сторінки. Меню і посилання володіють наступними важливими характеристиками:

• Сайт управляється за допомогою меню. Сторінки є динамічними і не існують, поки не будуть пов'язані з посиланнями.

• Меню/посилання та інформаційне наповнення повністю незалежні один від одного - вміст спочатку має бути створено, а потім пов'язано з посиланням.

• Посилання меню можуть створюватися тільки після того, як вміст буде створено та збережено.

• Посилання меню можуть посилатися як на вміст, так і на компоненти.

• Посилання меню визначають зовнішній вигляд сторінок, на які вони посилаються.

Пункт меню може посилатися на сторінки трьох основних типів: на окремо взяту статтю, на цілу категорію або на розділ. Крім того, посилання може вказувати на компоненти еквівалентних різновидів, наприклад на окремий компонент або на категорію компонентів. Вибір типу елемента меню цілком залежить від структури створюваного сайту.

Основна складність полягає в організації інформаційного наповнення різними способом. Різноманітність методів, безумовно, підвищує гнучкість системи, але вона ж може викликати складнощі при створенні сайту. Після створення інформаційного наповнення нам доведеться вирішити, як конструювати різні меню, щоб визначити посилання на елементи вмісту. Тому необхідно планувати структуру вмісту сайту в термінах розділів і категорій, а потім можна буде розробити структуру меню, щоб пов'язати цей вміст.



2.8 Розширенння в “Joomla”



Система управління контентом Joomla має модульну структуру і в своєму базовому варіанті не забезпечує всіх необхідних можливостей, потрібних для реалізації готового проекту.

Розширення дозволяють істотно збільшити функціональність створюваного сайту, наприклад, додати форум, чат, інтернет-магазин і багатоіншого. 

Розширення в Joomla бувають трьох типів: модулі, компоненти і плагіни. Так, все це - розширення для Joomla. Така розноманітність розширень іноді заплутує початківців-користувачів, але завдяки цьому чітко розділяються функції кожного розширення. Наприклад, модуль не може виконувати функції плагінів і навпаки. Якщо встановлюємо комплексний пакет розширень, наприклад, чат, то він може складатися з розширень різних типів. Найчастіше пакети розширень складаються з компонентів і модулів.

Модулі.

Модуль - це певна ділянка сайту, позиція якого визначається через інтерфейс адміністратора. Модуль, можна сказати, наймінімальніше розширення. В якості модуля можуть бути представлені: меню сайту, список останніх статтів, лічильники відвідувань, пошук, авторизація користувачів, форми опитувань і контактів, будь-яка статична та динамічна інформація, задана користувачем. 

Варто відзначити, що позиції виведення модулів визначаються в шаблоні оформлення сторінки. Крім того, в Joomla існує спеціальна таблиця позицій модулів. Для того, щоб позначити в системі позицію модуля, необхідно зайти в наступний пункт меню: «Сайт» - «Шаблони» - «Розташування модулів».

При використанні стандартних шаблонів оформлення або шаблонів на підставі стандартних макетів дизайну - ніяких змін проводити не потрібно. Необхідність у змінах виникає лише у тих випадках, коли в шаблон додаються додаткові позиції для виведення модулів.

Компонентна структура дозволяє забезпечити гнучкість і високі функціональні можливості системи. Використовуючи тільки необхідні, для роботи сайту, модулі та компоненти, адміністратори веб-ресурсу захищають себе від вузьких місць і вразливостей, наявних в незадіяних компонентах.

Компоненти.

Компоненти - є найбільш складним різновидом розширень. Це свого роду міні-додаток, який звичайно використовуються для відображення вмісту в основній частині сторінки. Базовий компонент (com_content), наприклад, - це міні-додаток, що відображає всі статті деяким способом. У якості ще одного приклада можна привести компонент форуму, що відображає головний стенд форуму, окремі його галузі та інше. Але не всі компоненти призначені для відображення вмісту - деякі реалізують досить складні функції.

На відміну від модулів, компоненти завантажуються завжди в центральну частину сторінки. Компонент може бути всього один на сторінці. Компоненти використовуються, як правило, для взаємодії з користувачами. Наприклад, компонент може відображати вміст розділу, категорії, статті, викликати редактор для редагування статті і т.д. У деяких випадках (чат, форум) компоненти надають повноцінний інтерфейс користувача.

На панелі керування звичайно можна встановити безліч різних параметрів для компонентів. 

До складу стандартного набору входять наступні компоненти:

		«joomlaXplorer» - один з найбільш цікавих компонентів, доданий в збірці «Lavra Edition». Представляє собою менеджер файлів, що виконує будь-які необхідні адміністратору операції - копіювання, перейменування, видалення, редагування, створення архівів директорій. Всі ці можливості реалізовані на базі адміністративного інтерфейсу і не вимагають ніяких сторонніх додатків.

		 «PentaChat» - хоча компонент і входить в стандартний набір, багатьом користувачам він здається марним. Основною функцією є організація відео-чату між користувачами сайту, що мають веб-камери. 

		«Банери» - компонент дозволяє проводити рекламні кампанії на сторінках сайту. Придатний для показу графічних рекламних оголошень, що ведуть на певні внутрішні сторінки. Веде підрахунок показів і переходів по банеру.

		 «Голосування» - компонент реалізує можливість проведення електронного опитування користувачів та відвідувачів сайту. При необхідності, дозволяє обмежити доступ до голосування тільки для зареєстрованих користувачів. У собі має гнучку систему налаштування голосування і показу результатів.

		 «Контакти» - компонент створений для організації структурованого списку контактних осіб та виведення цього списку на сайт. Не дуже зручний, відсутністю гнучких шаблонів виведення інформації. Для адаптації необхідно змінити шаблон виведення, видаливши непотрібні елементи з коду.

		 «Масове розсилання» - компонент використовується для розсилання новинок і повідомлень користувачам, або якимось конкретним групам користувачів.

		 «Посилання» - каталог посилань, що дає можливість організувати структурований каталог посилань на сторонні веб-ресурси.

Плагіни.

Плагіни - це низькорівневі розширення. Зазвичай плагіни активуються певною подією серверу. Плагін може перехоплювати вихідні дані «Joomla» і вносити до них зміни до відправлення в браузер користувача. Плагіни зазвичай використовуються для організації різних візуальних редакторів для «Joomla». У базі даних всі статті зберігаються у форматі HTML. Joomla виводить їх з бази даних, плагін редактору перехоплює цей результат висновку й конвертує у власне візуальне подання. Ми редагуємо текст статті, використовуючи це візуальне подання. Коли ми клацаємо на кнопці Зберегти, візуальне подання статті конвертується в HTML-код і зберігається в базі даних «Joomla».


2.9 Побудова власних компонент і модулів



Припустимо, що ми повинні вирішити деяке завдання за допомогою Joomla, але не можемо знайти готову компоненту, що підходить для цього. Наприклад, ми - автомобільний дилер, і потребуємо списку використовуваних вантажівок на веб - сайті, яким можемо управляти адміністративними засобами Joomla. Для цього можна просто розширити функціональність Joomla новими компонентами, модулями. Те, що на перший погляд здається досить важким, насправді є доступним навіть тим, хто володіє лише початковими знаннями РНР.

Концепція «модель – вид – контролер »

В Joomla 1.5 представлена концепція (шаблон проектування) для програмування розширень, яка називається "модель - вид - контролер" (Model-View-Controller – MVC). Даний підхід застосовується в сучасній розробці програмного забезпечення, щоб внести деякий порядок в ці речі.

При вирішенні програмних завдань майже завжди необхідні наступні тр компоненти: 

–	модель; 

–	вид;

– 	контролер.

Звідси виникає необхідність в стандартизації цих трьох компонентів.

Оскільки програмісти відчувають «алергію» до подібних стандарттів, концепція повинна нести в собі реальну вигоду. Уважно розглянемо кожен з цих компонентів.

Модель

Модель містить подання інформації. Неважливо, звідки надходять дані. Модель не знає нічого про висновок даних і не має уявлення про те, як ці дані змінюються.

Вид 

Вид відображає дані з моделі. Між моделлю й представленням повинен бути зв'язок, щоб було що відображати.

Контролер

Контролер управляє всім у цілому, тобто реагує на введення користувача й інші події, адмініструє моделі й представлення, а також обробляє нашу інформацію для поданя.

MVC - це різновид системи для програмного забезпечення. MVC дозволяє створювати програмний дизайн, що спрощує проведення подальших змін і дозволяє багаторазово використовувати код. 



2.10 Приклад компоненти helloworld



Усі компоненти діляться на компоненти інтерфейсної частини й компоненти адміністративноі частини. Компоненти інтерфейсноі частини відображаються на веб-сайті, а компоненти адміністративної частини розробляються для адміністративного розділу - в основному для керування компонентами інтерфейсної частини. З погляду відвідувача сайту, ми можемо дізнатись компоненту способом запиту сторінки Joomla.

Так, наприклад,	 URL-адрес http://localhost/Joomla/index.php?option=com_contact викликає компоненту com_contact інтерфейсної частини. Якщо заглянути в базу даних, то виявимо безліч компонент у підкаталозі [Шлях_до_Joomla]/components, і серед них — компонента com_contact.

В залежності від складності компонентів, у цьому каталозі з'являються додаткові підкаталоги для моделі, представлення й контролера.

Домашній каталог helloworld

Кожна компонента розташовується у власному каталозі. Joomla пропонує наступну послідовність, визначення компоненти:

1. Joomla інтерпретує згенеровані значення в URL: /index.php?option=

com_helloworld.

2. Виконує пошук таблиці для компоненти com_helloworld.

3. Шукає каталог com_helloworld.

4. У цьому каталозі шукає файл helloworld.php.

5. Інтерпретує цей файл.

Для правильної інтерпретації необхідно кілька файлів:

• helloworld.php — точка входу у наш компонент.

• controller.php — контролер.

• views/helloworld/view.html.php — вид, що передає дані в шаблон.

• views/helloworld/tmpl/default.php — файл стандартного шаблону, який буде переписаний коректним шаблоном або використаний як є.

• helloworld.xml — відомий як XML-файл, який пояснює вміст пакету контролера, повідомляє йому, куди інсталювати його, і хто за нього відповідає.

Точка входу(componenet/com_hello/hello.php)

Це перший файл, що буде викликаний, коли ми вказуємо URL http://localhost/joomla/index.php?option=com_hello&view=hello або клацаємо на відповідному пункті меню. Результат буде виразно очікуваним. Ми побачимо текст "Hello World" у вікні контенту.

Вихідний код цього файлу представлений нижче:

/components/com_hello/hello.php:

<?php

// обмежений доступ

defined('_JEXEC') or die ('Restricted access');

// імпортування базового контролера

require__once (JPATH_COMPONENT.DS.'controller.php');

// створення власного контролера

$classname = 'HelloController'.$controller;

$controller = new $classname( );

// перевірка наявності параметрів запиту

$controller_>execute( JRequest::getVar('task'));

// перенаправлення всередині контролеру

$controller_>redirect();

?>

Перший рядок здійснюватиме контроль безпеки, перевіряючи, чи був файл викликаний Joomla або ж безпосередньо. Безпосередньо викликаний сценарій негайно зупиняється функцією die():

require_once {JPATH_COMPONENT.DS.'controller.php');

Після цього імпортується перший контролер. Абсолютний шлях до поточної компоненти (components/com_hello) виглядає як JPATH_COMPONENT, a DS представляє собою роздільник каталогів операційної системи. У Windows він відрізняється від Unix-подібних систем, тобто це буде / або \ Joomla встановлює це значення автоматично.

$classname = 'HelloController'.$controller;

$controller = new $classname();

Тепер можна створити екземпляр читаючого контролера, і тим самим одержати контролер, який потім використовуватиметься. Якщо потрібний всього один контролер, як це часто буває в інтерфейсній частині, можна скористатися наступним оператором:

$controller=newHelloController();

Scontroller_>execute( JRequest::getVar('task'));

Оператори для компонентів встановлюються в URL у наступній формі:

index.php?option=com_hello&task=task

(де task - одне зі значень save, edit, new...).

Наступний рядок використовується для перевірки, чи є щось для читання:

$controller_>redirect();

При цих умовах контролер перенаправляє запит на інший сайт, наприклад, якщо щось повинно зберегтись.

Контролер (/components/com_hello/controller.php)

Оскільки компонента є дуже проста, перед контролером тепер стоїть завдання щось відобрази. Нам не потрібна модель даних, а достатньо одного методу display.

/components/com_hellо/controller.php:

<?php

jimport('joomla.application.component.controller');

class HelloController extends JController

{

function display()

{

parent::display();

}

}

?>

Виклик методу display() задає ім'я й компонування представлення. Наша компонента розпізнає тільки стандартне компонування.

Вид (/components/cam_hello/views/hello/views.html.php)

Тут представлення вже є - представлення за замовчуванням.

/components/com_hello/views/hello/views.html.php:

<?php

jimport( 'joomla.application.component.view');

class HelloViewHello extends JView

{

function display ($tpl = null)

{

$greeting = "Hello World!";

$this_>assignRef( 'greeting1, $greeting);

parent::display ($tpl);

}

}

?>

Вид звичайно містить дані (з моделі), підготовляє їх і відсилає шаблону:

$greeting = "Hello World!";

$this_>assignRef( 'greeting', $greeting );

parent::display($tpl);

Через присвоєння змінних модель тут надлишкова. Змінна $greeting, проте, могла б містити результат запиту до бази даних. Змінна передається шаблону методом assignRef:

parent::display($tpl);

Це викликає появу шаблона.

Шаблон (/components/com_hello/views/hello/tmpl/default.php)

Тут застосовується шаблон за замовчуванням. Він завжди називається default.php і виглядає у своєму найпростішому виді.

/components/com_hello/views/hello/tmpl/default.php:

defined('_JEXEC) or die('Restricted access'); ?>

<h1><?php echo $this_>greeting; ?></h1>

Результат

В остаточному підсумку, одержуємо на веб-сайті очікуваний результат.

Інсталяція

Всі файли тепер упаковані в ZIP-пакет і можуть бути встановлені інсталятором Joomla. Файли інтерфейсної частини з /components/com_hello зберігаються в каталозі site, а файли адміністративної чистини з /com_hello/administrator/components — у каталозі admin. Всі файли описуються додаткової інформацією в hello.xml.

hello.xml:

<?xml version="l.0" enooding="utf_8"?>

<!DOCTYPE	install	 SYSTEM "http://dev.joomla.Org/xml/l.5/component_install.dtd">

<install type="component" version="l.5.0">

<name>Hello</name>

<creationDate>November</creationDate>

<author>Nobody</author>

<authorEmail>nobody@example.org</authorEmail>

<authorUrl>http://www.example.org</authorUrl>

<copyright>Copyright Info</copyright>

<license>License Info</license>

<version>Component Version String</version>

<description>description of the component . . . </description>

<!__ Site Main File Copy Section -->

<files folder="site">

<filename>index.html</filename>

<filename>hello.php</filename>

<filename>controller.php</filename>

<filename>views/index.html</filename>

<filename>views/hello/index.html</filename>

<filename>views/hello/view.html.php</filename>

<filename>views/hello/tmpl/index.html</filename>

<filename>views/hello/tmpl/default.php</filename>

</files>

<administration>

<!__ Розділ меню адміністрування -->

<menu>Hello World!</menu>

<!__ Розділ копії головних файлів адміністрування -->

<files folder="admin">

<!__ Розділ копії головних файлів сайту -->

<filename>index.html</filename>

<filename>admin.hello.php</filename>

	</files>

</administration>

</install>

При впакуванні в ZIP-пакет необхідно зберегти відповідну структуру. Тепер можна дозволити інсталятору Joomla завантажити й інсталювати пакет звичайним образом.



2.11 Приклад написання модуля



Модулі набагато простіші від компонент. Звичайно вони не мають адміністративного інтерфейсу, але час від часу приймають параметри. Модулі повністю пов'язані із презентацією на нашому веб-сайті й інтегровані у наш шаблон. Зазвичай модулі прикріплюются до існуючих компонентів. Тому і припускається, що необхідні таблиці й контент уже існують і можуть використовуватися. 

Для того щоб запрограмувати власний модуль, знадобиться два файли.

Один - для логіки й презентації, а інший – XML-файл для інсталятора Joomla.

Імена обох файлів починаються з мітки mod_.

Вихідний код

Глянемо на вихідний код цих файлів. Шаблони тут також застосовуються.

Ось їхні файли:

• mod_auto.php

• helper.php

• tmpl/default.php

• mod_auto.xml

Розглянемо ці файли разом з іншими.

Точка входу (mod_auto.php)

Файл mod auto.php — це керуючий файл для модуля.

mod_auto.php:

<?php

defined!'_JEXEC) or die('Restricted access');

require_once (dirname(_FILE_).DS.'helper.php');

$auto = modAutoHelper::getAuto($params);

require(JModuleHeiper::getLayoutPath('mod_auto'));

?>

У цій точці інтегрується клас helper, а не базовий контролер.

Клас helper (helper.php)

Клас helper комбінує в собі контролер і модель.

helper.php:

<?php

defined! '_JEXEC ) or die( 'Restricted access' );

class modAutoHelper

{

function getAuto(&$params)

{

global $mainframe;

3db =& JFactory: rgetDBO();

$query = "SELECT *"

. "\n FROM #_auto"

. "\n WHERE published =1"

. "\n LIMIT 0,5"

;

$db_>setQuery ( $query );

$rows = $db_>loadObjectList();;

$auto = "<ul>\n";

if ($rows) {

foreach ($rows as $row) {

$auto .= " <li>". $row_>text . "</'li>\n";

}

}

Sauto .= "</ul>\n";

return $auto;

}

}

?>

У класі helper запит рядків даних відбувається після всього іншого в циклі

for.

Шаблон (tmpl/default.php)

У цій досить простій конструкції змінна $auto зберігає вивід классу helper. Можна було б також просто виконати цикл for із класу helper і дуже вплинути на код HTML, що підлягає виводу, і в такий спосіб дозволити дизайнерові шаблона переписати вихідний код.

tmpl/default.php:

defined( '_JEXEC ) or die( 'Restricted access' ); ?>

<?php echo $auto; ?>

Файл mod_auto.xml

Для інсталяції модуля знадобляться всі необхідні дані для інсталятора Joomla у вигляді XML-файлу (як і у випадку компоненти).

mod_auto.xml:

<?xml version="l.ПРО" encoding="utf_8"?>

<install type="module" version="l.5.0">

<name>Auto</name>

<author>Hagen Graf</author>

<creationDate>November 2007</creationDate>

<copyright>(C) 2007 cocoate.com All rights reserved.</copyright>

<license>GNU/GPL</license>

<authorEmail>hagen.grafSgmail.com</authorEmail>

<authorUrl>www.cocoate.com</authorUrl>

<version>0.1</version>

<description>Auto Module</description>

<files>

<filename module="mod_auto">mod_auto.php</filename>

<filename>index.html</filename>

<filename>helper.php</filename>

<filename>tmpl/default.php</filename>

<filename>tmpl/index.html/filename>

</files>

</install>

Інсталяція

Необхідно скопіювати всі файли в підкаталог, впакувати цей каталог в ZIP-пакет і назвати mod_auto.zip. Як завжди, ми зможемо потім інсталювати цей пакет інсталятором Joomla і при бажанні дозволити іншим звантажувати його собі. Перш ніж приступити до інсталяції в себе, скористаємося інсталятором Joomla для деінсталяції версії, встановленої нами вручну. Для цього заходимо на Extensions⇒Install/Uninstall, відзначимо компоненту і клікнемо на піктограмі Uninstall.

Після інсталяції ми повинні будемо активізувати модуль через меню Extensions⇒Module Manager (Розширення⇒Диспетчер модулів).

Представлення на веб-сайті

Тепер ми можемо бачити елементи з таблиці joe_auto в обраній позиції.




3. Практична частина



Встановлення системи управління контентом Joomla відбувається 4-ма етапами. Під час першого етапу визначаються налаштування підключення до БД, які в майбутньому будуть використовуватися для роботи CMS. Поле «Ім'я хоста» призначено для визначення MySQL сервера, використовуваного системою. На цьому етапі нам необхідно ввести пароль до облікового запису користувача, використовуваного для підключення до БД.

Наступний етап дозволяє адміністраторові задати ім'я майбутнього сайту. Після встановлення системи, зміна ім'я можлива з адміністративного інтерфейсу. 

Третій крок визначає URL сайту, шлях до файлів системи на сервері, адресу електронної пошти й пароль адміністратора, який використовується для доступу в інтерфейс керування.

Четвертий крок інсталяції Joomla полягає у видаленні папки «/installation/» з кореневої директорії сайту. Після його виконання, система керування контентом повністю готова до подальшої експлуатації.

З інсталювавши Joomla, загружаємо шаблон для нашого майбутнього сайту. Для цього нам необхідно завантажити в папку «/templates/» нашу тему оформлення (Рис.1):





Рис.1


За допомогою меню Матеріали – Менеджер матеріалів – Створити додаємо матеріал, який відображатиметься на головній сторінці (Рис.2) :





Рис.2



Аналогічно додаємо всі матеріали, які нам необхідні (Рис.3):





Рис.3



Додаємо і налаштовуємо пункти головного меню, використовуючи Всі меню – Меню – Пункти меню (Рис.4):






Рис.4



Далі змінюємо колір при наведені курсора на пункт меню з сірого на чорний (це видно по вкладці Новини ) і збільшуємо шрифт. Для цього нам необхідно в вихідному коді нашого сайту знайти клас та ідентифікатор, який відповідає за це меню. Потім заходимо в таблиці стилів нашого шаблону, знайшовчи цей ідентифікатор , міняємо колір і збільшуємо шрифт (дописавши font-weight:bold; ). (Рис.5) :





Рис.5



Для того, щоб змінити назву нашого меню, заходимо в Всі меню – Меню – Заголовок (Рис.6) :






Рис.6

Тепер створюємо верхнє меню (Всі меню – Меню - Створити) і додаємо необхідні пункти (Всі меню – Меню – Пункти меню - Створити ) (Рис.7):





Рис.7



Після створення верхнього меню, нам необхідно зайти в Менеджер Модулів - Верхнє меню (і поставити потрібну позицію ).

Для визначення позиції дописуємо в адресній стрічці «?tр=1» і бачимо, де є модулі (Рис.8) :





Рис.8



Бачимо, що необхідна нам позиція – user3.

В параметрах меню вибираємо стиль «горизонтальний»

Вже є готове верхнє меню (Рис.9):





Рис.9



Ще до верхнього меню нам необхідно додати вкладку контакти, щоб клієнти могли зв’язатися з адміністрацією для вирішення необхідних їм питань.

Для цього в меню Компоненти – Контакти – Категорії створюємо категорію (Рис.10) :





Рис.10



Тепер переходимо на вкладку Контакти і створюємо контакт. Потім за допомогою Всі меню - Верхнє меню додаємо пункт меню Контакти (Рис.11):




Рис.11



Заходимо на вкладку Контакти і перевіряємо чи працює (Рис.12) :





Рис.12



Як бачимо , працює (Рис.13) :





Рис.13




Знімаємо напис «Курсова» на шаблоні і за допомогою графічного редактора створюємо заголовок нашого сайту (Рис.14) :





Рис.14



Як видно на рис.8 ще є вільний модуль top, тому можемо тут вставити «Розіграш призів». Для цього в меню Менеджер модулів додаємо цей модуль. Спочатку перевіримо чи працює, просто напишемо «код перевірки» (Рис.15):





Рис.15



Як бачимо працює .

Відображається погано, тому одразу відредагуємо: необхідно опустити на 25 пікселів, додати відступ між кнопками і збільшити шрифт (все це ми робимо в таблиці стилів нашого шаблону). Все готово (Рис.16):





Рис.16


Встановлюємо компоненту Community Builder:

В меню Розширення – Встановити/Видалити вибираємо через Огляд архів нашої компоненти. І одразу кирилізуємо її, щоб легше було працювати.

Для початку розглянемо адміністративну панель нашої компоненти (Рис.17):





Рис.17



1. User Management - розділ керування зареєстрованими користувачами.

Тут ми можемо додавати, видаляти, блокувати користувачів, схвалити його реєстрацію, змінити його дані - загалом, аналог стандартного управління користувачами Joomla. .

2. Tab Management - розділ керування візуальним відображенням інформаційних блоків в анкеті користувача.

Усе, що ми бачимо у власній і користувацькій анкетах виводиться за допомогою так званих блоків. У налаштуваннях кожного з них можна вказати яким образом він буде виводитися, у якій області екрана. 

Плюс до всього, найчастіше параметри плагінів CB змінюються теж у блоках, які створюються цими плагінами під час їхньої установки.

Налаштування блоків:

Title - заголовок блоку, що буде відображатися. 

Description -опис	блоку. 

Publish –опублікований чи ні.

Position - позиція блоку (якщо цей блок взагалі повинен виводитися). Приміром, у нас є чотири блоки. Перший повинен виводитися вгорі на всю ширину екрана, два наступних блоки - один ліворуч (50%), другий праворуч (50%), четвертий - унизу, на всю ширину екрану. Тоді для першого блоку вибираємо позицію "Заголовок", для другого - "Ліва сторона", для третього - "Права сторона", для четвертого - "Головна область" або "Нижня область". Якщо потрібно, щоб лівий блок був завширшки 30%, а правий - 70%, тоді необхідно зайти в configuration CB, вибрати закладку "Профіль користувача" і в рядку "2 columns layout: widths:" вказати потрібний параметр для лівого блоку (правий сам розтягнеться).

Display type зовнішній вигляд блоку. 

3. Field Management - розділ керування полями для введення інформації, які будуть показані під час реєстрації, а також в анкеті користувача.

Тут з'являється можливість редагувати як уже існуючі поля для введення інформації (textarea, radio button і т.п.), так і створювати свої, а також вказувати для них параметри їхнього показу користувачам.

Параметри: 

Required? - якщо "так", те поле стає обов'язковим для заповнення.

Show on Profile? - якщо "так", те поле буде відображатися в анкеті користувача.

User Read Only? - якщо "так", те поле можна буде заповнити тільки один раз під час реєстрації.

Show at Registration? - якщо "так", те поле буде видно під час реєстрації.

Published –включає або виключає поле.

4. List Management - управління налаштуваннями списків користувачів.

5. Plugin Management - управління додатковими плагінами для CB. У цьому ж розділі відбувається встановлення цих плагинов.

6. Tools - додаткові інструменти CB. Після всановлення компоненти варто відразу ж виконати Synchronize Users, тоді інформація про вже зареєстрованих користувачів зістикується з нашою компонентою. 

Якщо необхідно, щоб в Field Managered додалися поля зі стандартної компоненти "Контакти", то натиснемо на посилання Load Sample Data.

Встановлюємо 2 модулі:

– для реєстрації;

– для відображення зареєстрованих користувачів на сайті;

Перед тим як працювати, необхідно відключити системну компоненту для реєстрації яка вмонтована в саму Joomla, щоб не було ніяких проблем (Сайт – Загальні налаштування, Налаштування користувача – Дозволити реєстрацію користувача - Ні).

А потім налаштовуємо в Community Builder , що реєстрація буде саме через цю компоненту (СВ – Менеджер конфігурації – Реєстрація - Дозволити реєстрацію користувача – Так, незалежно від глобальних налаштувань сайту).

Для того , щоб налаштувати нашу компоненту, спочатку налаштуємо модулі. В меню Менеджер модулів – CB Login (налаштовуємо модуль, для реєстрації). 

На вкладці Параметри можна задавати:

що буде писати під заголовком,

що писатиме при вході, при виході, 

необхідно задати посилання, куди перенаправлятиме зареєстрованого користувача (якщо необхідно, щоб користувача після реєстрації скеровувало в його профіль, то вводимо:

index.php?option=com_comprofiler&amp;task=userProfile),

посилання, куди направлятиме користувача після виходу

чи показувати посилання на : «Забув пароль»,

яка може бути довжина логіну і пароля

що показуватиме в якості привітання при вході

чи показувати аватар біля привітання (і вибрати йому позицію),

текст для посилання під привітання ( пишемо Ваш профіль тут)

посилання для редагування профілю користувача ( пишемо Редагувати Ваш профіль),

налаштування інтеграції плагінів (Так)

Включаємо цей модуль і ось він в нас (Рис.18) :





Рис.18



Необхідно відредагувати, тому в вихідному коді шукаємо форму реєстрації і її ідентифікатор (id=”mod_loginform”). Заходимо в Z:/home/localhost/kursova/modules/mod_cblogin/mod_cblogin.php. Зайшовши в файл, який відповідає за формування даного модуля, шукаємо необхідний ідентифікатор і дописуємо <div style="border:1px solid red"> - поставимо рамочку (Рис.19):





Рис.19




Як бачимо , нам необхідно додати лівий відступ приблизно на 20 пікселів (замість рамочки пишемо <div style="margin-left:20px;"> і зберігаємо) (Рис.20):



.

Рис.20



Пробуємо зайти (Рис.21):





Рис.21



Зайшовши, відредагуємо наш профіль (Рис.22):






Рис.22



Нам необхідно додати нові блоки.

Так як наш сайт спеціалізується на комп’ютерах, то можна додати блок «ПК користувача». Заходимо на вкладку Управління блоками – Новий блок. Задаємо заголовок нашого блоку, якщо необхідно, то описуємо цей блок в графі Коментар і зберігаємо. Для того, щоб наш блок виводився необхідно додати ще поля, які користувач заповнюватиме. Заходимо на вкладку Управління полями – Нове поле, де потрібно задати: тип (в нашому випадку просто текст); блок, до якого це поле відноситься; назву поля; заголовок; опис даного поля; чи відображатиметься це поле при реєстрації (ми обираємо Ні); розмір і максимальну довжину поля; слова, які заборонені при реєстрації і слова, які заборонені при редагуванні цього поля. Коли ми все необхідне ввели – зберігаємо. І одразу введемо наші дані в блок (Рис.23) :






Рис.23



В даному блоці лише одне поле, тому буде краще якщо ми змінимо йому позицію з закладок (Рис.24) :





Рис.24



Тепер попробуємо встановити зв’язок між користувачами. 

Для цього необхідно додати ще одного користувача (Рис.25):






Рис.25



Після реєстрації одразу відредагуємо профіль другого користувача (Рис.26) :





Рис.26



На даний момент в нас уже є два користувачі, так що ми можемо попробувати налаштувати зв’язок між ними. Заходимо в меню Компоненти –Community Builder – Зв’язки – Дозволити зв’язки – Так. 

Зв’язки ми включили, тепер необхідно зробити так, щоб зареєстровані користувачі могли бачити одне одного. Для цього потрібно додати додаткове меню (посилання, яке відображатиме список всіх зареєстрованих користувачів). Додаємо один пункт меню, вибираємо тип – Зовнішнє посилання. Після цього включаємо модуль, який відповідає за це меню (Розширення – Менеджер модулів – Усі користувачі і вибираємо позицію – бачитимуть лише зареєстровані користувачі) (Рис.27):





Рис.27



Тепер зайдемо під другим користувачем (Ірина), там появилась вкладка Зв’язок і встановлюємо зв’язок з попереднім користувачем (Admin), який повинен буде підтвердити цей зв’язок. Можна спочатку переглянути сторінку, того хто просить встановити зв’язок і тоді вирішувати чи підтверджувати чи ні (Рис.28):






Рис.28



Якщо ми повернемось в наш профіль то побачимо що в нас є Зв’язок (1) (Рис.29):





Рис.29

Для зручності додамо окремий блок (Компоненти –Community Builder – Управління блоками і включаємо блок Зв’язки) (Рис.30):



Рис.30



Так буде зручніше, тому що нам одразу буде видно з ким встановлений зв’язок, зможемо переглянути його профіль і надіслати повідомлення на e-mail.

Для простоти спілкування нам потрібно додати розширення, з допомогою якого користувачі зможуть обмінюватися миттєвими повідомленнями (не на e-mail ).

Спочатку встановлюємо компоненту Особистих повідомлень (по суті ця компонента є своєрідною поштовою скринькою для спілкування). Необхідно встановити модуль, який відображатиме панель з внутрішньою поштовою скринькою користувача (вхідні, вихідні, нове повідомлення). Після встановлення включаємо цей модуль.

Попробуємо написати нове повідомлення (Рис.31):




 

Рис.31



Зайдемо під другим користувачем і подивимось чи повідомлення одержано (Рис.32):





Рис.32



Для кращої зручності додамо два плагіни (Компоненти –Community Builder – Управління плагінами і загружаємо наші плагіни) (Рис.33):






Рис.33



Зовнішній вигляд компоненти (Рис.34):





Рис.34



Міняємо шаблон для компоненти Особисті повідомлення (Рис.35):






Рис.35



На Рис.25 ми бачимо, що при реєстрації нових користувачів наш сайт є зовсім незахищеним, тому для безпеки від різних спамів, встановимо пагін Сaptcha , який іншими словами називають захищеним кодом.

Меню Компоненти - Community Builder – Менеджер плагінів і встановлюємо наш пагін, потім його включаємо (Рис.36):





Рис.36


Встановимо компоненту Форум, яка повинна взаємодіяти з Community Builder, щоб людина могла один раз зареєструватись, зайти на сайт і писати повідомлення на форумі від свого імені, не проходивши постійної процедури реєстрації чи входу.

Заходимо в меню Розширення – Встановити/Видалити – Встановити з папки (вказуємо адресу до папки) – Встановити.

Після встановлення необхідно об’єднати розширення Форум з СВ, щоб в нас була єдина база даних користувачів. Для цього меню Компоненти – 

FireBoard (компонента нашого форуму) – Конфігурація – Інтеграція і обираємо необхідні нам налаштування.

Створюємо додатковий пункт меню для нашого Форуму в головному і верхньому меню (Рис.37):





Рис.37



Створюємо категорію, заходимо меню Компоненти – FireBoard – Управління форумами – Створити. Вибираємо основні налаштування, зберігаємо і опубліковуємо. Після створення категорії, додаємо форуми (Рис.38):





Рис.38



Редагуємо зовнішній вигляд компоненти Форум, відповідно до нашого сайту (Рис.39)





Рис.39


Головна сторінка нашого сайту (Рис.40):





Рис.40



Головна сторінка сайту для зареєстрованого користувача (Рис.41) :





Рис.41


Висновок



Під час виконання курсової роботи я розглянула побудову компонентів та модулів системи управління контентом Joomla і навчилася працювала з уже готовими розширеннями. 

Система управління контентом Joomla має модульну структуру і в своєму базовому варіанті не забезпечує всіх необхідних можливостей, потрібних для реалізації готового проекту. Розширення дозволяють істотно збільшити функціональність створюваного сайту.

Розширення дозволяють істотно збільшити функціональність створюваного сайту, наприклад, додати форум, чат, інтернет-магазин і багато іншого. 

Розширення в Joomla бувають трьох типів: модулі, компоненти і плагіни.

Модуль - наймінімальніше розширення. В якості модуля можуть бути представлені: меню сайту, список останніх статтів, лічильники відвідувань, пошук, авторизація користувачів, форми опитувань і контактів, будь-яка статична та динамічна інформація, задана користувачем. 

На відміну від модулів, компоненти завантажуються завжди в центральну частину сторінки. Компонент може бути всього один на сторінці. Компоненти використовуються, як правило, для взаємодії з користувачами.




Список використаної літаретури



1. Берри Норт «Joomla! Практическое руководство».: пер. з англ. – СПб: Символ-Плюс, 2008. – 448с., іл.. 

2. Дэн Рамел «Самоучитель Joomla!».: пер. з англ. – СПб.:БХВ- Петегбург, 2008. – 448с., іл..

3. Д. Н. Колисниченко «Движок для вашего сайта. CMS Joomla! Slaed. Php - Nuke. » – СПб.: БХВ-Петербург, 2008. – 368с., іл..

4. Хаген Граф «Создание веб-сайтов с помощью Joomla! 1.5» .: пер. з англ. – М.: ООО «И. Д. Вильямс», 2009. – 304 с., ил. 

5.Joomlaportal.ru	// Ел.	ресурс : http://joomlaportal.ru/content/view/13/33/

6. Joomlaportal.ru	// Ел.	ресурс http://joomlaportal.ru/content/blogcategory/28/63/

7. Проектирование сайтов (блог Дмитрия Сергеева) // Ел. ресурс : http://www.dserg.com/drupal-joomla-wordpress-2007-08-09.html

8. Словник Хак Термінів. Joomla. // Ел.	ресурс http://hackwiki.org/joomla/