În acest articol vom examina elementele de bază ale aspectului XML al Magento.
Vom folosi fișierul local.xml și vom efectua câteva modificări de bază. Modificările vor include adăugarea și eliminarea scripturilor, ștergerea blocurilor și adăugarea unei actualizări a aspectului.
Acum, că avem o înțelegere de bază a logicii de proiectare pentru Magento. Vom intra mai mult în această întrebare și vom explica fișierele șablonului.
Fișierele de șabloane sunt situate în următoarele două subdirectoare:
- Aspect: app / design / frontend /<название_пакета>/<название_темы>/ layout /
- Format: app / design / frontend /<название_пакета>/<название_темы>/ template /
Voi împărți acest subiect în articole separate. Astăzi vom lua în considerare doar aspectul de machete. Aspecte ale modelelor pe care le vom lua în considerare în următorul articol.
Înainte de a începe să facem ceva cu layout-urile, trebuie să facem un lucru important - să dezactivați cache-ul Magento. Acest lucru ne va permite să vedem imediat modificările, în loc să actualizăm cache-ul de fiecare dată când facem mici modificări. În mod ideal, cache-ul ar trebui să fie oprit tot timpul în timpul dezvoltării site-ului. Pentru a dezactiva memoria cache, accesați panoul de administrare a site-ului și accesați System> Cache Management și dezactivați toate tipurile de cache.
Acum, să începem.
Dosarul de aspect al oricărui subiect conține fișiere XML, care determină în mare măsură ce este afișat în partea din față a magazinului. Structura layout-urilor din Magento este destul de complicată, dar acesta este unul dintre motivele pentru care motorul este atât de puternic și flexibil.
Veți găsi sute de fișiere XML, fiecare dintre ele făcându-și propriul lucru, fiecare vizualizare sau modul în app / code / are propriul aspect definit de propriul fișier XML. Dacă ați instalat vreodată un modul terț în magazinul dvs. și a influențat partea din față a site-ului - fără îndoială acest modul are propriul fișier XML.
Dar cum știu ce fișier XML trebuie să modific?
Pentru aceasta, se folosește convenția de denumire a fișierelor, ceea ce facilitează procesul de urmărire a fișierelor când trebuie să schimbați ceva. De exemplu, un modul Magento app / code / core / Mage / Pagina / își are propriul fișier XML numit app / proiectare / front-end / de bază / default / aspect / page.xml și după cum puteți vedea, există deja o anumită schemă poate fi urmărită! Odată ce v-ați familiarizat cu problema și să facă câteva magazine, foarte curând veți observa unele repetabilitate, care vă amintește fișierele pe care doriți să le modificați.
Notă: Acordați atenție modulelor terță parte, deoarece, din punct de vedere tehnic, dezvoltatorul poate să-și apeleze fișierele XML așa cum îi place. În acest caz, dacă nu este descris în documentația modulului, va trebui să urmăriți numele fișierului în interiorul modulului, care se găsește de obicei în fișierul config.xml.
De asemenea, rețineți că nu toate modulele au un fișier XML. De obicei, un fișier XML va fi disponibil numai dacă afectează partea frontală a magazinului.
Calea spre setările modulului: app / code / local /<пространство_имен>/<название_модуля>/etc/config.xml
Notă, mai jos mă refer la bază / implicită. amintiți-vă că acesta este locul unde sunt localizate fișierele principale ale motorului; dacă trebuie să faceți modificări, copiați-le întotdeauna în zona proprie de pachete / temă și nu modificați niciodată fișierele de bază / implicite.
Ce este local.xml?
Pur și simplu, acesta este fișierul care este plasat în folderul de layout al temei noastre, care conține majoritatea modificărilor noastre sau actualizări layout XML pentru acest subiect. Utilizarea acestui fișier este considerată o practică bună și Magento îl recomandă. Am putea compara acest fișier ca versiunea Magento a fișierului functions.php pentru WordPress.
Așteptați o "mare parte" - de ce nu "toate părțile" modificărilor sau actualizărilor noastre?
Există numeroase discuții pe această temă și, dacă am face mai multe studii, am găsi în fiecare gând propriile noastre cereale raționale. Unii vor spune că folosesc doar local.xml. altele - ceea ce editează în toate fișierele însoțitoare; deci alegeți calea proprie.
Personal, cred că acest fișier este un loc minunat pentru mici modificări, cum ar fi adăugarea blocurilor, ștergerea blocurilor sau modificarea șabloanelor. Acest fișier nu este potrivit pentru a actualiza complet aspectul paginii produsului sau ceva de genul acesta; dacă doriți să faceți acest lucru, faceți-o în fișierul corespunzător, de exemplu, catalog.xml
Da, ne poate salva un pic de timp suntem actualizarea Magento, pentru că toate schimbările noastre sunt conținute într-un singur fișier, dar păstrând toate modificările noastre într-un fișier separat, poate duce la dureri de cap, atunci când vrem să suprascrie alte fișiere XML.
Deci, cum să configurați acest fișier ...
Creați un fișier local.xml în folderul de aspect al temei app / design / frontend /<название_пакета>/default/layout/local.xml și adăugați o structură de bază mică în structura fișierului XML:
Acum că avem dosarul final, vă voi arăta câteva metode comune.
1. Adăugarea și eliminarea fișierelor de scripturi / stiluri
Pentru a conecta un fișier, trebuie să decidem mai întâi dacă va fi global, adică conectat în toate paginile magazinului nostru sau numai pentru anumite zone. Procedând astfel, putem selecta descriptorul corect (eticheta de marcare) pentru aspectul de utilizat.
Voi prezenta doi descriptori ai aspectului,
descriptor
Acum mergeți la cod.
În acest cod, se întâmplă destul de mult, dar când ceva se rupe, cauza defalcării este relativ ușor de găsit.
- Metoda pe care o folosim pentru a atinge un obiectiv specific (adăugați sau ștergeți un fișier)
- Eticheta de tip se referă la tipul fișierului atașat și specifică unde se află acest fișier în ierarhia subiectului.
- Eticheta de nume conține calea spre fișier
- skin_js: skin / frontend /<название_пакета>/ implicit /
- skin_css: skin / frontend /<название_пакета>/ implicit /
- js: js /
Rețineți că descărcarea unui fișier dintr-o sursă externă, de exemplu CDN, are o sintaxă ușor diferită. De asemenea, este important să includeți jQuery.noConflict (); în cele din urmă, pentru a evita un conflict cu jQuery cu prototipul de bibliotecă Magento încorporat.
2. Înlăturarea blocurilor
Magento vine cu mai multe blocuri de credit default în panourile din bara laterală, cum ar fi banner-ul „Înapoi la școală“, care, să recunoaștem, nu vom folosi în situații de viață reale. Mai jos sunt două metode pe care le putem folosi pentru a elimina blocurile:
Metoda de ștergere este o modalitate bună de ștergere a unui bloc, indiferent de aspectul pe care îl încarcă blocul. Uneori vrem doar ca blocul să dispară, indiferent unde este și să nu se mai întoarcă niciodată!
Pe de altă parte, unsetChild va șterge numai un bloc într-un descriptor specific de aspect. După cum puteți vedea, o voi folosi în interiorul descriptorului de aspect. astfel încât acesta va fi eliminat numai de acolo (din coloana din bara laterală din dreapta). Dacă blocul right.poll este apelat în orice alt aspect, acesta va apărea în continuare (adică nu se șterge).
3. Adăugarea unei modificări a aspectului
Aici avem un exemplu de adăugare a unui bloc structural suplimentar la pagina principală a site-ului. Ne referim la blocul de conținut și folosim eticheta după care specificăm că blocul este afișat după toate blocurile de la sfârșitul blocului de conținut.
4. Adăugarea unui bloc CMS static
În sfârșit, am ajuns la exemplul de a adăuga un bloc CMS static, dar mai întâi trebuie să îl creați pentru ca acest cod să funcționeze.
După ce vă conectați la panoul de administrare, accesați CMS> Static Blocks și adăugați un nou bloc. Rețineți că "identificatorul" este folosit ca referință în codul XML.
Trebuie să introduceți acest identificator în eticheta block_id.
Ce urmează?
În acest articol, am inspectat abia întreaga suprafață a acestei probleme și există multe alte utilizări pentru XML și zeci de alte descriptori de layout disponibili și etichete XML. În următorul articol, vom trece mai departe și vom examina fișierele șablon.