bannerbannerbanner
полная версияPHP. Разработка модуля комментариев для сайта

Дмитрий Приходько
PHP. Разработка модуля комментариев для сайта

42. Установка модуля на сайт

Модуль готов. Приступаем к практической его установке. Ищем подходящий шаблон. Мне понравился выбор шаблонов на сайте Эрика Байгузина [5]. Один из выложенных на нем шаблонов я и решил использовать. Это шаблон EUCLID. Ссылка:

https://bayguzin.ru/main/shablonyi/shablonyi-dlya-bloga/kachestvennyj-sovremennyj-dizajn-bloga.-minimalistichnyj-prostoj-chitabelnyj.html

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

1. Скачиваем шаблон.

2. Размещаем шаблон на сервере (хостинге). В нашем случае размещаем в папке C:\OSPanel\domains\. Задаем (или используем зарегистрированное) имя сайта.

В данном случае я назвал сайт 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">

<p>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</p>

<?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 –>

<p>Integer auctor, mauris vel consequat viverra, nibh arcu elementum odio, ut varius arcu sapien vitae ligula. Fusce erat metus, cursus nec felis eget, vulputate vulputate turpis. Nulla iaculis venenatis magna, lobortis egestas magna faucibus mollis. Quisque molestie turpis dolor, blandit convallis elit pellentesque eu. Nam sit amet enim a est congue vestibulum eget id leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Phasellus sit amet ipsum eros. Etiam faucibus sapien turpis, vitae sagittis tellus faucibus quis.</p>

<?php

include_once $_SERVER['DOCUMENT_ROOT'].'/chat/admin/access.php';

include_once $_SERVER['DOCUMENT_ROOT'].'/chat/say_controller.php'?>

            <!– Post Tags –>

…//код блока

</div>

<!– End Footer –>

</body>

</html>



Рис. 31 Комментарии на странице blog.html


Как мы видим, комментарии можно будет оставлять на любых дополнительных страницах сайта. На каждой странице будут выводиться комментарии только для этой страницы.

Заключение

Ну вот и все, скомпиллирован код, позволяющий оставлять коментарии на любом сайте. Как можно заметить, в итоге получилась мини CMS. Если добавить в административный раздел модуля возможность формирования страниц из блоков типа header, footer, menu, content и т.д., возможность оформления материалов при помощи редакторов типа CKEditor и уделить внимание безопасности обработки передаваемых данных, то получится полноценная CMS. Можно применить классы и использовать принципы MVC, шаблоны. Но это уже выходит за рамки практикума, поэтому если вам интересна тема программирования сайтов, можете заняться этим увлекательным занятием самостоятельно.

Список источников

Кевин Янк., PHP  и  MySQL.  От новичка к профессионалу. М.: Эксмо, 2013. – 384 с.

Д. В. Котеров, И. В. Симдянов. , PHP 7. СПб.: БХВ-Петербург, 2016. – 1088 с.

Сайт Михаила Русакова . https://myrusakov.ru/

Сайт Евгения Попова  https://ruseller.com/

Сайт Эрика Байгузина https://bayguzin.ru/

Сайт PHPFAQ  http://phpfaq.ru/

 

Сайт PHP Group  https://www.php.net/

Рейтинг@Mail.ru