{"id":195,"date":"2014-06-19T23:02:11","date_gmt":"2014-06-19T21:02:11","guid":{"rendered":"http:\/\/www.valeriofinazzo.it\/wordpress\/?p=195"},"modified":"2014-06-19T23:02:30","modified_gmt":"2014-06-19T21:02:30","slug":"joomla-tutorial-creare-un-component-struttura","status":"publish","type":"post","link":"http:\/\/www.valeriofinazzo.it\/wordpress\/2014\/06\/joomla-tutorial-creare-un-component-struttura\/","title":{"rendered":"JOOMLA &#8211; TUTORIAL &#8211; CREARE UN COMPONENT &#8211; STRUTTURA"},"content":{"rendered":"<p style=\"color: #0d293f; text-align: justify;\">Iniziamo una serie di articoli mirati alla realizzazione di un componente che offre una funzionalit\u00e0 Live Assistant da integrare nel nostro sito Joomla 2.5, intesa come funzionalit\u00e0 di supporto chat per gli utenti del sito.<\/p>\n<p style=\"color: #0d293f; text-align: justify;\">La componente amministrativa consente di configurare le caratteristiche delle chat mentre la componente front-end presenta due funzioni separate:<\/p>\n<ul style=\"color: #143c5d; text-align: justify;\">\n<li>per gli utenti guest deve essere possibile l&#8217;avvio di una chat<\/li>\n<li>per gli operatori autorizzati deve essere possibile gestire le chat avviate<\/li>\n<\/ul>\n<div style=\"color: #0d293f; text-align: justify;\">La configurazione delle chat viene salvata all&#8217;interno del database, mentre le chat vengono salvate su file system, in modo da minimizzare gli accessi al database.<\/div>\n<div style=\"color: #0d293f; text-align: justify;\">Creiamo la nostra directory com_liveassistant e all&#8217;interno di essa definiamo il nostro file manifest che definisce la struttura del nostro componente e le operazioni da effettuare in sede di installazione.<\/div>\n<div style=\"color: #0d293f; text-align: justify;\"><\/div>\n<div style=\"color: #0d293f; text-align: justify;\">\n<pre class=\"lang:default decode:true \">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\r\n&lt;extension type=\"component\" version=\"2.5.0\" method=\"upgrade\"&gt;\r\n&lt;name&gt;LiveAssistant&lt;\/name&gt;\r\n&lt;author&gt;Valerio Finazzo&lt;\/author&gt;\r\n&lt;creationDate&gt;Marzo 2014&lt;\/creationDate&gt;\r\n&lt;authorEmail&gt;\u00a0valerio.finazzo@gmail.com&lt;\/authorEmail&gt;\r\n&lt;authorUrl&gt;www.valeriofinazzo.it&lt;\/authorUrl&gt;\r\n&lt;version&gt;1.0.0&lt;\/version&gt;\r\n&lt;description&gt;Live Assistant&lt;\/description&gt;\r\n\u00a0\r\n&lt;install&gt;\r\n&lt;sql&gt;\r\n&lt;file driver=\"mysql\" charset=\"utf8\"&gt;sql\/install.mysql.utf8.sql&lt;\/file&gt;\r\n&lt;\/sql&gt;\r\n&lt;\/install&gt;\r\n&lt;uninstall&gt;\r\n&lt;sql&gt;\r\n&lt;file driver=\"mysql\" charset=\"utf8\"&gt;sql\/uninstall.mysql.utf8.sql&lt;\/file&gt;\r\n&lt;\/sql&gt;\r\n&lt;\/uninstall&gt;\r\n&lt;files folder=\"site\"&gt;\r\n&lt;filename&gt;index.html&lt;\/filename&gt;\r\n&lt;filename&gt;liveassistant.php&lt;\/filename&gt;\r\n&lt;filename&gt;controller.php&lt;\/filename&gt;\r\n&lt;folder&gt;views&lt;\/folder&gt;\r\n&lt;folder&gt;models&lt;\/folder&gt;\r\n&lt;folder&gt;language&lt;\/folder&gt;\r\n&lt;folder&gt;assets&lt;\/folder&gt;\r\n&lt;\/files&gt;\r\n\u00a0\r\n&lt;administration&gt;\r\n&lt;menu&gt;Live Assistant&lt;\/menu&gt;\r\n&lt;files folder=\"admin\"&gt;\r\n&lt;filename&gt;index.html&lt;\/filename&gt;\r\n&lt;filename&gt;liveassistant.php&lt;\/filename&gt;\r\n&lt;filename&gt;controller.php&lt;\/filename&gt;\r\n&lt;folder&gt;views&lt;\/folder&gt;\r\n&lt;folder&gt;models&lt;\/folder&gt;\r\n&lt;folder&gt;sql&lt;\/folder&gt;\r\n&lt;folder&gt;assets&lt;\/folder&gt;\r\n&lt;\/files&gt;\r\n&lt;languages folder=\"admin\"&gt;\r\n&lt;language tag=\"en-GB\"&gt;language\/en-GB\/en-GB.com_liveassistant.ini&lt;\/language&gt;\r\n&lt;language tag=\"en-GB\"&gt;language\/en-GB\/en-GB.com_liveassistant.sys.ini&lt;\/language&gt;\r\n&lt;language tag=\"it-IT\"&gt;language\/it-IT\/it-IT.com_liveassistant.ini&lt;\/language&gt;\r\n&lt;language tag=\"it-IT\"&gt;language\/it-IT\/it-IT.com_liveassistant.sys.ini&lt;\/language&gt;\r\n&lt;\/languages&gt;\r\n&lt;\/administration&gt;\r\n\u00a0\r\n&lt;\/extension&gt;<\/pre>\n<p>&nbsp;<\/p>\n<\/div>\n<div style=\"color: #0d293f; text-align: justify;\">\n<div><em>\u00a0<\/em><\/div>\n<\/div>\n<div style=\"color: #0d293f; text-align: justify;\">I primi tag sono descrittivi e contengono i dati dell&#8217;autore.<\/div>\n<div style=\"color: #0d293f; text-align: justify;\">Il tag &lt;install&gt; contiene gli script sql che devono essere lanciati in sede di installazione, solitamente contiene gli script sql per la generazione delle tabelle.<\/div>\n<div style=\"color: #0d293f; text-align: justify;\">Il tag &lt;uninstall&gt; contiene gli script sql che vengono lanciati in sede di disinstallazione, solitamente contiene gli script sql per la rimozione delle tabelle.<\/div>\n<div style=\"color: #0d293f; text-align: justify;\">Il tag files individua l&#8217;insieme di file che costituiscono le funzioni del front-end. Tramite l&#8217;attributo folder \u00e8 possibile specificare un path relativo e al suo interno specifichiamo file e directory da copiare nel nostro front-end<\/div>\n<div style=\"color: #0d293f; text-align: justify;\">Il tag administration individua l&#8217;insieme di file che costituiscono le funzioni del backend.<\/div>\n<div style=\"color: #0d293f; text-align: justify;\">Il tag languages individua i file per la localizzazione del nostro componente, nel nostro caso stiamo localizzando in italiano e in inglese.<\/div>\n<div style=\"color: #0d293f; text-align: justify;\">In base a quanto definito nel nostro manifest il nostro componente presenter\u00e0 la seguente alberatura:<\/div>\n<div style=\"color: #0d293f; text-align: justify;\"><\/div>\n<div style=\"color: #0d293f; text-align: justify;\"><img loading=\"lazy\" src=\"http:\/\/www.valeriofinazzo.it\/joomla\/images\/components\/component_file_system.png\" alt=\"\" width=\"253\" height=\"96\" border=\"0\" \/><\/div>\n<div style=\"color: #0d293f; text-align: justify;\"><\/div>\n<div style=\"color: #0d293f; text-align: justify;\">Accedendo alla cartella site \u00e8 visibile la seguente struttura dati<\/div>\n<div style=\"color: #0d293f; text-align: justify;\"><\/div>\n<div style=\"color: #0d293f; text-align: justify;\"><img loading=\"lazy\" src=\"http:\/\/www.valeriofinazzo.it\/joomla\/images\/components\/site_file_system.png\" alt=\"\" width=\"257\" height=\"168\" border=\"0\" \/><\/div>\n<div style=\"color: #0d293f; text-align: justify;\"><\/div>\n<div style=\"color: #0d293f; text-align: justify;\"><\/div>\n<div style=\"color: #0d293f; text-align: justify;\">Mentre accedendo alla cartella admin \u00e8 visibile la seguente struttura dati<\/div>\n<div style=\"color: #0d293f; text-align: justify;\"><\/div>\n<div style=\"color: #0d293f; text-align: justify;\"><\/div>\n<div style=\"color: #0d293f; text-align: justify;\"><img loading=\"lazy\" src=\"http:\/\/www.valeriofinazzo.it\/joomla\/images\/components\/admin_file_system.png\" alt=\"\" width=\"259\" height=\"185\" border=\"0\" \/><\/div>\n<div style=\"color: #0d293f; text-align: justify;\"><\/div>\n<div style=\"color: #0d293f; text-align: justify;\">Come potete vedere \u00e8 presente il file index.html in ogni cartella al fine di minimizzare i rischi di un hacking basato sulla conoscenza del file system del nostro sito.<\/div>\n<div style=\"color: #0d293f; text-align: justify;\">Compattando la directory principale in formato zip possiamo installare il nostro componente su joomla ottenendo questo effetto<\/div>\n<div style=\"color: #0d293f; text-align: justify;\">Nel prossimo articolo imposteremo la base dati.<\/div>\n<div style=\"color: #0d293f; text-align: justify;\"><\/div>\n<div style=\"color: #0d293f; text-align: justify;\"><img loading=\"lazy\" src=\"http:\/\/www.valeriofinazzo.it\/joomla\/images\/components\/component_installed.png\" alt=\"\" width=\"750\" height=\"29\" border=\"0\" \/><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Iniziamo una serie di articoli mirati alla realizzazione di un componente che offre una funzionalit\u00e0 Live Assistant da integrare nel nostro sito Joomla 2.5, intesa come funzionalit\u00e0 di supporto chat per gli utenti del sito. La componente amministrativa consente di configurare le caratteristiche delle chat mentre la componente front-end presenta due funzioni separate: per gli &hellip; <a href=\"http:\/\/www.valeriofinazzo.it\/wordpress\/2014\/06\/joomla-tutorial-creare-un-component-struttura\/\" class=\"more-link\">Continua la lettura di <span class=\"screen-reader-text\">JOOMLA &#8211; TUTORIAL &#8211; CREARE UN COMPONENT &#8211; STRUTTURA<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[30],"tags":[31],"_links":{"self":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/195"}],"collection":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/comments?post=195"}],"version-history":[{"count":2,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/195\/revisions"}],"predecessor-version":[{"id":197,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/195\/revisions\/197"}],"wp:attachment":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/media?parent=195"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/categories?post=195"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/tags?post=195"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}