$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
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Test site</title>
</head>
<body>
<p>Значимость этих проблем настолько очевидна, что начало повседневной работы по формированию позиции способствует подготовке и реализации новых предложений!
Значимость этих проблем настолько очевидна, что повышение уровня гражданского сознания влечет за собой процесс внедрения и модернизации модели развития. Практический опыт показывает, что рамки и место обучения кадров способствует повышению актуальности соответствующих условий активизации.</p>
</body>
</html>
Сохраняем файл в папке news как index.html. Теперь у нас есть стартовая страница тестового сайта. В тегах <p> содержится обычный текст заглушка. Стили к данной странице применять не будем.
Запускаем «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.