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

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

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

Один - для логіки й презентації, а інший – 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 в обраній позиції.

 



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

Встановлення системи управління контентом 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 бувають трьох типів: модулі, компоненти і плагіни.

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

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

 




Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: