Cum se adaugă un buton, den un urs

Acest material este dedicat crearea de butoane arbitrare SMF: meniul principal, în secțiuni, în temele.

Astfel, cârlig - o loțiune, moda, fără a schimba fișierele motorului.

Noile caracteristici sunt descrise într-un singur fișier, care afișează datele de care aveți nevoie în locații predeterminate ale forumului.

Principalele elemente de meniu

De exemplu, doriți să adăugați un buton în meniul principal. Înainte de asta, trebuia să faci? Urca în index.template.php. să caute, să se pronunțe. Iar dacă pe forum a fost folosit in mai multe teme? Editați index.template.php în fiecare dintre ele? Apoi, situația sa schimbat, a fost necesar pentru a edita un singur fișier - Subs.php.

Dar un fișier, și numărul de mods care au făcut modificări, cu fiecare zi care trece crește. Și când instalați fiecare dintre următoarea apariție așteptat de probleme și erori. Prin urmare, dezvoltatorii au venit cu un cârlig integrate_menu_buttons - o funcție care are ca parametru o serie de butoane de meniu.

În primul rând descris de o serie de cârlige, care avem nevoie, și apoi forțat prin funcția matrice add_integration_function. După aceea, setările de masă pe baza noii linii va fi date: integrate_pre_include cu o valoare de $ sourcedir / Reductiile-MyMod.php și integrate_menu_buttons a example_menu_buttons de valoare.

Subs-MyMod.php loc fișier în dosarul Surse. Acest fișier descrie funcția example_menu_buttons.

Obisnuieste-te la crearea individului includ fișiere care nu se vor pierde și nu se resetează la zero în următoarea actualizare și offline - practică utilă.

Acordați atenție la începutul fișierului. Dacă nu doriți forum rupt prin fișierul creat, asigurați-vă că pentru a include aceste linii:

Vom continua. Scop: pentru a adăuga un nou buton din meniu. Funcția example_menu_buttons are ca parametru un butoane $ matrice. așa că trebuie să creați un nou element în matrice:

Variabilele de text folosite - în acest caz $ txt [ 'mybutton_text'] și $ txt [ 'mybutton_link'] - asigurați-vă că pentru a descrie și stoca în fișierul de limbă (de exemplu, în Modifications.russian-utf8.php). Din moment ce lucrăm cu cârlige, este mai bine să se conecteze fișiere de limbă separat, fără a afecta pe cei care au. Salvați moda variabilă într-un fișier php numit așa cum ne dorim (este mai bine să nume se potrivește cu numele viitorului modei, pentru a evita confuzia), se transferă la limbile Daddy (în tema implicită) și apoi conectați prin intermediul loadLanguage funcției. în cazul în care este necesar:

Da, vom adăuga un buton, dar apare numai la sfârșitul anului. Și dacă ai nevoie de o concluzie după elementul „Căutare“? Puteți:

Dă-i drumul. Vreau să schimbe elementele de meniu gata? De exemplu, adăugați țintă atribut = „_ blank“ la butonul „Help“:

O adăugați mai ușor elementele de meniu imbricate. De exemplu, se adaugă un paragraf „Site-ul“, care apare atunci când faceți clic pe „Acasă“:

Nume de butoane și link-uri ar trebui să fie stocate în fișiere de limbă, mai degrabă decât orientate direct în codul. Apoi, în viitor (și pentru care, în prezent), va fi foarte ușor, de exemplu, pentru fiecare limbă pentru a afișa un link separat: pentru mysite.ru română, pentru limba engleză :. Mysite.ru/en și așa mai departe.

Adăugarea unui buton în cadrul secțiunilor

Cu ajutorul unui alt cârlig utile - integrate_messageindex_buttons - sunt butoanele de pe secțiunea a paginii:

Butoanele rămase

În mod similar, pentru a adăuga la paginile butoanelor (integrate_display_buttons cârlig):

Cum se adaugă un buton, den un urs

Butonul din partea de jos a paginii sunt aceleași. Numai în acest timp, a folosit un integrate_mod_buttons cârlig. precum și un parametru de intrare ia o serie de $ mod_buttons:

Ca un exemplu, uita-te TopicRenamer.

În plus, nimeni nu interzice utilizarea de cârlige, nu pentru scopul prevăzut așa cum este descris mai sus. De exemplu, pentru a afișa textul specific în secțiunea a paginii, chiar sub descrierea, folosiți aceleași integrate_messageindex_buttons cârlig:

Din moment ce nu se schimbă și nu adăugați butoane, nu este necesar parametru de intrare (o matrice $ normal_buttons). Iar rezultatul în captura de ecran:

O concluzie similară este utilizată pe paginile.

În modurile Zen Block și Evaluare Subiect Bar integrate_display_buttons cârlige și integrate_messageindex_buttons folosite doar un mod non-standard.