Модуль ежедневник "CMS Joomla"

Тип работы:
Дипломная
Предмет:
Программирование


Узнать стоимость новой

Детальная информация о работе

Выдержка из работы

Министерство образования Республики Беларусь

Учреждение образования «Гродненский государственный университет имени Янки Купалы»

Факультет математики и информатики

Кафедра программного обеспечения интеллектуальных и компьютерных систем

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

Модуль ежедневник «CMS Joomla»

Выполнил: студент 3 курса, 8 группы, специальность: «Программное обеспечение информационных технологий»

Пометько Александр Викторович

Научный руководитель: старший преподаватель Гуща Юлия Вальдемаровна

Гродно 2013

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

ГЛАВА 1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ

1.1 Обзор CMS — систем

1.2 Модуль CMS: особенности создание

1.3 Выбор средств реализации

1.3.1 XML

1.3.2 PHP

1.3.3 Adobe Dreamweaver CS6

ГЛАВА 2. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ МОДУЛЯ «ЕЖЕДНЕВНИК»

2.1 Структура модуля «Ежедневник»

2.2 Файл с настройками модуля

2.3 Логика модуля

ГЛАВА 3. ДЕМОНСТРАЦИЯ МОДУЛЯ «ЕЖЕДНЕВНИК»

3.1 Установка и настройка модуля

3.2 Демонстрация работы модуля

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

Приложение А

Листинг 1. (v1. css)

Листинг 2. (default. php)

Листинг 3 (mod_jalendar. xml)

ВВЕДЕНИЕ

Когда Интернет еще делал свои первые шаги, сайты, как правило, были довольно простыми и имели только одну цель — предоставление пользователю доступа к статичной текстовой или графической информации. Добавлять новые страницы и изменять текст на них приходилось достаточно редко, этим занимались обычно сами разработчики сайтов.

Постепенно функции сайтов расширялись, возникала необходимость регулярно (по несколько раз в день или даже чаще) обновлять информацию на страницах сайтов и стало ясно, что этот процесс желательно автоматизировать. Для этого и были созданы первые CMS (Content management system) — системы управления содержимым или системы управления сайтом

СMS предоставляет ряд функций:

1. Предоставление инструментов для создания содержимого, организация совместной работы над содержимым.

2. Управление содержимым: хранение, контроль версий, соблюдение режима доступа, управление потоком документов и т. п.

3. Публикация содержимого.

4. Представление информации в виде, удобном для навигации, поиска.

В системе управления содержимым могут находиться самые различные данные: документы, фильмы, фотографии, номера телефонов, научные данные и так далее. Такая система часто используется для хранения, управления, пересмотра и публикации документации. Контроль версий является одним из основных её преимуществ, когда содержимое изменяется группой лиц.

В мире существует огромное множество CMS для самых разных целей, самого разного качества, самой разной перспективы, стоимости, распространённости и так далее. Одними из самых распространённых являются Joomla, Drupal, Wordpress, vBulletin, TYPO3. 1]

В каждой CMS существует такой термин как модуль. Итак, это отдельные небольшие многофункциональные решения для сайта на CMS. При помощи модулей, можно вывести какую либо информацию (погоду, счетчики, контент, слайдшоу и.т.д.). Модули для CMS это чрезвычайно важно, т.к. без них функциональность CMS значительно снижается.

Целью курсовой работы является — разработка модуля «Ежедневник» для CMS Joomla.

Порядок выполнения работы:

1. Обзор материалов, касающихся систем и технологий для реализации.

2. Моделирование предметной области и обоснование выбранных средств разработки проекта.

3. Программная реализация проекта.

ГЛАВА 1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ

1.1 Обзор CMS — систем

1. 2

Рис. 1.1. Процентное соотношение использования различных CMS

Joomla что-то среднее между обширными возможностями ориентированного на разработчиков Drupal и простотой WordPress, но с более широкими возможностями для разработки. Как и любая CMS — система, Joomla имеет свои преимущества и недостатки:

Преимущества:

1. Поддержка протоколов контроля доступа (OpenID, LDAP, Gmail. com);

2. Наличие удобной админ-панели с широким набором функций: шаблоны, стили, управление меню и так далее;

3. Простой процесс установки для неопытных пользователей;

Недостатки:

1. Система довольно поверхностна и слаба, несмотря на всю универсальность;

2. Больше платных плагинов и тем в сравнении с WordPress. Будьте готовы платить;

