Смекни!
smekni.com

Побудова компонент та модулів для системи управління контентом Joomla (стр. 4 из 6)

<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 *"

. "&bsol;n FROM #_auto"

. "&bsol;n WHERE published =1"

. "&bsol;n LIMIT 0,5"

;

$db_>setQuery ( $query );

$rows = $db_>loadObjectList();;

$auto = "<ul>&bsol;n";

if ($rows) {

foreach ($rows as $row) {

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

}

}

Sauto .= "</ul>&bsol;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⇒ModuleManager (Розширення⇒Диспетчер модулів).

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

Тепер ми можемо бачити елементи з таблиці 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


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

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

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

Рис.17

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

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

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

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