joomla 3 component programmeren met rad - joomladagen 2014

Download Joomla 3 Component programmeren met RAD - Joomladagen 2014

If you can't read please download the document

Upload: peter-martin

Post on 20-Aug-2015

2.277 views

Category:

Technology


0 download

TRANSCRIPT

  1. 1. Joomla 3 Component programmeren met RAD Peter Martin, www.db8.nl. twitter: @pe7er Joomladagen.nl/2014 22+23 maart 2014
  2. 2. Joomladagen 2014Joomladagen 2014 Peter Martin Joomla website specialist Marketing + Communicatie achtergrond & technische affiniteit Vrijwilliger Joomla: Global Moderator Community Leadership Team Open Coffee Nijmegen Linux User Group Nijmegen Interesses: Open Source Software Linux sinds 2007 (Ubuntu Debian Arch Linux Debian) Raspberry Pi Muziek (Vinyl) Filmhuisfilms Website: www.db8.nl e-mail: [email protected] LinkedIn: http://www.linkedin.com/in/pe7er Twitter: @pe7er
  3. 3. Joomladagen 2014Joomladagen 2014 Overzicht Presentatie >>>Sheetsvia:www.db8.nl>Componentvia:https://github.com/pe7er/db8locate automatisch functionaliteit Bootstrap, jQuery, JSON Hierarchical MVC (HMCV) - toon component views op andere plaatsen (andere views, componenten, modules)
  4. 10. Joomladagen 2014Joomladagen 2014 1. basis component (back-end) 1.Entry point /administrator/components/com_db8locate/db8locate.php 2.Dispatcher /administrator/components/com_db8locate/fof.xml 3.SQL definitie van database tabel(len) /administrator/components/com_db8locate/sql/install/mysql/install.sql 4.XML installatie manifest /administrator/components/com_db8locate/db8locate.xml 5.View: lijst /administrator/components/com_db8locate/views/items/tmpl/form.default.xml 6.View: formulier /administrator/components/com_db8locate/views/item/tmpl/form.form.xml 7.Taalbestanden /administrator/components/com_db8locate/language/en-GB/ en-GB.com_db8locate.sys.ini + en-GB.com_db8locate.ini
  5. 11. Joomladagen 2014Joomladagen 2014 c) Joomla Component met RAD
  6. 12. Joomladagen 2014Joomladagen 2014 c) Joomla Component met RAD Werkomgeving Lokale webomgeving (LAMP/XAMP/MAMP) + phpMyAdmin Joomla 3.2.x installatie Git (software versie beheer) + github.com IDE voor PHP (Netbeans/Eclipse/weapon of choice)
  7. 13. Joomladagen 2014Joomladagen 2014 db8 locate component Doel: Locaties beheren en op Google Map tonen Naam: db8 Locate Componentnaam: com_db8locate Database tabelnaam: #__db8locate_items
  8. 14. Joomladagen 2014Joomladagen 2014 1. basis component (back-end)
  9. 15. Joomladagen 2014Joomladagen 2014 1. basis component (back-end) 1.Entry point /administrator/components/com_db8locate/db8locate.php 2.Dispatcher /administrator/components/com_db8locate/fof.xml 3.SQL definitie van database tabel(len) /administrator/components/com_db8locate/sql/install/mysql/install.sql 4.XML installatie manifest /administrator/components/com_db8locate/db8locate.xml 5.View: lijst /administrator/components/com_db8locate/views/items/tmpl/form.default.xml 6.View: formulier /administrator/components/com_db8locate/views/item/tmpl/form.form.xml
  10. 16. Joomladagen 2014Joomladagen 2014 1.1 basis component entry point /administrator/components/com_db8locate/db8locate.php items
  11. 18. Joomladagen 2014Joomladagen 2014 1.3 basis component SQL definitie Maak SQL installatie bestand: /administrator/components/com_db8locate/ sql/install/mysql/install.sql install.sql bevat: CREATE TABLE, tabelnaam in meervoud: #__db8locate_items ID field, veldnaam in enkelvoud: componentnaam_enkelvoud-view_id: db8locate_item_id (in Joomla: id) title PRIMARY KEY (`db8locate_item_id`) = ID field
  12. 19. Joomladagen 2014Joomladagen 2014 1.3 basis component SQL definitie / administrator/components/com_db8locate/sql/install/mysql/install.sql CREATE TABLE IF NOT EXISTS `#__db8locate_items` ( `db8locate_item_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, PRIMARY KEY (`db8locate_item_id`) ) DEFAULT CHARSET=utf8;
  13. 20. Joomladagen 2014Joomladagen 2014 1.4 basis component XML manifest 1/2 /administrator/components/com_db8locate/db8locate.xml db8 locatePeter Martin23 March 2014Copyright (C) 2014 Peter Martin / db8.nlGNU General Public License version [email protected] to manage and display locations on a Google Map sql/install/mysql/install.sql sql/install/mysql/install.sql sql/install/mysql/install.sql sql/install/mysql/install.sql
  14. 21. Joomladagen 2014Joomladagen 2014 1.4 basis component XML manifest 2/2 /administrator/components/com_db8locate/db8locate.xml
    • COM_DB8LOCATE
    sqldb8locate.phpfof.xml
  15. 22. Joomladagen 2014Joomladagen 2014 1.5 basis component view lijst /administrator/components/com_db8locate/views/items/tmpl/form.default.xml
  16. 23. Joomladagen 2014Joomladagen 2014 1.6 basis component view formulier /administrator/components/com_db8locate/views/item/tmpl/form.form.xml
  17. 24. Joomladagen 2014Joomladagen 2014 1. basis component installatie Via Extensions > Extension Manager > Discover
  18. 25. Joomladagen 2014Joomladagen 2014 1. basis component (back-end) Lijst weergave
  19. 26. Joomladagen 2014Joomladagen 2014 1. basis component (back-end) Formulier weergave
  20. 27. Joomladagen 2014Joomladagen 2014 1. basis component (back-end) Lijstweergave na paar keer new & save
  21. 28. Joomladagen 2014Joomladagen 2014 2. taalbestand
  22. 29. Joomladagen 2014Joomladagen 2014 2. taalbestand sys.ini kort systeem taalbestand voor gebruik door Joomla Plaats in /language/ map van db8locate component! /administrator/components/com_db8locate/ language/en-GB/en-GB.com_db8locate.sys.ini COM_DB8LOCATE="db8 Locate" COM_DB8LOCATE_XML_DESCRIPTION="Component to manage and display locations on a Google Map"
  23. 30. Joomladagen 2014Joomladagen 2014 2. taalbestand .ini taalbestand voor gebruik in com_db8locate Plaats in /language/ map in component! /administrator/components/com_db8locate/ language/en-GB/en-GB.com_db8locate.ini TIP: Debug Language & verzamel vertaal labels COM_DB8LOCATE="db8 Locate" COM_DB8LOCATE_TITLE_ITEMS="Location Items" COM_DB8LOCATE_COMMON_NORECORDS="No Location Items" COM_DB8LOCATE_TITLE_ITEMS_EDIT="Edit Location Items" COM_DB8LOCATE_LOCATION_ITEM_EDIT="Location Items" COM_DB8LOCATE_LBL_ITEM_SAVED="Location Item saved" COM_DB8LOCATE_CONFIRM_DELETE="Delete Location Item?"
  24. 31. Joomladagen 2014Joomladagen 2014 2. taalbestand
  25. 32. Joomladagen 2014Joomladagen 2014 3. aan/uitzetten
  26. 33. Joomladagen 2014Joomladagen 2014 3. aan/uitzetten database veld Veld enabled aan databasetabel toevoegen om publicatiestatus op te slaan. ALTER TABLE `#__db8locate_items` ADD `enabled` TINYINT( 3 ) NOT NULL DEFAULT '1';
  27. 34. Joomladagen 2014Joomladagen 2014 3. aan/uitzetten lijst /administrator/components/com_db8locate/views/items/tmpl/form.default.xml Aan toevoegen: Aan toevoegen:
  28. 35. Joomladagen 2014Joomladagen 2014 3. aan/uitzetten
  29. 36. Joomladagen 2014Joomladagen 2014 3. aan/uitzetten formulier /administrator/components/com_db8locate/views/item/tmpl/form.form.xml Aan toevoegen: JPUBLISHED JUNPUBLISHED
  30. 37. Joomladagen 2014Joomladagen 2014 3. aan/uitzetten formulier
  31. 38. Joomladagen 2014Joomladagen 2014 4. volgorde
  32. 39. Joomladagen 2014Joomladagen 2014 4. volgorde database veld Veld ordering aan databasetabel toevoegen om volgorde op te slaan. ALTER TABLE `#__db8locate_items` ADD `ordering` INT( 11 ) NOT NULL DEFAULT '0';
  33. 40. Joomladagen 2014Joomladagen 2014 4. volgorde lijst /administrator/components/com_db8locate/views/items/tmpl/form.default.xml Aan toevoegen: Aan toevoegen:
  34. 41. Joomladagen 2014Joomladagen 2014 4. volgorde
  35. 42. Joomladagen 2014Joomladagen 2014 5. categorien
  36. 43. Joomladagen 2014Joomladagen 2014 5. categorien database veld Veld catid aan databasetabel toevoegen om category_id op te slaan. ALTER TABLE `#__db8locate_items` ADD `catid` INT( 10 ) UNSIGNED NOT NULL DEFAULT '0';
  37. 44. Joomladagen 2014Joomladagen 2014 5. categorien lijst /administrator/components/com_db8locate/views/items/tmpl/form.default.xml NB: xml bestand bevat hardcoded SQL voor MySQL moet eigenlijk model Aan toevoegen: Aan toevoegen:
  38. 45. Joomladagen 2014Joomladagen 2014 5. categorien lijst
  39. 46. Joomladagen 2014Joomladagen 2014 5. categorien formulier /administrator/components/com_db8locate/views/item/tmpl/form.form.xml Aan toevoegen:
  40. 47. Joomladagen 2014Joomladagen 2014 5. categorien formulier
  41. 48. Joomladagen 2014Joomladagen 2014 5. categorien toolbar /administrator/components/com_db8locate/toolbar.php
  42. 54. Joomladagen 2014Joomladagen 2014 6. toegangsniveaus applicatie 2/2 /administrator/components/com_db8locate/access.xml
  43. 55. Joomladagen 2014Joomladagen 2014 6. toegangsniveaus 2. (Front-end) toegang tot database items
  44. 56. Joomladagen 2014Joomladagen 2014 6. toegangsniveaus lijst
  45. 57. Joomladagen 2014Joomladagen 2014 7. parameters
  46. 58. Joomladagen 2014Joomladagen 2014 7. parameters /administrator/components/com_db8locate/config.xml via Components > db8 locate > categories > [options]
  47. 59. Joomladagen 2014Joomladagen 2014 8. meertaligheid
  48. 60. Joomladagen 2014Joomladagen 2014 8. meertaligheid database veld Veld language aan databasetabel toevoegen om taalcode op te slaan. ALTER TABLE `#__db8locate_items` ADD `language` CHAR( 7 ) NOT NULL DEFAULT '*';
  49. 61. Joomladagen 2014Joomladagen 2014 8. meertaligheid lijst /administrator/components/com_db8locate/views/items/tmpl/form.default.xml Aan toevoegen: Aan toevoegen:
  50. 62. Joomladagen 2014Joomladagen 2014 8. meertaligheid formulier /administrator/components/com_db8locate/views/item/tmpl/form.form.xml Aan toevoegen: JALL
  51. 63. Joomladagen 2014Joomladagen 2014 8. meertaligheid lijst
  52. 64. Joomladagen 2014Joomladagen 2014 9. magic fields
  53. 65. Joomladagen 2014Joomladagen 2014 9. magic fields Nu in component: enabled (state), ordering, Ook nog toevoegen aan database: created_by, created_on(created), modified_by, modified_on(modified), locked_by(checked_out), locked_on(checked_out_time), hits In lijstweergave: created_by & created_on In formulierweergave: alle velden
  54. 66. Joomladagen 2014Joomladagen 2014 10. tags
  55. 67. Joomladagen 2014Joomladagen 2014 10. tags #__tags tabel: opslag van tags, bijv: id title 4 Joomla 5 Linux #__contentitem_tag_map tabel: koppeling van content items aan tags type_alias core_content_id content_item_id tag_id type_id com_content.article 1 1 2 1 com_content.article 1 1 3 1 com_content.article 3 2 4 1 com_content.article 3 2 5 1 com_weblinks.weblink 2 1 4 2 com_weblinks.weblink 2 1 5 2
  56. 68. Joomladagen 2014Joomladagen 2014 10. tags formulier /administrator/components/com_db8locate/views/item/tmpl/form.form.xml Aan toevoegen:
  57. 69. Joomladagen 2014Joomladagen 2014 10. tags Helaas... werkt niet... bug in Joomla t/m versie 3.2.3: Gebruik van com_tags alleen mogelijk indien het component JTable gebruikt.
  58. 70. Joomladagen 2014Joomladagen 2014 11. eigen velden voor db8locate
  59. 71. Joomladagen 2014Joomladagen 2014 11. db8locate database veld Eigen voor deze applicatie specifieke velden aan databasetabel toevoegen om op te slaan. ALTER TABLE `jos_db8locate_items` ADD `location` VARCHAR( 60 ) NOT NULL , ADD `address` VARCHAR( 50 ) NOT NULL , ADD `postcode` VARCHAR( 12 ) NOT NULL , ADD `city` VARCHAR( 50 ) NOT NULL , ADD `region` VARCHAR( 50 ) NOT NULL , ADD `country` VARCHAR( 50 ) NOT NULL , ADD `latitude` VARCHAR( 10 ) NOT NULL , ADD `longitude` VARCHAR( 10 ) NOT NULL , ADD `website` VARCHAR( 100 ) NOT NULL
  60. 72. Joomladagen 2014Joomladagen 2014 11. db8locate lijst
  61. 73. Joomladagen 2014Joomladagen 2014 11. db8locate verdere verbeteringen Nieuw SQL installatie script: /administrator/components/com_db8locate/sql/install/mysql/install.sql Indien verplichte velden niet ingevuld zijn, resulteert save in wissen van nog niet opgeslagen velden... Edit formulier wordt te lang in kolommen indelen /administrator/components/com_db8locate/views/item/tmpl/form.form.xml
  62. 74. Joomladagen 2014Joomladagen 2014 12. front-end
  63. 75. Joomladagen 2014Joomladagen 2014 12. front-end basis component 1.Entry point /components/com_db8locate/db8locate.php 2.View: lijst /components/com_db8locate/views/items/tmpl/form.default.xml /components/com_db8locate/views/items/metadata.xml > voor menu items 3.View: detailpagina /components/com_db8locate/views/item/tmpl/form.item.xml /components/com_db8locate/views/item/metadata.xml > voor menu items 4.Language files /components/com_db8locate/language/en-GB/en-GB.com_db8locate.ini
  64. 76. Joomladagen 2014Joomladagen 2014 12. front-end view lijst /components/com_db8locate/views/items/tmpl/form.default.xml
  65. 77. Joomladagen 2014Joomladagen 2014 12. front-end view lijst
  66. 78. Joomladagen 2014Joomladagen 2014 12. front-end view details /components/com_db8locate/views/item/tmpl/form.item.xml
  67. 79. Joomladagen 2014Joomladagen 2014 12. front-end view details
  68. 80. Joomladagen 2014Joomladagen 2014 13. meer views
  69. 81. Joomladagen 2014Joomladagen 2014 13. meer views Combineren van XML & PHP /components/com_db8locate/views/items/tmpl/default.php en dan form.default.xml ophalen Bijv om te mixen met Google Maps
  70. 82. Joomladagen 2014Joomladagen 2014 13. meer views mixed php & xml
  71. 83. Joomladagen 2014Joomladagen 2014 13. meer views Extra (ingebouwde) uitvoermogelijkheden: &format=csv administrator/index.php?option=com_db8locate&format=csv &format=json administrator/index.php?option=com_db8locate&format=json Media files overrides