Создание компонента для Joomla, представляющего собой систему тестирования

Выбор средства реализации программного продукта. Разработка программного комплекса (ПК). Руководство администратору и пользователю к нему. CMS Joomla - программа, включающая в себя различные инструменты для изготовления веб-сайта. Обработка ошибок в ПК.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 19.06.2010
Размер файла 695,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ

ДОНБАССКАЯ ГОСУДАРСТВЕННАЯ МАШИНОСТРОИТЕЛЬНАЯ

АКАДЕМИЯ

Кафедра компьютерных информационных технологий

курсовая РАБОТА

по дисциплине «Web-программирование»

Выполнила:

Ст. гр. ИТ05-3

Свистун О.А.

(подпись)

Дата защиты работы

Оценка

Подписи руководителей

Краматорск, 2010

РЕФЕРАТ

Пояснительная записка к курсовой работе по дисциплине «Web-программирование» содержит: 32 страницы машинописного текста, 23рисунка, 6 таблиц, приложение А.

Объект проектирования - компонент под CMS Joomla, тестирующая система по истории.

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

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

ДИАГРАММА, CMS Joomla, UML, ИНТЕРНЕТ, ТЕСТ, АВТОРИЗАЦИЯ, ПОЛЬЗОВАТЕЛЬ, СУБД, ТЕСТИРОВАНИЕ.

ВВЕДЕНИЕ

Тест (от слова англ. test) -- испытание, проверка.

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

Большое распространение ЭВМ и относительно приемлемые цены на услуги провайдера интернета, способствовали широкому распространению тестов К примеру, теперь школьники могут готовиться с помощью тестов к экзамену, определяя прорехи в своих знаниях. Тестирование в сети интернет предоставляет широкий выбор тестов на любую тематику в любой предметной области. Тестирование на ЭВМ позволяет сократить время тестирования и время обработки результатов. Подсчет и вывод результатов пользователю занимает приблизительно от нескольких секунд до одной минуты. Чаще всего для прохождения тестирования необходима регистрация пользователя на сайте.

1. ПРОЕКТИРОВАНИЕ ПРОГРАМНОГО КОМПЛЕКСА (ПК)

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

CMS Joomla! включает в себя различные инструменты для изготовления веб-сайта. Важной особенностью системы является минимальный набор инструментов при начальной установке, который дополняется по мере необходимости. Это снижает загромождение административной панели ненужными элементами, а также снижает нагрузку на сервер и экономит место на хостинге.

Система управления компонентом (CMS) Joomla одна из самых распространенных в мире. С ней можно в короткие сроки создать свой сайт

Создание сайтов c CMS Joomla превратилось в увлекательное занятие, не требующие глубоких знаний скриптов, html, php, java script, ajax, хотя эти интернет технологии активно используются на вашем веб сайте, созданном на CMS Joomla.

CMS Joomla имеет самый простой и удобный интерфейс управления веб-сайтом! Движок сайта CMS Joomla обладает самыми лучшими возможностями из всех CMS по его расширяемости. С его помощью можно создать интернет магазин, новостной портал, каталог недвижимости, продажи автомобилей.

Создание и редактирование новостей на сайте очень простое. Пользователи могут добавлять новости на сайт сами, добавлять комментарии, использовать для авторизации OpenID или оставлять анонимные комментарии, защита от ботов предусмотрена!

CMS полностью переведена на русский язык. Исключена проблема, когда на сайте то и дело обнаруживаются английские слова как это можно увидеть на сайтах, созданных с помощью Wordpress или Drupal.

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

Возможности администрирования Joomla включают:

- для каждой динамической страницы можно создать своё описание и ключевые слова в целях повышения рейтинга в поисковых системах;

- начало и окончание публикации любых материалов можно запрограммировать по календарю;

- возможность ограничить доступ к определённым разделам сайта только для зарегистрированных пользователей;

- настраиваемые схемы расположения элементов по областям шаблона

- различные модули (последние новости, счётчик посещений, подробная статистика посещений, гостевая книга, форум и другие);

- возможность создания не одной, а нескольких форм обратной связи для каждого контакта;

- модуль приёма от удалённых авторов новостей, статей и ссылок;

- иерархия объектов;

