Sandėliavimas modulio konfigūravimas
Įvadas
Trečia dalis šios serijos, mes peržiūrėsime, kaip mes galime laikyti konfigūracijos duomenis mūsų modulių Prestashop duomenų bazės, ir kaip mes galime galimybę vartotojams sąveikauti su šiais duomenimis kontrolės modulis elgesį. Mes taip pat trumpai paliesti, kaip mes galime sukurti išėjimo iš mūsų modulį regimąsias atsiliepimus apie konfigūracijos pakeitimų.
Valdymo vartotojo nustatymus
Mes ketiname kreiptis Šiame modulyje "TutorialSecond", kad mes vėl reikia sukurti naują modulį katalogo ir failo klasės - kuris bus pavadintas "tutorialsecond" ir "tutorialsecond.php" atitinkamai. Klasės failas (tutorialsecond.php) turėtų būti šie:
<? Php
klasė Tutorialsecond apima modulis
(
privataus $ _html ='';
funkcija __construct ()
(
$ This-> name = 'tutorialsecond ";
parent:: __construct ();
$ This-> skirtukas = 'eCartService.net Mokymas ";
$ This-> version = "0 .1.0";
$ This-> DisplayName = $ this-> l ("Antroji Susipažinkite modulis");
$ This-> description = $ this-> l ("Mūsų antrasis modulis -" Hello world "redux ');
)
public function getContent ()
(
)
privataus funkcija _displayForm ()
(
)
)
/ / Pabaiga: tutorialsecond.php Jūs pastebėsite, kad mes įdiegėme dviejų naujų valstybių funkcijas:: getContent () ir:: _displayForm (). Jei norite įkelti failą į savo serverį ir įdiegti šį modulį, šiame etape jūs turėtumėte pamatyti nauja galimybe modulių sąrašas ekranas "Antroji Susipažinkite modulis". Yra dabar bus "> Konfigūruoti" yra nuoroda į modulio į šalį, nors paspaudus jis tiesiog grąžinti tuščias back office puslapyje. Nuo: getContent () narys funkcija yra atsakinga už tai buvimas, kiek ji nustato tarp mūsų modulis ir galinis biuras sąsaja.
Be šių dviejų naujų funkcijų mes taip pat pridėjome $ _html privataus narys kintamasis, kurį mes naudosime vėliau šiame straipsnyje, susijusius su reikiamos produkciją rodyti back office.
Saugo ir atstato konfigūraciją duomenys
Prestashop numato "konfigūracija" klase, kuri teikia kelios valstybės funkcijas valdyti konfigūracijos duomenis, o dvi pagrindines funkcijas, kurios bus dažniausiai naudojamas yra:
Konfigūracija:: updateValue ($ key, $ vertės, $ html = false);
Konfigūracija:: get ($ key, $ id_lang = NULL);
Konfigūracija:: updateValue () funkcijos leidžia mums laikyti konfigūraciją duomenų bazės (pasirinktinai keletą kalbų ir šiuo atveju $ vertes parametras bus masyvas) ir konfigūracija:: get () funkcija leidžia mums gauti sąrankos duomenis už pasirinktas ar laikyti įprasta kalba. Mes ignoruoti pokyčius, kurie numatytosios vertės dabar, bet bus prisimenami $ html parametro patalpos:: updateValue () "funkciją kitame straipsnyje, kai pažvelgiame į formos patvirtinimo objektas.
Įgyvendinimo Konfigūruoti ekrano
Mūsų šaltinio failo sukūrėme privačių valstybės funkcijos _displayForm (). Tai nėra privaloma, nes visos sąsajos kodas gali būti įdėtas į getContent () narys funkcija, tačiau ji yra labai rekomenduojama, kad jūs atskirą šios būtų lengviau kodas priežiūros sumetimais iš. Mes sukursime paprastą formą per šią funkciją iš kurių mes galime surinkti parduotuvė savininkas sąnaudos.
privataus funkcija _displayForm ()
(
$ This-> _html .= "
<form action="'.$_SERVER['REQUEST_URI'].'" method="post">
<label> ". $ this-> l (" Pranešimas apie pasaulio').'</ label>
<div class="margin-form">
<input type="text" name="our_message" />
</ Div>
<input type="submit" name="submit" value="'.$this-> l ("Update').'" class =" button "/>
</ Form> ';
) Galite matyti, kad: _displayForm () funkcija tiesiog prideda standartas HTML formos kodas mūsų $ _html narys kintamasis, su forma Paskirties yra $ _SERVER ['REQUEST_URI']. Prestashop's back office architektūros maršrutas tai mūsų:: getContent class member funkcija mums elgtis, jei forma yra skelbiama.
Mes šalia reikia įdėti kodą į mūsų:: getContent () funkciją faktiškai rodyti formą ir rankenos forma pateikti.
public function getContent ()
(
if (Įrankiai:: isSubmit ('submit'))
(
Konfigūracija:: updateValue ($ this-> vardas. "_message" Įrankiai:: GETVALUE ("our_message '));
)
$ This-> _displayForm ();
return $ this-> _html;
) :: GetContent () funkcija pirmą naudojasi kitu Prestashop klasė "Tools" ir patikrinti, ar mes tvarkymas po veiksmų iš formos, ar ši funkcija yra vadinama ir kitaip, ty dėl "Configure" nuorodą spustelėkite modulį sąrašas - parametras, pavadinimas mes davė mūsų mygtuką "atnaujinti" formą.
Jei funkcija yra vadinama tiesiogiai back office (tokiu atveju Įrankiai:: isSubmit ('submit') grąžins false), tada mes vadiname forma teikimo funkciją mes sukūrėme punkte ir grįžti į rezultatus, užfiksuota $ this- > _html kintamąjį į Atgal biuro kalbomis.
Jei funkcija yra vadinama mūsų forma rezultatas yra paskelbtas, tada mes galime laikyti mūsų konfigūracijos parametras su vertės duomenų bazės įrašyti į mūsų formą. Mes vėl naudoti įrankiai klasė gauti formos kintamojo vertė naudojant raginimą Įrankiai:: GETVALUE ("our_message"), kur "our_message" yra įvesties lauko pavadinimą mūsų forma.
Galite matyti, kad turiu papildoma mūsų modulio pavadinimą į konfigūracijos elemento pavadinimo pradžioje - tai yra užtikrinti, kad konfigūracijos raktas yra unikali, nes už šiuos klavišus vardų yra bendra visai parduotuvėje.
Kai mes buvome konfigūracijos duomenų formą ir vėl rodomas, paruošta daugiau sąnaudų, jei reikia.
Modulio rezultatas puslapyje
Dabar turime gaudyti įvedimo būdą iš parduotuvės savininkas ir taupymo jos duomenų bazėje, todėl šalia akivaizdus žingsnis būtų ką nors padaryti su juo pvz. jį rodyti puslapyje. Iš serijos kalbėjomės apie 1 dalyje "kabliukų" dėl modulių pridėti funkcionalumą. Siekiant pasinaudoti šia turime pasakyti, kad mūsų PrestaShop modulis norėtų kabliuką į Centrinis biuras ir mes darome tai, naudojant tokią funkciją (kaip apibrėžta modulis pagrindinės klasės):
$ This-> registerHook ($ hook_name);
$ Hook_name parametras nurodo vieną iš skirtingų vietų, kad Prestashop pagrindinių leidžia modulius įtraukti gamybos apimtims ir / ar duomenų apdorojimo, tačiau šiuo metu mes naudojame vieną ypač - "leftColumn", kuri leidžia mums pridėti turinį kairiajame stulpelyje visų puslapių. Siekiant inicializuoti kablys turime įtraukti šį naują nepaisyti mūsų pačių klasė:
public function įdiegti ()
(
parent:: įdiegti ();
if (! $ this-> registerHook (leftColumn '))
return false;
)
Tai rodo, Prestashop vykdyti mūsų modulis kabliu, kai jis tampa turinio kairiojoje skiltyje visuose puslapiuose. Mes šalia reikia įtraukti funkciją į rankenos kabliukas callback. Konvencija turėtų pavadinimas funkciją Kablys prieš pavadinimo "Kablys":
public function hookLeftColumn ()
(
grįžti "<div class="block"> <h4>". Konfigūracija:: get ($ this-> vardas. "_message). "</ H4> </ div>";
)
Mūsų paprastas pavyzdys mes tik vyniojimo mūsų konfigūracijos parametras kai standartinis html žymėjimo, kad ji būtų teisingai parodyti mūsų svetainėje.
Jei jau įdiegtas modulis jums dabar turėtų pašalinti, tada vėl užtikrinti, kad kablys yra teisingai užregistruoti Prestashop pagrindas. Dabar galite įvesti į konfigūracijos ekranas modulis - pavyzdžiui, "Hello World", ir ji bus rodomi kaip antraštė kairiajame stulpelyje jūsų parduotuvėje reikšmė lauke. Visą kodas Antrajame pavyzdyje dabar turėtų atrodyti taip:
<? Php
klasė Tutorialsecond apima modulis
(
privataus $ _html ='';
funkcija __construct ()
(
$ This-> name = 'tutorialsecond ";
parent:: __construct ();
$ This-> skirtukas = 'eCartService.net Mokymas ";
$ This-> version = "0 .1.0";
$ This-> DisplayName = $ this-> l ("Antroji Susipažinkite modulis");
$ This-> description = $ this-> l ("Mūsų antrasis modulis -" Hello world "redux ');
)
public function įdiegti ()
(
parent:: įdiegti ();
if (! $ this-> registerHook (leftColumn '))
return false;
)
public function getContent ()
(
if (Įrankiai:: isSubmit ('submit'))
(
Konfigūracija:: updateValue ($ this-> vardas. "_message" Įrankiai:: GETVALUE ("our_message '));
)
$ This-> _displayForm ();
return $ this-> _html;
)
privataus funkcija _displayForm ()
(
$ This-> _html .= "
<form action="'.$_SERVER['REQUEST_URI'].'" method="post">
<label> ". $ this-> l (" Pranešimas apie pasaulio').'</ label>
<div class="margin-form">
<input type="text" name="our_message" />
</ Div>
<input type="submit" name="submit" value="'.$this-> l ("Update').'" class =" button "/>
</ Form> ';
)
public function hookLeftColumn ()
(
grįžti "<div class="block"> <h4>". Konfigūracija:: get ($ this-> vardas. "_message). "</ H4> </ div>";
)
)
/ / Pabaiga: tutorialsecond.php Santrauka
Šiame straipsnyje mes išplėtė mūsų pirmasis modulis apima pagrindinę konfigūraciją ir naudojamas kablys funkcija, kad būtų rodomas išėjimo iš mūsų modulis kairiajame stulpelyje mūsų puslapiuose. Kitame šio ciklo dalis aptarsime pagerinti konfigūracijos įrenginio į kažką, kad galėtų būti naudojami realių modulio įgyvendinimą. Tai apims patvirtinti naudotojo įvesties formos, iš anksto užpildant formą srityse atitinkamai pagal dabartinę konfigūraciją ir rodyti modulis klaidos ir įspėjimai Back Office ekranuose.