Salutări! Și așa, vom continua să razeți subiectul "Bitrix". Și astăzi vom vedea cum are loc crearea actuală a meniului Bitrix. Destul de ciudat, dar fără un bagaj mic de cunoștințe și trucuri, acest proces poate provoca dificultăți multor localnici, care au decis că Bitrix este în dinți lor :)
Ce anume vom face în această lecție?
Creați pe site 3 tipuri de meniuri:
Top - tip de top (fișiere cu numele .top.menu.php)
Primele 2 și 3 niveluri sunt subtop (fișiere cu numele .subtop.menu.php)
Partea de jos este tipul de jos (fișiere numite .bottom.menu.php)
Meniul de sus va fi moștenit din secțiuni și va fi multi-nivel. Meniul inferior va fi meniul obișnuit la un nivel, așezat în rădăcină.
Voi face o mică deviere. Deoarece aproape toate lucrările Bitrix (prelucrarea datelor și ieșirea) se bazează pe diferite componente, merită explicat cu ce ne confruntăm în această lecție.
- Meniuri derulante orizontale pe mai multe niveluri (Vivid) (horizontal_mullevelle);
- Meniul stânga (Bright) (stânga);
- Meniul vertical implicit (șablon încorporat) (.default);
- Meniu albastru sub formă de marcaje (șablon încorporat) (albastru_tab);
- Mesaj gri sub formă de marcaje (șablon încorporat) (grey_tabs);
- Meniul copac (șablon încorporat) (copac);
- Meniul vertical vertical multiplu (șablon încorporat) (vertical_multilivel).
Puțin despre parametrii pe care îi vedeți în exemplul unui apel component.
ROOT_MENU_TYPE - Tipul de meniu pentru primul nivel. Este indicat tipul meniului de nivel superior corespunzător acestui meniu.
MAX_LEVEL - Nivelul de cuibare al meniului. În setările componentelor, puteți selecta nivelul de cuibărit din lista derulantă. Există patru niveluri disponibile. Cu cât este mai mare numărul, vor fi afișate elementele de nivel inferior.
CHILD_MENU_TYPE - Tipul de meniu pentru nivelurile rămase. Aici specificăm tipul meniului pentru meniul de nivel inferior.
USE_EXT [Y | N] - Vă permite să conectați fișiere cu nume de tip .type_menu.menu_ext.php. Astfel de fișiere sunt foarte necesare pentru noi atunci când trebuie să lipim împreună elementele de meniu statice necesare și elementele generate dinamic.
DELAY [Y | N] - Întârzie executarea șablonului de meniu. Dacă opțiunea este bifată, șablonul va fi executat după încărcarea paginii. Este foarte convenabil atunci când componenta este stocată în cache, dacă mai trebuie să efectuați anumite acțiuni pentru a modifica aspectul elementelor de meniu în funcție de pagina curentă. De exemplu, adăugarea de elemente de meniu la componente.
ALLOW_MULTI_SELECT [Y | N] - Permite mai multe elemente active în același timp.
CACHE_TYPE - Tipul cache-ului Opțiuni:
- A - Auto: actualizează automat memoria cache a componentei pentru timpul specificat;
- Y - Cache: pentru caching, trebuie să determinați timpul de cache;
- N - Nu cache: nu există caching oricum.
MENU_CACHE_TIME - Timp de cache. Setați în secunde.
MENU_CACHE_USE_GROUPS - Luați în considerare drepturile de acces. Caching-ul va lua în considerare drepturile de acces ale utilizatorilor la anumite elemente de meniu. Dacă meniul este construit fără a ține seama de drepturile de acces, caseta de selectare este mai bine de eliminat - aceasta va reduce dimensiunea cache-ului.
MENU_CACHE_GET_VARS - Variabile importante de interogare. Dacă afișarea meniului depinde de setările paginii, atunci când utilizați cache-ul, trebuie să specificați parametrii din acest câmp. Parametrii sunt introduși separat prin virgule.
Setul standard de parametri este impresionant, nu?)
Să mergem direct la cod!
Meniul de sus va fi moștenit din secțiuni și va fi multi-nivel. Meniul inferior va fi meniul obișnuit la un nivel, așezat în rădăcină. Creați un meniu în rădăcina sistemului de fișiere. Puteți face acest lucru prin secțiunea administrativă sau pur și simplu creați un fișier numit .TIM_MENU.menu.php după cum urmează (un exemplu pentru un fișier de meniu de nivel superior):
Dacă, de exemplu, doriți să creați sub-elemente în elementul Despre din meniul de sus, puteți utiliza arhitectura 1C-Bitrix și de a crea partițiile / despre / si / despre / profil /, precum și de tipul de meniu „de sus“, pentru fiecare dintre ele (cu excepția cazului în noi creați pagini, numai structura de fișiere de secțiuni și meniuri).
Apoi, trebuie să plasăm componenta meniului bitrix: meniu pe pagina de test sau undeva în șablon, de exemplu în footer.php sau header.php, în viitor vom lucra cu acesta.
Vă sfătuiesc să începeți din meniul de jos, este mai ușor și vă va permite să studiați și să înțelegeți în detaliu logica componentei. Folosim șablonul .default (este în ansamblul standard) și setăm elementul de meniu la tipul "de jos":
Acest cod vă este deja cunoscut din exemplul de apelare a componentei, pe care am discutat-o mai sus. Deoarece șabloane de componente Bitrix inițial se află într-un dosar cu componentele, este mai bine pentru a copia originalul dosarul șablon implicit la un anumit șablon general al site-ului nostru, aceasta trebuie să se facă la un nivel minim pentru a nu strica modelul de bază componentă și că toate realizările noastre nu sunt zburat cu primul actualizarea sistemului. Prin urmare, copiem șablonul de componente ca "partea de jos" în șablonul site-ului. Deși acesta este un șablon foarte concis, în scopul instruirii nu vom lua nimic de la el practic:
În acest cod, vă puteți familiariza cu prietenul dvs. care vă va urmări în toate etapele de dezvoltare pe Bitrix, acesta este arrayul superglobal $ arResult. Stochează tot ceea ce aveți nevoie în procesul de creare a unui site și apoi nu îl puteți găsi oricând, puteți să vă conectați sau să alegeți din baza de date datorită fișierului miracle result_modifier.php. care este localizat în dosarul șablon al fiecărei componente.Dacă nu ați găsit nimic în neregulă cu acesta în timpul asamblării inițiale, puteți oricând să îl creați și să îl utilizați la discreția dvs.
Se creează acest fișier, de asemenea, pentru a separa logica de layout-ul, adică tratarea tuturor logicii în fișierul result_modifier.php va fi disponibil pentru afișare în componenta șablon (fișier template.php) toate datele.
Să facem "vardamp" -ul elementelor noastre și să vedem ce ne va da arrayul $ arResult pentru parametri.
Puneți acest cod imediat după pornirea bucla și salvați șablonul. Principalul lucru pe care trebuie să-l acordăm atenție este parametrii:
Parametrul [SELECTED] nu este gol când elementul de meniu corespunde locației noastre în structura site-ului, adică când este selectat elementul. Deci, îl putem folosi cu ușurință pentru a obține stilul de care avem nevoie, de exemplu:
Parametrul [ITEM_INDEX] reflectă numărul elementului de meniu din matrice. Trucul este că îl putem folosi pentru a pune delimitatori între elementele principale ale meniului. Corectăm ușor structura și scoatem separatorul cu următorul cod:
Ca rezultat, în acest stadiu, combinând totul într-o grămadă, șablonul componentei de meniu va arăta astfel:
De asemenea, putem șterge în siguranță fișierele suplimentare pe care le avem când copiem șablonul original .default.
Acum plasați apelul componentei de nivel inferior în loc de statica din șablonul pe care l-am specificat anterior. Nu uitați să specificați tipul și ora cache-ului, cu excepția cazului în care, desigur, aveți nevoie de ea :)
Voila!) Pur și simplu coborâți meniul este gata, iar noi am fost capabili să facă separatoare între punctele, precum și a face posibilă eliberarea elementului activ, a fost nevoie de doar două linii de cod, astfel încât totul este foarte rapid și convenabil, principalul lucru pentru a înțelege componenta logică.
Așteptați în curând pentru continuare - implementarea meniului top dinamic și abonarea la noi în rețelele sociale :) Va fi foarte interesant!