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

Шрифт
Фон

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

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

Листинг А. Получение пути к корню сайта. Размещается вначале страницы.


$p = explode('ufo', __DIR__);

echo $p[0];

set_include_path(get_include_path() . PATH_SEPARATOR . $p[0]);


где ufo имя папки из которой вызывается файл. В примере указано ufo, но по факту любое.

Для сайта news и папки ufo в константе __DIR__ будет такой путь:

C:\OSPanel\domains\news\ufo

При помощи функции explode этот путь делится на две части. Разделителем будет служить название каталога, в данном примере ufo. В итоге в $p[0] будет содержаться левая часть:

C:\OSPanel\domains\news\

т.е. путь к корню сайта.

И теперь можно подключать файлы из любых каталогов следующим образом:

include "chat/нужный скрипт"; или include "ufo/нужный скрипт";. Мне кажется это довольно неудобно, хотя и будет работать везде. Поэтому рассмотрим вариант Б.

Вариант Б: использовать $_SERVER['DOCUMENT_ROOT'].

'DOCUMENT_ROOT' это директория корня документов, в которой выполняется текущий скрипт, в точности та, которая указана в конфигурационном файле сервера[mnl]. Значение этой переменной дает путь к корню сайта. И подключение файла будет выглядеть так:

include $_SERVER['DOCUMENT_ROOT']./нужный файл;

Как мне кажется, вариант Б более удобен, поэтому в дальнейшем все подключения будут делаться через $_SERVER['DOCUMENT_ROOT'].

3. Создание тестового сайта

Ну, что ж приступим. Для упрощения разработки модуля на этапе разработки, воспользуемся не готовым шаблоном, а создадим свой простейший сайт одностраничник. Для этого переходим в папку с установленным «Open Server». По умолчанию она находится по пути: C:\OSPanel. Далее переходим в папку «domains» и создаем там тестовый отладочный сайт. Для этого создадим в папке «domains» подпапку. Название выбирайте какое хотите. Название этой папки будет именем вашего сайта. Я назвал её news. Затем открываем редактор и создаем в нем текстовый документ со следующим кодом:

Листинг 2. index.html Путь: news/index.html

Test site

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

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


Сохраняем файл в папке news как index.html. Теперь у нас есть стартовая страница тестового сайта. В тегах

содержится обычный текст заглушка. Стили к данной странице применять не будем.

Запускаем «Open Server». В разделе мои сайты должен появиться новый сайт news. Запускаем его. Если все сделано правильно, в браузере должен появиться сайт «news» и на нем текст заглушка.

Так как дальнейшая работа предполагает работу с PHP, создаем в редакторе в этой же папке «news» файл .htaccess со следующим содержимым

Листинг 3. .htaccess Путь: news/.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»

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке

Скачать книгу

Если нет возможности читать онлайн, скачайте книгу файлом для электронной книжки и читайте офлайн.

fb2.zip txt txt.zip rtf.zip a4.pdf a6.pdf mobi.prc epub ios.epub fb3