UberGallery er et enkelt PHP-skript som skaper et fint webgalleri ved å generere miniatyrer av de opprinnelige bildene i fly. Du trenger bare å laste opp bilder til en bestemt katalog, og de blir plukket opp for å generere fotogalleriet.
Målet vårt er å lage en modul som bruker UberGallery-skriptet til å generere galleriet, men på en OpenCart-måte. I back-end bør du kunne konfigurere parametere som miniatyrbredde, miniatyrhøyde og lignende. Basert på det vil det opprette en bildegalleri-blokk på forsiden sider.
I dag går vi gjennom back-end-oppsettet der vi skal opprette filene som kreves for å opprette et egendefinert konfigurasjonsskjema i delen bakmodulmodul. Jeg antar at du er kjent med den grunnleggende modulutviklingsprosessen i OpenCart, da vi hopper over det grunnleggende om modulopprettelsestrinn. Her er en fin artikkel som forklarer grunnleggende om OpenCart-modulene hvis du vil utforske den.
Jeg antar at du bruker den nyeste versjonen av OpenCart, så sørg for at du har den slik at du kan følge kodeprøver.
La oss raskt gå gjennom filoppsettet som kreves for back-end.
admin / styreenhet / modul / uber_gallery.php:
Det er en kontrollerfil som gir applikasjonslogikken til den vanlige kontrolleren i OpenCart.admin / language / engelsk / modul / uber_gallery.php:
Det er en språkfil som hjelper til med å sette opp språketiketter.admin / view / mal / modul / uber_gallery.tpl:
Det er en visningsmalfil som inneholder XHTML i konfigurasjonsskjemaet.system / bibliotek / uberGallery:
Det er selve UberGallery-komponenten.Så det er en liste over filene vi skal implementere i dag. Det vil opprette et egendefinert konfigurasjonsskjema for vår UberGallery-modul, slik at du kan konfigurere de forskjellige parameterne fra back-end.
Uten å kaste bort tid, vil jeg straks dykke inn i de nørdige greiene.
Før vi går videre og opprett våre egendefinerte modulfiler, last ned UberGallery fra det offisielle nettstedet og kopier ressurs
katalog på en slik måte at det ser ut som System / Library / uberGallery / ressurser
.
Lag nå en fil system / bibliotek / uberGallery / ressurser / oc.galleryConfig.ini
med følgende innhold.
; Dette er standard UberGallery config-filen. Kopier denne filen til galleryConfig.php; og endre følgende verdier for å tilpasse galleriet ditt. [basic_settings] cache_expiration = [cache_expiration]; Cache-utløpstid i minutter; Angi til -1 for permanent caching enable_pagination = true; Sett til 'true' for å aktivere paginering paginator_threshold = 10; Maksimalt antall sider som skal vises i paginator før avkorting thumbnail_width = [thumbnail_width]; Thumbnail bredde (i piksler) thumbnail_height = [thumbnail_height]; Miniatyrhøyde (i piksler) thumbnail_quality = [thumbnail_quality]; Miniatyrkvalitet fra 1 - 100; Høyere = bedre kvalitet / langsommere tema_navn = uber-responsive; Tema brukes til å style galleriet [advanced_settings] images_per_page = [thumbnail_count]; Bilder som vises per side krever; enable_pagination settes til 'true' images_sort_by = natcasesort; Metode som brukes til å sortere bildet array; Tilgjengelige sorteringsalternativer inkluderer:; asort, arsort, ksort, krsort,; natcasesort, natsort, shuffle reverse_sort = false; Sett til 'true' for å reversere sorteringsrekkefølge enable_debugging = false; Output debug meldinger
Det er en fil som ligner på UberGallery konfigurasjonsfilen galleryConfig.ini
, men med plassholdere. Det vil bli brukt til å lage en faktisk konfigurasjonsfil i fly når admin lagrer konfigurasjonsskjemaet fra baksiden.
Til slutt, i henhold til UberGallery-kravene, må du kopiere system / bibliotek / uberGallery / ressurser / sample.galleryConfig.ini
til system / bibliotek / uberGallery / ressurser / galleryConfig.ini
. Sørg også for at system / bibliotek / uberGallery / ressurser / galleryConfig.ini
og system / bibliotek / uberGallery / ressurser / cache
kan skrives av webserveren.
Deretter fortsetter du og lager en fil admin / styreenhet / modul / uber_gallery.php
med følgende innhold.
last> språk ( '-modulen / uber_gallery'); $ Dette-> last> modell ( 'forlengelse / modul'); $ Dette-> dokument-> setTitle ($ dette-> Språk> får ( 'HEADING_TITLE')); hvis (($ this-> request-> server ['REQUEST_METHOD'] == 'POST') && $ dette-> validere ()) hvis (! isset ($ this-> request-> få ['module_id'] )) $ this-> model_extension_module-> addModule ('uber_gallery', $ this-> request-> post); annet $ this-> model_extension_module-> editModule ($ this-> request-> få ['module_id'], $ this-> request-> post); // oppdater uber config file $ config_file = implode ("\ n", fil (DIR_SYSTEM.'library / uberGallery / resources / oc.galleryConfig.ini ')); $ tokens = array ("[cache_expiration]", "[thumbnail_width]", "[thumbnail_height]", "[thumbnail_quality]", "[thumbnail_count]"); $ replacements = array ($ this-> request-> post ['thumb_caching'], $ this-> request-> post ['thumb_width'], $ this-> request-> post ['thumb_height'], $ this- > forespørsel-> post ['thumb_quality'], $ this-> request-> post ['thumb_count']); $ save_config_file = str_replace ($ tokens, $ erstatninger, $ config_file); $ fp = fopen (DIR_SYSTEM.'library / uberGallery / resources / galleryConfig.ini ',' w '); @fwrite ($ fp, $ save_config_file, strlen ($ save_config_file)); $ this-> session-> data ['success'] = $ this-> language-> get ('text_success'); $ this-> response-> omdirigere ($ this-> url-> link ('forlengelse / modul', 'token ='. $ this-> session-> data ['token'], 'SSL')); $ data ['heading_title'] = $ this-> language-> get ('heading_title'); $ data ['text_edit'] = $ this-> language-> get ('text_edit'); $ data ['text_enabled'] = $ this-> language-> get ('text_enabled'); $ data ['text_disabled'] = $ this-> language-> get ('text_disabled'); $ data ['entry_name'] = $ this-> language-> get ('entry_name'); $ data ['entry_status'] = $ this-> language-> get ('entry_status'); $ data ['entry_thumb_caching'] = $ this-> language-> get ('entry_thumb_caching'); $ data ['entry_thumb_quality'] = $ this-> language-> get ('entry_thumb_quality'); $ data ['entry_thumb_width'] = $ this-> language-> get ('entry_thumb_width'); $ data ['entry_thumb_height'] = $ this-> language-> get ('entry_thumb_height'); $ data ['entry_thumb_count'] = $ this-> language-> get ('entry_thumb_count'); $ data ['entry_enable_module_paging'] = $ this-> language-> get ('entry_enable_module_paging'); $ data ['button_save'] = $ this-> language-> get ('button_save'); $ data ['button_cancel'] = $ this-> language-> get ('button_cancel'); hvis (isset ($ this-> error ['warning'])) $ data ['error_warning'] = $ this-> feil ['advarsel']; andre $ data ['error_warning'] = "; hvis (isset ($ this-> error ['error_name'])) $ data ['error_name'] = $ this-> feil ['error_name']; ellers $ data ['error_name'] = "; hvis (isset ($ this-> error ['error_thumb_width'])) $ data ['error_thumb_width'] = $ this-> feil ['error_thumb_width']; andre $ data ['error_thumb_width'] = "; hvis (isset ($ this-> error ['error_thumb_height'])) $ data ['error_thumb_height'] = $ this-> feil ['error_thumb_height']; ellers $ data ['error_thumb_height'] = "; hvis (isset ($ this-> error ['error_thumb_quality'])) $ data ['error_thumb_quality'] = $ this-> feil ['error_thumb_quality']; andre $ data ['error_thumb_quality'] = "; hvis (isset ($ this-> error ['error_thumb_count'])) $ data ['error_thumb_count'] = $ this-> feil ['error_thumb_count']; ellers $ data ['error_thumb_count'] = "; $ data ['breadcrumbs'] = array (); $ data ['breadcrumbs'] [] = array ('text' => $ this-> språk-> få ('text_home'), 'href' => $ this-> url-> lenke ('felles / dashbord' , 'token ='. $ this-> session-> data ['token'], 'SSL')); $ data ['breadcrumbs'] [] = array ('text' => $ this-> språk-> få ('text_module'), 'href' => $ this-> url-> link , 'token ='. $ this-> session-> data ['token'], 'SSL')); $ data ['breadcrumbs'] [] = array ('text' => $ this-> language-> get ('heading_title' ), 'href' => $ this-> url-> lenke ('module / uber_gallery', 'token ='. $ this-> session-> data ['token'], 'SSL')); andre $ data ['breadcrumbs'] [] = array ('text' => $ dette-> språk-> få ('heading_title'), 'href' => $ this-> url-> link / uber_gallery ',' token = '. $ this-> session-> data [' token '].' & module_id = '. $ this-> request-> få [' module_id '],' SSL ')); hvis (! isset ($ this-> request-> få ['module_id'])) $ data ['action'] = $ this-> url-> link ('module / uber_gallery', 'token ='. $ this-> session-> data ['token'], 'SSL'); andre $ data ['action'] = $ this-> url-> link ('module / uber_gallery', 'token ='. $ this-> session-> data ['token']. '& module_id ='. $ this-> request-> get ['module_id'], 'SSL'); $ data ['cancel'] = $ this-> url-> link ('forlengelse / modul', 'token ='. $ this-> session-> data ['token'], 'SSL'); hvis isset ($ this-> request-> få ['module_id']) && ($ this-> request-> server ['REQUEST_METHOD']! = 'POST')) $ module_info = $ this-> model_extension_module- > getModule ($ dette-> forespørsel-> get [ 'module_id']); hvis (isset ($ this-> request-> legg inn ['navn'])) $ data ['name'] = $ this-> request-> post ['name']; elseif (! tom ($ module_info)) $ data ['name'] = $ module_info ['navn']; andre $ data ['name'] = "; hvis (isset ($ this-> request-> post ['thumb_width'])) $ data ['thumb_width'] = $ this-> request-> post $ data ['thumb_width']; elseif (! tom hvis (isset ($ this-> request-> post ['thumb_height'])) $ data ['thumb_height'] = $ this-> request-> post ['thumb_height']; elseif (! tom ($ module_info)) $ data ['thumb_height'] = $ module_info ['thumb_height']; andre $ data ['thumb_height'] = "; hvis (isset ($ this-> request-> post ['thumb_quality'])) $ data ['thumb_quality'] = $ denne-> forespørsel-> innlegg ['thumb_quality']; elseif (! tomt ($ module_info)) $ data ['thumb_quality'] = $ module_info ['thumb_quality']; else $ data ['thumb_quality'] = "; hvis (isset ($ this-> request-> post ['thumb_count'])) $ data ['thumb_count'] = $ this-> request-> post ['thumb_count']; elseif (! tom ($ module_info)) $ data ['thumb_count'] = $ module_info ['thumb_count']; andre $ data ['thumb_count'] = "; hvis (isset ($ this-> request-> post ['thumb_caching'])) $ data ['thumb_caching'] = $ this-> request-> post ['thumb_caching']; elseif (! tom ($ module_info)) $ data ['thumb_caching'] = $ module_info ['thumb_caching']; else $ data ['thumb_caching'] = "; hvis (isset ($ this-> request-> post ['enable_module_paging'])) $ data ['enable_module_paging'] = $ this-> request-> post ['enable_module_paging']; elseif (! tom ($ module_info)) $ data ['enable_module_paging'] = $ module_info ['enable_module_paging']; andre $ data ['enable_module_paging'] = "; hvis (isset ($ this-> request-> post ['status'])) $ data ['status'] = $ dette-> forespørsel-> innlegg ['status']; elseif (! tomt ($ module_info)) $ data ['status'] = $ module_info ['status']; else $ data ['status'] = "; $ data ['header'] = $ this-> load-> kontroller ('common / header'); $ data ['column_left'] = $ this-> load-> kontroller ('common / column_left'); $ data ['footer'] = $ this-> load-> kontroller ('common / footer'); $ this-> response-> setOutput ($ this-> load-> view ('modul / uber_gallery.tpl', $ data)); beskyttet funksjon validere () if (! $ this-> user-> hasPermission ('modify', 'module / uber_gallery')) $ this-> error ['warning'] = $ this-> language-> ( 'error_permission'); hvis (! $ this-> request-> post ['navn']) $ this-> error ['error_name'] = $ this-> language-> get ('error_name'); hvis (! $ this-> request-> post ['thumb_width']) $ this-> feil ['error_thumb_width'] = $ this-> language-> get ('error_thumb_width'); hvis (! $ this-> request-> post ['thumb_height']) $ this-> feil ['error_thumb_height'] = $ this-> language-> get ('error_thumb_height'); hvis (! $ this-> request-> post ['thumb_quality']) $ this-> feil ['error_thumb_quality'] = $ this-> language-> get ('error_thumb_quality'); hvis (! $ this-> request-> post ['thumb_count']) $ this-> feil ['error_thumb_count'] = $ this-> language-> get ('error_thumb_count'); return! $ this-> feil;
Som vanlig vil du se to standardmetoder i en back-end-kontrollerfil - the index metode, som brukes til å gi standard logikk som omhandler lagring av konfigurasjonsformverdier, og validere metode, som brukes til å validere konfigurasjonsskjemaet.
Som jeg allerede har nevnt i begynnelsen av artikkelen at du bør være kjent med grunnleggende modulutvikling i OpenCart, diskuterer vi koden som er spesifikk for UberGallery-delen.
Annet enn å gjøre de vanlige indeksmetodene, laste inn passende språk og modeller og sette opp variabler for visningsmalfilen, er det et interessant stykke kode i vår indeksmetode. La oss se nærmere på det.
// oppdater uber config fil $ config_file = implode ("\ n", fil (DIR_SYSTEM.'library / uberGallery / resources / oc.galleryConfig.ini ')); $ tokens = array ("[cache_expiration]", "[thumbnail_width]", "[thumbnail_height]", "[thumbnail_quality]", "[thumbnail_count]"); $ replacements = array ($ this-> request-> post ['thumb_caching'], $ this-> request-> post ['thumb_width'], $ this-> request-> post ['thumb_height'], $ this- > forespørsel-> post ['thumb_quality'], $ this-> request-> post ['thumb_count']); $ save_config_file = str_replace ($ tokens, $ erstatninger, $ config_file); $ fp = fopen (DIR_SYSTEM.'library / uberGallery / resources / galleryConfig.ini ',' w '); @fwrite ($ fp, $ save_config_file, strlen ($ save_config_file));
Det vi prøver å oppnå her er at når admin lagrer UberGallery-konfigurasjonsskjemaet i back-end, galleryConfig.ini
bør opprettes på fluen. Husk det oc.galleryConfig.ini
vi opprettet i begynnelsen av denne delen, og du bør nå forstå trikset bak det.
Vi henter innholdet i system / bibliotek / uberGallery / ressurser / oc.galleryConfig.ini
, erstatte plassholdere med faktiske verdier, og til slutt lagre det som en galleryConfig.ini
som overskriver den eksisterende standardfilen.
Fortsett, lag en fil admin / language / engelsk / modul / uber_gallery.php
med følgende innhold.
Ikke noe ekstraordinært - vi erklærer bare språkvariabler i denne filen.
Til slutt lager vi en visningsmalfil som inneholder XHTML for vårt egendefinerte konfigurasjonsskjema. Gå videre og lag en fil
admin / view / mal / modul / uber_gallery.tpl
med følgende innhold."data-toggle =" tooltip "title ="">
- ">
Så, det er det så langt som back-end filoppsettet er opptatt.
Test konfigurasjonsskjemaet
Gå over til bakenden og naviger til Utvidelser> Moduler. Installer vår nyopprettede uberGallery modul og rediger den for å åpne konfigurasjonsskjemaet.
Fyll inn verdiene etter behov, og lagre skjemaet! Selvfølgelig vil det lagre modulinnstillingene i databasen, men i tillegg til det vil det generere en ny
galleryConfig.ini
også! Gå videre og åpnesystem / bibliotek / uberGallery / ressurser / galleryConfig.ini
, og det bør gjenspeile parameterverdiene med feltene for konfigurasjonsformular.Så, vi har nettopp bygget en mekanisme for å generere
galleryConfig.ini
på fluen ved hjelp av et konfigurasjonsskjema! Den vil bli brukt i frontend når vi aktiverer modulen for å vise galleriet.Så det er det for dagens artikkel. Jeg kommer snart tilbake med neste del av denne serien.
Konklusjon
I denne første delen har vi gått gjennom back-end-filoppsettet for UberGallery-modulen. I neste del skal vi undersøke frontendens motpart av den. For spørsmål, bruk kommentarene nedenfor!