Magento er en utrolig kraftig e-handelsplattform. I disse miniseriene lærer vi hvordan du kommer i gang med plattformen, lærer terminologiene, etablerer en butikk og alle relaterte aspekter av den, og lærer deg endelig å tilpasse den slik at den blir vår helt egen.
I denne femte delen skal vi bygge en av hovedvisninger i butikken vår - produktinformasjonssiden. Spent? La oss komme i gang!
I den siste delen lagde vi rammen for temaet ved å bygge de repeterende delene av temaet og i hovedsak definere temaets generelle layout.
Vi tok også et praktisk blikk på hvordan temaer i Magento fungerer ved å gå gjennom hvordan utformingen er konstruert, hvordan blokkene fungerer og hvordan alle de forskjellige stykkene av puslespillet passer sammen.
I dag lager vi den individuelle produktvisningssiden. På samme måte som tidligere er kildedataene, både forenden og bakenden, inkludert. Du kan bruke den til å se hvordan siden ser ut, men utenom det, bør temaet sees ødelagt siden du vet at vi ikke har rørt resten av visningene ennå. Så til vi bygger resten, prøv å ikke gå ut av vår sandkasse.
Vårt mål for denne spesifikke siden er relativt enkel. Vi ønsker en no-nonsense side som bare gjør det viktigst. Dermed har jeg skrevet en kort liste over elementer som jeg tror det trenger:
Det er det. Jeg vil holde det så enkelt som mulig og dermed valgt å ikke over gjøre det. Når du har lært de generelle prinsippene, er du velkommen til å legge til så mange whizbang-funksjoner som mulig.
Siden må i utgangspunktet se slik ut:
Vi ser først på HTML for innholdsdelen alene. Jeg antar at du er ganske flytende i HTML og CSS, så jeg hopper over til de ganske viktige delene.
Tilgjengelighet På lagerPris $ 29.00Legg i handlekurvPhotoshop til HTML
Raskt Overblikk
produktbeskrivelse
Først opp, legg merke til at jeg har pakket produktbildet med en div for å gjøre det enklere å legge til funksjoner i fremtiden. Anta at du vil legge til et raskt bildetekst til det viste bildet i fremtiden, på denne måten vil vi legge til dette mye raskere.
Vi har et annet div-element som holder tilgjengeligheten og prisinformasjonen sammen med Legg i handlekurv knapp. Vi vil spruce den opp med litt CSS3 på litt.
Resten av HTML er veldig grei. Tittelen ligger i en h1-seksjon mens de enkelte seksjonsoverskriftene tar opp h2. Den raske oversikten er nestet i et avsnitt mens hele oversikten tar opp en div.
Vi kan gå videre til stylingdelen nå.
Trinn 2 - CSS
/ * Produktside * / # hovedproduktbilde margin: 0 20px 10px 0; polstring: 10px; flyte: venstre; grense: 1px solid # E1E1E1; bakgrunn: # F3F3F3; # produktdetaljer bredde: 180px; polstring: 10px; flyte: høyre; grense: 1px solid # E1E1E1; bakgrunn: # F3F3F3; margin: 0 0 0 20px; # produkt tilgjengelighet span.available, # produkt-pris span color: # 7db000; flyte: høyre; . knapp margin: 10px auto; skjerm: blokk; bredde: 140px; polstring: 5px 10px; tekst-align: center; tekst-dekorasjon: ingen; farge: # 555; grense: 1px solid #ccc; skriftstørrelse: 18px; bakgrunn: #ddd; border-radius: 12px; -webkit-grense-radius: 12px; -moz-grense-radius: 12px; boksskygge: 1px 1px 2px rgba (0,0,0, .5); -webkit-boks-skygge: 1px 1px 2px rgba (0,0,0, .5); -moz-boks-skygge: 1px 1px 2px rgba (0,0,0, .5); tekstskygge: #fff 0px 1px 1px; bakgrunn: -webkit-gradient (lineær, venstre topp, venstre bunn, fra (#eeeeee), til (#cccccc)); bakgrunn: -moz-lineær-gradient (topp, #eeeeee, #cccccc); . knapp: hover bakgrunn: # 014464; bakgrunn: -webkit-gradient (lineær, venstre topp, venstre bunn, fra (#cccccc) til (# 999999)); bakgrunn: -moz-lineær-gradient (topp, #cccccc, # 999999); farge: # 000; . knapp: aktiv -moz-boks-skygge: 0 2px 6px svart; -webkit-boks-skygge: 0 2px 6px svart;Ikke noe fancy her. Veldig grunnleggende CSS for å plassere elementene på plass.
Jeg har også brukt litt av CSS3 for å få knappene litt bedre utseende.
Trinn 3 - Opprett vår catalog.xml-fil
Som nevnt i den tidligere delen, får hver modul sin egen XML-fil for å diktere hvilke elementer som skal inkluderes og den generelle utformingen av siden. Siden vi bygger i dag er avhengig av en fil som heter catalog.xml å definere innhold og struktur.
Denne filen skal være til stede i oppsett mappe så la oss lage en XML-fil og gi den navnet katalog.
Den komplette filen for i dag ser ut som det. Jeg skal forklare hver bit del av del nedenfor.
side / 1column.phtml css / product.css Se bort fra de første XML- og layoutversjonsdeklarasjonene. De har ingen betydning for oss nå.
Først lar vi systemet vite at vi har til hensikt å endre produktvisningen del av systemet. Dette er fordi catalog.xml huser oppsettet for en rekke andre synspunkter, og det er derfor viktig at vi spesifiserer hvilken visning vi har til hensikt å endre.
side / 1column.phtml Nå forteller vi Magento å laste opp 1column.phtml filen som hovedmestermal for denne visningen. Dette skyldes at hver enkelt visning kan bruke en forhåndsdefinert struktur. For eksempel kan hjemmesiden din bruke en svært kompleks tilpasset struktur, produktsiden din en dobbel kolonne og søkesiden din i en enkelt kolonneoppsett.
Hvis ingenting er angitt, vil det laste opp standardmalen nevnt i page.xml. Siden vi bruker det for alt annet, er denne delen overflødig, men når du modifiserer denne malen for personlig bruk, er redigering av filnavnet mye enklere enn å legge biter av XML til layoutfilen.
css / product.css Og nå kommer vi over en av de niftere delene av Magento. Ja, vi kan kaste alle våre visningsspesifikke CSS til en gigantisk CSS-fil, men vi er ikke cavemen, er vi? Kryss av flere HTTP-forespørsler til side, denne metoden lar oss effektivisere vårt CSS bedre.
Først får vi en referanse til hovedenheten av filen, og deretter legger vi inn vårt sidespesifikt innhold i det. Her legger jeg inn en fil som heter product.css som inneholder alle sidespesifikke CSS vi så på ovenfor.
Merk at du ikke er begrenset til CSS. Inkludert JS og andre eiendeler er også mulig.
Vi ber nå Magento å bruke en bestemt mal for innholdsdelen av siden
Denne blokken definerer alle de enkelte blokkene inne i hovedinnholdsblokken. I hovedsak bruker vi individuelle maler for å vise produktets bilde, oversikt og beskrivelse, tilgjengelighet / pris og til slutt funksjonen legg til i handlekurven.
Og med dette, vår base catalog.xml filen er fullført.
Trinn 4 - Opprett vår hovedmal
Ok, nå som vi har angitt vårt oppsett, kan vi fortsette å opprette katalog / produkt / view.phtml fil som vi angav som hovedmal for innholdsdelen i XML tidligere.
Denne filen er litt forskjellig fra skjelettmalen vi opprettet i den siste delen fordi vi vil legge til noen små ting direkte i stedet for å gå gjennom malbanen for å unngå oppblåsthet sammen med en smidgen av API-anrop for å hjelpe oss.
helper ( 'katalogen / output'); $ _product = $ this-> getProduct (); ?>