Opprett en egendefinert side i OpenCart

Før du begynner, merk at vi planlegger å hoppe rett inn i artikkelen. 

I den forbindelse antar vi at du har en arbeidskopi av OpenCart installert og klar til å komme på jobb.

Grunnleggende arbeidsflyt

OpenCart er bygget ved hjelp av det populære programmerings MVC-mønsteret. Det er også ett element til dette mønsteret heter "L" - en språkdel - så kalles det MVC-L mønster i OpenCart. Jeg vil ikke gå inn i detaljene i MVC-mønsteret, da det er et veldig populært og kjent designmønster, og vi har dekket det i detalj i andre opplæringsprogrammer. 

Når det er sagt, må vi fortsatt se på arbeidsflyten ved hjelp av dette mønsteret.

For det første fungerer kontrolleren som et inngangspunkt for en side der du definerer mesteparten av programlogikken.Modellen omhandler backend-databasen, og visningen er ansvarlig for å forberede innholdet som skal gjengis til sluttbrukeren. I forbindelse med OpenCart må du i hvert fall implementere en kontroller og en visning for å opprette en ny tilpasset side.

Sette opp kontrolleren

Først, la oss prøve å forstå rollen som kontrolleren i OpenCart. Kontrolleren er det første elementet som vil bli utført når du ber om hvilken side som helst. Først og fremst er det ansvarlig for å sette opp variablene som senere vil bli brukt i visningen til displayet. Selv om det i generisk kontroller er det mange ting som skjer:

  • Du kan laste språkfiler slik at du kan bruke språkvariabler for statisk tekstvisning.
  • Du kan laste modellfiler slik at du kan bruke metoder som er definert i disse modellene for å hente data fra backenddatabasen.
  • Du kan definere malfilen som skal brukes av visningen.
  • Du kan konfigurere de tilpassede variablene ved å tilordne dem innhold som skal brukes i malfilen.
  • Du kan deklarere barnens maler som du vil vise som en del av hovedmalen. Det enkleste eksempelet på dette er topptekst og bunntekstmaler som du vil vise i hovedmalen.
  • Til slutt kan du også angi verdier for ting som dokumenttittel, meta beskrivelse osv.

Nok teori, ikke sant? La oss se hvordan vår tilpassede kontroller ser ut. Gå videre og opprett en ny katalog custompage under katalog / kontrolleren. Opprett en ny fil mycustompage.php under katalog / styreenhet / custompage. Lim inn følgende kode i den nylig opprettede kontrollerfilen "mycustompage.php".

dokument-> setTitle ("Min egendefinerte side"); / / definer malfil hvis > få ('config_template'). '/Template/custompage/mycustompage.tpl';  annet $ this-> template = 'default / template / custompage / mycustompage.tpl';  // definer barnemaler $ this-> children = array ('common / column_left', 'common / column_right', 'common / content_top', 'common / content_bottom', 'common / footer', 'common / header') ; // sett data til variabelen $ this-> data ['my_custom_text'] = "Dette er min tilpassede side."; // ring "Vis" for å gjengi utdata $ this-> response-> setOutput ($ this-> render ()); ?>

La oss forstå navnekonvensjonen til kontrollerklassen. Kontrollerklassenavnet er konstruert ved å følge katalogstrukturen og kamelkonkonvensjonen. Legg merke til at klassenavnet begynner med "Controller" søkeord etterfulgt av katalognavnet ("Custompage") der klassefilen ligger. Og til slutt er navnet på klassefilen ("Mycustompage") vedlagt på slutten. La oss nå dissekere hver seksjon i detalj.

Først har vi satt verdien av html titteltaggen for vår egendefinerte side.

$ this-> document-> setTitle ("Min egendefinerte side");

I neste avsnitt har vi definert malfilnavnet som vil bli brukt av "Vis" -elementet. En viktig ting å merke seg her er at vi først har sjekket at hvis malfilen er tilgjengelig i det egendefinerte temasettet fra back-end, hvis det er tilgjengelig i det egendefinerte temaet, bruker vi det ellers vil vi bruke malfilen i "standard" -temaet. 

Dette er konseptet av mal overordnet.