- менеджер рассылки новостей. Поддержка более чем 360 служб рассылки новостей по всему миру;

- встроенный визуальный редактор TinyMCE.

1.2 Техническое задание на разработку

1.2.1 Введение

Разрабатываемый программный продукт (ПП) является системой тестирования по определении знаний пользователя в области истории. Данный ПП может быть использован любым человек для определения уровня своих знаний.

1.2.2 Основание для разработки

Разработка выполняется на основе индивидуального задания к курсовой работе, выданного на кафедре КИТ, Донбасской государственной машиностроительной академии.

Условное обозначение разрабатываемой системы - тестирующая система.

1.2.3 Назначение разработки

ПК разрабатывается для автоматизированного прохождения теста по определению уровня знаний в области истории. Данный ПК позволит сэкономить время при определении уровня знаний пользователя.

1.2.4 Требования к функциональным характеристикам

Пользователь может выполнять:

регистрацию, авторизацию;

выбор теста;

прохождение тестирования;

получение оценки по тесту.

Администратор может выполнять:

добавление, удаление, редактирование вопросов;

добавление, удаление тестов;

просмотр информации о зарегистрированных пользователях;

удаление пользователей.

1.2.5 Требования к программной документации

Программная документация должна включать:

- Техническое задание;

- рабочий проект ПК на языке UML;

- исходный код с комментариями;

- руководство пользователя по установке;

- руководство пользователя по эксплуатации.

1.2.6 Требования к надежности

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

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

1.2.7 Условия эксплуатации

Условия эксплуатации должны соответствовать санитарным и техническим нормам эксплуатации ЭВМ. Для работы с ПК допускаются работники, имеющие достаточный уровень знаний в предметной области.

1.2.8 Требования к составу и параметрам технических средств

процессор с частотой 1GHz и выше;

ОЗУ 256 Mb и выше;

графический адаптер SVGA 256 Mb;

SVGA монитор 17”;

ОС Windows XP/2003;

сетевая плата.

1.2.9 Требования к программной документации

В качестве программной документации к ПК служит техническое задание и руководство по эксплуатации.

1.2.10 Технико-экономические показатели

Экономическая эффективность разработанного ПК заключается в том, что уменьшается количество времени, затрачиваемого на определение темперамента

1.2.11 Стадии и этапы разработки

Этапы разработки ПО представлены в таблице 1.

Таблица 1 - Этапы разработки ПО

Этап/

Срок выполнения

Содержание работ

1

Техническое задание

2.02.10

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

2

Исследование технологий Web-программирования

20.02.10

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

3

Эскизный проект

27.02.10

Предварительная разработка проекта ПК с использованием UML,

4

Технический проект

30.02.10

Реализация рабочей версии тестирующей системы с основной функциональностью;

5

Рабочий проект

17.03.10

Корректировка и доработка программного обеспечения.

6

Оформление документации

25.03.10

Разработка мероприятий по внедрению и сопровождению проекта

1.2.12 Порядок контроля и приемки

Контроль корректности функционирования и пригодности ПК к эксплуатации выполняется совместно Разработчиком и Заказчиком ПК на основании выполнения тестовых примеров, предоставленных заказчиком.