Joomla — это лучшее решение: CMS с расширенными функциями и возможностями. Она обеспечивает более богатую и гибкую структуру веб-сайта, чем WordPress. Важной особенностью системы является минимальный набор инструментов при начальной установке, который дополняется по мере необходимости различного рода модулями, плагинами, компонентами. Это снижает загромождение административной панели ненужными элементами, а также снижает нагрузку на сервер и экономит место на хостинге. Такой подход наиболее прост и понятен, как в использовании, так и в понимании.

1.2 Модуль CMS: особенности создания

Для разработки модулей Joomla необходимы знания основ объектно-ориентированного программирования в PHP, HTML, CSS, XML.

Простейший модуль Joomla как минимум должен иметь два файла: основной php-файл (который содержит исполняемый код), xml-файл, содержащий все атрибуты и настройки модуля.

Существует определённая структура файлов и каталогов модуля:

CSS — находятся таблицы стилей для данного модуля, формата css.

IMG (Image) — находятся изображения, преимущественно форматов png и ico. За счёт своего минимального размера и оптимального качества.

TMPL (Template) — хранится шаблон отображающий данные.

В корневом каталоге должны находиться как минимум 2 файла форматов php и xml:

xml — установочный файл для модуля, через него в админ панели модуля будут настраиваться параметры для модуля (размер, фон и т. п.).

php — входная точка для запуска нашего модуля, этот файл вызывается ядром Joomla, а он в свою очередь подключает шаблон и отображает его.

В каждом каталоге может находиться файл формата html: пустой файл который отобразит чистую страницу при прямом обращении к директории.

Joomla Framework дает нам широкий спектр возможностей — можно узнать как обратиться к важным глобальным объектам внутри расширения.

Гибкость модуля достигается за счёт его настройки. Фактически чем их больше, тем более гибким и универсальным можно считать модуль.

Без использование базы данных в модулях — полезность модуля сводиться к нулю. 2]

1.3 Выбор средств реализации

Для работы с PHP и XML, была выбрана среда Adobe Dreamweaver CS6. Для тестирования и запуска модуля нам понадобиться сама Joomla (v1. 5), и сервер (например Denwer).

1.3.1 XML

При создании модуля, XML файл имеет важную роль, ведь именно он будет указывать Joomla как и куда устанавливать модуль. В нём будут прописаны основные параметры и настройки, описываться основная информация о разработчике, указываться необходимые файлы и каталоги, а также языки.

1.3.2 PHP

Важнейшую роль в работе модуля имеет скрипт, написанный на серверном языке программирования: PHP. Он отвечает за логику модуля, его действия, является входной точкой запуска модуля. Этот файл вызывается ядром Joomla.

1.3.3 Adobe Dreamweaver CS6

Данное программное обеспечение обладает достаточно приятным и интуитивным визуальным интерфейсом, с его помощью довольно просто вести редактирование и создание файлов. Она проста в обращении, отличный редактор кода и функционал.

ГЛАВА 2. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ МОДУЛЯ «ЕЖЕДНЕВНИК»

2.1 Структура модуля «Ежедневник»

Общая структура модуля представлена на рисунке 2.1.

Рис. 2.1. Структура модуля «Ежедневник»

CSS — содержит в себе файл с схемой оформления модуля: v1. css (см. листинг 1).

IMG — содержит изображения необходимые для работы модуля:

r. png — изображение стрелки вправо.

r2. png — изображение двойной стрелки вправо.

l. png — изображение стрелки влево.

l2. png — изображение двойной стрелки влево.

TMPL — содержит шаблон отображения данных.

mod_jalendar. xml — установочный файл для модуля, через него в админ панели модуля будут настраиваться параметры для модуля.

mod_jalendar. php — вся логика модуля.

index. html — пустой файл который отобразит чистую страницу при прямом обращении к директории.

helper. php — вспомогательный класс, отвечающий за оформление и расположение числа, месяца, года, события.

Каждый каталог содержит в себе файл index. html: пустой файл, который отобразит пустую страницу при прям обращении к директории.

2.2 Файл с настройками модуля

Файл XML указывает Joomla как и куда устанавливать модуль, также в нём хранятся следующие настройки:

1. Указана информация о разработчике.

2. Указаны пути для необходимых файлов.

3. Прописаны основные и дополнительные параметры модуля.

Исходный код XML файла (см. листинг 2).

2.3 Логика модуля

