Плюшка CMS#

/* Создан для быстрой разработки приложений */
Скачать Демо

13. Админка

17.10.2015

Программирование админки во многом похоже на программирование общедоступной части сайта. Существенное отличие — это отсутствие ЧПУ. Если в общедоступной части сайта первый элемент ЧПУ-ссылки — это имя контроллера, а второй — имя действия, то в админке они указываются явно:

example.com/admin/index.php?controller=article&action=blog.

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

Административная часть сайта — это диалоговые окна, содержащие элементы управления, относящиеся к каким-либо конкретным элементам сайта. Каждая кнопка (или пиктограмма) — это, по сути, ссылка на административную часть сайта, которая расположена в директории /admin.

Диалоговые окна представляют из себя фреймы, в которых подгружается контент, поэтому стили сайта не могут повлиять на стили админки (за исключением кнопок). Если нажать правой кнопкой мыши на одной из «кнопок» админки и выбрать в меню «открыть в новой вкладке», то можно видеть тот же контент, который открывается во всплывающих окнах. Этим удобно пользоваться при отладке админки.

На самом деле в движке заложен потенциал, при помощи которого возможно реализовать классический бакэнд, но пока в этом нет необходимости.

Типичный вид ссылки, которая открывает контент в диалоговом окне (в данном примере — редактирование статьи):

example.com/index2.php?controller=article&action=article&id=2&_front&_lang=ru

Тут index2.php (как и в общедоступной части сайта) означает, что в отличии от index.php, не нужно выводить шаблон админки. Параметр _front сообщает движку, что запрос выполнен из диалогового окна с общедоступной части сайта — это несколько меняет поведение фреймворка (функции core::link() и core::redirect() ). Параметр _lang указывает на редактируемый язык: все вносимые изменения будут касаться именно этого языка.

Редактирвание мультиязычных элементов сайта соответствует принципу «что вижу, то и редактирую». Тоесть в админке редактируется тот язык, который «включён» на общедоступной части сайта.

В большинстве случаев пиктограммы административного интерфейса располагаются в правильном месте страницы и выглядят адекватно, однако всегда найдутся случаи, когда кнопки накладываются друг на друга, закрывают собой жизненно важный контент или конфликтуют со стилями сайта. Специально для этого каждая кнопка, точнее каждый тег , имеет уникальный идентификатор (правда, уникальный в рамках открытой страницы). Используя этот идентификатор в совокупности с CSS-классами блоков, в которых находится тег , можно корректировать стили кнопки. Корректировать положение кнопки нужно используя стиль «margin». Стили лучше всего писать в файл /public/css/admin.php — этот файл подгружается автоматически, если авторизованный пользователь обладает правами администратора.