hvis (file_exists (DIR_TEMPLATE. $ this-> config-> få ('config_template'). '/template/custompage/mycustompage.tpl')) $ this-> template = $ this-> config-> get ('config_template '). '/Template/custompage/mycustompage.tpl';  annet $ this-> template = 'default / template / custompage / mycustompage.tpl'; 

Vi har også definert barnens maler ved hjelp av matrisen. Som et eksempel, common / header kart til malfilen som ligger på Katalog / view / tema / default / mal / felles / header.tpl og utfører det samme. Resultatet av det vil bli tilordnet $ header variabel som du kan bruke i mal filen for å vise nettsted overskriften.

$ this-> children = array ('common / column_left', 'common / column_right', 'common / content_top', 'common / content_bottom', 'common / footer', 'common / header');

Videre har vi demonstrert hvordan du kan konfigurere de tilpassede variablene som vil være tilgjengelige i malfilen. Selv om vi har brukt en enkel statisk tekst her, kan du tildele et mer fornuftig innhold, for eksempel si et produktarrangement hentet fra
database.

$ this-> data ['my_custom_text'] = "Dette er min tilpassede side.";

Endelig er det viktigste å ringe visning slik at den faktiske gjengivelsesprosessen kan begynne.

$ Dette-> response-> setOutput ($ dette-> render ());

Så det er glimt av kontrollerens arbeidsflyt.

I fronten, får du tilgang til denne kontrolleren ved hjelp av spørringsstrengen variabelen  rute = custompage / mycustompage. Det er viktig å merke seg at dette er det hvis du definerer kontrolleringsmetoden med noe annet navn bortsett fra index du må også spesifisere det i nettadressen. 

Hvis du for eksempel har opprettet en metode som heter tilpasset, Ditt forside-URL-format skal se ut rute = custompage / mycustompage / custom.

La oss forstå hvordan OpenCart karthvilken som helst URL til den spesifikke kontrollerfilen. Formatet på rutevariabelen er Katalogen / filename / metode. Katalog kart til katalogen under katalog / kontrolleren. filnavn kart til navnet på kontrollerfilen under katalog / styreenhet / katalog. Og til slutt vil det se etter kontrolleren metoden som heter Metode hvis det er angitt i ruten, ellers vil det kalle standard index metode.

Forbered utsikten

I denne delen lager vi visningsmalfilen som vi tidligere definerte i indeksen for kontrollerindeks. Gå videre og opprett en ny katalog custompage under Katalog / view / tema / default / mal. Opprett en ny fil mycustompage.tpl under Katalog / view / tema / default / mal / custompage. Lim inn følgende innhold i den nyopprettede malfilen mycustompage.tpl.

 

Så dette er vår hovedlayoutmalfil som er ansvarlig for visning av innholdet på vår egendefinerte side. I denne malfilen har vi nettopp brukt variablene vi har satt opp i kontrolleren index metode. 

Den eneste egendefinerte variabelen i denne malfilen er $ my_custom_text, resten av variablene inneholder innhold relatert til barnmaler som header, footer etc. Variablene $ column_left, $ column_right, $ content_top og $ content_bottom brukes til å vise modulene som er tilordnet vår tilpassede side fra baksiden.

Hvis du vil tilordne moduler til vår tilpassede side, må du først opprette en ny layoutoppføring fra baksiden. Etter at du har lagt til et nytt layout, vil du legge til en rute som custompage / mycustompage oppføring for den oppsettet. Nå kan du også tilordne hvilken som helst modul til vår tilpassede side.

Du har nettopp bygget en komplett tilpasset side i OpenCart! Du kan sjekke det samme på URL: http://www.yoursiteurl.com/index.php?route=custompage/mycustompage.

Konklusjon

I denne veiledningen har vi lært hvordan du lager vår egen tilpassede side i OpenCart. Hvis du er kjent med MVC-mønsteret, bør arbeidsflyten for å opprette en ny tilpasset side, være kjent.

Gå videre og undersøk noen få kjernefiler for å bli kjent med koden. Jeg vil at du skal utvide vårt eksempel ved å laste inn modell- og språkfiler i kontrolleren og se hvordan ting fungerer! Venter på tilbakemelding, spørsmål og kommentarer!