Меню Конфигурация - Документация - SleepingOwl - Административен панел на Laravel

Конфигурацията на администраторското меню на SleepingOwl по подразбиране се намира в app/Admin/navigation.php. Ако файлът върне масив, тогава този масив също ще се използва за изграждане на менюто.

Обект за навигация

Навигацията е представена от класа SleepingOwl\Admin\Navigation (имплементира интерфейса KodiComponents\Navigation\Contracts\NavigationInterface), който се инициализира чрез Service Container - sleeping_owl.navigation и достъпен с:

Сервизен контейнер

Този обект съдържа масив от всички елементи от менюто за административния интерфейс.

Добавяне на раздели

Можете да добавите всякакви обекти, които имплементират интерфейса KodiComponents\Navigation\Contracts\PageInterface към менюто

Ако като аргумент бъде подаден низ или масив, тогава обектът SleepingOwl\Admin\Navigation\Page ще бъде създаден като раздел

масив $страница аргумент

При предаване на параметрите на секцията като масив, всеки ключ от масива ще бъде обходен и методът set + $key ще бъде извикан и стойността ще бъде предадена като аргумент, т.е.

низ $страница аргумент

Когато предавате параметър на раздел като низ, ще бъде създаден нов обект на раздел и ще бъде указано заглавие.

Аргумент PageInterface $страница

В навигацията ще бъде добавен нов раздел - преминат обект

Нов раздел в менюто може да се добави по няколко начина:

Чрез сервизен контейнер

Клас AdminSection

Добавяне на секции като масив

За по-удобно генериране на менюта можете да подадете списък от секции като масив, след което при заобикаляне на масива от менюта методът addPage ще бъде извикан за всяка секция

Пример

Тези правила важат и за вътрешни раздели.

Добавяне на раздел към подразделпри инициализация

Предупреждение: За да работи добавката, класовете на секциите трябва да бъдат инициализирани преди секциите да бъдат обработени.

Ако искате да добавите раздел като подраздел на елемент от менюто по време на инициализацията на раздела, тогава трябва да зададете идентификатора на този елемент от менюто за последващо търсене:

След това в секцията търсим родителската секция и добавяме своя собствена секция:

Получаване на списък с дялове

Получаване на броя на секциите, като се вземе предвид влагането

Права за видимост на раздела

Можете също да зададете правила за видимост за секциите на менюто. Процесът на проверка на разрешенията е както следва: всеки обект от менюто може да има собствено локално правило за проверка на разрешенията

Ако не е указано правило за страница:

Има няколко сценария за задаване на разрешения:

  • Посочете глобално правило
  • Посочете правило за конкретна страница
  • Посочете правило за секцията, съдържаща страници, това правило ще се прилага за всички вътрешни страници, които нямат свои собствени правила

Примерно меню

Ето прост пример за това как може да изглежда конфигурацията на менюто:

Страница обект

Всеки раздел (страница) на менюто е SleepingOwl\Admin\Navigation\Page обект, който имплементира интерфейса KodiComponents\Navigation\Contracts\PageInterface и наследява интерфейса KodiComponents\Navigation\Contracts\NavigationInterface, т.е. всеки раздел се държи по същия начин като обект за навигация Този обект съдържа всички параметри за текущата страница, плюс масив от вложени раздели.

В момента има два налични класа страници

  • KodiComponents\Navigation\Page - за създаване на обикновени секции
  • SleepingOwl\Admin\Navigation\Page - за създаванесекции, обвързани с класа на конфигурацията на модела

KodiComponents\Navigation\Page

SleepingOwl\Admin\Navigation\Page

addAlias(масивниз $алиаси)

addPage(stringarrayPageInterfacenull $page)

setPages(затваряне на $страници)

Добавяне на дъщерни страници чрез анонимна функция

setId(низ $id)

Добавяне на уникален идентификатор за страницата, необходим за намиране на страницата

setTitle(низ $title)

Задаване на заглавие за страница

setIcon(низ $икона)

Задаване на икона за страница

setUrl(низ $url)

setPriority(int $priority)

Задаване на приоритет на изхода

getPath(int $priority)

Получаване на масив от заглавия за текущия раздел, дадени родителски раздели

getPath(int $priority)

Получаване на масив (верига) от текущата страница за основната страница за изграждане на навигационни пътеки

Всяка страница може да съдържа неограничен брой значки. Когато се извика методът setBadge или addBadge, текущата значка се предава в стека. Когато страницата се покаже, ще се покажат всички значки от стека.

setBadge(KodiComponents\Navigation\Contracts\BadgeInterface $badge)

Добавяне на обект за значка

addBadge(stringClosure $value, array $htmlAttributes)

Колекция от страници

Обектът KodiComponents\Navigation\PageCollection наследява от Illuminate\Support\Collection и съдържа масив от дъщерни страници за секции и обект за навигация.