Просмотр поста

.
ValekS
Ей 25
Интересности

Откроем файл index.php из корневой директории. Вопреки ожиданиям главную страницу сайта мы там не увидим. Да и вообще в 5 Джоне мы там мало что увидим: вывод error 404, подключение меню сайта и вывод карты сайта.

В Джоне 3.2.2 там ещё была страничка “Пользователи”, дайджест и личный кабинет пользователя. В Джоне 4 остался только Дайджест, всё остальное перенесли в отдельные файлы в папку users. А потом Дайджест убрали из-за отсутствия необходимости в нём.

Как же всё работает?
Через require/include.
Это php функции для включения содержимого других файлов в текущий файл. Таким способом всё обирается в кучу:
/incfiles/head.php - шапка сайта, его верхняя часть;
/pages/mainmenu.php - меню сайта, средняя часть;
/incfiles/end.php - подвал сайта или ноги, его нижняя часть.
Ещё обязательно подключается /incfiles/core.php - ядро движка.

В каждом файле движка, кроме комментария вначале, можно увидеть следующее:
define('_IN_JOHNCMS', 1);
Что это? Это объявление константы, которая показывает принадлежность файла к движку. В ядре движка есть проверка, проверяющая наличие этой константы. Без неё ничего работать не будет.

Ещё в начале файлов подключается язык странички(правильнее даже сказать модуля) - переменная $lng_*** и задаются переменные $textl и $headmod. Первая это то, что будет выводиться в теге <title></title> страницы, т.е. заголовок сайта. Если эта переменная не установлена, выводится копирайт.
А вторая переменная используется для пометки местонахождения пользователя.

Что ещё интересного есть в движке? Никогда не задумывались зачем в каждой папке файл index.php ? Чаще всего пустой? Какая может быть польза от пустого файла(самому интересно стало)? А польза то есть. Всё дело в том, что если в адресной строке браузера набрать адрес сайта и потом дописать какую то папку, например /forum/, мы увидим стартовую страничку форума - файл index.php.

А что если этого файла нет? Тогда мы увидим список файлов и папок директории, которую написали в адресной строке(хотя тут есть одна оговорка, при правильной настройке сервера мы должны увидеть страничку с ошибкой 403, но не все сервера настроены правильно).

Не трудно догадаться что это плохо сказывается на безопасности сайта. А так как Джон очень хорошо защищённый движок, позволить такое разработчики не могли. По этому создали пустой index.php и добавили его в те папки, где его нет. И теперь при попытке открыть папки /pages/, /images/ и некоторые другие, вы увидите просто белую страницу.

Текста, выводимого на экран, в файлах движка вы не увидите. Кроме комментариев. И если не используете версию 3.2.2. Весь текст находится в .lng файлах - на самом деле просто текстовый файл, которые находятся в /incfiles/languages/язык. А выводится через переменную $lng или $lng_***.