Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Joomla programiranjerazvoj dodatakaEmir Sakić
dipl. ing. elektrotehnikesuosnivač Joomla projektadirektor Sakic.Net d.o.o.Emir Sakić
Joomla 2005: osnivačka konferencija
Joomla dodaci (Extensions)• Komponente (Components)• Moduli (Modules)• Plugini (Plugins)• Predlošci (Templates)• Jezici (L...
Joomla struktura
Instalacija Joomla dodataka
Pojmovi• PHP 5 (Hypertext Preprocessor)• mySQL (database)• OOP (Object-oriented programming)• MVC (Model-View-Controller)•...
Alati• Text editor (npr. Notepad++) ili IDE• LAMP / WAMP (npr. XAMPP)• Xdebug & DBGp plugin za Notepad++• FTP klijent (npr...
OOP
MVC• Model – upravlja podacima i logikom• Ovdje idu svi pozivi ka bazi podataka• View – prezentuje modelirane podatke• Bez...
Struktura datoteka• ./components/com_helloworld/• models/• helloworld.php• views/• helloworld/• tmpl/• default.php• view.h...
Ulazna tačka: helloworld.phpindex.php?option=com_helloworld• Minimalni kôd: pokreće controller
Controller• Procesira korisnički zahtjev• NE RADITI• Pozive bazi podataka• Echo bilo šta• Prosljeđuje izvršenje view-u
Model• Sadrži programsku logiku• Pristupa bazi podataka
View• Prikazuje rezultat• Preuzima podatke od modela
Layout• Layout file radi konačni HTML ispisdefault.php nogreeting.phppravilno nepravilno
Pakovanje• com_helloworld.zip• admin/• controllers/• models/• views/• sql/• …• site/• models/• views/• ...• helloworld.xml
Manifest: helloworld.xml
Modules & Plugins• mod_..., plg_...• Ide u modules/, plugins/• Jednostavnija struktura• Manifest razlika: type, client, gr...
Joomla API: api.joomla.org• MVC – JController, JModel , JView• JFactory – pristup globalnim objektima• JText• višejezička ...
JFactory• ::getApplication()• ::getDBO()• ::getConfig()• ::getUser()• ::getDocument()• ::getLanguage()• ::getURI()
JRequest (now JInput)• ::getVar()• ::getWord()• ::getCmd()• ::getString()• ::getBool()• ::getFloat()• ::getInt()
Rukovanje datotekama• Ne koristiti fopen, fread, fwrite …• Koristiti Joomla funkcije• JFolder• JFile• JPath
Greške• Warnings• Errors (Exceptions since 3.0)if($db->getErrorNum()){JError::raiseError( 500, $db->stderr() );}if(uslov_n...
Prikaz greške
• http://thecancerus.com/debugging-php-using-xdebug-and-notepad-part-i/ (Xdebug & DBGp plugin)• http://docs.joomla.org/Set...
Upcoming SlideShare
Loading in …5
×

Programming for joomla - extensions development

0 views

Published on

Emir Sakić
Joomla!Day BiH 2013.
Sarajevo - 3. maj 2013.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Programming for joomla - extensions development

  1. 1. Joomla programiranjerazvoj dodatakaEmir Sakić
  2. 2. dipl. ing. elektrotehnikesuosnivač Joomla projektadirektor Sakic.Net d.o.o.Emir Sakić
  3. 3. Joomla 2005: osnivačka konferencija
  4. 4. Joomla dodaci (Extensions)• Komponente (Components)• Moduli (Modules)• Plugini (Plugins)• Predlošci (Templates)• Jezici (Languages)
  5. 5. Joomla struktura
  6. 6. Instalacija Joomla dodataka
  7. 7. Pojmovi• PHP 5 (Hypertext Preprocessor)• mySQL (database)• OOP (Object-oriented programming)• MVC (Model-View-Controller)• Joomla Platform (Framework)
  8. 8. Alati• Text editor (npr. Notepad++) ili IDE• LAMP / WAMP (npr. XAMPP)• Xdebug & DBGp plugin za Notepad++• FTP klijent (npr. FileZilla)• phpMyAdmin• Firebug dodatak za Firefox
  9. 9. OOP
  10. 10. MVC• Model – upravlja podacima i logikom• Ovdje idu svi pozivi ka bazi podataka• View – prezentuje modelirane podatke• Bez programske logike• Controller – kontroliše aplikacioni slijed• Interpretira korisnički zahtjev• Pokreće odgovarajući model• Prosljeđuje model prema view
  11. 11. Struktura datoteka• ./components/com_helloworld/• models/• helloworld.php• views/• helloworld/• tmpl/• default.php• view.html.php• controller.php• helloworld.php
  12. 12. Ulazna tačka: helloworld.phpindex.php?option=com_helloworld• Minimalni kôd: pokreće controller
  13. 13. Controller• Procesira korisnički zahtjev• NE RADITI• Pozive bazi podataka• Echo bilo šta• Prosljeđuje izvršenje view-u
  14. 14. Model• Sadrži programsku logiku• Pristupa bazi podataka
  15. 15. View• Prikazuje rezultat• Preuzima podatke od modela
  16. 16. Layout• Layout file radi konačni HTML ispisdefault.php nogreeting.phppravilno nepravilno
  17. 17. Pakovanje• com_helloworld.zip• admin/• controllers/• models/• views/• sql/• …• site/• models/• views/• ...• helloworld.xml
  18. 18. Manifest: helloworld.xml
  19. 19. Modules & Plugins• mod_..., plg_...• Ide u modules/, plugins/• Jednostavnija struktura• Manifest razlika: type, client, group• Mogu se pakovati sa komponentama
  20. 20. Joomla API: api.joomla.org• MVC – JController, JModel , JView• JFactory – pristup globalnim objektima• JText• višejezička podrška• JText::_() i JText::sprintf()• JRequest – čita korisnički zahtjev• JUser – Korisnički objekt• JForm – Kreiranje obrazaca iz XML-a
  21. 21. JFactory• ::getApplication()• ::getDBO()• ::getConfig()• ::getUser()• ::getDocument()• ::getLanguage()• ::getURI()
  22. 22. JRequest (now JInput)• ::getVar()• ::getWord()• ::getCmd()• ::getString()• ::getBool()• ::getFloat()• ::getInt()
  23. 23. Rukovanje datotekama• Ne koristiti fopen, fread, fwrite …• Koristiti Joomla funkcije• JFolder• JFile• JPath
  24. 24. Greške• Warnings• Errors (Exceptions since 3.0)if($db->getErrorNum()){JError::raiseError( 500, $db->stderr() );}if(uslov_nije_ispunjen()){JError::raiseError( 500, Sistemska greška );}$app = JFactory::getApplication();$app->enqueueMessage( Medvjed ulazi u vodu..., warning );
  25. 25. Prikaz greške
  26. 26. • http://thecancerus.com/debugging-php-using-xdebug-and-notepad-part-i/ (Xdebug & DBGp plugin)• http://docs.joomla.org/Setting_up_your_workstation_for_extension_development (Eclipse)• http://docs.joomla.org/Developing_a_Model-View-Controller_Component/2.5• http://developer.joomla.org (Start point)• http://docs.joomla.org/Developers (Tutorials)• http://api.joomla.org (Platform API)Pitanja?

×