UberGallery este un script PHP simplu care creează o galerie de imagini frumoasă prin generarea de miniaturi ale imaginilor originale în zbor. Trebuie doar să încărcați imagini într-un anumit director și ei vor fi preluați pentru a genera galeria foto.
Scopul nostru este de a face un modul care utilizează scriptul UberGallery pentru a genera galeria, dar într-un mod OpenCart. În back-end, ar trebui să puteți configura parametrii precum lățimea miniaturilor, înălțimea miniaturilor și altele asemenea. Pe baza acestui fapt, va crea un bloc de galerie de imagini în paginile de front-end.
Astăzi, vom trece prin setările de back-end în care vom crea fișierele necesare pentru a crea un formular de configurare personalizat în partea modulului back-end. Presupun că sunteți familiarizat cu procesul de dezvoltare a modulelor de bază în OpenCart, deoarece vom trece peste elementele de bază ale etapelor de creare a modulelor. Iată un articol frumos care explică elementele de bază ale modulelor OpenCart dacă doriți să o explorați.
Presupun că utilizați cea mai recentă versiune de OpenCart, asigurați-vă că aveți acest lucru pentru a putea urma mostrele de cod.
Să trecem repede la configurarea fișierelor necesare pentru back-end.
admin / controler / modul / uber_gallery.php:
Este un fișier de controler care oferă logica aplicației controlerului obișnuit în OpenCart.admin / limba / engleză / modul / uber_gallery.php:
Este un fișier lingvistic care ajută la configurarea etichetelor de limbă.admin / vizualizare / șablon / modul / uber_gallery.tpl:
Este un fișier de șablon de vizualizare care conține XHTML din formularul de configurare.Sistem / bibliotecă / uberGallery:
Este componenta UberGallery.Așa că este o listă a fișierelor pe care le vom implementa astăzi. Acesta va crea un formular personalizat de configurare pentru modulul nostru UberGallery, astfel încât să puteți configura diferiți parametri din back-end.
Fără a pierde vreun moment, mă voi îndrepta imediat în chestia asta.
Înainte de a continua și de a crea fișierele noastre personalizate, descărcați UberGallery de pe site-ul oficial și copiați-l resursă
director în așa fel încât să pară Sistem / bibliotecă / uberGallery / resurse
.
Acum, creați un fișier Sistem / bibliotecă / uberGallery / resurse / oc.galleryConfig.ini
cu următorul conținut.
; Acesta este fișierul implicit de configurare UberGallery. Copiați acest fișier în galleryConfig.php; și modificați următoarele valori pentru a personaliza galeria dvs. [basic_settings] cache_expiration = [cache_expiration]; Timpul de expirare a cache-ului în minute; Setați la -1 pentru cache-ul permanent enable_pagination = true; Setați la "true" pentru a activa paginarea paginator_threshold = 10; Numărul maxim de pagini de afișat; în paginator înainte de trunchierea thumbnail_width = [thumbnail_width]; Lățimea miniaturilor (în pixeli) thumbnail_height = [thumbnail_height]; Minima înălțime (în pixeli) thumbnail_quality = [thumbnail_quality]; Calitate miniatură de la 1 la 100; Mai mare = o calitate mai bună / mai lentă theme_name = uber-responsive; Tema folosită pentru a modela galeria [advanced_settings] images_per_page = [thumbnail_count]; Imaginile afișate pe pagină necesită; enable_pagination este setat la 'true' images_sort_by = natcasesort; Metoda folosită pentru sortarea matricei de imagini; Opțiunile de sortare disponibile includ:; asort, arsort, ksort, krsort,; natcasesort, natsort, shuffle reverse_sort = false; Setați la 'true' pentru a comuta ordinea de sortare enable_debugging = false; Ieșire mesaje de depanare
Este un fișier similar fișierului de configurare UberGallery galleryConfig.ini
, dar cu substituenți. Acesta va fi folosit pentru a crea un fișier de configurare real în zbor, atunci când admin salvează formularul de configurare din back-end.
În cele din urmă, conform cerințelor UberGallery, trebuie să copiați Sistem / bibliotecă / uberGallery / resurse / sample.galleryConfig.ini
la Sistem / bibliotecă / uberGallery / resurse / galleryConfig.ini
. De asemenea, asigurați-vă că Sistem / bibliotecă / uberGallery / resurse / galleryConfig.ini
și Sistem / bibliotecă / uberGallery / resurse / cache
sunt scrise de serverul web.
Apoi, continuați și creați un fișier admin / controler / modul / uber_gallery.php
cu următorul conținut.
a sarcinii> limbaj ( 'modul / uber_gallery'); $ This-> a sarcinii> Model ( 'extensie / modulului'); $ This-> pe documente> SetTitle ($ this-> language-> get ( 'Senzori si')); dacă ($ this-> request-> server ['REQUEST_METHOD'] == 'POST') && $ this-> validate ()) if (! isset ($ this-> request-> get ['module_id'] )) $ this-> model_extension_module-> addModule ('acest mesaj', $ this-> request-> post); altceva $ this-> model_extension_module-> editaModule ($ this-> request-> get ['module_id'], $ this-> request-> post); // actualizare uber config fișier $ config_file = implode ("\ n", fișier (DIR_SYSTEM.'library / uberGallery / resources / oc.galleryConfig.ini ')); $ tokens = array ("[cache_expiration]", "[thumbnail_width]", "[thumbnail_height]", "[thumbnail_quality]", "[thumbnail_count]"); $ this-> request-> post ['thumb_highth'], $ this-> request-> post ['thumb_height'], $ this- > request-> post ['thumb_quality'], $ this-> request-> post ['thumb_count']); $ save_config_file = str_replace ($ tokens, $ înlocuitori, $ config_file); $ fp = fopen (DIR_SYSTEM.'library / uberGallery / resurse / galerieConfig.ini ',' w '); @fwrite ($ fp, $ save_config_file, strlen ($ save_config_file)); $ this-> session-> data ['succes'] = $ this-> language-> get ('text_success'); $ this-> response-> redirect ($ this-> url-> link ('extensie / modul', 'token ='. $ this-> session-> data ['token'], 'SSL')); $ data ['title_title'] = $ this-> language-> get ('title_title'); $ data ['text_edit'] = $ această-> limbă-> obține ('text_edit'); $ data ['text_enabled'] = $ acest-> limbă-> obține ('text_enabled'); $ data ['text_disabled'] = $ acest-> limbă-> primi ('text_disabled'); $ date ['input_name'] = $ acest-> limbă-> obține ('nume_reținere'); $ date ['entry_status'] = $ acest-> limbă-> primi ('entry_status'); $ data ['entry_thumb_caching'] = $ acest-> limbă-> get ('entry_thumb_caching'); date $ ['entry_thumb_quality'] = $ this-> language-> get ('entry_thumb_quality'); $ data ['entry_thumb_width'] = $ acest-> limbă-> get ('entry_thumb_width'); $ date ['entry_thumb_height'] = $ acest-> limbă-> get ('entry_thumb_height'); $ data ['entry_thumb_count'] = $ acest-> limbă-> obține ('entry_thumb_count'); $ data ['entry_enable_module_paging'] = $ acest-> limbă-> obține ('entry_enable_module_paging'); $ date ['button_save'] = $ acest-> limbă-> primi ('button_save'); $ date ['button_cancel'] = $ acest-> limbă-> primi ('button_cancel'); dacă isset ($ this-> error ['warning'])) $ data ['error_warning'] = $ aceasta-> eroare ['warning']; altfel $ data ['error_warning'] = "; dacă (isset ($ this-> error ['error_name'])) $ data ['error_name'] = $ this-> eroare ['error_name']; altceva $ data ['error_name'] = "; dacă (isset ($ this-> error ['error_thumb_width'])) $ data ['error_thumb_width'] = $ this-> error ['error_thumb_width']; altfel $ data ['error_thumb_width'] = "; dacă isset ($ this-> error ['error_thumb_height'])) $ data ['error_thumb_height'] = $ this-> error ['error_thumb_height']; altceva $ data ['error_thumb_height'] = "; dacă (isset ($ this-> error ['error_thumb_quality'])) $ data ['error_thumb_quality'] = $ this-> error ['error_thumb_quality']; altceva $ data ['error_thumb_quality'] = "; dacă (isset ($ this-> error ['error_thumb_count'])) $ data ['error_thumb_count'] = $ this-> error ['error_thumb_count']; altceva $ data ['error_thumb_count'] = "; date $ ['breadcrumbs'] = array (); $ data ['breadcrumbs'] [] = array ('text' => $ this-> language-> get ('text_home'), 'href' , 'token ='. $ this-> session-> data ['token'], 'SSL')); $ data ['breadcrumbs'] [] = array ('text' => $ this-> language-> get ('text_module'), 'href' , 'token ='. $ this-> session-> data ['token'], 'SSL')); dacă isset ($ this-> request-> get ['module_id'])) $ data ['breadcrumbs'] [] = ), 'href' => $ this-> url-> link ('module / uber_gallery', 'token ='. $ this-> session-> data ['token'], 'SSL')); altceva $ data ['breadcrumbs'] [] = array ('text' => $ this-> language-> get ('title_title'), 'href' / uber_gallery ',' token = '. $ this-> session-> data [' token '].' & modul_id = '. $ this-> request-> get [' module_id ']; dacă ! isset ($ this-> request-> get ['module_id'])) $ data ['action'] = $ this-> url-> link ('module / uber_gallery', 'token ='. $ this-> session-> data ['token'], 'SSL'); altceva $ data ['action'] = $ this-> url-> link ('module / uber_gallery', 'token ='. $ this-> session-> data ['token']. $ this-> request-> get ['module_id'], 'SSL'); $ data ['cancel'] = $ this-> url-> link ('extensie / modul', 'token ='. $ this-> session-> data ['token'], 'SSL'); dacă isset ($ this-> request-> get ['module_id']) && ($ this-> request-> server ['REQUEST_METHOD']! = 'POST')) $ module_info = $ this-> model_extension_module- > getModule ($ this-> request-> get [ 'module_id']); dacă isset ($ this-> request-> post ['name'])) $ date ['name'] = $ this-> request-> post ['name']; elseif (! empty ($ module_info)) $ date ['nume'] = $ modul_info ['nume']; altceva $ data ['name'] = "; dacă isset ($ this-> request-> post ['thumb_width'])) $ data ['thumb_width'] = $ this-> request-> [$ data ['thumb_width'] = altfel (! empty ($ module_info)) $ data ['thumb_width'] = $ modul_info ['thumb_width']; dacă (isset ($ this-> request-> post ['thumb_height'])) $ data ['thumb_height'] = $ această-> cerere-> post ['thumb_height']; elseif (! empty ($ module_info)) $ data ['thumb_height'] = $ modul_info ['thumb_height']; altceva $ data ['thumb_height'] = "; dacă isset ($ this-> request-> post ['thumb_quality'])) $ data ['thumb_quality'] = $ this-> request-> [$ data ['thumb_quality'] = else $ data ['thumb_quality'] = '; dacă (isset ($ this-> request-> post ['thumb_count'])) $ data ['thumb_count'] = $ această-> cerere-> post ['thumb_count']; elseif (! empty ($ modul_info)) $ data ['thumb_count'] = $ modul_info ['thumb_count']; altceva $ data ['thumb_count'] = "; dacă isset ($ this-> request-> post ['thumb_caching'])) $ data ['thumb_caching'] = $ this-> request-> [$ data ['thumb_caching'] = "altceva") $ data ['thumb_caching'] = '; dacă isset ($ this-> request-> post ['enable_module_paging'])) $ data ['enable_module_paging'] = $ această-> cerere-> post ['enable_module_paging']; elseif (! empty ($ module_info)) $ data ['enable_module_paging'] = $ modul_info ['enable_module_paging']; altceva $ data ['enable_module_paging'] = "; dacă isset ($ this-> request-> post ['status'])) $ data ['status'] = $ this-> request-> ['status']; elseif (! empty ($ module_info)) $ data ['status'] = $ modul_info ['status']; $ data ['header'] = $ this-> load-> controler ('common / header'); $ data ['column_left'] = $ acest-> încărcător-> controler ('common / column_left'); $ data ['footer'] = $ acest-> încărcător-> controler ("common / footer"); $ this-> response-> setOutput ($ this-> load-> view ('module / uber_gallery.tpl', $ date)); funcția protejată validate () if (! $ this-> user-> hasPermission ('modify', 'module / uber_gallery')) $ this-> error ['warning'] = $ this-> ( 'error_permission'); dacă ! $ this-> request-> post ['nume']) $ this-> error ['error_name'] = $ this-> language-> get ('error_name'); dacă (! $ this-> request-> post ['thumb_width']) $ this-> eroare ['error_thumb_width'] = $ this-> language-> get ('error_thumb_width'); dacă ! $ this-> request-> post ['thumb_height']) $ this-> eroare ['error_thumb_height'] = $ this-> language-> get ('error_thumb_height'); dacă ! $ this-> request-> post ['thumb_quality']) $ this-> eroare ['error_thumb_quality'] = $ this-> language-> get ('error_thumb_quality'); dacă ! $ this-> request-> post ['thumb_count']) $ this-> eroare ['error_thumb_count'] = $ this-> language-> get ('error_thumb_count'); return! $ this-> error;
Ca de obicei, veți vedea două metode standard în orice fișier de controler back-end - index , care este folosit pentru a furniza o logică standard care se ocupă cu stocarea valorilor formei de configurare și a valida , care este folosit pentru a valida formularul de configurare.
După cum am menționat deja la începutul articolului că trebuie să cunoașteți dezvoltarea modulelor de bază în OpenCart, vom discuta codul specific pentru partea UberGallery.
În afară de a face chestiile obișnuite ale metodei indexului, încărcarea limbilor și modelelor corespunzătoare și setarea variabilelor pentru fișierul șablon de vizualizare, există o bucată interesantă de cod în metoda indexului nostru. Să ne uităm îndeaproape.
// actualizare uber config fișier $ config_file = implode ("\ n", fișier (DIR_SYSTEM.'library / uberGallery / resources / oc.galleryConfig.ini ')); $ tokens = array ("[cache_expiration]", "[thumbnail_width]", "[thumbnail_height]", "[thumbnail_quality]", "[thumbnail_count]"); $ this-> request-> post ['thumb_highth'], $ this-> request-> post ['thumb_height'], $ this- > request-> post ['thumb_quality'], $ this-> request-> post ['thumb_count']); $ save_config_file = str_replace ($ tokens, $ înlocuitori, $ config_file); $ fp = fopen (DIR_SYSTEM.'library / uberGallery / resurse / galerieConfig.ini ',' w '); @fwrite ($ fp, $ save_config_file, strlen ($ save_config_file));
Ceea ce încercăm să realizăm aici este faptul că, de fiecare dată când admin salvează formularul de configurare UberGallery în back-end, galleryConfig.ini
ar trebui să fie create în zbor. Amintiți-vă că oc.galleryConfig.ini
am creat la începutul acestei secțiuni și acum ar trebui să înțelegeți trucul din spatele acestei situații.
Aducem conținutul Sistem / bibliotecă / uberGallery / resurse / oc.galleryConfig.ini
, înlocuind înlocuitorii cu valori reale și salvând în final galleryConfig.ini
care suprascrie fișierul implicit existent.
Deplasați-vă înainte, creați un fișier admin / limba / engleză / modul / uber_gallery.php
cu următorul conținut.
Nimic extraordinar - declarăm doar variabilele de limbă în acest fișier.
În cele din urmă, vom crea un fișier de șablon de vizualizare care conține XHTML pentru formularul nostru de configurare personalizat. Continuați și creați un fișier
admin / vizualizare / șablon / modul / uber_gallery.tpl
cu următorul conținut.
Deci, asta e în ceea ce privește configurarea fișierelor back-end.
Testați formularul de configurare
Treceți la spate și navigați la Extensii> Module. Instalați noul nostru creat uberGallery modul și editați-l pentru a deschide formularul de configurare.
Completați valorile cerute și salvați formularul! Desigur, va salva setările modulului din baza de date, dar în plus va genera o nouă
galleryConfig.ini
de asemenea! Du-te și deschide-teSistem / bibliotecă / uberGallery / resurse / galleryConfig.ini
, și ar trebui să reflecte valorile parametrilor cu câmpurile formularului de configurare.Deci, tocmai am construit un mecanism de generare
galleryConfig.ini
în zbor folosind un formular de configurare! Acesta va fi utilizat în partea frontală când permitem modulului să afișeze galeria.Deci, asta este pentru articolul de astăzi. Voi reveni curând cu următoarea parte a acestei serii.
Concluzie
În această primă parte, am trecut prin configurarea fișierelor de back-end pentru modulul UberGallery. În următoarea parte, vom examina omologul de front-end al acestuia. Pentru orice întrebări, utilizați feedul de comentarii de mai jos!