PHP. Разработка модуля комментариев для сайта - Дмитрий Приходько
font-family: "Carrois Gothic", sans-serif;
border-bottom: 1px dashed cadetblue;
}
h4.formname {
margin: 0 1em 0 1em;
padding: 0 0 5px 0;
color: cadetblue;
font-weight: normal;
position: relative;
text-shadow: 0 2px 0 rgba(255, 255, 255, 0.5);
font-size: 24px;
line-height: 40px;
font-family: "Carrois Gothic", sans-serif;
border-bottom: 1px dashed cadetblue;
}
h5.user {
margin: 0 1em 0 1em;
padding: 0 0 5px 0;
color: cadetblue;
font-weight: normal;
position: relative;
text-shadow: 0 2px 0 rgba(255, 255, 255, 0.5);
font-size: 24px;
line-height: 40px;
font-family: "Carrois Gothic", sans-serif;
border-bottom: 1px dashed cadetblue;
}
h1.user {
margin: 1em 1em 0.75em 1em;
padding: 0 0 5px 0;
color: #6b5344;
font-weight: normal;
position: relative;
text-shadow: 0 2px 0 rgba(255, 255, 255, 0.5);
font-size: 36px;
line-height: 40px;
font-family: "Carrois Gothic", sans-serif;
border-bottom: 1px dashed #7e6d4c;
}
h2.user {
margin: 1em 1em 0.75em 1em;
padding: 0 0 5px 0;
color: #6b5344;
font-weight: normal;
position: relative;
text-shadow: 0 2px 0 rgba(255, 255, 255, 0.5);
font-size: 36px;
line-height: 40px;
font-family: "Carrois Gothic", sans-serif;
border-bottom: 1px dashed #7e6d4c;
}
.addusers {
margin: 1%;
}
Стили в дальнейшем, можно настроить как угодно.
42. Установка модуля на сайт
Модуль готов. Приступаем к практической его установке. Ищем подходящий шаблон. Мне понравился выбор шаблонов на сайте Эрика Байгузина [5]. Один из выложенных на нем шаблонов я и решил использовать. Это шаблон EUCLID. Ссылка:
https://bayguzin.ru/main/shablonyi/shablonyi-dlya-bloga/kachestvennyj-sovremennyj-dizajn-bloga.-minimalistichnyj-prostoj-chitabelnyj.html
Естественно, что можно использовать любой другой доступный шаблон. На его примере посмотрим установку модуля. Последовательность действий следующая:
1. Скачиваем шаблон.
2. Размещаем шаблон на сервере (хостинге). В нашем случае размещаем в папке C:OSPaneldomains. Задаем (или используем зарегистрированное) имя сайта.
В данном случае я назвал сайт euclid.com.
3. Вкладываем в корень сайта папку chat.
4. Проверяем наличие в корне сайта файла .htaccess:
• Если он отсутствует, переносим наш файл .htaccess из папки chat в корень сайта.
• Если присутствует, копируем в него содержимое нашего файла .htaccess.
5. Выбираем страницу, на которой будут размещаться комментарии. Смотрим содержимое сайта. Как видно из рис. 21 сайт небольшой, состоит из трех HTML страниц about, blog, index, папки со стилями CSS и папки с Javascript. Файл .htaccess отсутствовал, поэтому на скриншоте файл .htaccess из папки chat.
Рис. 21. Содержимое сайта euclid.com.
Внимание! Если запускаете модуль на хостинге пропишите действующие параметры подключения к СУБД и БД в файлах: dsn.php и createbase.php
Давайте начнем с главной страницы. Открываем файл index.html сайта в редакторе. Контроллер 1 будет располагаться в самом начале документа. Запускаем сайт определяемся с местами, где у нас будут располагаться кнопки авторизации. Я выбрал сразу после блока <body>. Здесь разместим контроллер 2. Далее смотрим, где будем выводить комментрии. Давайте выведем после первого блока с материалом. Он называется PORT HARBOR. Материал заканчивается строкой со словом Etiam. Ищем в редакторе это слово. Как мы видим на этом слове заканчивается и div с данным материалом. После него вставляем контроллер 3. Получаем следущее:
Листинг ТЕСТ 1. файл index.html Путь: euclid.com/index.html
<?php include_once $_SERVER['DOCUMENT_ROOT'].'/chat/createbase_controller.php'?>
<!DOCTYPE html>
<html lang="en">
<head>
…//Содержимое блока head
</head>
<body class="home blog">
<?php include_once $_SERVER['DOCUMENT_ROOT'].'/chat/login_controller.php'?>
<!– Start Header –>
…//Содержимое блока body
<div class="post-margin">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sit amet auctor ligula. Donec eu placerat lacus, pellentesque tincidunt felis. Aliquam dictum cursus elit, et sagittis nibh tincidunt quis. Vestibulum leo dui, ullamcorper quis erat nec, accumsan imperdiet ligula. Maecenas ut dui sed arcu sodales consequat. Nulla et est ac lacus congue volutpat. Aliquam vehicula tincidunt sem eget cursus. Nam sed mollis diam. Pellentesque id felis ut diam dignissim egestas id non ipsum.Ut id magna eu eros vehicula sollicitudin at et odio. Mauris consectetur tortor in mauris aliquet feugiat. Etiam
<?php include_once $_SERVER['DOCUMENT_ROOT'].'/chat/say_controller.php'?>
</div>
…//Продолжение блока body
</div>
<!– End Footer –>
</body>
</html>
Внимание! Если по каким либо причинам на вашем хостинге $_SERVER['DOCUMENT_ROOT'] работает некорректно заменяем все её вхождения на приведенный ниже код
Пример замены $_SERVER['DOCUMENT_ROOT'] (подробности см. в гл. 2.4.):
<?php
$p = explode('chat', __DIR__);
set_include_path(get_include_path().PATH_SEPARATOR.$p[0]);
include "chat/login_controller.php";
?>
Здесь после include вставляете относительный путь к вставляемому файлу, для примера указан login_controller.php, но вы вставляете нужный.
Рис. 22 Первый запуск.
Во время первого запуска выводиться сообщение о создании БД и форма для задания учетных данных Администратора модуля.
Рис. 23 После отправки данных администратора. Верх.
Как видим появились кнопки «Вход», «Регистрация» и «На главную» в верхней части сайта.
Рис. 24 После отправки данных администратора. Материал блога.
И появилась кнопка «Показать комментарии»/ «Скрыть комментарии» в завершении одного из материалов блога.
Рис. 25 Форма авторизации
Форма авторизации появляется при нажатии кнопки «Вход».
Приветствие и кнопки
Рис. 26 Шапка сайта после авторизации пользователя
После авторизации пользователя становятся доступны кнопки «Кабинет» и «Выйти». Сейчас желательно сразу зайти в кабинет и установить аватар для администратора.
Рис. 27 Появилась возможность добавления комментариев
После авторизации появляется ссылка для добавления комментариев. Жмем.
Рис.28 Форма добавления комментариев
В форме пишем комментарий, добавляем при желании смайлы.
Рис. 29 Страница управления пользователями.
На странице управления пользователями можно добавлять, редактировать и удалять пользователей.
Рис. 30 Добавленный комментарий
На рис. 30 скриншот с новым добавленным комментарием.
если мы хотим разместить комментарии еще на какой- либо странице, делаем следующее:
1. Открываем для этой страницы доступ к переменной $_SESSION разместив в заголовке страницы, следующий код:
<?php if (session_id() == '') {session_start();} ?>
2. Вставляем файл с функциями проверки пользователя access.php
3. После него вставляем контроллер 3:
<?php
include_once $_SERVER['DOCUMENT_ROOT'].'/chat/admin/access.php';
include_once $_SERVER['DOCUMENT_ROOT'].'/chat/say_controller.php'
?>
В листинге ТЕСТ 2 приведен пример для вставки комментариев на страницу blog.html.
Листинг ТЕСТ 2. файл blog.html Путь: euclid.com/blog.html
<?php if (session_id() == '') {
session_start();
}?>
<!DOCTYPE html">
<html lang="en">
<head>
…//код блока
</head>
<body class="single single-post postid-49 single-format-standard">
…//код блока
<!– Start Header –>
Integer auctor, mauris vel consequat viverra, nibh