Dodati link u meni
Sada kada smo napravili placeholder za našu stranicu podešavanja modula, dodajmo link u meni. U sledećim instrukcijama prikazano je kako napraviti link u meniju za modul hello_world u sekciji „Razvoj“ na stranici „Administrator > Konfiguracija“ (http://example.com/admin/config).
U korenskom folderu vašeg modula napravite novi fajl pod imenom hello_world.links.menu.yml i dodajte sledeći sadržaj:
hello_world.admin: title: 'Podešavanja Hello modula' description: 'primer kako napraviti link ka administratorskoj stranici podešavanja' parent: system.admin_config_development route_name: hello_world.content weight: 100
Obratite pažnju da prva linija rezerviše imenski prostor, kao u našem primeru routing fajla. Takođe obratite pažnju na korišćenje imena rute u petom redu (koristimo imenski prostor iz prve linije routing fajla). Naslov i opis će biti prikazani u sekciji „Razvoj“. Obratite pažnju da linija parent određuje roditeljsku stavku u meniju. Drugim rečima, link će biti kreiran unutar admin > config > development.
Ovo će dodati link ka putanji definisanoj u hello_world.content (u ovom primeru u fajlu hello_world.routing.yml) na administratorskim stranicama vašeg sajta pod tabom „Konfiguracija“ (URL /admin/config) u sekciji „Razvoj“. Naravno, moraćete da obrišete keš da bi izmene stupile na snagu.
Nakon brisanja keša, pronaći ćete link „Podešavanja Hello modula“ u sekciji „Razvoj“ na stranici konfiguracije. Klikom na link pozvaće se modul hello_world.
Dodatni saveti
Fajl .links.menu.yml je prilično fleksibilan. Možete ga koristiti i za linkovanje ka eksternim resursima ili interne linkove, na primer:
hello_world.admin: title: 'Podešavanja Hello modula' description: 'primer kako napraviti link ka administratorskoj stranici podešavanja' parent: system.admin_config_development url: http://example.com/this-is-some-example weight: 100 hello_world.admin2: title: 'Podešavanja Hello modula' description: 'primer kako napraviti link ka administratorskoj stranici podešavanja' parent: system.admin_config_development url: internal:/some-internal-path
Nije moguće uređivati:
Napomena: kada kreirate linkove u meniju pomoću YAML fajlova i prilagođenih modula na ovaj način, dobijate nelagodljive linkove u korisničkom interfejsu menija. Linkove možete menjati samo kroz YAML fajl. Oni se smatraju kontrolisanim od strane modula, a ne administratorskim. Kada kliknete na dugme za uređivanje stavke menija, dobićete poruku „Ovaj link je obezbeđen modulom XXX. Naslov i putanja ne mogu biti uređivani“.
Da biste kreirali uređive linkove u meniju, potrebno je da to uradite otprilike ovako:
$my_menu = \Drupal::entityTypeManager()->getStorage('menu_link_content') ->loadByProperties(['menu_name' => 'my-menu-name']); foreach ($my_menu as $menu_item) { $parent_id = $menu_item->getParentId(); if (!empty($parent_id)) { $top_level = $parent_id; break; } } $menu_link = MenuLinkContent::create([ 'title' => 'Naslov mog linka u meniju', 'link' => ['uri' => 'internal:/my/path'], 'menu_name' => 'my-menu-name', 'parent' => $top_level, 'expanded' => TRUE, 'weight' => 0, ]); $menu_link->save();
Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.