Генерация страницы фронтофиса в Cetera CMS

Как происходит генерация страницы фронтофиса в Cetera CMS

Рассмотрим что происходит при обращении к сайту под управлением Cetera CMS при попытке открыть страницу по адресу http://server.ru/foo/bar/baz

Шаг 1. Определение сервера.

Сetera CMS из коробки поддерживает многосерверность, поэтому первое, что делает система, это определение к которому серверу произошел запрос. В нашем случае будет выбран сервер, в свойствах которого определен домен или синоним «server.ru». Если сервером с указанным доменом не найден, то будет выбран первый по списку сервер. Выбранный сервер будет считаться текущим сервером.

API-метод \Cetera\Application::getServer() возвращает объект \Cetera\Server, представляющий
текущий сайт.

Шаг 2. Определение раздела.

Затем cms пытается определить к какому разделу сайта произошло обращение. URL запроса разбивается на части разделителем «/»:

server.ru
foo
bar
baz

По «server.ru» уже был определен текущий сервер на предыдущем шаге. Далее в текущем сервере производится поиск раздела с алиасом «foo», а в нем подраздел c алиасом «bar» и так далее. Если очередной раздел не будет найден, то цикл прерывается. Последний найденный раздел будет считаться текущим разделом. Текущим разделом может быть сервер, если не существует раздела первого уровня с указанным алиасом или если раздел не указан в URL запроса.

API-метод \Cetera\Application::getCatalog() возвращает объект \Cetera\Catalog, представляющий текущий раздел.

Если поиск текущего раздела прервался по причине отсутствия нужного раздела, то часть URL, которая осталась нераспознанной, сохраняется. И может быть получена методом \Cetera\Application::getUnparsedUrl()

Например, если в сервере server.ru есть раздел foo, в нем есть подраздел «bar», в котором нет подраздела «baz», то \Cetera\Application::getUnparsedUrl() вернет «baz». А если уже в разделе «foo», нет подраздела «bar», то «bar/baz» и т.д. Как правило, значение, возвращаемое методом getUnparsedUrl используется для поиска материала в текущем разделе.

Шаг 3. Поиск и исполнение кода контроллера.

По умолчанию, все скрипты сайта располагаются в каталоге <DOCUMENT_ROOT>/.templates. Имеется возможность переопределить этот каталог персонально для каждого сервера, задав нужное значение в поле «Каталог» в свойствах сервера в интерфейсе Cetera CMS.

Шаг 4. Обработка результата.


Мы на связи

фото Алены Ратниковой

Алена Ратникова
Отвечаю за всё производство

фото Марии Лебедевой

Мария Лебедева
Занимаюсь новыми клиентами


Cetera Labs

График работы

Понедельник-пятница
9:00-18:00

Телефон

8 (800) 775-52-93