Логика модуля написана на языке программирования PHP.

Ниже представлен исходный код логики модуля:

< ?php

if (!defined ('_JEXEC'))

{

define ('_JEXEC', 1);

define ('JPATH_BASE', dirname (__FILE__). '/./.');

define ('DS', DIRECTORY_SEPARATOR);

require_once ('./. /configuration. php');

require_once ('./. /includes/defines. php');

require_once ('./. /includes/framework. php');

$ajaxed=1;

$mainframe =& JFactory: :getApplication ('site');

$mainframe-> initialise ();

$language =& JFactory: :getLanguage ();

$language-> load ('mod_jalendar');

$document = & JFactory: getDocument ();

$mid = (int) JRequest: :getVar ('mid');

$query = «SELECT params FROM #__modules WHERE id = $mid; «;

$database = JFactory: :getDBO ();

$database-> setQuery ($query);

$params = $database-> loadResult ();

$params = new JParameter ($params);

}

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

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

$rooturi=parse_url (JURI: :root ());

$rooturi=$rooturi['scheme']. '://'. $rooturi['host']. '/';

$curmonth=(int) JRequest: :getVar ('curmonth',($params->get («default_month»)?$params->get ("default_month"):date ('n')));

$curyear=(int) JRequest: :getVar ('curyear',($params->get («default_year»)?$params->get ("default_year"):date ('Y')));

$dayofmonths=array (31,(!($curyear%400)?29: (!($curyear%100)?28:(!($curyear%4)?29:28))), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

if (empty ($mid)) $mid=$module-> id;

$calen = modJalendar: :getCal ($curmonth,$curyear,$params,$dayofmonths);

if (file_exists (dirname (__FILE__). DS.'./. /administrator/components/com_jalendar/config. php') & & $params-> get («all_links»)==1)

$config-> a_type==2) $a_links = modJalendar: :DayLinkC ($curmonth,$curyear);

$mergelinks=array_merge ((array) $a_links,(array)$links);

$cont = modJalendar: :getContent ($calen,$params,$curmonth,$curyear,$mergelinks,$mid,$ajaxed,$dayofmonths,$rooturi);

if (!($params-> get («CSSlist»))) $css=modJalendar: :getCSS ($params);

reque (JModuleHelper: :getLayoutPath ('mod_jalendar'));

?>

ГЛАВА 3. ДЕМОНСТРАЦИЯ МОДУЛЯ «ЕЖЕДНЕВНИК»

3.1 Установка и настройка модуля

1. Авторизоваться в панели администрирования.

2. Выбирать меню пункт «Расширения» -> «Установить/Удалить».

3. Открыть раздел «Установить».

4. В пункте «Загрузить файл пакета» нажимаем кнопку «Обзор».

5. Выбрать архив с модулем на локальной машине.

6. Нажать кнопку «Загрузить файл & Установить».

7. Включить модуль как показано на изображении ниже:

Рис. 3.1. Менеджер модулей

8. Выбирать из списка наш модуль, настраиваем подробности:

Рис. 3.2. Подробности модуля

9. Настроить параметры модуля:

Рис. 3.3. Параметры модуля

10. По желанию настроить расширенные параметры:

Рис. 3.4. Расширенные параметры модуля

11. Добавить новый материал (указать все необходимые параметры):

Рис. 3.5. Добавление материала

12. Сохранить все изменения и перейти к просмотру модуля.

3.2 Демонстрация работы модуля

Начальная страница приложения:

Рис. 3.6. Начальная страница

На странице находится календарь (нижним подчёркиванием выделены даты, у которых есть события), для просмотра выбрать нужную дату.

Рис. 3.7. Календарь

После выбора даты появляется следующее окно (дата на 22 мая 2013):

Рис. 3.8. Выбранная дата 22 мая

ЗАКЛЮЧЕНИЕ

В данной курсовой работе был расширен стандартный календарь CMS Joomla, который предоставляет возможность создания ежедневника на вашем сайте. Были достигнуты следующие поставленные цели:

— создание структуры модуля.

— создание файла шаблонизации модуля.

— создание цветовой схемы для модуля.

— создание XML файла с описанием и настройками.

— создание PHP файла с логикой приложения.

календарь модуль файл

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

СMS — системы [Электронный ресурс] - http: //ru. wikipedia. org/ - дата: 18. 02. 2013.

