PHP. Разработка модуля комментариев для сайта
Шрифт:
</body>
</html>
Сохраняем файл в папке news как index.html. Теперь у нас есть стартовая страница тестового сайта. В тегах содержится обычный текст заглушка. Стили к данной странице применять не будем.
Запускаем «Open Server». В разделе мои сайты должен появиться новый сайт news. Запускаем его. Если все сделано правильно, в браузере должен появиться сайт «news» и на нем текст заглушка.
Так как дальнейшая работа предполагает работу с PHP, создаем в редакторе в этой же папке «news» файл .htaccess со следующим содержимым
Листинг 3. .htaccess
#Включаем обработку php в html файлах
AddType application/x-httpd-php .php .htm .html
#Устанавливаем кодировку по умолчанию
AddDefaultCharset utf-8
Сохраняем в корне сайта, т.е. в папке «news».
При сохранении в меню «Файл» выбрать «Сохранить как».
В выпадающем списке «Тип файла» выбрать «Все файлы».
Ввести в качестве имени .htaccess.
Нажать на кнопку «Сохранить».
Файл .htaccess (англ. hypertext access) используется для настройки веб-сервера на котором хранится сайт пользователя. А меняя настройку веб-сервера, мы влияем на работу сайта. В данном случае серверу дается команда обрабатывать PHP код в HTML документах и устанавливать по умолчанию кодировку «UTF-8»
Создаем папку модуля комментариев. Ее можно создать в любом месте, но разместить в корне сайта. Назовем папку «chat». В этой папке создадим две подпапки:
admin – для файлов администрирования;
say – для файлов управления комментариями.
В этой же папке chat создадим файл style.css для того чтобы настраивать внешний вид элементов модуля. Пока этот файл будет пустой. Должно получиться как на рис. 7, 8.
Рис. 7 Содержание тестового сайта news.
Рис. 8. Содержание папки chat сайта news.
Комментарии без смайлов, как-то не интересно. Поэтому добавим праздника. Смайлов. Для этого в папке «say» создаем подпапку «smiles» в которую загружаем набор смайлов. В этом модуле загружен набор «Колобки» в формате GIF. Вы можете загрузить любые другие смайлы. Папка «smiles» будет проверяться на наличие изображений при первом запуске модуля и в случае если в ней будут обнаружены изображения, то они автоматически будут обработаны в качестве смайлов.
Рис. 9. Содержимое папки smiles.
На рисунке 7 представлена структура тестового сайта на данном этапе.
Рис. 10. Содержание тестового сайта news.
Таким образом, у нас получился
База данных
Теперь необходимо определиться для чего нам нужна база данных (далее БД), с ее системой управления и с тем, что в ней будет храниться. Я выбрал систему управления БД MySQl. Во-первых потому что ранее уже приходилось с ней работать, во-вторых, это самая распространенная на сегодня БД и на нее есть огромное количество справочной информации. Итак: MySQl – система управления реляционными, т.е. представленными в виде таблиц, базами данных (далее СУБД). Что в ней хранить?
В контексте задачи храниться будут:
Комментарии.
Ответы на комментарии.
Данные пользователей.
Данные о странице на которой размещаются комментарии.
Смайлы (без смайлов я комментарии не представляю).
При создании таблиц используем правило: каждый объект должен располагаться в отдельной таблице.
Объекты будут следующие: комментарии, ответы на комментарии, пользователи, права пользователей, смайлы. Еще одна таблица будет связывать права пользователя с данными в других таблицах.
Для хранения комментариев создаем таблицу «say». Таблица будет содержать следующую информацию о комментарии:
id – уникальный номер комментария;
saytext – текст комментария;
userid – идентификатор пользователя;
page_id – идентификатор страницы;
saydate – дата добавления комментария;
Для ответов на комментарии создаем таблицу «reply». Таблица будет содержать следующую информацию.
id – уникальный номер ответа на комментарий;
replytext – текст комментария;
userid – идентификатор пользователя;
replyid – идентификатор комментария;
saydate – дата добавления комментария;
Мне кажется в этих двух таблицах все понятно, вопросов быть не должно.
Для администрирования создаем три таблицы: «users», «authorrole», «role».
Таблица «users», будет содержать следующие данные:
id – уникальный номер пользователя;
login – логин пользователя;
password – пароль пользователя;
email – адрес электронной почты пользователя;
img – адрес расположения аватара пользователя;
activation – проверка активации пользователя;
date – дата регистрации пользователя.
Для идентификации автора комментария, поле «id» таблицы «users» будет в запросах к бд связываться с полем «userid» таблиц «say» и «reply»
Таблица «role» будет содержать следующие данные:
id – роль (права) пользователя;
description – описание прав пользователя;
Таблица «authorrole» – промежуточная и будет содержать следующие данные:
authorid – id пользователя;
roleid – роль (права) пользователя;
Таблица «authorrole» связывает пользователей «users» и их права «role»
Для смайлов создаем таблицу «smiles». Таблица будет содержать следующие данные:
id – id смайла;
smile – условное обозначение смайла;
path – путь к смайлу.
Пишем файл, создающий базу данных и необходимые таблицы. Назовем этот файл «createbase.php» и разместим в папке «admin». Сохраняем в формате php.
Листинг 4. createbase.php Путь: news/admin/createbase.php