• Twitter

    • Skelbimai

    "Facebook" konversijų stebėjimo Prestashop modulis

    "Facebook" konversijų stebėjimo Prestashop modulis.

    Reikia stebėti savo investicijų grąžą iš "Facebook" reklamos? Su šia paprasta naudoti Prestashop modulyje galite. Šis modulis leidžia automatiškai įterpti konversijos stebėjimo kodą, kai klientas nuperka, kad būtų galima įvertinti, ar jūsų skelbimai veikia.

    Galite atsisiųsti "Facebook" konversijų stebėjimo Prestashop modulis naudojant žemiau esančią nuorodą:
    "Facebook" konversijų stebėjimo Prestashop modulis

    5 Geg 2010 01:41 ne - Komentarai

    iPhone 3G rišimo savo iPad

    Ar tai įmanoma?

    Čia yra kainų punktais:

    Ar bus priežastis gauti WiFi + 3G jei rišti yra įmanoma?

    27 sausis 2010 į 14:17 - Komentarai

    Bicio GoRide iPhone Bike Mount

    GoRide iPhone Bike Mount skirtas montuoti į savo dviračius, rankenos, ir jis yra skirtas suteikti jums prieigą prie jūsų iPhone, o jūs jojimo savo dviratį neaukojant saugos ir patogumo.

    Bicio-GoRide-iPhone-Bike-Mount

    Bicio GoRide iPhone Bike Mount

    Bicio GoRide iPhone Bike Mount

    Jis ateina su apsaugos byloje, kurioje galite laikyti savo iPhone visą laiką, jei norite, tada laiko tarpsnių tiesiai į dviračių atveju kalno ir esate pasiruošę eiti į savo dviratį, be į daug pastangų.

    Jei norite, kad vienas, Bicio GoRide iPhone Bike Mount yra dabar $ 29,99 nuo Bicio .

    9 gruodis 2009 ne 15:11 - Komentarai

    eHow - Kaip Remontas stiklu iPhone

    ds_f3f0ca5c-8a00-4c3c-a2ee-cfcc8c69d329
    eHow Indėlis Rašytojas

    Jei savo "iPhone 3G ekranas krekingo, pirmiausia patikrinkite, Apple pamatyti, jei jūsų garantija apima remonto arba pakeitimo. Šis remontas gali būti sunku ir turėtų būti bandoma tik tada, kai už stiklo vaizdas ekrane matomas.

    Su atsargumo priemonių remonto patys turėtų kainuoti apie $ 45. Šis metodu Lee Waterman gavo keletą teigiamų atsiliepimų.

    Sunkumo lygis: Vidutiniškai Sunkiai

    Instrukcijos

    Ką Jums reikės:

      Atsižvelgiant į iPhone, išskyrus

    1. Žingsnis 1

      Išjunkite iPhone. Išimkite SIM kortelę įrašant sąvaržėlę į mažą skylę viršuje. Pašalinti du varžtus apačioje. Tiesiog siurbtuką ant stiklo. Ištraukite iki atskirų stiklo.

    2. 2 žingsnis

      Trys kabeliai atliks dviejų dalių kartu. Pašalinti pirmųjų dviejų naudojant popieriaus klipas. Trečiasis po pagal pirmuosius du kabeliai skirtuką. Paskutinis kabelis turi būti ištrauktas švelniai.

    3. Žingsnis 3

      Ekrane panaikinti šeši varžtai: dvi: viena vertus, vienas iš kurių už stiklo paviršiaus apačioje, vienas aiškiai matomas iš kitos pusės ir du po juosta toje laivo pusėje.

    4. 4 žingsnis

      Norėdami pašalinti LCD, naudoti popieriaus klipas apie šalis kablys apatiniame kampe, kad yra ratas, ir ištraukti.


      Šalinama skaldytų stiklo

    5. Žingsnis 1

      Pincetu, pašalinti juoda juosta už kiekvieną iš keturių kraštų stiklo.

    6. 2 žingsnis

      Naudokite plaukų džiovintuvas aplink stiklo kraštai apie 5 minutes ir šilumos klijais.

    7. Žingsnis 3

      Smalsauti iš plastiko savininkas stiklo. Būtinai pašalinkite visus skaldytų stiklo.


      Diegimas stiklo

    8. Žingsnis 1

      Įdėkite lipnios juostelės viršuje ir apačioje plastiko turėtojas.

    9. 2 žingsnis

      Dėl naujos stiklo ekranas, pašalinti visas filmas iš juodos apačios ir viršaus, paliekant apsauginės plėvelės ant stiklo todėl jokių pirštų atspaudai bus patekti į vidų. Yra tikriausiai bus dviejų dalių filmas apie black dalys.

    10. Žingsnis 3

      Line up stiklas su savininko įsitikinkite, kabelis eina po leidimo turėtojui. Kai dviejų dalių Match Up, paspauskite žemyn klijuoti stiklo lipnios juostelės.

    11. 4 žingsnis

      Pašalinti iš stiklo plėvelė.


      Vėl

    12. Žingsnis 1

      Įdėkite LCD atgal su visais už sraigtai suderinti skyles turėtojas. Spauda jį į vietą. Pakeisti visi varžtai.

    13. 2 žingsnis

      Spaudos visus į vietą kabeliai atvirkštine eilės tvarka, jų pašalinimo.

    14. Žingsnis 3

      Suderinti dviejų dalių - į ekraną, o vienetas - ir paspauskite juos kartu su skylės sustatyta.

    15. 4 žingsnis

      Pakeisti sraigtai ir jūsų SIM kortelėje.



    Patarimai ir įspėjimai

    Ištekliai

    27 lapkritis 2009 į 19:38 - Komentarai

    Prestashop Rankiniu būdu keitimas vežimėliai užsakymus

    Prestashop Cart2Order modulis

    Aš neseniai turėjo reikia konvertuoti klientų vežimėliai į faktines pavedimų ir kadangi nebuvo lengva padaryti kad su pagrindiniu įdiegti kodą ir modulio nebuvo, aš savo.

    Iš esmės, kas tai paprastas modulis veikia, yra paversti klientas krepšelį į užsakymą. Štai kaip tai veikia, pavyzdžiui:

    Jei turite, ty pavyzdžiui, "Google Checkout" ir PayPal mokėjimo moduliai įdiegti, tada turėsite galimybę paversti kliento krepšelį, naudojant vieną iš šių įdiegta mokėjimo modulius.

    Galite atsisiųsti Cart2Order modulis naudojant žemiau esančią nuorodą:
    Cart2Order Prestashop modulis

    Forumas diskusijos žemiau esančią nuorodą:
    http://bit.ly/oTglW

    Lap 16, 2009 at 01:27 - Comments

    Apsauga dizaino kopijavimo svetainės šablonus

    Aš naršyti prestashop forume ir baigėsi dėl pokalbio dėl su žmonių vagystė svetainės dizainas parsisiųsti šablonų failus iš temos katalogą klausimu. Ji mane kad tai tikriausiai kažką, kad tie iš jūsų, kurie naudoja kitų sistemų šablonų su svetainių taip pat gali susidurti, todėl thought I'd post tirpalo čia.

    Problema ta, kad nors php failus negali būti vertinama tiesiai į savo naršyklę, kito šaltinio failus galima pvz., failai su plėtiniu. Tpl

    Pavyzdžiui atsižvelgti į šiuos bylos, kuri turi pagal nutylėjimą leidimo ieškoti:

    Neapsaugoti šablono failą

    Geriausias būdas apsaugoti jūsų svetainė pakeisti šias bylas teises 600. Tai padaryti jas prieinamas tik savo kodą į serverio ir pateikti kiekvienas smalsus Pakanka pabandyti pažvelgti į juos su 403 (draudžiami) klaidą. Tas pats pasakytina apie php failus (nors tai neturėtų rodyti šaltinį, jei jūsų serverio konfigūracijos neveikia).

    Susipažinkite su šia leidimus failą ieškoti nustatyta 600:

    Saugomos šablono failą

    Labai paprasta.

    13 lapkritis 2009 į 16:45 - Komentarai

    Pritaikyti Prestashop modulis šablonai

    Please don't taisyti tų originalų!

    Aš atėjau per šį Little gem seniai apie Prestashop forumas, ir maniau aš atkreipti dėmesį į jį tikisi, kad tai padės kas nors kur nors.

    Aš ne vienas skundžiasi, bet mano naminių hate yra žmonių, kurie redaguoti originalų failus savo parduotuvėse, kai nereikia į. Jis Bugged man Zen Cart, kai žmonės laimingai kartą "Classic" ir "pagal nutylėjimą" failų šablono, tada neaišku, kodėl buvo sunku atnaujinti ... ir štai ir štai žmonės pradėjo daryti tą patį su Prestashop numatytąją temą taip pat. Aaaargh! Kaip sunku tai padaryti kopijuoti, pervardyti jį ir taisyti, kad versija, o ne?

    Kai mano Pūrists instinktus nepavyko Tačiau kelio atgal dėl blogų senų dienų, buvo, kai ji atėjo į. Tpl failus, kurie buvo saugomi modulis katalogų patys - ten atrodo nėra jokio pasirinkimo, o tik juos redaguoti, jei norite tinkinti produkcija Jūsų parduotuvės - ar yra ten!

    Atsakymas yra stebėtinai paprasta, ir padės jums linkteli galvą dėkingas malonumu ... viskas, ko jums reikia padaryti, tai sukurti modules / Rodyklės į savo individualizuotos temos katalogą (gerai esate nesiruošia dirbti pagal nutylėjimą tema katalogas dabar tu), kopija ir originalas. tpl nuo modulio kataloge į jį ir taisyti ne į jūsų širdis geidžia.

    Pavyzdžiui, galite šablono failą iš blockadvertising modulis (blockadvertising.tpl) ir pagal / themes / MojFajnyTemat / modules / blockadvertising kopiją. Dabar pakeisti pradinio, kad atrodė kaip kopija:

    
    
    (L S = 'Skelbimai' mod = 'blockadvertising ")

    į

    
    
    (Ls = 'fantastinis svetainę Prestashop goodies "mod =' blockadvertising")

    Grynas džiaugsmas! Nors pastabus pastebėsite, kad jei redaguojate ($ image) kintamasis ir vieta statinis maršrutas grafinis savo vietoje, tada jūs turite pakeisti modulio kataloge vaizdą .... gerai tu negali turėti viską spėju.

    13 lapkritis 2009 į 16:13 - Komentarai

    Rašymas savo Prestashop modulis - 5 dalis

    Baigiamuosius darbus

    Įvadas

    Baigiamajame dalis mūsų pagrindinio modulio raštu samouczku serijos, mes pažvelgti į galutinį priemonių, kad pertvarkytų mūsų Tutorialthird modulis klasės į bazę šabloną, kad mes galime naudoti ateityje pradėti naujų modulių raštu. Užuot pakartotinai sena kodą dar kartą mes tik aptarti pokyčius, bet aš pridėjo nuorodą į šios dalies pabaigoje, kad būtų galima patraukti galutinis kodas, ir naudoti jį kaip savo paties projektais. Mes ketiname kreiptis Šiame modulyje "Skeleton" - pavadinimas, kad mes pakeisti mūsų pačių, kai kalbama apie gamybos naujus modulius grindžiama.

    Styling konfigūraciją

    Pirmiesiems pokyčiams, mes ketiname padaryti yra grynai kosmetinis, tačiau tai yra svarbi, nes norime suteikti nuosekli sąsaja vartotojams. Mūsų formos kodas atrodė:

    	 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> ';
    	 )
    

    Šių konfigūracija ekranus konvencija wrap parametrus fieldset, ir mes taip pat reikia įtraukti gražus draugiškas (neverčiamas) legenda užbaigti su ikona. Mūsų kodas atrodys:

    	 privataus funkcija _displayForm ()
    	 (
    		 $ This-> _html .= "
    		 <form action="'.$_SERVER['REQUEST_URI'].'" method="post">
    
    			 <fieldset>
    				 <Legend> <img src="../img/admin/cog.gif" alt="" class="middle" /> ". $ this-> l (" Nustatymai').'</ legenda>
    
    				 <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 "/>
    
    			 </ Fieldset>
    		 </ Form> ';
    	 )
    

    Mūsų galutinis kosmetikos kaita pridėti antraštė mūsų parametrus viršų ekrane tik tuo atveju, vartotojas turi Pamiršai kur jie! Mes darome tai, pridedant šią eilutę į getContent () funkcija pradžia:

     $ This-> _html .= "<h2>". $ This-> DisplayName. "</ H2>";
    

    Pasirengimo užpildant konfigūracijos formos laukus

    Kitas trūkstamas elementas iš mūsų originalus tutorial dizainas dabartinės parametrus modulis konfigūraciją kalbomis, ir net tada, kai forma grįžta iš atnaujinimą vertės laukai tušti, todėl reikia nustatyti šios glitch per. Yra dvi galimybės, kad mes turime dirbti:

    1. Pradinis ekranas forma turėtų rodyti dabartinę konfigūraciją (jei yra)
    2. Po formos atnaujinti turėtume parodyti įvestų duomenų vartotojas

    Mes galime naudoti konfigūracija:: get () funkcija gauti dabartinius nustatymus iš duomenų bazės, ir įrankiai:: GETVALUE () gauti lauko turinys. Įrankiai:: GETVALUE () funkcija priima antrą parametrą, kuris yra naudingas šiuo požiūriu, nes tai numato "default" naudoti turėtų srityje yra tuščias. Dabar galime nustatyti, kad "vertė" atributas mūsų indėlis tegus tinkamai naudojant šias dvi funkcijas, kad mūsų galutinis formos pirkimo kodas bus:

     <input type="text" name="our_message" value="'.Tools::getValue('our_message', Configuration::get($this-> pavadinimas. "_message')).'"/>
    

    Kita naudinga pakeisti, kad, kai kalbama apie keletą sričių konfigūracijos yra perkelti duomenų bazę atnaujinti kodą į savo paties privatus funkcija. Tam mes pakeis eilutė:

    
     if (! sizeof ($ this-> _postErrors))
    	 (
    		 Konfigūracija:: updateValue ($ this-> vardas. "_message" Įrankiai:: GETVALUE ("our_message), true);
    		 $ This-> _html .= "<div class="conf confirm">". $ This-> l ("Nustatymai atnaujinta').'</ div>";
    	 )
    

    taip:

     if (! sizeof ($ this-> _postErrors))
    	 $ This-> _postProcess ();
    

    Ir įtraukti naujas privatus valstybės funkcija mūsų klasės dirbti faktiškai naujienas vienoje, lengvai identifikuojama vieta:

    	 privataus funkcija _postProcess ()
    	 (
    		 Konfigūracija:: updateValue ($ this-> vardas. "_message" Įrankiai:: GETVALUE ("our_message), true);
    
    		 $ This-> _html .= "<div class="conf confirm">". $ This-> l ("Nustatymai atnaujinta').'</ div>";
    	 )
    

    Elgesys su kitais, rūšys

    Baigiamajame parsisiųsti skeleto modulis Aš taip pat pridūrė pavyzdžių kitų rūšių laukus, kurie veikia kaip naudingos nuorodos sukurti savo modulį konfigūraciją. Tai apima varneles, radijo mygtukais, textarea ir išskleidžiamajame sąrašus. Viskas, ką jums reikia padaryti, tai pridėti / pervardyti laukus, pridėti patvirtinimas turi _postValidation () "funkciją ir pakeisti atnaujinti kodą _postProcess () funkciją tinkamai.

    Dėl privalomojo parametrus taip pat turėtumėte išbandyti savo buvimo įdiegti funkciją ir imtis atitinkamų veiksmų, kad jūsų modulis daro klaidų Front Office pvz., nustatant atitinkamus nutylėjimą naudojant konfigūracijos:: updateValue () funkciją. Arba tai gali būti atliekama modulis konstruktorius, nors ji yra daugiau tinkamas atlikti šią per install ().

    Įrašyta keletą rodymo vietą kabliai

    Mūsų Tutorialthird modulis galėtų būti rodomi tik turinio kairiajame stulpelyje, nes tai buvo vienintelė kabliu mes įgyvendinamos. Laimei, tai labai lengva įgyvendinti "Transplantacijos modulio" BackOffice funkcionalumo mūsų kodas. Į paprasčiausias mes tiesiog naudoti tą pačią produkciją visose vietose, tačiau, jei reikia visų šių papildomų kabliukų gali gaminti skirtingus rezultatus.

    Gaminti tos pačios produkcijos visų populiariausių vietų, mes tik reikia įgyvendinti papildomas kablys funkcijas mūsų modulis ir paskambinti originalus kablys kodą generuoti išėjimo. Atkreipkite dėmesį, kad mes tik faktiškai skambinti registerHook () numatytąjį viena įdiegti () narys funkcija, ir tegul Back Office patikima kita registracija.

    	 funkcija hookRightColumn ($ params)
    	 (
    		 return $ this-> hookLeftColumn ($ params);
    	 )
    
    	 funkcija hookTop ($ params)
    	 (
    		 return $ this-> hookLeftColumn ($ params);
    	 )
    
    	 funkcija hookHome ($ params)
    	 (
    		 return $ this-> hookLeftColumn ($ params);
    	 )
    
    	 funkcija hookFooter ($ params)
    	 (
    		 return $ this-> hookLeftColumn ($ params);
    	 )
    

    Santrauka

    Per šį straipsnių ciklą Jūs turite išmokti pagrindinius modulio sistema veikia Prestashop ir gebėti kodas modulių, kurie pristato produkciją į skirtingų pateikimo srityse Front Office. Jūs taip pat turėsite gerą kodas sistemą grįsti savo modulių. Galbūt jūs pastebėjote, kad nė vienu momentu mes faktiškai naudojamas Smarty ar jos šabloną failus į mūsų modulio sukūrimas - tai sąmoningas, kaip jie gali būti vertinami kaip atskiras subjektas nuo modulio pati.

    Smarty yra labai lanksti, bet pasirinkimo jį naudoti, priklauso nuo daugelio veiksnių, ir dėl neefektyvumo ji yra geriausia, kad būtų išvengta jo naudojimą, jei apskritai įmanoma. Vėliau straipsnių išnagrinės, kaip ir kada naudoti smarty, siekiant pagerinti jūsų modulių funkcionalumas, nors, kaip ji yra pagrindinė dalis Prestashop architektūra.

    Galite atsisiųsti visą skeletas modulio kodas naudodami žemiau esančią nuorodą:

    Skeleton v0.1.0

    13 lapkritis 2009 į 15:49 - Komentarai

    Rašymas savo Prestashop modulis - 4 dalis

    Forma įteisinimas ir saugumo

    Įvadas

    Nors yra pakankamai funkcinės ką jis daro, modulis sukūrėme 2 dalyje ar šio mums tam tikrus klausimus reikėtų atsižvelgti į įgyvendinimo "realiame pasaulyje" moduliai pratęsti Prestashop. Visų pirma naudotojo įvesties mes pagauti mūsų forma buvo parašyta tiesiogiai konfigūracija įrašas be jokių tikrinimo siekiant nustatyti, ar jis pagrįstas, nei matėme atsižvelgti į duomenų rūšį, įrašomi.

    Šiuo samouczku mes pažvelgti į bendras klausimas formos įvedimo kontrolės ir saugumo, tiek galinis biuras ir Front Office formos ir naudotojo įvesties taip pat ieško pagerinti mūsų kodas ir funkcionaliai ir estetiškai.

    Konfigūracijos klasės peržiūrėti

    3 dalyje buvo padaryta žala trumpai papildomas parametras, kuris gali būti perduotas patalpos:: updateValue () klasės metodą. Jei žinoma funkcija tokia forma:

      updateValue ($ key, $ vertės, $ html = false); 

    3 dalyje mes ignoruojami $ html parametrus ir leisti veikti naudoti numatytąją vertę "false". Šiame darbe mes iš tiesų netyčia pridėjo pirmojo elemento saugumo ir patikimumo mūsų kodas. Kai yra nustatytas į "false" updateValue () metodas faktiškai pasirengimo procesus vertė turi būti parašytas naudojant šį kodą ($ string, yra pirkimo vertė perduota) funkcija:

      $ String = strip_tags (nl2br2 ($ string)); 

    Galite tai patikrinti, įvesdami tam tikras HTML į konfigūracijos ekranas modulis sukūrėme dalies 3 iš. Jūs turite pamatyti, kad HTML žymos Jūsų pirkimo pašalinami. Mes galime pakeisti TutorialSecond modulis, kad būtų galima įvesti į HTML formą, keičiant šaltinio 29 eilutė failą:

      Konfigūracija:: updateValue ($ this-> vardas. "_message" Įrankiai:: GETVALUE ("our_message ', true)); 

    Tai rodo, kad pagrindinis principas, kad mums reikia samdyti visą savo kodą, kad jis yra saugus ir veikia nuspėjamai. Laimei Prestashop suteikia mums šiek tiek įrankių, kad mes galime naudoti savo kodą, kad jis taptų saugus ir patikimas.

    Patvirtinimas

    Prestashop suteikia mums klasė vadinama patvirtinti, kad mes galime naudoti siekiant nustatyti, ar naudotojo įvesties mes priimame galioja, ar ne. Valstybių funkcijų sąrašas yra gana didelė, bet verta atkūrimo kai kurie iš jų čia Kad būtų aiškiau, - yra pilnas sąrašas klausimų turėtumėte pasikonsultuoti su klasės / Validate.php failą savo Prestashop paskirstymas.

     isEmail ($ email);
     isFloat ($ float);
     isUnsignedFloat ($ float);
     isCleanHtml ($ html);
     isDate ($ data);
     isBool ($ bool);
     isPhoneNumber ($ phoneNumber);
     isPostCode ($ pašto kodą);
     isInt ($ int);
     isUnsignedInt ($ int);
     isUnsignedId ($ id);
     isNullOrUnsignedId ($ id);
     isUrl ($ url);
     isAbsoluteUrl ($ url);
     isFileName ($ vardas);
    

    Pavyzdžiui, mes galime naudoti isCleanHtml () funkcijos iš aukščiau kaip į mūsų modulio bandymas išvengti XSS (Cross Site Scripting) - tokiu būdu mes galime leisti HTML sąnaudų pagrįstą saugiai sąrašą.

    Tvirtinama mūsų formos duomenų

    Kaip ir anksčiau, mes ketiname sukurti naują modulį pagrįstas prieš tai buvusia versija. Kodėl gi ne pabandyti pakeisti Tutorialsecond klasė sau sukurti Tutorialthird modulis? Jei nenorite, tada tiesiog išplėsti ir nukopijuokite žemiau atitinkamai kodas!

     <? Php
     klasė Tutorialthird apima modulis
     (
    	 privataus $ _html ='';
    
    	 funkcija __construct ()
    	 (
    		 $ This-> name = 'tutorialthird ";
    		 parent:: __construct ();
    
    		 $ This-> skirtukas = 'eCartService.net Mokymas ";
    		 $ This-> version = "0 .1.0";
    		 $ This-> DisplayName = $ this-> l ("Trečiosios Susipažinkite modulis");
    		 $ This-> description = $ this-> l ("Mūsų trečiojo modulio - Saugumas ir patvirtinimas");
    	 )
    
    	 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: tutorialthird.php
    

    Pirmasis etapas šiame procese yra pakeisti mūsų getContent () funkciją pridėti žingsnio patvirtinimo:

    	 public function getContent ()
    	 (
    		 if (Įrankiai:: isSubmit ('submit'))
    		 (
    			 $ This-> _postValidation ();
    
    			 if (! sizeof ($ this-> _postErrors))
    			 (
    				 Konfigūracija:: updateValue ($ this-> vardas. "_message" Įrankiai:: GETVALUE ("our_message), true);
    				 $ This-> _html .= "<div class="conf confirm">". $ This-> l ("Nustatymai atnaujinta').'</ div>";
    			 )
    			 kitas
    			 (
    				 foreach ($ this-> _postErrors kaip $ err)
    				 (
    					 $ This-> _html .= "<div class="alert error">". $ Klaidos. "</ Div>";
    				 )
    			 )
    		 )
    
    		 $ This-> _displayForm ();
    
    		 return $ this-> _html;
    	 )
    

    Mums taip pat reikia įtraukti už $ _postErrors narys kintamasis įdiegėme į mūsų klasės apibrėžimas pradžioje pvz., deklaracija,

     klasė Tutorialthird apima modulis
     (
    	 privataus $ _html ='';
    	 privataus $ _postErrors = array ();
    

    Logika srauto, kai mes po duomenų getContent () dabar skambinti mūsų _Validation () funkcija patikrinti srityse pateikti ir nustatyti mūsų $ _postErrors masyvas su pranešimais apie klaidas. Jei yra klaidų, mes galime juos rodyti prieš redisplaying formą. Jei, atlikus galutinius patikrinimus, perleidžiama, tuomet mes parodome, pranešimo apie sėkmingą suteikti vizualinį komentarus konfigūracija buvo atnaujintas. Paprastas XSS bandymas _Validation () funkciją mūsų pavyzdžiu galėtų būti:

    	 privataus funkcija _postValidation ()
    	 (
    		 if (! Patvirtinti:: isCleanHtml (Įrankiai:: GETVALUE ("our_message")))
    			 $ This-> _postErrors [] = $ this-> l ("pranešimą, kurį įvedėte, yra neleidžiama, atsiprašau");
    	 )
    

    Žinoma, jūs ne tik naudojant bandymus pateikta Validate klasės, ir Jūs galite taip pat taikyti kelis tyrimus, kad kiekvienoje srityje pateikė - patikrinti, ilgis ir tt Pagrindinis principas yra visais atvejais tas pats, nesvarbu, koks sudėtingas jūsų patvirtinimo reikalavimai.

    Santrauka

    Šiame straipsnyje mes pagerinome mūsų forma tvarkymas įtraukiant patvirtinimą naudotojo įvesties papildomo saugumo bei patikimumo. Mes taip pat įtraukėme keletą regėjimo grįžtamojo ryšio, kai konfigūracija buvo sėkmingai atnaujintas. Į paskutinę dalį šios serijos pridėsime kai galutinis kosmetikos paliečia mūsų forma standartizuoti sąsaja ir pagerinti praktinį naudojimąsi juo. Mes taip pat ieškoti idėjų, kaip pagerinti ir išplėsti "šabloną" modulį sukūrėme.

    13 lapkritis 2009 į 15:35 - Komentarai

    Rašymas savo Prestashop modulis - 3 dalis

    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.

    13 lapkritis 2009 15:28 - Komentarai