Joomladag april 2006 - Presentatie: Component programmeren
Presentatie door Peter Martin over componenten programmeren, gegeven op de allereerste Joomla!dag op 22 april 2006 in Breda.
Het .zip bestand bevat de presentatie in PowerPoint formaat + voorbeeld code over hoe een eigen Joomla 1.0 Component geprogrammeerd kan worden.Aanvulling presentatie & demonstratie "Component maken" voor Joomladag.nl, 22 april 2006. Deze aanvulling is bedoeld om extra informatie te geven die niet in de Powerpoint presentatie is terug te vinden.
Overzicht van bestanden
- Presentatie_joomladag_2006_pe7er.ppt: de powerpoint presentatie met digitale presentatie, echter zonder de demo's.
- com_kilometer: het kilometer component (inclusief installer, en met zowel de Front-end als Back-end)
- mod_kilometer: de bijbehorende module
- voorbeelddata.sql: SQL code om de jos_kilometer tabel te vullen met voorbeeld data. NB: er worden userids gebruikt van nr. 62 t/m 67. De bijbehorende gebruikers dien je zelf eventueel in de User Manager aan te maken.
- Aanvulling_presentatie_component_maken_pe7er.pdf: dit document. NB: De code dient slechts als voorbeeld. Het is absoluut geen uitontwikkeld component.
- indien er geen voorbeelddata in de tabel jos_kilometer is geplaatst, wordt er geen lijst van gebruikers getoond. Een eventueel ingelogde gebruiker kan nooit zijn eigen naam aanklikken en nieuwe kilometerstanden / getankte liters / literprijs invoeren.
Misschien vinden sommige mede Joomla-ers het interessant om dit demonstratie component
als oefening uit te bouwen tot een volledig functioneel en foutloos component wat eventueel
op "Joomla Extensions" ter download aangeboden kan worden. Zie daarvoor het Joomla!
forum bericht http://forum.joomla.org/index.php/topic,57406.0.html
of zoek op Joomla forum op com_kilometer
Overzicht van gebruikte programmatuur
- Een locale webserver met PHP/MySQL & phpMyAdmin (AppServ 2.4.4a)
- Een text editor met PHP/HTML/MySQL code highlighting (PHP Designer 2006)
- Een Internet browser (FireFox + Webdeveloper plugin)
- En natuurlijk Joomla! (Joomla! 1.0.8 + Nederlandse taalmodule)
Beveiligingstips
- Begin al je .php bestanden met: defined( '_VALID_MOS' or die( 'Restricted access');
zodat ze niet rechtstreeks via URL kunnen worden aangeroepen, maar alleen via Joomla! - Plaats een index.html in de directory van je component om te voorkomen dat de directory te browsen is.
- Zorg dat de uitvoer naar het scherm door middel van de in Joomla! gedefinieerde functie mosMakeHtmlSafe($row); gebeurt. In dat geval wordt eventuele HTML code omgezet naar veilige equivalenten (bijv. ipv < wordt < en > wordt > ).
- Om SQL injection (het dusdanig gebruik van SQL commando's in formulieren zodat je database handelingen kunt sturen) te voorkomen, dien je alle eventuele escape strings uit de invoer te verwijderen. Ook hiervoor heeft Joomla! een uitstekende voorgedefinieerde functie: mosGetParam
- Als de invoer alleen een numerieke waarde mag zijn, zorg dat je dat ook in de afhandeling zo programmeert: $id = intval(mosGetParam($_REQUEST,'id' , 0));