Моддули под Joomla [Электронный ресурс] - http: //joomla-book. ru — дата: 19. 02. 2013.

Марк Декстер, Луис Лэндри, Joomla программирование / Марк Декстер Луис Лэндри // Пер. с англ.- М.: ООО «Бином-Пресс», 2003 г. — 560 с.

Топ 5 CMS — систем [Электронный ресурс] http: //habrahabr. ru/post/151 879/ - дата: 19. 04. 2013.

Приложение А

Листинг 1. (v1. css)

. monthname {

font-family: «Trebuchet MS», Arial, sans-serif;

font-size: 10pt;

font-weight: bolder;

color: black;

}

. yearname{

font-family: «Trebuchet MS», Arial, sans-serif;

font-size: 10pt;

font-weight: bolder;

color: black;

}

a. monthlink{

color: black! important;

text-decoration: underline! important;

}

a. yearlink{

color: black! important;

text-decoration: underline! important;

}

table. grid_c {

font-family: «Trebuchet MS», Arial, sans-serif;

font-size: 10pt;

}

table. jal_header {

}

td#dayname {

font-weight: bolder;

}

td. dayweek1 {

color: #4F76A3;

}

td. dayweek2 {

color: #4F76A3;

}

td. dayweek3 {

color: #4F76A3;

}

td. dayweek4 {

color: #4F76A3;

}

td. dayweek5 {

color: #4F76A3;

}

td. dayweek6 {

color: red;

}

td. dayweek7 {

color: red;

}

td. pndayweek {

color: #c0c0c0;

}

td. numweek{

color: #34c924;

}

a. dwlink{

color: inherit! important;

text-decoration: none! important;

}

Листинг 2. (default. php)

< ?php

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

if ($params-> get («CSSlist»)) JHTML: :stylesheet ($params-> get («CSSlist»), 'modules/mod_jalendar/css/');

else

{

?>

< style type="text/css">

< ?php

echo $css;

?>

< /style>

< ?php

}

JHTML: :_('behavior. mootools');

if ($params-> get («use_ajax»))

{

?>

< script type="text/javascript" charset='utf-8' src="modules/mod_jalendar/js/jal. js">

< /script>

< script type="text/javascript" charset='utf-8'>

var server_url = '< ?php echo $rooturi; ?> ';

< /script>

< ?php

}

echo $cont;

?

Листинг 3 (mod_jalendar. xml)

< ?xml version="1. 0″ encoding="utf-8″?>

< install type="module" version="1.5. 0">

< name>Planner</name>

< author>Alexpo</author>

< license>alexpo@ojooo. com</license>

< creationDate>17. 05. 2013</creationDate>

< version>1.0. 1</version>

< releaseDate>17. 05. 2013</releaseDate>

< files>

< filename module="mod_jalendar"> index. html</filename>

< filename>helper. php</filename>

< filename>mod_jalendar. php</filename>

< folder>tmpl</folder>

< folder>css</folder>

< folder>img</folder>

< folder>js</folder>

< folder>elements</folder>

< /files>

< languages>

< language tag="en-GB"> languages/en-GB. mod_jalendar. ini</language>

< language tag="ru-RU"> languages/ru-RU. mod_jalendar. ini</language>

< language tag="it-IT"> languages/it-IT. mod_jalendar. ini</language>

< language tag="fr-FR"> languages/fr-FR. mod_jalendar. ini</language>

< language tag="de-DE"> languages/de-DE. mod_jalendar. ini</language>

< /languages>

< params>

< param name="use_ajax" type="list" default="1″ label="Use AJAX" description="">

< option value="0"> No</option>

< option value="1"> Yes</option>

< /param>

< param name="all_links" type="list" default="1″ label="Links" description="">

< option value="0"> No links< /option>

< option value="1"> Only days with articles< /option>

< option value="2"> All days as links< /option>

< /param>

< param name="month_link" type="list" default="0″ label="Month link" description="">

< option value="0"> No</option>

< option value="1"> Yes</option>

< /param>

< param name="year_link" type="list" default="0″ label="Year link" description="">

< option value="0"> No</option>

< option value="1"> Yes</option>

< /param>

< param name="monthname_len" type="list" default="f" label="Lenght month name" description="">

< option value="f"> full</option>

< option value="3"> 3</option>

< option value="1"> 1</option>

< /param>

< param name="dayname_len" type="list" default="2″ label="Lenght day name" description="">

< option value="1"> one letters< /option>

