Magento is een verbluffend krachtig e-commerceplatform. In deze miniserie leren we hoe je aan de slag kunt met het platform, de terminologieën leert kennen, een winkel en alle gerelateerde aspecten ervan kunt opzetten en uiteindelijk leren hoe je het kunt aanpassen om het ons eigen te maken..
In dit vijfde deel bouwen we een van de belangrijkste weergaven van onze winkel - de productinformatiepagina. Opgewonden? Laten we beginnen!
In het laatste deel hebben we het kader voor het thema vastgelegd door de herhalende delen van het thema te bouwen en in wezen de algemene lay-out van het thema te definiëren.
We hebben ook een praktische blik geworpen op hoe thema's in Magento werken door door te nemen hoe de lay-out is opgebouwd, hoe de blokken werken en hoe alle verschillende stukjes van de puzzel in elkaar passen.
Vandaag zullen we de individuele productweergavepagina maken. Net als voorheen zijn de bronbestanden, zowel het front-end als het back-end, inbegrepen. Je kunt het gebruiken om te zien hoe de pagina er uitziet maar daarbuiten, het thema zou er kapot uit moeten zien, weet je, we hebben de rest van de views nog niet aangeraakt. Dus tot we de rest hebben opgebouwd probeer je niet uit onze sandbox te stappen.
Ons doel voor deze specifieke pagina is relatief eenvoudig. We willen een no-nonsense pagina die alleen de essentiële dingen doet. Daarom heb ik een korte lijst met elementen opgesteld die ik denk dat het nodig heeft:
Dat is het. Ik wil het zo simpel mogelijk houden en daarom heb ik ervoor gekozen om het niet te doen. Als je eenmaal de algemene principes hebt geleerd, voeg dan zoveel mogelijk whizbang-functies toe.
De pagina moet er in feite zo uitzien:
We zullen eerst alleen naar de HTML voor het contentgedeelte kijken. Ik ga ervan uit dat je redelijk vloeiend bent in HTML en CSS, dus ik ga door naar de vrij belangrijke delen.
Beschikbaarheid Op voorraadPrijs $ 29.00Voeg toe aan winkelmandjePhotoshop naar HTML
Snel overzicht
Productomschrijving
Merk eerst op dat ik de productafbeelding heb gewikkeld met een div om het gemakkelijker te maken om in de toekomst functies toe te voegen. Stel dat u in de toekomst een snel bijschrift wilt toevoegen aan de weergegeven afbeelding, op deze manier kunnen we dit veel sneller toevoegen.
We hebben een ander div-element dat de informatie over beschikbaarheid en prijsbepaling bijhoudt, samen met de Voeg toe aan winkelmandje knop. We zullen het in een beetje verfraaien met een beetje CSS3.
De rest van de HTML is heel eenvoudig. De titel bevindt zich in een h1-sectie, terwijl de afzonderlijke secties van de secties h2 innemen. Het snelle overzicht is genest in een alinea terwijl het volledige overzicht een div opneemt.
We kunnen nu doorgaan naar het stylinggedeelte.
Stap 2 - De CSS
/ * Productpagina * / # main-product-image margin: 0 20px 10px 0; opvulling: 10px; zweven: links; rand: 1px vast # E1E1E1; achtergrond: # F3F3F3; # productgegevens width: 180px; opvulling: 10px; zweven: rechts; rand: 1px vast # E1E1E1; achtergrond: # F3F3F3; marge: 0 0 0 20px; # product-beschikbaarheid span.available, # product-prijsbereik color: # 7db000; zweven: rechts; .button margin: 10px auto; weergave: blok; breedte: 140 px; opvulling: 5px 10px; text-align: center; tekstdecoratie: geen; kleur: # 555; border: 1px solid #ccc; lettergrootte: 18px; achtergrond: #ddd; grensradius: 12px; -webkit-border-radius: 12px; -moz-border-radius: 12px; box-shadow: 1px 1px 2px rgba (0,0,0, .5); -webkit-box-shadow: 1px 1px 2px rgba (0,0,0, .5); -moz-box-shadow: 1px 1px 2px rgba (0,0,0, .5); text-shadow: #fff 0px 1px 1px; achtergrond: -webkit-gradiënt (lineair, links bovenaan, links onderaan, van (#eeeeee), tot (#cccccc)); achtergrond: -moz-linear-gradient (top, #eeeeee, #cccccc); .button: hover background: # 014464; achtergrond: -webkit-gradiënt (lineair, linkerbovenkant, linkeronderkant, van (#cccccc), tot (# 999999)); achtergrond: -moz-linear-gradient (top, #cccccc, # 999999); kleur: # 000; .knop: actief -moz-box-shadow: 0 2px 6px zwart; -webkit-box-shadow: 0 2px 6px zwart;Niets bijzonders hier. Zeer eenvoudige CSS om de elementen in positie te plaatsen.
Ik heb ook een beetje CSS3 gebruikt om de knoppen er iets beter uit te laten zien.
Stap 3 - Ons bestand catalog.xml maken
Zoals ik in het vorige deel al zei, krijgt elke module een eigen XML-bestand om te dicteren welke items moeten worden opgenomen en de algemene lay-out van de pagina. De pagina die we vandaag bouwen, vertrouwt op een bestand met de naam catalog.xml om de inhoud en structuur ervan te definiëren.
Dit bestand zou aanwezig moeten zijn in de lay-out map, dus laten we een XML-bestand maken en een naam geven catalogus.
Het volledige bestand voor vandaag ziet er zo uit. Ik zal elk bitgedeelte uitleggen per onderdeel hieronder.
page / 1column.phtml css / product.css Negeer de initiële XML en lay-outversieaanduidingen. Ze zijn nu niet van belang voor ons.
Ten eerste laten we het systeem weten dat we van plan zijn om het productzichtgedeelte van het systeem te wijzigen. Dit is zo omdat catalog.xml bevat de lay-out voor een aantal andere weergaven en daarom is het noodzakelijk dat we aangeven welke weergave we willen wijzigen.
page / 1column.phtml Nu vertellen we Magento om de. Te laden 1column.phtml bestand als de hoofdsjabloon voor deze weergave. Dit komt omdat elke individuele weergave elke vooraf gedefinieerde structuur kan gebruiken. Uw startpagina kan bijvoorbeeld een zeer complexe aangepaste structuur gebruiken, uw productpagina een dubbele kolom en uw zoekpagina één kolomlay-out.
Als er niets is opgegeven, wordt de standaardsjabloon geladen die wordt vermeld in page.xml. Aangezien we het voor al het andere gebruiken, is dit onderdeel overbodig, maar als u deze sjabloon voor persoonlijk gebruik aanpast, is het bewerken van de bestandsnaam een stuk eenvoudiger dan het toevoegen van stukjes XML aan het lay-outbestand.
css / product.css En nu komen we een van de niftere delen van Magento tegen. Ja, we kunnen al onze visie-specifieke CSS in één gigantisch CSS-bestand plaatsen, maar we zijn geen holbewoners, toch? Oproepen van meerdere HTTP-verzoeken opzij, deze methode laat ons onze CSS beter stroomlijnen.
Eerst krijgen we een verwijzing naar het hoofdgedeelte van het bestand en voegen vervolgens onze paginaspecifieke inhoud erin toe. Hier plaats ik een bestand met de naam product.css die alle paginaspecifieke CSS bevat waarnaar we hierboven hebben gekeken.
Merk op dat je niet beperkt bent tot CSS. Inclusief JS en andere activa is ook mogelijk.
We vragen Magento nu om een specifieke sjabloon te gebruiken voor het inhoudsgedeelte van de pagina
Dit blok definieert alle individuele blokken binnen het hoofdinhoudblok. We gebruiken hoofdzakelijk individuele sjablonen voor het weergeven van de afbeelding, het overzicht en de beschrijving, de beschikbaarheid / prijs en tot slot de functionaliteit voor toevoegen aan winkelwagentje.
En daarmee onze basis catalog.xml bestand is voltooid.
Stap 4 - Onze hoofdsjabloon maken
Okay, nu we onze lay-out hebben gespecificeerd, kunnen we verder gaan met het maken van de catalogus / product / view.phtml bestand dat we eerder hebben opgegeven als de hoofdsjabloon voor de inhoudssectie in de XML.
Dit bestand wijkt enigszins af van de skeletsjabloon die we in het laatste deel hebben gemaakt, omdat we een aantal kleine dingen direct zullen toevoegen in plaats van het sjabloonpad te doorlopen om bloat en een hele reeks API-aanroepen te voorkomen om ons te helpen.
helper ( 'catalogus / output'); $ _product = $ this-> getProduct (); ?>