1.3 Проектирование каталога (ER - диаграмма, набор отношений, назначение полей таблиц

ER-диаграмма (рисунок 1) тестирующей системы используются для разработки данных и представляют собой стандартный способ определения и отношений между ними. Таким образом, осуществляется детализация хранилищ данных. ER-диаграмма содержит информацию о сущностях системы и способах их взаимодействия, включает идентификацию объектов, важных для предметной области (сущностей), свойств этих объектов (атрибутов) и их отношений с другими объектами (связей). Во многих случаях информационная модель очень сложна и содержит множество объектов.[2]

Рисунок 1 - ER диаграмма психологического тестирования

На основании ER-диаграммы получаем схему базы данных (рисунок 2).

Рисунок 2 - Схема базы данных тестирующей системы

Краткое описание таблиц, показанных на ER-диаграмме, представлено в таблицах 2-6.

В таблице ttests (таблица 2) хранится информация о тестах.

Таблица 2 Таблица ttests

Поле

Тип

Дополнительно

Примечания

id_frag

Int(11)

Primary key

Идентификатор вопроса

test

varchar (50)

Название теста

text

text

Текст вопроса

В таблице с вариантами ответов (таблица 3) хранится информация с вариантами ответов на вопросы

Таблица 3 Таблица tvar

Поле

Тип

Дополнительно

Примечания

id

int(11)

Primary key

Id ответа

frag

int(11)

Id вопроса

title

varchar(300)

Текст ответа

bal

Int(11)

Количество баллов за ответ

В таблицу user (таблица 4) сохраняются данные о пользователях и администраторах.

Таблица 4 Таблица users

Поле

Тип

Дополнительно

Примечания

User_id

int(11)

Primary key

id пользователя

name

varchar(255)

имя

username

varchar(150)

Логин

password

varchar(100)

Пароль

email

varchar(100)

Электронная почта

usertype

varchar(25)

категория

В таблицу totvet (таблица 5) сохраняются результаты тестов.

Таблица 5 Таблица totvet

Поле

Тип

Дополнительно

Примечания

id_otwet

int(11)

Primary key

id результата

test

int(11)

id теста

Text_otwet

text

Описание результатов теста

Bal_otwet

Int(11)

Оценка за тест

В таблицу trar (таблица 6) хранится информация о результатах тестирования.

Таблица 6 Таблица trar

Поле

Тип

Дополнительно

Примечания

Id_rar

int(11)

Primary key

id тетста

Id_ user

int(11)

id пользователя

test

varchar

Id теста

Data

varchar

Время прохождения теста

result

varchar

результат

1.4 Проектирование ПК с помощью UML-диаграмм

1.4.1 Диаграмма прецедентов предметной области

Диаграммы прецедентов описывают организацию поведения системы.

Рисунок 3 Диаграмма прецедентов для Тестирующей системы

На диаграмме прецедентов показывается совокупность вариантов использования (прецедентов), актеров (частный случай классов) и отношений между ними.[1] С помощью таких диаграмм иллюстрируют статический вид системы с точки зрения прецедентов, что особенно важно для ее организации и моделирования ее поведения.[5]

Диаграмма прецедентов представлена на рисунке 3

1.4.2 Диаграмма классов приложения

Диаграмма классов служит для представления статической структуры модели системы в терминологии классов объектно-ориентированного программирования. На данной диаграмме не указывается информация о временных аспектах функционирования системы. С этой точки зрения диаграмма классов является дальнейшим развитием концептуальной модели проектируемой системы. На рисунке 4 изображена диаграмма классов системы тестирования.

1

1

1

*1

Рисунок 4 - Диаграмма классов клиентской части

Описание классов:

derController класс отвечающий за связь derModel и derView

derModel класс отвечающий за связь с базой данных

derView класс отвечающий за отображения

2. РАЗРАБОТКА ПРОГРАММНОГО КОМПЛЕКСА (ПК)

2.1 Авторизация пользователя

Авторизация пользователя в данной тестирующей системе происходит с помощью формы авторизация пользователя.

Это довольно удобный способ конфиденциально авторизовать сеанс. Т.к. при вводе пароля символы заменяются звездочками. А затем информация передается формой с помощью метода POST, который надежно позволяет защитить информацию, не изображая ее вместе со строкой URL, как это делает метод GET.[3]

Рисунок 5 Регистрация пользователя в системе

Для входа в систему используем стандартную разметку для входа и регистрации.

После того как пользователь ввел логин и пароль, он нажимает кнопку «Войти». В модуле main происходит запрос к БД на наличие таких данных в базе, если данные верные, то происходит создание ключа на сеанс пользователя и пользователь может выполнять те действия, которые разрешены его правами, если в базе данных такого пользователя нет, то новый пользователь может пройти регистрацию.

2.2 Обработка ошибок в ПК

Обработка ошибок в приложении осуществляется при авторизации пользователя. Если пользователь неправильно ввел логин, которого нет в базе данных, то выводится:

print "<span id=\"h4\" style=\"margin-left: 110px;\">

Вы не зарегистрировались! Нажмите <a href=\"./registration.cgi\">

для регистрации</a></span>";

Если не введены какие-то из полей:

print "<span id=\"h4\" style=\"margin-left: 60px;\"> Не заполнены поля! <a href=\"./index.html\">попробуйте еще!</a>!!!</span>";

Если пытается зарегистрировать существующее имя,

printformwithmessage("Неверно! Такой логин уже существует!<br><br>", $login);

Если при регистрации пароль и его подтверждения разные:

printformwithmessage("\"Пароль\" и \"Подтверждение\" пароля не словпадают", $login);

Если при прохождении теста вы не выбрали ответ, а нажали далее, то система вам выдаст сообщение об этом.

function checkform(oForm) {

var errMSG = "1";

cbName="bals[]";

for (var i=0; i < oForm[cbName].length; i++)

if (oForm[cbName][i].checked == true) errMSG="";

if (errMSG!="") {

alert("Выберите хотя бы один вариант ответа");

3. РУКОВОДСТВО К ПРОГРАММНОМУ КОМПЛЕКСУ

3.1 Руководство администратору

Устанавливаем созданный компонент на Joomla. Форма установки приведена на рисунке 7.

Рисунок 7 - Менеджер расширений

Затем на главном меню добавляем новый пункт «Тест система». Добавление пункта меню показано на рисунке 8.

Рисунок 8 - Добавление пункта меню «Тест система»

В раскладке «Компоненты», рисунок 9 выбираем Тесты.

Рисунок 9 - Представления созданного компонента в раскладке «Компоненты»

Администратор может работать с базой данных.

Для начала администратору необходимо создать, как минимум, один раздел, далее нужно создать категорию, тест, варианты ответов и результаты тестов.

Для того чтобы создать новую категорию необходимо перейти на вкладку Категории и нажать на кнопку Создать.

Рисунок 10 - Создание новой категории тестов

Далее в появившимся окне нужно указать название и выбрать необходимый раздел.

Рисунок 11 - Создание нового раздела тестов

В вкладке Тесты жмем кнопку Создать и создается новый тест. Где указываем название нового теста, делаем краткое описание и выбираем категорию, после чего жмем кнопку Сохранить.

Рисунок 12 - Создание нового теста

В вкладке Вопросы проделываем аналогичную операцию по созданию. Где указываем вопрос и выбираем соответствующий Тест.

Рисунок 13 - База вопросов

Для добавления ответов для каждого вопроса необходимо воспользоваться редактором ответов. Для этого нужно кликнуть левой клавишей мыши в столбце Добавить ответ, напротив того вопроса на который необходимо добавить ответы.

Рисунок 14 - Редактор ответов

В появившемся окне вводим ответ на вопрос и назначаем количество баллов за данный ответ. Также можно отредактировать уже существующий ответ нажав на клавишу Редактировать.

Рисунок 15 Добавление нового ответа на вопрос

После того как все вопросы и ответы введены в базу необходимо посчитать результаты тестирования. В вкладке Результаты тестов нажав на кнопку Создать, создаем результаты тестов. Где указываем Текст результата теста, далее выбираем тест к какому этот результат относится и Условие показа результатов. Условием показа могут быть равен, больше, меньше, меньше или равен, больше или равен.

Рисунок 16 создание Результатов теста

Также в вкладке Архив пройденных администратор имеет возможность посмотреть кто, когда и какой тест проходил.

Рисунок 17 Статистика прохождения тестирования.

3.2 Руководство пользователю

Пользователь входит в систему со своими логином и паролем, или же предварительно регистрируется в ней, введя личные данные. Регистрация приведена на рисунке 18.

Рисунок 18 - Регистрация нового пользователя

Ошибка при регистрации не существующего пользователя приведена на рисунке 19.

Рисунок 19 - Сообщение об ошибке

Зарегистрировавшись, пользователь имеет право начать тестирование. Для этого необходимо кликнуть пункт меню тестирование, выбрать необходимый ему тест из списка существующих и начать тестирование(кликнув по нужному тесту левой клавишей мыши).

Рисунок 20 - Выбор необходимого теста

Далее на экране появляются вопросы к данному тесту. Определившись с вариантом ответа на вопрос необходимо кликнуть левой клавишей мыши в кружочке напротив ответа и нажать далее.

Рисунок 21 - Прохождение теста

Также пользователь имеет право не заканчивая начатый тест, начать его заново нажав Начать тестирование заново или пройти другой тест нажав Выбрать другой тест.

Рисунок 22 - Дополнительные возможности

После того как пользователь ответил на все вопросы к выбранному тесту, он получает результат тестирования.

Рисунок 23 - Результат тестирования

ВЫВОДЫ

В процессе выполнения курсовой работы по дисциплине “Web-программирование ” был создан компонент для Joomla, представляющий собой тестирующую систему. Были разработаны модули для создания и заполнения тестов, добавления и редактирования вопросов, а также пользовательский интерфейс, реализующий электронный тест и позволяющий просмотреть результат его прохождения.

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

Также в ходе выполнения работы были закреплены навыки проектирования реляционных баз данных и обработки запросов с использованием языка SQL.

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

СПИСОК ЛИТЕРАТУРЫ

1. Джим Коналлен. Разработка Web-приложений с использованием UML.: Пер. с англ. - М.: Издательский дом «Вильяммс», 2001. - 288 с.: ил.

2. Конспект лекций по дисциплине «Проектирование информационных систем с использованием web-технологий» для студентов очной и заочной форм обучения специальности 7.080402 «Информационные технологии проектирования» /Сост. А.В. Алтухов - Краматорск: ДГМА, 2006. - 40 с.

3. Мельтцер К., Михальски Б. Разработка CGI-приложений на Perl: Пер. с англ. - М.: Издательский дом «Вильямс», 2001. - 400 с.

4. Методические указания к лабораторным работам по дисциплине “Основы автоматизированного проектирования сложных объектов и систем” /Сост.: А.Ф. Тарасов, В.И. Акимов - Краматорск: ДГМА, 1998. - 16 с.

5. Фаулер М., Скотт К. UML. Основы. - Пер. с англ. - СПб: Символ-Плюс, 2002. - 192 с., ил.

ПРИЛОЖЕНИЕ А

Листинг der.xml

<?xml version="1.0" encoding="utf-8" ?>

- <install type="component" version="1.5.0">

<name>der</name>

<creationDate>2009</creationDate>

<author>Fedyanin</author>

<authorEmail>alae@bk.ru</authorEmail>

<authorUrl>http://www.webalan.ru</authorUrl>

<copyright>GNU/GPL</copyright>

<license />

<version>1</version>

<description>Компонент тестов</description>

<installfile>install.der.php</installfile>

- <files folder="site">

<folder>models</folder>

<folder>views</folder>

<folder>css</folder>

<filename>controller.php</filename>

<filename>der.php</filename>

</files>

- <administration>

<menu img="components/com_der/assets/images/easy-joomla-favicon.ico" link="option=com_der">Тесты</menu>

- <submenu>

<menu img="checkin" link="option=com_der&">Разделы</menu>

<menu img="checkin" link="option=com_der&controller=orders">Категории</menu>

<menu img="checkin" link="option=com_der&controller=test">Тесты</menu>

<menu img="checkin" link="option=com_der&controller=frage">Вопросы</menu>

<menu img="checkin" link="option=com_der&controller=otwet">Результаты тестов</menu>

<menu img="checkin" link="option=com_der&controller=arhiv">Архив пройденных</menu>

</submenu>

- <files folder="admin">

<folder>assets</folder>

<folder>controllers</folder>

<folder>models</folder>

<folder>tables</folder>

<folder>views</folder>

<filename>admin.der.php</filename>

<filename>install.der.php</filename>

<filename>controller.php</filename>

<filename>install.sql</filename>

<filename>uninstall.sql</filename>

</files>

</administration>

- <install>

- <sql>

<file charset="utf8" driver="mysql">install.sql</file>

</sql>

</install>

- <uninstall>

- <sql>

<file charset="utf8" driver="mysql">uninstall.sql</file>

</sql>

</uninstall>

</install>

test.php

<?php

//--Категории

defined( '_JEXEC' ) or die( '=;)' );

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

class TestController extends JController

{function __construct()

{ global $mainframe, $option;

parent::__construct();

$this->registerTask( 'add' , 'edit' );

$this->registerTask( 'unpublish', 'publish' );}

function remove()

{$model = $this->getModel();

if(!$model->delete()) {

$msg = JText::_( 'Ошибка удаления' );

} else {

$msg = JText::_( 'Раздел удален удачно' );}

parent::display();

// $this->setRedirect( 'index.php?option=com_der&controller=orders', $msg );

}// function

function cancel()

{$msg = JText::_( 'Отмена действия' );

parent::display();

// $this->setRedirect( 'index.php?option=com_der&controller=orders', $msg );}

function edit()

{JRequest::setVar( 'view', 'test' );

JRequest::setVar( 'layout', 'form' );

JRequest::setVar('hidemainmenu', 1);

parent::display();}

function save()

{$model = $this->getModel();

if ($model->store($post)) {

$msg = JText::_( 'Запись сохранена' );

} else {

$msg = JText::_( 'Ошибка сохранения' );}

$link = 'index.php?option=com_der&controller=orders';

parent::display();

// $this->setRedirect($link, $msg);

}// function

function publish()

{$db =& JFactory::getDBO();

$cid = JRequest::getVar( 'cid', array(), 'post', 'array' );

$task = JRequest::getCmd( 'task' );

$publish = ($task == "publish")? "0" : "1";

$n = count( $cid );

if (empty( $cid )) {

return JError::raiseWarning( 500, JText::_( 'No items selected' ) );}

JArrayHelper::toInteger( $cid );

$cids = implode( ',', $cid );

$query = 'UPDATE #__ttest SET see='.$publish.' WHERE id IN('.$cids.')';

$db->setQuery( $query );

if (!$db->query()) {

return JError::raiseWarning( 500, $db->getError() );}

//$this->setRedirect('index.php?option=com_der&controller=test','Успешно' );

parent::display();}

}// class

Otwet.php

<?php

//--Категории

defined( '_JEXEC' ) or die( '=;)' );

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

class OtwetController extends JController

{function __construct()

{parent::__construct();

$this->registerTask( 'add' , 'edit' );

$this->registerTask( 'unpublish', 'publish' );}

function remove()

{ global $mainframe;

$model = $this->getModel();

if(!$model->delete()) {

$msg = JText::_( 'Ошибка удаления' );

} else {

$msg = JText::_( 'Раздел удален удачно' );}

parent::display();

}// function

function cancel()

{$msg = JText::_( 'Отмена действия' );

parent::display();

// $this->setRedirect( 'index.php?option=com_der&controller=orders', $msg );}

function edit()

{JRequest::setVar( 'view', 'otwet' );

JRequest::setVar( 'layout', 'form' );

JRequest::setVar('hidemainmenu', 1);

parent::display();}

function save()

{$model = $this->getModel();

if ($model->store($post)) {

$msg = JText::_( 'Запись сохранена' );

} else {

$msg = JText::_( 'Ошибка сохранения' );}

$link = 'index.php?option=com_der&controller=orders';

parent::display();

// $this->setRedirect($link, $msg);

}// function

function publish()

{$db =& JFactory::getDBO();

$cid = JRequest::getVar( 'cid', array(), 'post', 'array' );

$task = JRequest::getCmd( 'task' );

$publish = ($task == "publish")? "0" : "1";

$n = count( $cid );

if (empty( $cid )) {

return JError::raiseWarning( 500, JText::_( 'No items selected' ) );}

JArrayHelper::toInteger( $cid );

$cids = implode( ',', $cid );

$query = 'UPDATE #__totwet SET see_otwet='.$publish.' WHERE id_otwet IN('.$cids.')';

$db->setQuery( $query );

if (!$db->query()) {

return JError::raiseWarning( 500, $db->getError() );}

//$this->setRedirect('index.php?option=com_der&controller=orders','Успешно' );

parent::display();}

}// class

Order.php

<?php

//--Категории

defined( '_JEXEC' ) or die( '=;)' );

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

class OrdersController extends JController

{function __construct()

{parent::__construct();

$this->registerTask( 'add' , 'edit' );

$this->registerTask( 'unpublish', 'publish' );}

function remove()

{ global $mainframe;

$model = $this->getModel();

if(!$model->delete()) {

$msg = JText::_( 'Ошибка удаления' );

} else {

$msg = JText::_( 'Раздел удален удачно' );}

//parent::display();

header("Location: index.php?option=com_der&controller=orders");

}// function

function cancel()

{$msg = JText::_( 'Отмена действия' );

parent::display();

// $this->setRedirect( 'index.php?option=com_der&controller=orders', $msg );}

function edit()

{JRequest::setVar( 'view', 'orders' );

JRequest::setVar( 'layout', 'form' );

JRequest::setVar('hidemainmenu', 1);

parent::display();}

function save()

{$model = $this->getModel('orders');

if ($model->store($post)) {

$msg = JText::_( 'Запись сохранена' );

} else {

$msg = JText::_( 'Ошибка сохранения' );}

$link = 'index.php?option=com_der&controller=orders';

parent::display();

// $this->setRedirect($link, $msg);

}// function

function publish()

{$db =& JFactory::getDBO();

$cid = JRequest::getVar( 'cid', array(), 'post', 'array' );

$task = JRequest::getCmd( 'task' );

$publish = ($task == "publish")? "0" : "1";

$n = count( $cid );

if (empty( $cid )) {

return JError::raiseWarning( 500, JText::_( 'No items selected' ) );}

JArrayHelper::toInteger( $cid );

$cids = implode( ',', $cid );

$query = 'UPDATE #__tkat SET sees='.$publish.' WHERE ids IN('.$cids.')';

$db->setQuery( $query );

if (!$db->query()) {

return JError::raiseWarning( 500, $db->getError() );}

// $this->setRedirect('index.php?option=com_der&controller=orders','Успешно' );

parent::display();}

}// class

Arhive.php

<?php

//--Категории

defined( '_JEXEC' ) or die( '=;)' );

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

class arhivController extends JController

{function __construct()

{parent::__construct();

$this->registerTask( 'add' , 'edit' );}

function remove()

{ global $mainframe;

$model = $this->getModel('arhiv');

if(!$model->delete()) {

$msg = JText::_( 'Ошибка удаления' );

} else {

$msg = JText::_( 'Раздел удален удачно' );}

//parent::display();

header("Location: index.php?option=com_der&controller=arhiv");

}// function

function cancel()

{$msg = JText::_( 'Отмена действия' );

parent::display();

//$this->setRedirect('index.php?option=com_der&controller=orders',$msg);}

function edit()

{JRequest::setVar( 'view', 'arhiv' );

JRequest::setVar( 'layout', 'form' );

JRequest::setVar('hidemainmenu', 1);

parent::display();}

function save()

{$model = $this->getModel('arhiv');

if ($model->store($post)) {

$msg = JText::_( 'Запись сохранена' );

} else {

$msg = JText::_( 'Ошибка сохранения' );}

$link = 'index.php?option=com_der&controller=arhiv';

parent::display();

// $this->setRedirect($link, $msg);

}// function

}// class

Frage.php

<?php

//--Вопросы контроллер

defined( '_JEXEC' ) or die( '=;)' );

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

class FrageController extends JController{

function __construct()

{ global $mainframe, $option;

parent::__construct();

$this->registerTask( 'add' , 'edit' );

$this->registerTask( 'edit_val' , 'edit_val' );

$this->registerTask( 'savev' , 'savev' );

$this->registerTask( 'editv' , 'savev' );

$this->registerTask( 'editv1' , 'editv1' );

$this->registerTask( 'del' , 'del' );

$this->registerTask( 'unpublish', 'publish' );

$this->_frage=JRequest::getVar('frage', -1, '', '-1');}

var $_frage;

function edit_val()

{JRequest::setVar( 'view', 'frage' );

JRequest::setVar( 'layout', 'edit_val' );

JRequest::setVar('hidemainmenu', 1);

parent::display();}

function remove()

{$model = $this->getModel();

if(!$model->delete()) {

$msg = JText::_( 'Ошибка удаления' );

} else {

$msg = JText::_( 'Раздел удален удачно' );}

parent::display();

// $this->setRedirect( 'index.php?option=com_der&controller=orders', $msg );

}// function

function del()

{$model = $this->getModel('frage');

if(!$model->delete_val()) {

$msg = JText::_( 'Ошибка удаления' );

} else {

$msg = JText::_( 'Раздел удален удачно' );}

$link = 'index.php?option=com_der&controller=frage&task=edit_val&frage='.$this->_frage;

header("Location: ".$link."");}

function cancel()

{$msg = JText::_( 'Отмена действия' );

parent::display();

// $this->setRedirect( 'index.php?option=com_der&controller=orders', $msg );}

function edit()

{JRequest::setVar( 'view', 'frage' );

JRequest::setVar( 'layout', 'form' );

JRequest::setVar('hidemainmenu', 1);

parent::display();}

function save()

{$model = $this->getModel('frage');

if ($model->store($post)) {

$msg = JText::_( 'Запись сохранена' );

} else {

$msg = JText::_( 'Ошибка сохранения' );}

$link = 'index.php?option=com_der&controller=frage&task=edit&cid[]='.$this->_frage;

parent::display();}

function editv1 ()

{JRequest::setVar( 'view', 'frage' );

JRequest::setVar( 'layout', 'edit_val1' );

JRequest::setVar('hidemainmenu', 1);

parent::display();}

// Сохранить под поля

function savev()

{$model = $this->getModel('frage');

if ($model->stores($post)) {

$msg = JText::_( 'Запись сохранена' );

} else {

$msg = JText::_( 'Ошибка сохранения' );}

$link = 'index.php?option=com_der&controller=frage&task=edit_val&frage='.$this->_frage;

header("Location: ".$link."");}

function publish()

{$db =& JFactory::getDBO();

$cid = JRequest::getVar( 'cid', array(), 'post', 'array' );

$task = JRequest::getCmd( 'task' );

$publish = ($task == "publish")? "0" : "1";

$n = count( $cid );

if (empty( $cid )) {

return JError::raiseWarning( 500, JText::_( 'No items selected' ) );}

JArrayHelper::toInteger( $cid );

$cids = implode( ',', $cid );

$query = 'UPDATE #__tfrage SET see_frage='.$publish.' WHERE id_frage IN('.$cids.')';

$db->setQuery( $query );

if (!$db->query()) {

return JError::raiseWarning( 500, $db->getError() );}

//$this->setRedirect('index.php?option=com_der&controller=test','Успешно' );

parent::display();}

}// class


Подобные документы

  • Создание обучающей презентации о создании сайта в программе для конструирования сайтов "Joomla". Установка локального сервера "Denwer" и программы "Joomla". Создание меню, загрузка изображений. Смена шаблона, работа с текстом в программе MS PowerPoint.

    дипломная работа [3,8 M], добавлен 04.03.2013

  • Выбор программного средства. Алгоритм разработки сайта. Установка системы управления контентом Joomla. Установка компонентов и плагинов. Тестирование программного продукта. Аппаратное и программное обеспечение. Техника безопасности на рабочем месте.

    курсовая работа [4,5 M], добавлен 13.10.2012

  • Виды, классификация и понятие Web-сайта, программные средства для его разработки. Создание сайта для энергосбытовой компании: постановка задачи, структура, описание программных блоков и руководство пользователя. Использование системы управления Joomla!.

    дипломная работа [5,2 M], добавлен 01.10.2011

  • Создание административной части сайта. Дизайн веб-сайта. Установка шаблона Joomla. Система администрирования. Определение прибыли и свободной отпускной цены программного средства. Обоснование экономической целесообразности проведения мероприятия.

    дипломная работа [1,2 M], добавлен 02.09.2016

  • Исследование особенностей систем управления сайтами. Обоснование выбора Joomla, функционала для создания многофункциональных сайтов. Цифровая обработка музыки на компьютере. Использование программного секвенсора. Создание и заполнение сайта информацией.

    курсовая работа [2,9 M], добавлен 15.01.2015

  • Разработка структуры web-сайта новостей, наполнение его содержательной информацией. Выбор платформы для создания сайта, его обоснование. Установка и редактирование шаблона, создание разделов и категорий. Добавление материала на сайт, его тестирование.

    дипломная работа [1,5 M], добавлен 24.01.2016

  • История образования ТОО "ABC Design". Разработка программного и информационного обеспечения компьютерных сетей, автоматизированных систем вычислительных комплексов и сервисов. Работа с CRM системой Task Manager и с панелью управления сайтов JOOMLA.

    отчет по практике [727,4 K], добавлен 13.07.2017

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.