3215д. Разработка информационного портала для коммерческого предприятия
Первый семестр
Недель 16 Лек 18
Недель 16 Лаб 30
Недель 16 Лаб 30
Зачет
Второй семестр
Недель 12 Лек 24
Практики ведет С.Н.Кудрявцев
Экзамен
ПЕРВЫЙ СЕМЕСТР
Задание 2 Система управления сайтами (Joomla) - 40 баллов
- Установка Joomla на хостинг (15 баллов)
- Администрирование Joomla (25 баллов)
Установите на своем хостинге систему управления сайтами Joomla.Первый способ - скачайте инсталлятор с сайта https://joomla.ru/ или https://www.joomla.org/Второй способ - рекомендуемый: воспользуйтесь разделом CMS на панели администрирования хостингом beget.Обратите внимание на справку: https://beget.com/ru/kb/manual/cms
Так как с этим заданием связано наибольшее количество возможных технических проблем оно оценивается двойным количеством баллов. Безусловно - студент должен продемонстрировать понимание назначения шаблонов, нужно сменить шаблон своего сайта. Желательно продемонстрировать умение настраивать шаблон, менять его изначальные настройки.Все видео по использованию шаблонов: https://www.youtube.com/watch?v=cFx7LP0uC1M&list=PLal6RHlg_I2rP2-Jy7-adCFPKlvTEOC2K&index=26Ссылка на работающий шаблон (нужно скачивать только шаблон): https://www.joomshaper.com/joomla-templates/helixultimateАльтернативная ссылка на точно работающий файл шаблона: https://drive.google.com/file/d/1AOtuAkiTcFKS5aJYGuJ7yYokPHPa10qC/view?usp=sharingСайт со множеством работающих шаблонов: http://joomla3x.ru/joomla3-templates.html
- Создание модулей Joomla https://joomla-book.ru/development/creating-modules
- Создаём модуль для Joomla https://joomlatown.net/blog/web-razrabotka/sozdaem-modul-dlya-joomla
- Создание простого модуля (официальная документация) https://docs.joomla.org/J3.x:Creating_a_simple_module/ru
- Плагины Joomla. Подробный разбор простым языком https://wedal.ru/uroki-joomla/plaginy-joomla-podrobnyj-razbor-prostym-yazykom.html
- Самое подробное руководство по созданию модулей Joomla (для версии 3) https://wedal.ru/joomla-modules.html
- Создание модулей с учётом новой структуры Joomla 4 https://habr.com/ru/articles/684534/
- Рекомендуемый мануал по созданию модулей для Joomla 4 https://mb4.ru/cms/joomla4/195-creating-simple-module-joomla-4-dbm-part1.html
<?php$host = 'localhost'; // имя хоста$user = 'v90598ot_altgpu'; // имя пользователя$pass = 'Barnaul126'; // пароль$name = 'v90598ot_altgpu'; // имя базы данных$link = mysqli_connect($host, $user, $pass, $name);$query = 'SELECT * FROM rat2m_content';$res = mysqli_query($link, $query) or die(mysqli_error($link));?><table border = 1><?for ($data = []; $row = mysqli_fetch_assoc($res); $data[] = $row){ echo '<tr><td>'.$row["created"].'</td><td>'.$row['introtext'].'</td></tr>'; };?></table>
- Отдельное задание - 4 балла (при условии что его балл не указан особо), максимальный балл = 80.
- Итогом семестра является проект - портал, который включает все двадцать тем, которые были изучены в течение семестра. Портал предьявлен для оценивания+портал содержит все технологии изученные во время практических работ+автор ответил преподавателю на все вопросы по порталу+автор внес произвольные изменния в портал по просьбе преподавателя = 100 баллов за семестр (в случае консенсуса обоих преподавателей курса = 85 баллов автоматом за экзамен)
- Средняя оценка за два семестра - 15 = балл за экзамен (при согласии студента, иначе - сдача экзамена)
- К сожалению модули и шаблон используемые в учебных видео стали платными, поэтому нужно самостоятельно найти их альтернативы и аналоги.
- Некоторые задания невозможно выполнить точно так как показано в видео, требуется найти способ добиться похожего результата альтернативными способами. Найти похожие модули и расширения - предполагается что вы уже знаете где можно найти бесплатные расширения Joomla.
Изучите видео:
Задание:
- Зарегистрируйтесь на бесплатном хостинге (см. адреса хостингов в начале страницы, можно использовать альтертативные хостинги (под свою ответственность))
- Установите CMS Joomla
- Установите шаблон сайта (самостоятельно найдите бесплатный шаблон)
Можно использовать результаты работы первого семестра, однако нужно учесть, что сейчас требуется не просто продемонстрировать отдельные навыки, а создать законченный продукт - интернет-портал
Изучите видео:
Задание:
- Создать категории сайта - не менее 5, должны быть категориий "Услуги", "Направления работы"
- Настроить форму обратной связи
- Настроить модули
Изучите видео:
Задание:
- Создать 6 материалов для категории "Услуги"
- Вывести созданные материалы в модуле "Новости"
Изучите видео:
Задание:
- Установить и настроить модуль похожий на модуль ST Counter
- Альтернативное задание (20 баллов): самостоятельно разработать модуль похожий на модуль ST Counter.
- Добавить материалы в категорию "Направления работы"
- Создать меню категории с помощью модуля меню
Изучите видео:
Задание:
Настроить блог категории для категории "новости"
- Создать служебное меню портала. (см. видео)
- Изучите инструкцию подключение бесплатного SSL-сертификата
- Попробуйте подключить бесплатный сертификат для своего хостинга
- Если это невозможно пропустите данное задание (как и любое задание, которое вы не можете выполнить)
Иннструкция по подключению бесплатного SSL для beget: https://beget.com/ru/kb/how-to/sites/podklyuchenie-ssl-k-sajtu
Установка и хостинг: Опишите пошаговый процесс установки Joomla на бесплатный хостинг (например, Beget). Какие существуют способы установки: через панель управления хостингом и через скачивание дистрибутива с официального сайта? В чем их принципиальные различия с точки зрения удобства и последующей настройки?
Администрирование (Материалы и категории): Объясните, как в Joomla организована иерархия «Категория → Материал». Зачем нужны категории при построении информационной структуры коммерческого портала? Приведите пример, как неправильное использование категорий может усложнить навигацию для пользователя.
Администрирование (Меню и модули): В чем разница между компонентом «Меню» и расширением типа «Модуль» в Joomla? Как они взаимодействуют друг с другом для отображения навигации на сайте? Почему просто создать пункт меню недостаточно для появления ссылки на странице?
Шаблоны Joomla: Что такое шаблон (template) в Joomla и зачем его менять? Опишите, какие элементы дизайна и верстки обычно настраиваются через шаблон (например, Helix Ultimate), а какие — через модули. Почему смена шаблона считается заданием с «двойным количеством баллов» из-за технических рисков?
База данных и phpMyAdmin: Какова структура хранения статей (материалов) в таблицах Joomla? Назовите основные поля таблицы
_content, которые отвечают за дату создания, дату модификации, краткое и полное содержание статьи. Зачем нужен префикс таблиц (например,rat2m_)?Интеграция скриптов: Напишите логику SQL-запроса и PHP-кода для вывода таблицы статей из БД Joomla, где первая ячейка — дата создания, вторая — дата модификации, третья — introtext. Как оформить границы ячеек пунктирной линией с помощью CSS внутри такого скрипта?
Обработка контента: Объясните, как технически реализовать вывод только первых 200 символов статьи (аннотации) со ссылкой «подробнее», ведущей на полную версию. Какие PHP-функции нужно использовать для безопасной обрезки текста без разрыва HTML-тегов?
Динамическое меню: Из каких таблиц Joomla состоит структура меню? Какие поля связывают пункт меню с типом материала (например, «отдельная статья» или «блог категории»)? Опишите алгоритм визуализации такого меню на основе данных из БД.
Выборка последних статей: Напишите SQL-запрос для получения пяти самых новых статей из Joomla. Какое поле и условие сортировки для этого используется? Как можно ограничить вывод только опубликованными материалами?
Логирование пользователей: Что такое таблица
action_logsв Joomla и какую информацию о пользователях она хранит? Почему для получения «последних пяти работавших пользователей» может потребоваться использованиеDISTINCTили группировка, если один пользователь сделал много действий?Анкетирование: Предложите структуру таблицы в БД Joomla для хранения вопросов закрытой анкеты и ответов пользователей. Какие поля необходимы, чтобы связать ответ с конкретным авторизованным пользователем (имя из Joomla) и с конкретным вопросом? Что такое «нормализация» в данном контексте?
Создание модуля: Что такое «модуль» в Joomla с точки зрения файловой структуры? Назовите минимальный набор файлов (например,
mod_название.php,helper.php,tmpl/default.php) и объясните роль каждого из них при создании пользовательского модуля на основе готового скрипта.Разграничение доступа: Опишите способ, как сделать модуль с результатами анкетирования доступным только администраторам или избранным пользователям. Какие таблицы Joomla можно использовать для хранения списка «допущенных» и как проверить имя текущего пользователя в коде модуля?
Итоговый портал: Чем требования к проекту во втором семестре отличаются от простой демонстрации навыков в первом семестре? Что означает требование «законченный дизайн и информационное наполнение, соответствующее тематике»? Приведите примеры критериев оценки такого портала.
Фотогалерея и счетчики: Какие типы модулей (фотогалерея, счетчик посещений/клиентов) обычно используются на коммерческом портале и зачем?
Форма обратной связи и SSL: Зачем коммерческому порталу форма обратной связи и SSL-сертификат? Какие риски возникают при работе портала без HTTPS, особенно если на сайте есть анкетирование или авторизация? Опишите процесс подключения бесплатного SSL на примере хостинга Beget (или любого другого).
Блог категории и модули новостей: Объясните разницу между выводом материалов через «блог категории» (компонент) и через модуль «Новости». В каких сценариях коммерческого портала уместно использовать каждый из этих подходов?
Модуль меню для категорий: Как с помощью модуля «Меню» создать динамическое меню, которое автоматически подтягивает все материалы из категории «Направления работы»? Какие настройки типа меню (например, «список материалов категории») для этого необходимо выбрать?
Общая архитектура и самодиагностика: Представьте, что после переноса сайта на другой хостинг перестали работать ссылки на материалы. Назовите три возможные причины, связанные с базой данных, и три — с настройками Joomla. Как отсутствие знаний о структуре таблиц Joomla усложнило бы поиск проблемы
В чем выражается постепенный уход от использования Joomla в пользу других систем управления сайтами (например, WordPress, MODX, Drupal) и фреймворков (Laravel, Symfony)? Какие функциональные и архитектурные ограничения Joomla послужили тому причиной?
1. Установка и первичная настройка
Установите Joomla 4/5 на локальный сервер (OpenServer, XAMPP) или бесплатный хостинг. Создайте базу данных, настройте файл configuration.php. После установки удалите папку installation и установите русский язык как язык сайта и панели управления.
2. Создание категорий и материалов
Создайте иерархию категорий (минимум 3 уровня): «Услуги» → «IT-консалтинг» → «Разработка ПО». В категорию «Разработка ПО» добавьте 3 материала с форматированием, изображениями и внутренними гиперссылками. Один из материалов должен содержать ссылку на внешний ресурс, открывающуюся в новой вкладке.
3. Настройка меню разных типов
Создайте три типа меню:
Главное меню (пункты: «Главная», «Услуги», «Контакты»)
Меню категории «Услуги» (автоматически отображает все подкатегории)
Служебное меню в футере («Политика конфиденциальности», «Карта сайта»)
Каждый тип меню должен отображаться в соответствующей позиции шаблона.
4. Работа с модулями
Разместите на сайте следующие модули:
Модуль «Последние новости» (выводит 3 последних материала из категории «Новости»)
Модуль «Поиск» в правой колонке
Модуль «Форма обратной связи» (можно использовать стандартный контактный компонент)
Кастомный HTML-модуль с контактными данными компании (телефон, email, адрес)
5. Смена и настройка шаблона
Установите бесплатный шаблон (например, из репозитория JoomShaper или joomla3x.ru). Настройте его: измените цветовую схему, загрузите логотип компании, настройте позиции модулей (например, sidebar-left, banner, footer).
6. Прямой SQL-запрос к таблице материалов
В phpMyAdmin напишите SQL-запрос, который выбирает из таблицы _content заголовки и даты создания материалов, опубликованных в текущем месяце. Отсортируйте по дате (сначала новые). Выполните запрос и сделайте скриншот результата.
7. Вывод таблицы статей через PHP-скрипт
Напишите автономный PHP-скрипт, который подключается к БД Joomla и выводит таблицу со столбцами: «Заголовок», «Дата создания», «Краткое содержание (первые 150 символов)». Границы таблицы — пунктирные, четные строки — с серым фоном.
8. Ссылка «Подробнее» из аннотации
Разработайте скрипт на PHP, который выводит список статей из базы данных Joomla с аннотацией (первые 150 символов) и ссылкой «Читать далее →». Ссылка должна вести на полную версию статьи (используйте поле fulltext или комбинацию introtext + fulltext) и открываться в текущем окне браузера.
Напишите SQL-запрос, который выводит имена (username) пяти последних пользователей, которые заходили в панель администратора. Используйте таблицу _action_logs или _user_lastvisit. Результат представьте в виде HTML-таблицы с заголовками.
10. Модуль «Пять самых новых статей»
Создайте модуль Joomla, который выводит в виде нумерованного списка пять самых новых материалов из любой категории. В модуле должна быть настройка выбора категории (поле в админке модуля). Добавьте CSS для оформления списка (иконка вместо маркера, отступы).
11. Модуль динамического меню из БД
Напишите модуль, который читает таблицу меню Joomla (_menu) и визуализирует вложенное (многоуровневое) меню с помощью HTML-тегов <ul> и <li>. Внешний вид оформите горизонтальным или вертикальным CSS-меню. Ссылки должны быть рабочими.
12. Модуль-анкета с сохранением в БД
Создайте модуль, который выводит три закрытых вопроса (варианты ответов — радиокнопки). После отправки анкеты ответы сохраняются в отдельной таблице _survey_results с полями: user_id, question_1, question_2, question_3, date_time. Используйте ID текущего авторизованного пользователя Joomla.
13. Модуль вывода результатов анкетирования (только для администратора)
Создайте модуль, который отображает результаты анкетирования в виде таблицы (пользователь → ответы на вопросы). Внизу добавьте сводку: процент выбора каждого варианта по каждому вопросу. Модуль должен быть виден только пользователям с правами администратора (проверка через $user->authorise('core.admin')).
14. Модуль-счетчик на основе данных из БД
Создайте модуль, который подсчитывает и выводит три числа: общее количество материалов на сайте, количество категорий, количество зарегистрированных пользователей. Используйте SQL-запросы с COUNT(*).
15. Модуль «Последние действия пользователей»
Разработайте модуль, который выводит таблицу с действиями пользователей за последние 7 дней (таблица _action_logs или аналогичная). Столбцы: «Пользователь», «Действие», «Дата и время». Если таблицы логов нет, создайте свою простую таблицу _user_actions и имитируйте запись действий через триггер или отдельный скрипт.
16. Создание фотогалереи (аналог ST Gallery)
Установите и настройте бесплатный модуль фотогалереи (или напишите свой). Загрузите минимум 5 изображений, разбитых на два альбома. Галерея должна открывать изображения в модальном окне (например, через FancyBox или Lightbox). Продемонстрируйте работу на странице «Портфолио».
17. Настройка блога категории «Новости»
Создайте категорию «Новости коммерческого предприятия». Настройте вывод материалов в режиме «Блог категории»: показывать по 2 материала на страницу, сортировка по дате убывания. Включите отображение даты, автора и кнопку «Подробнее». Напишите одну реальную новость (текст, изображение).
18. Форма обратной связи с защитой от спама
Настройте стандартный компонент «Контакты» Joomla. Создайте контакт (например, «Отдел продаж»). Добавьте к форме поле Captcha (можно использовать Google reCAPTCHA или встроенную капчу Joomla). Проверьте работоспособность: отправьте тестовое сообщение на свой email.
19. Подключение SSL-сертификата и настройка ЧПУ
На реальном хостинге подключите бесплатный SSL-сертификат (например, Let's Encrypt через панель Beget). Затем в настройках Joomla включите ЧПУ (SEF URL) и перенаправление с HTTP на HTTPS. Проверьте, что все ссылки стали защищенными и не содержат index.php. Продемонстрируйте зеленый замок в браузере.
20. Комплексное задание: создание готового информационного портала
Разработайте минимальный, но законченный информационный портал на Joomla на свободную тему (например, «Строительная компания», «Юридические услуги», «Туристическое агентство»).
Комментариев нет:
Отправить комментарий