< option value="2"> two letters< /option>

< option value="3">3 letters< /option>

< /param>

< param name="linecount" type="list" default="1″ label="Place Year and Month" description="">

< option value="0"> In line< /option>

< option value="1"> Two-line</option></param>

< param name="arrow_en" type="list" default="2″ label="Arrow" description="">

< option value="0"> No arrow< /option>

< option value="1"> For months< /option>

< option value="2"> For month and year< /option>

< /param>

< param name="firstday" type="list" default="0″ label="First day of the week" description="">

< option value="0"> Monday</option>

< option value="1"> Tuesday</option>

< option value="2"> Wednesday</option>

< option value="3"> Thursday</option>

< option value="4"> Friday</option>

< option value="5"> Saturday</option>

< option value="6"> Sunday</option>

< /param>

< param name="default_year" type="text" label="Default Year" description="" />

< param name="default_month" type="list" default="0″ label="Default Month" description="">

< option value="0"> No set< /option>

< option value="1"> January</option>

< option value="2"> February</option>

< option value="3"> March</option>

< option value="4"> April</option>

< option value="5"> May</option>

< option value="6"> June</option>

< option value="7"> July</option>

< option value="8"> August</option>

< option value="9"> September</option>

< option value="10"> October</option>

< option value="11"> November</option>

< option value="12"> December</option>

< /param>

< param name="pnmonths" type="list" default="0″ label="Show days previous and next months" description="">

< option value="0"> No</option>

< option value="1"> Yes</option>

< /param>

< param name="num_week" type="list" default="0″ label="Number the Week" description="">

< option value="0"> No</option>

< option value="1"> Simple numbered< /option>

< option value="2"> Sequentially numbered< /option>

< /param>

< param name="orientation" type="list" default="0″ label="Orientation" description="">

< option value="0"> horizontal</option>

< option value="1"> vertical</option>

< /param>

< param name="encode" type="list" default="UTF-8″ label="Encoding" description="">

< option value="UTF-8"> UTF-8</option>

< option value="ISO-8859−1"> ISO-8859−1</option>

< option value="Windows-1251"> Windows-1251</option>

< option value="KOI8-R"> KOI8-R</option>

< option value="ISO-8859−1"> ISO-8859−1</option>

< /param>

< /params>

< params group="advanced" addpath="/modules/mod_jalendar/elements/">

< param name="color1″ type="text" default="#4F76A3″ label="Color monday" description="" />

< param name="color2″ type="text" default="#4F76A3″ label="Color Tuesday" description="" />

< param name="color3″ type="text" default="#4F76A3″ label="Color Wednesday" description="" />

< param name="color4″ type="text" default="#4F76A3″ label="Color Thursday" description="" />

< param name="color5″ type="text" default="#4F76A3″ label="Color Friday" description="" />

< param name="color6″ type="text" default="#ff0000″ label="Color Saturday" description="" />

< param name="color7″ type="text" default="#ff0000″ label="Color Sunday" description="" />

< param name="color_month" type="text" default="black" label="Color Month" description="" />

< param name="color_year" type="text" default="black" label="Color Year" description="" />

< param name="color_num" type="text" default="green" label="Color Numerate" description="" />

< param name="color_daylink" type="text" default="" label="Color day link" description="" />

< param name="color_pnmonthday" type="text" default="#c0c0c0″ label="Color previous and next month day" description="" />

< param name="underline_day" type="list" default="underline" label="Underline day link" description="">

< option value="none"> none</option>

< option value="underline"> underline</option>

< /param>

< param name="underline_month" type="list" default="underline" label="Underline month link" description="">

< option value="none"> none</option>

< option value="underline"> underline</option>

< /param>

< param name="underline_year" type="list" default="underline" label="Underline year link" description="">

< option value="none"> none</option>

< option value="underline"> underline</option>

< /param>

< param name="month_size" type="list" default="12″ label="Month size" description="">

< option value="10"> small</option>

< option value="11"> medium</option>

< option value="12"> large</option>

< /param>

< param name="year_size" type="list" default="11″ label="Year size" description="">

< option value="10"> small</option>

< option value="11"> medium</option>

< option value="12"> large</option>

< /param>

< param type="spacer"> </param>

< param name="CSSlist" type="CSSlist" label="Using user CSS" description="Copy your CSS files in folder 'CSS'"/>

< /params>

< /install>

Показать Свернуть
Заполнить форму текущей работой