site:for-user:susanin:manager:menu

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
site:for-user:susanin:manager:menu [2019/03/31 08:34]
usov [Удаление пункта/подпункта меню]
site:for-user:susanin:manager:menu [2020/09/24 09:42] (текущий)
Строка 51: Строка 51:
 ---- ----
  
-==== Массив Меню ====+==== Редактирование пункта/​подпункта меню ==== 
 +Почти ничем не отличается от создания,​ чтобы редактировать пункт меню - нажмите на ссылку **"​Редактировать"​** напротив необходимого пункта меню
  
-{{:​site:​for-tech:models:pasted:20190328-094558.png}}+{{:​site:​for-user:susanin:​manager:pasted:20190331-083645.png?500}}
  
-Массив в **unserialize** виде представляет из себя следующее:​+----
  
-    * каждый верхний пункт меню - массив +==== Сложные ссылки с параметрами ====
-    * вложенный пункт меню - массив в элементе **items:​Araray** основного пункта +
-    * обязательные элементы в пункте (//​желтый//​):​ +
-        * **label** - отвечает за заголовок пункта +
-        * **url** - отвечает за ссылку пункта (в формате:​ **/​controller/​action**) +
-    * не обязательные элементы (//​белый//​):​ +
-        * **icon** - содержит часть CSS класса иконки **glyphicon** ("​glyphicon glyphicon-home" ​=> "​home"​) +
-        * **active** - ссылка на страницу,​ при нахождении на которой пункт меню будет выделен как активный (в формате:​ **controller/​action**) +
-        * **items** - массив с массивами вложенных пунктов меню +
-    * Если ​ссылка содержит **GET** аргументы (//красный//​):​ +
-        * **url** - элемент ​пункта меню превращается из строки в ассоциативный ​массив, в котором первый элемент имеет ключ **url** и точно так же как и в обычном случае содержит ссылку, ​а последующие элементы массива это **ключ(аргумент) -> значение(значение)** для url-адреса **("​type" ​=> 10) -> (controller/​action?​type=10)** +
-        * **active** - так же как и url превращается в ассоциативный массив,​ первый элемент с ключом **active** содержит ссылку как и в обычном случае,​ а второй(он же последний) элемент - массив содержащий пары **ключ -> значение** для определения аргументов **(["​type" ​=> 10])**+
  
-После сборки массива он с помощью метода **serialize** упаковывается в базу+При создании пункта ​меню **не пытайтесь** писать сложную ссылку ​типа
  
-----+{{:site:for-user:​susanin:​manager:​pasted:​20190331-084408.png}}
  
-==== На что обратить внимание ​====+в поле **"​Ссылка"** для этого **есть специальные поля** ​и работают они следующим образом:​
  
-    * Ссылка в элементе массива **url** вначале **имеет слэш** //​(/​controller/​action)//,​ а в элементе **active слэша нет** //​(controller/​action)//​ +{{:site:for-user:susanin:​manager:​pasted:​20190331-084633.png?​600}} ​
-    * если ссылка меню сложная и имеет **GET** аргументы (параметры) в url адресе,​ то элементы массива **url** и **active** изменяются. Теперь они не строкового типа ​а массивы. с первым элементом понятно,​ он сохранился строковым как и раньше,​ но в случае с **url** у нас массив имеет первый элемент:String ссылку а **ПОСЛЕДУЮЩИЕ** arg => value, а в массиве **active** у нас всего два элемента,​ первый так же String, а **ВТОРОЙ ​МАССИВ** с arg => value+
  
-//Для примера:​// +    * **Параметры адресной строки для юрл(1)** - перечисляем параметры ссылки (то что идет после ? в ссылке) **через &** (напримерuser=5&post=2) 
-    * <code php>​["​url" ​=> "/​controller/​action",​ "​firstArg" ​=> 10, "​secondArg"​ => "​view"​]</​code>​ +    * **Параметры адресной строки для активации(2)** - то же самоеработает для определения активности пункта меню (менять **ТОЛЬКО** если пункт меню нужно подсвечивать в других особых случаях)
-    * <code php>​["​active"​ => "​controller/​action"​["​firstArg"​ => 10, "​secondArg"​ => "​view"​]]</​code>​+
  
 ---- ----
  
-==== Основные методы ==== 
-  * <code php>​public static function getMenuByType($type) // возвращает меню из базы в serialize формате для определенного типа пользователя</​code>​ 
-  * <code php>​public static function renderTopMenu($arrTopMenuLinks) // возвращает html код верхнего меню по массиву ссылок из параметров приложения</​code>​ 
-  * <code php>​public static function createMenuFromBase($menu,​ $nowPage, $nowParams) // возвращает меню в виде айтемов для виджета меню</​code>​ 
- 
----- 
  • site/for-user/susanin/manager/menu.1554021276.txt.gz
  • Последние изменения: 2020/09/24 09:42
  • (внешнее изменение)