• Sjilpen

    • Advertenties

    Facebook bijhouden van conversies Prestashop Module

    De Facebook Conversies bijhouden Prestashop Module.

    Noodzaak om het bijhouden van uw ROI van Facebook Ads? Met deze makkelijk te gebruiken Prestashop module kunt u op. Deze module voegt automatisch de tracking code conversie wanneer een klant een aankoop doet werken, zodat je kunt meten of uw advertenties worden.

    U kunt de Facebook bijhouden van conversies Prestashop module met behulp van de onderstaande link:
    Facebook bijhouden van conversies Prestashop Module

    5 mei 2010 om 1u41 - Reacties

    iPhone 3G tethering op je iPad

    Zal dit mogelijk zijn?

    Hier zijn de prijs punten:

    Is er een reden om de 3G-WiFi + krijgen als tethering mogelijk is?

    27 jan 2010 om 14:17 - Comments

    Bicio GoRide iPhone Bike Mount

    De iPhone GoRide Bike Mount is ontworpen om te worden gemonteerd op je stuur fietsen, en het is ontworpen om u toegang tot uw iPhone terwijl u rijdt uw fiets zonder in te boeten veiligheid en gemak.

    Bicio-GoRide-iPhone-Bike-Mount

    Bicio GoRide iPhone Bike Mount

    Bicio GoRide iPhone Bike Mount

    Het wordt geleverd met een beschermhoes die u kunt houden op je iPhone de hele tijd als je wilt, het geval is dan slots recht in de fietshouder en u bent klaar om uit te gaan op je fiets zonder al te veel inspanning.

    Als je er een wilt, de Bicio GoRide iPhone Bike Mount is nu beschikbaar voor 29,99 dollar van Bicio .

    De 09 december 2009 om 15:11 - Comments

    eHow - Hoe Glas Reparatie van de op een iPhone

    ds_f3f0ca5c-8a00-4c3c-a2ee-cfcc8c69d329
    eHow bijdragende schrijver

    Als uw iPhone 3G scherm gebarsten is, controleer dan eerst met Apple om te zien of uw garantie omvat de kostenloze reparatie of vervanging. Deze reparatie kan moeilijk zijn en er moet getracht worden alleen als het beeld achter het glazen scherm zichtbaar is.

    Met deze voorzorgsmaatregelen, te herstellen moet het zelf kost ongeveer $ 45. Deze methode van Lee Waterman ontving verscheidene positieve recensies.

    Moeilijkheidsgraad: Matig Uitdagend

    Instructies

      Rekening de iPhone uit elkaar

    1. Stap 1

      Schakel de iPhone. Verwijder de SIM-kaart door een paperclip in het kleine gaatje aan de bovenkant. Verwijder de twee schroeven aan de onderkant. Druk de zuignap op het glas. Trek het glas te scheiden.

    2. Stap 2

      Drie kabels bij elkaar te houden zal de twee stukken. Verwijder de eerste twee met behulp van een paperclip. Het derde tabblad is onder een van de eerste twee kabels. De laatste kabel moet worden getrokken voorzichtig naar buiten.

    3. Stap 3

      Op het scherm, verwijder zes schroeven: twee aan de ene kant, een aan de onderzijde van het oppervlak achter het glas, een zichtbaar aan de andere kant en twee onder tape aan die kant.

    4. Stap 4

      Voor het verwijderen van het LCD-scherm, gebruik dan een paperclip aan de zijkanten aan te haken de benedenhoek, dat is een cirkel, en trek uit.


      Het verwijderen van het gebroken glas

    5. Stap 1

      Behulp van een pincet, verwijder de zwarte tape achter het glas op elk van de vier randen.

    6. Stap 2

      Gebruik een föhn om de randen van het glas voor ongeveer 5 minuten om de lijm te verwarmen.

    7. Stap 3

      Wrik de glazen uit de plastic houder. Zorg ervoor dat alle het gebroken glas te verwijderen.


      Installeren van het glas

    8. Stap 1

      Zet de plakstrips aan de bovenkant en onderkant van de plastic houder.

    9. Stap 2

      Op de nieuwe glazen scherm, verwijder dan alle films van de zwarte boven-en onderkant, waardoor de beschermende folie op het glas zodat er geen vingerafdrukken zullen binnen te komen. Er zullen waarschijnlijk twee stukken van de film op de zwarte delen.

    10. Stap 3

      Line up het glas met de houder, zorg ervoor dat de kabel gaat onder de houder. Wanneer de twee stukken met elkaar overeenkomen, druk op het glas vasthouden aan de plakstrips.

    11. Stap 4

      Verwijder de folie van het glas.


      Montage

    12. Stap 1

      Zet de achterzijde LCD in de houder met alle gaten voor de schroeven uitgelijnd. Druk op zijn plaats. Vervang alle schroeven.

    13. Stap 2

      Druk alle leidingen in de omgekeerde volgorde van hun verwijdering.

    14. Stap 3

      Lijn de twee delen - het scherm en het toestel - en druk ze samen met de gaten op een rij.

    15. Stap 4

      Vervang de schroeven en de SIM-kaart.



    Tips & Waarschuwingen

    Middelen

    27 november 2009 om 19:38 - Comments

    Prestashop handmatig omzetten Karren om orders

    Prestashop Cart2Order Module

    Ik heb onlangs de noodzaak om de klant karren te converteren naar werkelijke orders en er was geen makkelijke manier om dat te doen met de basis install code en een module bestond nog niet had, schreef ik mijn eigen.

    In principe wat deze simpele module doet, is een klant om te zetten wagen in een bestelling. Hier is hoe het werkt door bijvoorbeeld:

    Als je, zeg bijvoorbeeld Google Checkout en Paypal betaling modules geïnstalleerd, dan zul je de optie hebben om een klant van de winkel te zetten met behulp van een van deze modules geïnstalleerd betaling.

    U kunt de Cart2Order module met behulp van de onderstaande link:
    Cart2Order Prestashop Module

    Forumdiscussie onderstaande link:
    http://bit.ly/oTglW

    16 11 2009 om 01:27 - Comments

    Voorkomen van het kopiëren van uw site ontwerpsjablonen

    Ik was het surfen op het forum PrestaShop en eindigde op een draad over een probleem met mensen die het stelen van een site design door het downloaden van de bestanden sjabloon uit de map theme. Het viel me op dat dit waarschijnlijk iets is dat degenen onder u die gebruik maken van andere systemen template met uw sites kunnen ook het gezicht, dus dacht dat ik hier de oplossing te plaatsen.

    Het probleem is dat, hoewel de php-bestanden kunnen niet direct worden bekeken op uw browser, andere bronbestanden kunnen worden bestanden met de extensie bijvoorbeeld. Tpl

    Bijvoorbeeld neem een kijkje op het volgende bestand dat de standaard machtigingen heeft:

    Onbeschermde sjabloonbestand

    De beste manier om uw site te beschermen, is de machtigingen op deze bestanden te veranderen naar 600. Dit zal alleen toegankelijk moeten maken door je eigen code op de server en de huidige iedereen nieuwsgierig genoeg om te proberen en te kijken naar hen met een 403 (verboden) fout. Hetzelfde geldt voor php-bestanden (hoewel deze niet weer te geven moet de bron, tenzij uw server configuratie is gebroken).

    Neem een kijkje op dit bestand met de machtigingen ingesteld op 600:

    Beschermde sjabloonbestand

    Simpel.

    13 nov 2009 om 16:45 - Comments

    Sjablonen aanpassen Prestashop Module

    Gelieve niet bewerken de originelen!

    Kwam ik dit juweeltje een tijdje geleden op de Prestashop forum, en dacht dat ik zou de aandacht op te vestigen in de hoop dat het zal helpen iemand, ergens.

    Ik ben niet iemand om te klagen, maar mijn huisdier haat is mensen die bewerken de originele bron-bestanden op hun winkel, als er geen behoefte aan. Het afgeluisterd me in Zen Cart als mensen graag de "klassieke bewerkt" en "default" template bestanden, vraagt zich vervolgens af waarom het moeilijk was om te upgraden ... en zie mensen begonnen hetzelfde te doen om de Prestashop standaard thema ook. Aaaargh! Hoe moeilijk is het om een kopie te maken, hernoemen en bewerken in plaats van deze versie?

    Waar mijn puristische instincten mislukte echter, de weg terug in de slechte oude tijd, toen het ging over de. Tpl bestanden die waren opgeslagen in de module directory zelf - er lijkt alsof er geen andere keuze dan om ze te bewerken als u wilt dat de uitvoer aanpassen voor uw winkel - of is er!

    Het antwoord is verrassend eenvoudig, en zult u uw hoofd knikt in dankbare waardering uit te maken ... alles wat je moet doen is een modules / directory in uw aangepaste thema directory (en u niet gaat werken in de standaard map theme nu zijn jullie), kopieer dan de originele. tpl van de module directory in te plaatsen en bewerken weg om de inhoud van uw hart.

    Als voorbeeld, kunt u het bestand uit de template blockadvertising module (blockadvertising.tpl) en een kopie te maken onder / themes / mycooltheme / modules / blockadvertising. Nu passen de kopie van het origineel dat leek op:

    
    
    L (s = "Reclame" mod = 'blockadvertising')

    aan

    
    
    (Ls = 'Een fantastische site voor Prestashop goodies' mod = 'blockadvertising')

    Pure vreugde! Hoewel de oplettende zult merken dat, tenzij je het bewerken () variabele $ image en plaats een statisch pad naar de afbeelding in zijn plaats, dan zul je de afbeelding in de module directory veranderen .... goed je kunt niet alles hebben denk ik.

    13 nov 2009 om 16:13 - Comments

    Schrijf je eigen Prestashop Module - Deel 5

    De finishing touch

    Invoering

    In dit laatste deel van onze basismodule schriftelijk tutorial serie zullen we kijken naar de laatste stappen om onze module Tutorialthird klasse om te zetten in een basis die we kunnen gebruiken om kick start het schrijven van nieuwe modules sjabloon. Niet weer opnieuw de zelfde oude code die we u alleen de wijzigingen te bespreken, maar ik heb nog een download link aan het einde of dit deel dus je can de definitieve code te grijpen en deze als basis voor uw eigen projects use. We gaan deze module "Skeleton" - een naam die we met onze eigen plaats als het gaat om de productie van nieuwe modules op basis van het nummer te bellen.

    Styling de configuratie vorm

    De eerste veranderingen die we gaan maken zijn puur cosmetisch, maar dit is een belangrijk element, omdat we willen een consistente interface voor onze gebruikers. Onze vorm-code eruit zag:

    	 Stuur een prive-_displayForm ()
    	 (
    		 $ This-> _html .= '
    		 <form action="'.$_SERVER['REQUEST_URI'].'" method="post">
    				 <label> '. $ this-> l (' Boodschap aan de wereld').'</ label>
    				 <div class="margin-form">
    
    					 <input type="text" name="our_message" />
    				 </ Div>
    				 <input type="submit" name="submit" value="'.$this-> l ('Update').'" class = "button" />
    
    		 </ Form> ';
    	 )
    

    De conventie voor deze configuratie schermen is om de instellingen te verpakken in een fieldset, en we moeten ook het toevoegen van een leuke vriendelijke (vertaalbaar) legende, compleet met icoon. Onze code zal nu als volgt uitzien:

    	 Stuur een prive-_displayForm ()
    	 (
    		 $ This-> _html .= '
    		 <form action="'.$_SERVER['REQUEST_URI'].'" method="post">
    
    			 <fieldset>
    				 <legend> <img src="../img/admin/cog.gif" alt="" class="middle" /> '. $ this-> l (' Instellingen').'</ legend>
    
    				 <label> '. $ this-> l (' Boodschap aan de wereld').'</ 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> ';
    	 )
    

    Onze laatste cosmetische verandering is een rubriek op de top van onze instellingen scherm toe te voegen voor het geval de gebruiker is vergeten waar ze zijn! Wij doen dit door het toevoegen van de volgende regel aan het begin van de getContent () functie:

     $ This-> _html .= '<h2>'. $ This-> displayName. '</ H2>';
    

    Pre-configuratie vullen formuliervelden

    Andere ontbrekende element uit onze oorspronkelijke ontwerp was de tutorial display van de huidige instellingen in de module configuratie vorm, en even terugkeert wanneer het formulier van het updaten van de waarden van de velden zijn leeg, dus moeten we dit probleempje te lossen. Er zijn twee mogelijkheden die we nodig hebben om te behandelen:

    1. Oorspronkelijke weergave van het formulier moeten de huidige configuratie (als het display van toepassing)
    2. Na een update van de fiche moeten we de gegevens ingevoerd door de gebruiker display

    We kunnen gebruik maken van de configuratie:: get ()-functie om de huidige instellingen uit de database te halen en Tools:: getValue () om de inhoud van velden te krijgen. De Tools:: getValue () functie neemt een tweede parameter die bruikbaar is in deze context, aangezien dit beschrijft een "standaard" gebruik te maken moet het veld leeg zijn. We kunnen nu de "waarde" attribuut van onze input tag adequaat gebruik van deze twee functies, zodat onze definitieve vorm input-code zal worden:

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

    Een andere nuttige verandering te maken in het omgaan met verschillende velden in een configuratie voor is om de database te updaten code te verplaatsen naar het eigen functioneren. Daarom zullen wij de lijn te vervangen:

    
     if (! sizeof ($ this-> _postErrors))
    	 (
    		 Configuratie:: updateValue ($ this-> naam. "_message ', Tools:: getValue (' our_message"), true);
    		 $ This-> _html .= '<div class="conf confirm">'. $ This-> l ('Instellingen bijgewerkt').'</ div>';
    	 )
    

    met het volgende:

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

    En we voegen de nieuwe private member functie om onze klas om de werkelijke updates verwerken in een enkele, eenvoudig te identificeren locatie:

    	 Stuur een prive-_postProcess ()
    	 (
    		 Configuratie:: updateValue ($ this-> naam. "_message ', Tools:: getValue (' our_message"), true);
    
    		 $ This-> _html .= '<div class="conf confirm">'. $ This-> l ('Instellingen bijgewerkt').'</ div>';
    	 )
    

    Omgaan met andere veldtypen

    In de laatste download van het skelet module heb ik ook toegevoegd voorbeelden van andere soorten velden die zal fungeren als nuttige snelkoppelingen naar het maken van uw configuratie module vorm. Dit betreft keuzes, radio knoppen, tekstvelden en drop-down lijsten. Het enige wat u hoeft te doen is het toevoegen / namen van de velden, voeg eventueel nodig zijn om de validatie _postValidation () functie en wijzigen van de update code in de _postProcess () functie naar behoren.

    Voor verplichte instellingen die u moet ook een test voor hun aanwezigheid in de installatie-functie en passende maatregelen nemen om uw module waardoor fouten in de Front Office te voorkomen bijvoorbeeld door het instellen van het gebruik van de standaard configuratie:: updateValue () functie. Of dit kan worden uitgevoerd in de module bouwer, maar het is juister om deze uit te voeren binnen te installeren ().

    Het toevoegen van meerdere display locatie haken

    Onze Tutorialthird module kan alleen display onze content in de linker kolom, aangezien dit de enige haak hebben we uitgevoerd. Gelukkig is het zeer eenvoudig te implementeren de "Transplant een module" BackOffice functionaliteit in onze code. In de eenvoudigste vorm zullen we maar gebruik maken van dezelfde output op alle locaties, maar indien nodig al deze bijkomende haken kunnen leiden tot verschillende resultaten.

    Voor de productie van dezelfde output in alle populaire locaties, moeten we alleen de extra haak functies in onze module te voeren en de originele code haak oproep aan de output te genereren. Merk op dat we eigenlijk alleen registerHook call () voor de standaard in de installatie van een () lid functie, en laat de Back Office omgaan met de registratie van de anderen.

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

    Overzicht

    Over deze reeks van artikelen die je moet hebben geleerd hoe de basismodule systeem werkt in Prestashop en kunnen modules die output te leveren aan de presentatie verschillende gebieden in de Front Office code. Je hebt ook een goed kader code om je eigen modules op te baseren. Je hebt misschien gemerkt dat op geen enkel moment hebben we eigenlijk smarty of haar bestanden sjabloon in de oprichting van onze module gebruikt - dit is een bewuste als ze kunnen worden gezien als een aparte entiteit van de module-ontwerp zelf.

    Smarty is zeer flexibel, maar de keuze om het te gebruiken is gebaseerd op vele factoren, en uitvoering redenen is het het beste om het gebruik ervan als het al mogelijk te vermijden. Later artikelen zullen onderzoeken hoe en wanneer smarty gebruiken om uw modules functionaliteit maar verhogen, aangezien zij een fundamenteel onderdeel vormt van de Prestashop architectuur.

    U kunt de complete skelet module code met behulp van de onderstaande link:

    Skeleton v0.1.0

    13 nov 2009 om 15:49 - Comments

    Schrijf je eigen Prestashop Module - Deel 4

    Vorm Validatie en Veiligheid

    Invoering

    Terwijl een voldoende mate van functionele voor wat het doet, is de module hebben we in deel 2, is dit ons met een aantal zaken te overwegen wanneer de uitvoering van "echte wereld" modules uit te breiden Prestashop. Met name de input van de gebruiker hebben we gevangen met onze vorm werd rechtstreeks schriftelijk tot de configuratie-item zonder enige controle om te bepalen of het geldig was, noch hebben wij rekening gehouden met de aard van de gegevens die worden ingevoerd.

    In deze tutorial zullen we kijken naar het algemene vraagstuk van de vorm input controle en veiligheid, zowel voor de Back Office en Front Office vormen en door de gebruiker input alsook naar een verbetering van onze code zowel functioneel als esthetisch.

    De configuratie klasse revisited

    In deel 3 hebben we al kort gesproken over een extra parameter die kan worden doorgegeven aan de configuratie:: updateValue () klasse-methode. Als u herinneren aan de functie heeft de volgende vorm:

      updateValue ($ key, $ waarde, $ html = false); 

    In deel 3 hebben we negeerden de $ html parameter en mogen de functie om de standaard waarde van het gebruik "false". Daarbij hebben we eigenlijk per ongeluk toegevoegd het eerste element van de beveiliging en validatie van onze code. Indien ingesteld op "false" de updateValue () methode eigenlijk pre-processen van de waarde die moet worden geschreven met behulp van de volgende code ($ string is de input die wordt doorgegeven aan de functie):

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

    U kunt dit testen door het invoeren van enkele HTML-code in het configuratie scherm voor de module hebben we in deel 3. Je moet zien dat alle html tags in uw input worden verwijderd. We kunnen wijzigen ten TutorialSecond module om input van html in de vorm, door het veranderen van lijn 29 in het bronbestand naar:

      Configuratie:: updateValue ($ this-> naam. "_message ', Tools:: getValue (' our_message", true)); 

    Dit illustreert het fundamentele principe dat we nodig hebben in dienst te nemen in onze eigen code om ervoor te zorgen dat het veilig is en werkt voorspelbaar. Gelukkig Prestashop geeft ons een aantal hulpmiddelen die we kunnen gebruiken in onze eigen code om het veiliger te maken en robuust.

    Validatie

    Prestashop voorziet ons van een klasse genaamd Valideer dat we kunnen gebruiken om te bepalen of input van de gebruiker Wij accepteren geldig is of niet. De lijst van de functies is vrij groot, maar het is de moeite waard het weergeven van een aantal van hen hier om dit punt te illustreren - voor een complete lijst te raadplegen moet u de klassen / Validate.php bestand in je Prestashop distributie.

     isEmail ($ email);
     isFloat ($ float);
     isUnsignedFloat ($ float);
     isCleanHtml ($ html);
     ISDATE ($ datum);
     isBool ($ bool);
     isPhoneNumber ($ telefoonnummer);
     isPostCode ($ postcode);
     isInt ($ int);
     isUnsignedInt ($ int);
     isUnsignedId ($ id);
     isNullOrUnsignedId ($ id);
     isUrl ($ url);
     isAbsoluteUrl ($ url);
     isFileName ($ naam);
    

    Als voorbeeld kunnen we de isCleanHtml () functie gebruiken uit de bovenstaande lijst als een test in onze module voor XSS (cross site scripting te voorkomen) - op die manier kunnen we laten html input redelijk veilig.

    Valideren van onze vorm van gegevens

    Zoals al eerder gaan we een nieuwe module op basis van de vorige versie te maken. Waarom probeert u niet tot wijziging van de klasse Tutorialsecond uzelf op de Tutorialthird module te maken? Als u liever niet, dan gewoon uit te breiden en kopieer de onderstaande code nodig!

     <? Php
     klasse Tutorialthird breidt Module
     (
    	 particuliere $ _html ='';
    
    	 functie __construct ()
    	 (
    		 $ This-> naam = 'tutorialthird';
    		 ouder:: __construct ();
    
    		 $ This-> tab = 'eCartService.net Tutorials';
    		 $ This-> versie = '0 .1.0 ';
    		 $ This-> displayName = $ this-> l ('Derde Tutorial Module');
    		 $ This-> description = $ this-> l ('Onze derde module - Veiligheid en validatie');
    	 )
    
    	 publieke functie te installeren ()
    	 (
    		 ouder:: install ();
    
    		 if (! $ this-> registerHook ('leftColumn'))
    			 return false;
    	 )
    
    	 getContent publieke functie ()
    	 (
    		 if (Tools:: isSubmit ('submit'))
    		 (
    			 Configuratie:: updateValue ($ this-> naam. "_message ', Tools:: getValue (' our_message '));
    		 )
    
    		 $ This-> _displayForm ();
    
    		 return $ this-> _html;
    	 )
    
    	 Stuur een prive-_displayForm ()
    	 (
    		 $ This-> _html .= '
    		 <form action="'.$_SERVER['REQUEST_URI'].'" method="post">
    
    				 <label> '. $ this-> l (' Boodschap aan de wereld').'</ label>
    				 <div class="margin-form">
    					 <input type="text" name="our_message" />
    
    				 </ Div>
    				 <input type="submit" name="submit" value="'.$this-> l ('Update').'" class = "button" />
    
    		 </ Form> ';
    	 )
    
    	 hookLeftColumn publieke functie ()
    	 (
    		 return '<div class="block"> <h4>'.  Configuratie:: get ($ this-> naam. "_message ').  '</ H4> </ div>';
    	 )
    
     )
     / / Einde van: tutorialthird.php
    

    De eerste fase in het proces is om de draagwijdte van onze getContent () functie om de validatie stap toe te voegen:

    	 getContent publieke functie ()
    	 (
    		 if (Tools:: isSubmit ('submit'))
    		 (
    			 $ This-> _postValidation ();
    
    			 if (! sizeof ($ this-> _postErrors))
    			 (
    				 Configuratie:: updateValue ($ this-> naam. "_message ', Tools:: getValue (' our_message"), true);
    				 $ This-> _html .= '<div class="conf confirm">'. $ This-> l ('Instellingen bijgewerkt').'</ div>';
    			 )
    			 anders
    			 (
    				 foreach ($ this-> _postErrors als $ err)
    				 (
    					 $ This-> _html .= '<div class="alert error">'. $ Err. '</ Div>';
    				 )
    			 )
    		 )
    
    		 $ This-> _displayForm ();
    
    		 return $ this-> _html;
    	 )
    

    We moeten ook een verklaring voor de $ _postErrors lidvariabele we geïntroduceerd aan het begin van onze definitie van de klasse bijvoorbeeld toe te voegen

     klasse Tutorialthird breidt Module
     (
    	 particuliere $ _html ='';
    	 particuliere $ _postErrors = array ();
    

    De logica flow wanneer we gegevens getContent bericht () is nu te bellen met onze _Validation () functie van de ingediende velden te testen en om onze $ _postErrors array set met eventuele foutmeldingen. Als er fouten zijn kunnen we ze weer te geven voorafgaand aan het formulier opnieuw weergeven. Als de validatie controles worden doorgegeven, dan kunnen we weer een "succes"-bericht naar visuele feedback die de configuratie is bijgewerkt op te geven. Een simpele XSS-test in de _Validation () functie voor ons voorbeeld zou kunnen zijn:

    	 Stuur een prive-_postValidation ()
    	 (
    		 if (! valideren:: isCleanHtml (Tools:: getValue ('our_message ")))
    			 $ This-> _postErrors [] = $ this-> l ('Het bericht dat u kwam, was niet toegestaan, sorry');
    	 )
    

    Natuurlijk moet je niet beperkt zijn tot het gebruik van de tests die door de Validate klasse, en je kunt ook meerdere tests van toepassing op elk van de ingediende gebied - om te testen op lengte, enz. Het basisprincipe is hetzelfde in alle gevallen, maakt niet uit hoe complex uw validatie eisen zijn.

    Overzicht

    In dit artikel hebben wij op onze verbeterde vorm behandeling door het toevoegen van validatie van de input van de gebruiker voor extra veiligheid en / of betrouwbaarheid. We hebben ook nog wat visuele feedback wanneer de configuratie is succesvol bijgewerkt. In het laatste deel van deze serie zullen we nog wat laatste cosmetische hand aan onze vorm van standaardisering van de interface en de bruikbaarheid te verbeteren. We zullen ook kijken naar ideeën voor verbetering en uitbreiding van de "template" module die we hebben gemaakt.

    13 nov 2009 om 15:35 - Comments

    Schrijf je eigen Prestashop Module - Deel 3

    Module Configuratie opslaan

    Invoering

    In het derde deel van deze serie kijken we hoe we configuratie-gegevens op te slaan for onze modules in de Prestashop database, en hoe kunnen we allow gebruikers met deze gegevens aan de module's gedrag te sturen. We zullen ook kort ingaan op hoe we output te genereren vanuit onze module om visuele feedback van de configuratie wijzigingen door te geven.

    Managing gebruikersinstellingen

    We gaan deze module "TutorialSecond" zodat we weer behoefte aan een nieuwe module directory en klasse-bestand te maken - die de naam "tutorialsecond" en "tutorialsecond.php" respectievelijk te bellen. De klasse-bestand (tutorialsecond.php) moet het volgende bevatten:

      <? Php
     klasse Tutorialsecond breidt Module
     (
    	 particuliere $ _html ='';
    
    	 functie __construct ()
    	 (
    		 $ This-> naam = 'tutorialsecond';
    		 ouder:: __construct ();
    
    		 $ This-> tab = 'eCartService.net Tutorials';
    		 $ This-> versie = '0 .1.0 ';
    		 $ This-> displayName = $ this-> l ('tweede tutorial Module');
    		 $ This-> description = $ this-> l ('Onze tweede module - Een "Hello world" redux');
    	 )
    
    	 getContent publieke functie ()
    	 (
    
    	 )
    
    	 Stuur een prive-_displayForm ()
    	 (
    
    	 )
    
     )
     / / Einde van: tutorialsecond.php 

    U zult merken dat we nog twee nieuwe Lid-functies:: getContent () en:: _displayForm () uitgevoerd. Als u het bestand uploaden naar uw server en installeren van deze module in deze fase moet je een nieuwe optie op de modules die lijst zie scherm voor 'tweede tutorial Module'. Er zal nu een ">> Configure" link in de module binnenkomst, maar zal dit alleen maar te klikken terug een lege pagina Back Office. De aanwezigheid van de:: getContent () lid functie is verantwoordelijk voor dit omdat het de interface tussen onze module en de Back Office.

    Naast deze twee nieuwe functies hebben we ook nog de $ _html private member variabele, die we later zullen gebruiken in dit artikel om de gewenste output voor weergave in de Back Office te bouwen.

    Het opslaan en ophalen Configuration Data

    Prestashop biedt een "Configuration" klasse die verscheidene Lid-functies biedt configuratie te manipuleren van gegevens, maar de twee belangrijkste functies die zullen worden het meest gebruikt zijn:

      Configuratie:: updateValue ($ key, $ waarde, $ html = false);
     Configuratie:: get ($ key, $ id_lang = NULL); 

    De Configuratie:: updateValue ()-functie laat ons toe om een configuratie-optie in de database op te slaan (eventueel in meerdere talen in welk geval de waarden $ parameter een array zijn) en de configuratie:: () functie te krijgen laat ons toe om configuratie-gegevens ophalen voor een geselecteerd of op te slaan standaard taal. We zullen negeren de parameters die standaard waarden voor nu, maar zal de $ html parameter in de configuratie opnieuw:: updateValue () functie in het volgende artikel als we kijken naar het onderwerp van formulier validatie.

    Uitvoering van het scherm instellen

    In ons bronbestand creëerden we een private member-functie _displayForm (). Dit is volledig optioneel als alle van de interface code kan worden geplaatst in de getContent () lid functie, maar het is ten zeerste aanbevolen dat u dit uit omwille van de code gemakkelijker onderhoud te scheiden. We maken een eenvoudig formulier binnen deze functie waarmee we eigenaar van de winkel input te vangen.

      Stuur een prive-_displayForm ()
    	 (
    		 $ This-> _html .= '
    		 <form action="'.$_SERVER['REQUEST_URI'].'" method="post">
    				 <label> '. $ this-> l (' Boodschap aan de wereld').'</ label>
    				 <div class="margin-form">
    
    					 <input type="text" name="our_message" />
    				 </ Div>
    				 <input type="submit" name="submit" value="'.$this-> l ('Update').'" class = "button" />
    
    		 </ Form> ';
    	 ) 

    Je kunt zien dat het:: _displayForm gewoon () functie standaard HTML-code formulier voegt aan onze $ _html lidvariabele, met de vorm streefdoel is $ _SERVER ['REQUEST_URI']. Prestashop's Back Office architectuur zal dit onze route:: getContent klasse lid functie voor ons te hanteren wanneer het formulier wordt geplaatst.

    We moeten de volgende code toevoegen aan onze:: getContent () functie om daadwerkelijk weer de vorm en het indienen van formulieren te verwerken.

      getContent publieke functie ()
    	 (
    		 if (Tools:: isSubmit ('submit'))
    		 (
    			 Configuratie:: updateValue ($ this-> naam. "_message ', Tools:: getValue (' our_message '));
    		 )
    
    		 $ This-> _displayForm ();
    
    		 return $ this-> _html;
    	 ) 

    De:: getContent () functie gebruikt eerst een ander Prestashop klasse "Tools" om te testen of we de post actie afhandeling van de vorm, of dat deze functie wordt aangeroepen op een andere manier dat wil zeggen een klik op de "Configure" link in de module lijst - de parameter is de naam gaven we aan onze "update" knop in het formulier.

    Als de functie wordt direct gebeld door de Back Office (in dat geval Tools:: isSubmit ('submit') keert terug false), dan noemen we de vorm rendering functie die we hierboven aangemaakt en de terugkeer van de output, gevangen in de $ this- > _html variabele, aan de Back Office voor weergave.

    Als de functie wordt aangeroepen als gevolg van ons formulier worden geplaatst, dan kunnen we onze configuratie parameter op te slaan in de database met de waarde geworden op ons formulier. We hebben wederom het Tools-klasse te gebruiken om de waarde van de variabele vorm te verkrijgen met behulp van de oproep tot Tools:: getValue ('our_message') waar 'our_message' is de naam van het invoerveld in ons formulier.

    Je kunt zien dat ik de naam van onze module toegevoegd aan het begin van de configuratie-item naam - dit is om ervoor te zorgen dat de configuratie sleutel is uniek als de namespace van deze toetsen wordt gedeeld voor de hele winkel.

    Zodra we onze configuratie opgeslagen gegevens van het formulier wordt opnieuw weergegeven, klaar voor meer input indien nodig.

    Output Module op een pagina

    We hebben nu een methode voor het vastleggen van de inbreng van de eigenaar van de winkel en op te slaan in de database, dus de volgende logische stap zou zijn om iets mee te doen bijvoorbeeld weer te geven op een pagina. In deel 1 van de serie hebben we gesproken over "haken" in verband met modules toevoegen van functionaliteit. Om dit moeten we PrestaShop vertellen dat onze module zou te boek als in de front-office en we doen dit met behulp van de volgende functie (gedefinieerd in de module base class) gebruiken:

      $ This-> registerHook ($ hook_name); 

    De $ hook_name parameter verwijst naar een van de verschillende punten die de Prestashop core modules te voegen productie en / of verwerking van gegevens, maar voor nu zullen we gebruik maken van een in het bijzonder - staat "leftColumn ', wat ons toelaat om inhoud toe te voegen in de linker kolom van alle pagina's. Met het oog op de haak moeten we de volgende nieuwe overschrijven toe te voegen in onze eigen klasse te initialiseren:

      publieke functie te installeren ()
    	 (
    		 ouder:: install ();
    
    		 if (! $ this-> registerHook ('leftColumn'))
    			 return false;
    	 ) 

    Dit vertelt Prestashop om onze module haak te voeren wanneer zij de inhoud rendering voor de linkerkolom van alle pagina's. We moeten naast een functie aan de haak callback handvat toe te voegen. De conventie is om de functie naam als de naam Hoek, voorafgegaan door "haak":

      hookLeftColumn publieke functie ()
    	 (
    		 return '<div class="block"> <h4>'.  Configuratie:: get ($ this-> naam. "_message ').  '</ H4> </ div>';
    	 ) 

    In ons eenvoudige voorbeeld dat we zijn gewoon verpakking onze configuratie parameter in een aantal standaard HTML-opmaakcodes, zodat het correct wordt weergegeven op onze pagina.

    Als u al hebt geïnstalleerd de module moet je nu vervolgens de installatie opnieuw installeren om ervoor te zorgen dat de haak correct is geregistreerd bij de Prestashop kern. Nu kunt u een waarde in het configuratie scherm voor de module - bijvoorbeeld 'Hello World', en het zal de uitgang van de kop van een vakje in de linkerkolom van uw winkel zijn. De volledige code voor het tweede voorbeeld ziet er nu als volgt uit:

      <? Php
     klasse Tutorialsecond breidt Module
     (
    	 particuliere $ _html ='';
    
    	 functie __construct ()
    	 (
    		 $ This-> naam = 'tutorialsecond';
    		 ouder:: __construct ();
    
    		 $ This-> tab = 'eCartService.net Tutorials';
    		 $ This-> versie = '0 .1.0 ';
    		 $ This-> displayName = $ this-> l ('tweede tutorial Module');
    		 $ This-> description = $ this-> l ('Onze tweede module - Een "Hello world" redux');
    	 )
    
    	 publieke functie te installeren ()
    	 (
    		 ouder:: install ();
    
    		 if (! $ this-> registerHook ('leftColumn'))
    			 return false;
    	 )
    
    	 getContent publieke functie ()
    	 (
    		 if (Tools:: isSubmit ('submit'))
    		 (
    			 Configuratie:: updateValue ($ this-> naam. "_message ', Tools:: getValue (' our_message '));
    		 )
    
    		 $ This-> _displayForm ();
    
    		 return $ this-> _html;
    	 )
    
    	 Stuur een prive-_displayForm ()
    	 (
    		 $ This-> _html .= '
    		 <form action="'.$_SERVER['REQUEST_URI'].'" method="post">
    
    				 <label> '. $ this-> l (' Boodschap aan de wereld').'</ label>
    				 <div class="margin-form">
    					 <input type="text" name="our_message" />
    
    				 </ Div>
    				 <input type="submit" name="submit" value="'.$this-> l ('Update').'" class = "button" />
    
    		 </ Form> ';
    	 )
    
    	 hookLeftColumn publieke functie ()
    	 (
    		 return '<div class="block"> <h4>'.  Configuratie:: get ($ this-> naam. "_message ').  '</ H4> </ div>';
    	 )
    
     )
     / / Einde van: tutorialsecond.php 

    Overzicht

    In dit artikel hebben we uitgebreid onze eerste module op een basisconfiguratie formulier hebben gebruikt en een haak functie om de uitgang weer te geven van onze module in de linkerkolom van onze pagina's. In het volgende deel van deze serie zullen we kijken naar de verbetering van de configuratie faciliteit in iets dat kan worden gebruikt in een echte module uitvoering. Dit omvat het valideren van input van de gebruiker om de vorm, pre-velden van het formulier vullen geval gebaseerd op de huidige configuratie en de weergave van module fouten en waarschuwingen in de Back Office schermen.

    13 nov 2009 om 15:28 - Comments