Admin Panel

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

Что это делает?

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

Что требуется и как подключить?

Требуется верстка на базе Skin: thisSite.tmpl
Набор кнопок формируется на странице: ThisSite.PageActions

Подключение:

  • (farm)config.php:
    • phAdminPanel.php
    • (опционально) определите $phAdminPanel_AccessLevel, иначе по-умолчанию значение "edit". Переменная определяет уровень авторизации пользователя, при котором ему будет доступен функционал;
    • подключите рецепт: include_once("$FarmD/cookbook/phAdminPanel.php");
  • в макете дизайна разместите следующий код сразу после <body> вот так: <!--wiki:ThisSite.PageActions {$SiteGroup}.PageActions-->

Демо

На скриншоте в левой дополнительной группе представлены следующие четыре кнопки:

  1. добавления новой страницы в текущий раздел;
  2. настройки сайта (доступна Администратору);
  3. очистки кэша картинок текущей страницы;
  4. индикатор текущего размера окна в bootstrap-терминологии.

Техническая информация

Status
stable
Core
yes
PHPcookbook
phAdminPanel.php
Также задействована ThisSite.PageActions , где содержится код кнопок панели

Version
20210604

FAQ

Что делать, если дизайн моего сайта сломал отображение AdminPanel? Например, цвет фона и шрифта в кнопках одинаковый…

Есть два варианта:

  1. переделайте дизайн своего сайта так, чтобы он стал логичным и кнопки выглядели как кнопки в любых обстоятельствах;
  2. каким-либо образом добавьте CSS-патч для #AdminPanel. Рекомандуется сделать это в PHP-файле вашего дизайна примерно вот так:
global $phAdminPanel_AccessLevel,  $HTMLHeaderFmt;
if (CondAuth($pagename, "$phAdminPanel_AccessLevel") && !@$rextKeepCore) { 
  $HTMLHeaderFmt['styles']['AdminPanel'] .= "
  <!-- AdminPanel: MySkin Adds -->
    <style>
    #AdminPanel .btn {background: none; color: #fdd930;}
    </style>
  <!-- // AdminPanel: MySkin Adds -->
   ";
}