COM_HELLOWORLD_PART4



Documenti analoghi
SOMMARIO... 3 INTRODUZIONE...

OSSIF WEB. Manuale query builder

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

19. LA PROGRAMMAZIONE LATO SERVER

Come modificare la propria Home Page e gli elementi correlati

Procedura SMS. Manuale Utente

Creare un sito Multilingua con Joomla 1.6

I.N.A.I.L. Certificati Medici via Internet. Manuale utente

Laboratorio Progettazione Web PHP e FORMs HTML. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2013/2014

Registratori di Cassa

Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore

GERARCHIE RICORSIVE - SQL SERVER 2008

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

Gestione Filtri. InfoBusiness 2.8 Gestione Filtri Pag. 1/ 11

Stampa Unione per lettere tipo

Punto Print Il programma per stampare. Documentazione Tecnica

File, Modifica, Visualizza, Strumenti, Messaggio

COLLI. Gestione dei Colli di Spedizione. Release 5.20 Manuale Operativo

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

CATALOGO E-COMMERCE E NEGOZIO A GRIGLIA

Scuola Digitale. Manuale utente. Copyright 2014, Axios Italia

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

ISTRUZIONI PER LA GESTIONE BUDGET

PAGINA PRINCIPALE AREE TEMATICHE

ACO Archiviazione Elettronica e Conservazione sostitutiva

ACO Archiviazione Elettronica e Conservazione sostitutiva

LINEA UP Installazione aggiornamento da Dynet Web

Il software di gestione immobiliare più facile da usare. Modulo Web v5.2.

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

SOSEBI PAPERMAP2 MODULO WEB MANUALE DELL UTENTE

Integrazione InfiniteCRM - MailUp

Amministrazione Trasparente

Versione 2015I PROTOCOLLO: CRS/SG-PAC/151021

Il Web-Service SDMX dell ISTAT

FPf per Windows 3.1. Guida all uso

CONTENT MANAGEMENT SY STEM

Database Manager Guida utente DMAN-IT-01/09/10

Manuale Utente Albo Pretorio GA

NUOVO SISTEMA AGGIORNAMENTO DA FYO

E possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools

Z3 B1 Message Addon Invio Massivo Documenti via e Fax per SAP Business One

Scheda operativa Versione rif c00. Libro Inventari

GESTIONE NUOVE QUIETANZE F24

HTML HTML. HyperText Markup Language. Struttura di un documento. Gli elementi essenziali di un documento HTML sono i seguenti TAG: <HTML>...

MANUALE UTENTE Fiscali Free

GUIDA UTENTE PRIMA NOTA SEMPLICE

CHIUSURE di MAGAZZINO di FINE ANNO

Presentazione della release 3.0

In questo manuale sono indicate le procedure per utilizzare correttamente la gestione delle offerte dei fornitori.

BDCC : Guida rapida all utilizzo

Guida Joomla. di: Alessandro Rossi, Flavio Copes

GNred Ver1.5 Manuale utenti - Modulo diashow

Gestione Turni. Introduzione

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1

Direzione Programmazione Sanitaria. Scarico Dati Sanità. Manuale Utente. Versione 1.0.0

MANUALE PARCELLA FACILE PLUS INDICE

Esercizi di JavaScript

Guida Joomla. di: Alessandro Rossi, Flavio Copes

SQL Server Integration Services. SQL Server 2005: ETL - 1. Integration Services Project

Il calendario di Windows Vista

CONTENUTI 1. INTRODUZIONE CONCETTI BASICI SU EQUINOX CMS XPRESS ACCESSO A EQUINOX CMS XPRESS PAGINA D INIZIO...

Alfa Layer S.r.l. Via Caboto, Torino ALFA PORTAL

Istruzioni per la configurazione di Internet Explorer

Product Updater Scaricamento e Installazione aggiornamento

WoWords. Guida all uso: creare ed utilizzare le frasi. In questa guida è descritto come creare ed utilizzare le frasi nel software WoWords.

PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1

Settaggio impostazioni tema. Cliccando nuovamente su aspetto e poi su personalizza si avrà modo di configurare la struttura dinamica della template.

NOVITÀ SITI COMMERCIALISTA

GESGOLF SMS ONLINE. Manuale per l utente

Client manuale d uso Versione af Ottobre 2010

Il linguaggio HTML - Parte 3

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

A T I C _W E B G U I D A AL L A N A V I G A Z I O N E S U L S I T O D E L G R U P P O. Rev. 2.1

Sistema Banca dati e Repertorio dei dispositivi medici Notifiche multiple di DM simili

Guida operativa. My Legal Corner. BestSoft SOFTWARE IN SANITÀ

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1

OSSERVATORIO REGIONALE CONTRATTI PUBBLICI DI LAVORI, SERVIZI E FORNITURE

Introduzione. Installare EMAS Logo Generator

Siti interattivi e dinamici. in poche pagine

Product Updater. Scaricamento e Installazione aggiornamento

Manuale d uso Software di parcellazione per commercialisti Ver [05/01/2015]

TERMINALE. Creazione e gestione di una postazione terminale di Eureka

MANUALE D USO DELLA PIATTAFORMA ITCMS

Lezione 6: Form 27/04/2012

Guida Compilazione Piani di Studio on-line

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare.

GUIDA ALL USO DEL PANNELLO DI GESTIONE SITO WEB

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

Manuale Utente MyFastPage

Indice generale. Il BACK-END...3 COME CONFIGURARE JOOMLA...4 Sito...4 Locale...5 Contenuti...5

Il foglio elettronico. Excel PARTE

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

MySQL Database Management System

Guida all installazione di Easy

INFORMATIVA FINANZIARIA

Centro Acquisti per la Pubblica Amministrazione EmPULIA. Linee guida per gli Enti Aderenti. Procedure Negoziate: Richiesta di Preventivo. Versione 2.

FOXWave Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA

Manuale Gestore. STWS Web Energy Control - Servizio di telelettura sul WEB

Transcript:

COM_HELLOWORLD_PART1 Nel manifest la presenza del tag <version> permette di gestire le versioni incrementali di aggiornamento anche grazie all uso del tag <update>. Le installazioni successive del componente quindi non andranno ad eseguire lo script di creazione del db ma soltanto gli eventuali script di aggiornamento della banca dati. Notare che il file.php alla fine può contenere qualsiasi cosa perché Joomla delega la responsabilità della scrittura corretta del codice al programmatore. Questa versione non contiene voci di menu per il frontend. COM_HELLOWORLD_PART2 Modificato il file helloworld.xml cambiando la versione del componente da 0.0.1 a 0.0.2. Questo tipo di modifica viene data per scontata da qui in avanti. Inoltre si introducono i riferimenti folder dedicati al controller e alle views. Creata la classe site/controller.php aggiugendo semplicemente la sua definizione class HelloWorldController extends JController{} Modificata la classe site/helloworld.php aggiungendo i metodi per instanziare il controller, recuperare il task dalla Request e redirigere alla vista relativa In Joomla il plurale ed il singolare hanno la loro rilevanza. E infatti cruciale l utilizzo del singolare e plurale (aggiungendo la s) per far capire al CMS che ci stiamo riferendo a liste di oggetti oppure al dettaglio di uno di questi. COM_HELLOWORLD_PART3 creato il file site/views/helloworld/tmpl/default.xml introducendo le chiamate necessarie alla creazione di una voce di menu, dedicata alla vista specifica del nostro componente. COM_HELLOWORLD_PART4 modificato il file helloworld.xml aggiugendo il riferimento folder dedicato ai models lato site. modificata la classe site/helloworld/view.html.php aggiungendo la parte di codice utile a recuperare il messaggio dal modello, con il comando $this >msg = $this >get('msg'); Se le convenzioni sui nomi vengono rispettate, se si utilizza come nome della

classe Model nomecomponentemodelnomevista utilizzando un file nomecomponente.php, tutto questo è gratuito e non richiede nessuno sviluppo di codice ulteriore. COM_HELLOWORLD_PART5 modificata la classe site/models/helloworld.php aggiugendo un blocco di codice che si occupa di assegnare alla variabile $this >msg un valore oppure un altro a seconda del parametro JRequest::getInt( id ) modificato il file site/views/helloworld/tmpl/default.xml aggiugendo il parametro Id alle opzioni della voce di menu. In questo modo l utente, quando crea la voce di menu, può impostare il valore di Id e condizionare l output così come descritto al punto precedente Questo meccanismo funziona grazie alla classe JFormField i cui possibili attributi sono disponibili al seguente indirizzo (http://docs.joomla.org/form_field). Con un parametro di name= id associato ad un fieldset= request, con questa classe, è possibile passare il parametro selezionato dall utente direttamente nella request (JRequest) Questo è particolarmente utile perché permette di sfruttare tutta la libreria che si preoccupa di validare l input e quindi il controllo dei tipi (es. $id = JRequest::getInt('id');). Inoltre dalla versione 2.5 in poi è possibile leggere in modo dinamico dal db in fase di generazione delle opzioni selezionabili da parte dell utente. Mentre prima si potevano soltanto cablare nel file xml. COM_HELLOWORLD_PART6 (1 DI 2) creati i file admin/sql/install.mysql.utf8.sql e admin/sql/uninstall.mysql.utf8.sql che servono rispettivamente a specificare gli script di creazione e cancellazione delle tabelle MySql necessarie al nostro componente. Da qui in poi infatti il messaggio da mostrare nella vista verrà letto direttamente dal db. creato il file admin/sql/updates/mysql/0.0.6.sql che contiene esattamente ciò che contiene il file di cui al punto precedente. Questo perché per far funzionare il sistema degli aggiornamenti automatici di Joomla è necessario, anche la prima volta, creare un file vuoto che si chiama esattamente come il primo numero di versione dichiarato nel manifest iniziale (es.0.0.1.sql). La prima volta che verranno create delle tabelle esso conterrà gli stessi script del file install.mysql.utf8.sql e nei file di versione successiva verranno aggiunti gli script MySql per l aggiornamento vero e proprio. Di solito tramite alter table

COM_HELLOWORLD_PART6 (2 DI 2) modificato il file helloworld.xml aggiungendo i tag <install> e <uninstall> per la gestione del DB modificato il file site/models/helloworld.php cambiando il sistema con cui si prepara il messaggio da consegnare alla vista, per la successiva visualizzazione. In questo caso con il parametro Id letto dalla Request si effettua una query sul DB e si forniscono gli output disponibili per la vista. $id = JRequest::getInt('id'); // Get a TableHelloWorld instance $table = $this >gettable(); // Load the message $table >load($id); // Assign the message $this >msg = $table >greeting; modificato il file site/views/helloworld/tmpl/default.xml aggiungendo l attributo addfieldpath="/administrator/components/com_helloworld/models/fields" in modo da recuperare dinamicamente, leggendoli dal db, i possibili valori da mostrare in fase di creazione voce di menu COM_HELLOWORLD_PART7 aggiunta la classe admin/controller.php in cui si definiscono le operazioni del controller specifico HelloworldController. In particolare setta la vista di default se essa non viene specificata. modifica della classe admin/helloworld.php che: include il controller nativo dalla libreria Joomla istanzia il controller HelloWorld esegue il task richiesto dal browser effettua la redirect aggiunge la classe admin/models/helloworlds.php che implementa la chiamata al db effettua la query per ottenere la lista dei greeting COM_HELLOWORLD_PART8 Creati i file admin/views/helloworlds/tmpl/default_body.php, default_head.php, default.php che si preoccupano rispettivamente di implementare la parte centrale della vista dei risultati, la parte di intestazione tabella degli stessi ed infine la parte di entry point, in cui vengono aggregate le altre due.

modificato il nome del componente da Hello World! a COM_HELLOWORLD per la predisposizione al multilingua COM_HELLOWORLD_PART9 Aggiunto il file admin/language/en GB/en GB.com_helloworld.ini che conterrà le coppie NOMEMAIUSCOLO= Traduzione in lingua Aggiunto il file admin/models/helloworld.php dove viene inplementata la logica di caricamento del form di editing dell oggetto db helloworld. Modifica al file admin/views/helloworlds/tmpl/default_body.php. Aggiunta la funzione JRoute per attribuire un link al dettaglio del greeting Modifica al file admin/views/helloworlds/tmpl/default.php. Aggiunti parametri hidden task, boxchecked per la gestione della selezione multipla con toolbar button, e form.token per la sicurezza da code injection. Aggiunta alla classe admin/vews/helloworlds/view.html.php la riga $this >addtoolbar(); per far vedere la toolbar con i tasti funzione in alto a destra. COM_HELLOWORLD_PART10 aggiunti nel file admin/helloworld.php i comandi: // Set some global property $document = JFactory::getDocument(); $document >addstyledeclaration('.icon 48 helloworld {background image: url(../media/com_helloworld/images/tux 48x48.png);}'); per l aggiunta dell immagine pinguino al pannello di controllo Ogni dichiarazione aggiunta in questa classe avrà visibilità globale all interno del componente. effettuate modifiche al file admin/views/helloworlds/view.html.php e admin/views/helloworld/view.html.php Aggiunta la riga JToolBarHelper::title($isNew? JText::_('COM_HELLOWORLD_MANAGER_HELLOWORLD_NEW') : JText::_('COM_HELLOWORLD_MANAGER_HELLOWORLD_EDIT'), 'helloworld'); al metodo addtoolbar() in modo da mostrare titolo e icona definita nello stile COM_HELLOWORLD_PART11 aggiunte nel file admin/models/forms/helloworld.xml in corrispondenza della definizione del parametro greeting le righe seguenti:

class="inputbox validate greeting" validate="greeting" required="true" aggiunto inoltre allo stesso file il parametro seguente al tag form <form addrulepath="/administrator/components/com_helloworld/models/rules"> Creato inoltre il file admin/models/forms/helloworld.js con il seguente contenuto window.addevent('domready', function() { document.formvalidator.sethandler('greeting', function (value) { regex=/^[^0 9]+$/; return regex.test(value); }); }); Tutto questo al fine di validare l input del campo greeting creato il admin/views/helloworld/submitbutton.js che si occupa di controllare il submit button e di restituire un errore utilizzando il metodo per la traduzione in multilingua aggiunte le righe necessarie al file admin/views/helloworld/view.html.php per la gestione del javascript Tutto ciò viene realizzato in questo modo per aumentare la leggibilità del codice e anche per migliorare le performance dei browser. Infatti caricare un file javascript all inizio evita problemi di interruzione di rendering a mezza pagina qualora ci fossero degli errori oppure rallentamenti NOTA: VALIDAZIONE DA FARE SIA CLIENT SIDE CHE SERVER SIDE Vengono spesso utilizzate le espressioni regolari per il form validator. Per saperne di più andare su http://regexlib.com Es: /^[^0 9]+$/: testa se la stringa contiene numeri. / = apre e chiude l espressione ^ = inizio stringa $ = fine stringa [ ] = definisce un set 0 9 = da 0 a 9 [^ ] = ^ usato all interno di un set vuol dire negare il valore che segue L uso delle espressioni regolari è comodo poiché la stessa stringa di valutazione può essere utilizzata sia client side che server side. Questo è reso possibile dalla universalità del linguaggio Javascript che è interpretato sia dai browser che dai linguaggi di programmazione più diffusi.

COM_HELLOWORLD_PART12 creato il file admin/access.xml per la gestione dell ACL modificato il file admin/controller.php per la gestione della sotto voce di menu HelloWorldHelper::addSubmenu('messages'); modificato il file admin/helloworld.php per il register della classe HelloWorldHelper attraverso la JLoader::register('HelloWorldHelper', dirname( FILE ). DS. 'helpers'. DS. 'helloworld.php'); modificato il file admin/sql/install.mysql.utf8.sql per l aggiunta del campo catid alla tabella # helloworld creato il file admin/sql/updates/mysql/0.0.12.sql inserendo l ALTER TABLE necessaria all aggiunta di cui al punto precedente modificato il file admin/models/fields/helloworld.php per l aggiunta della left join con la tabella categorie COM_HELLOWORLD_PART13 (1 DI 2) creato il file admin/config.xml in cui vengono inseriti i parametri da mostrare in corrispondenza del bottone Opzioni modificato il file admin/models/forms/helloworld.xml aggiungendo la distinzione tra fieldset di tipo details e fieldset di tipo params in modo da mostrare il form di inserimento dati suddiviso in due colonne verticali affiancate modificato il file admin/models/helloworld.php aggiungendo il metodo getscript() con cui si recupera il file administrator/components/com_helloworld/models/forms/helloworld.js modificati i file admin/sql/install.mysql.utf8.sql e admin/sql/updates/mysql/0.0.13.sql entrambi per la gestione del campo aggiuntivo params modificato il file admin/tables/helloworld.php aggiungendo il metodo bind() che specializza quello della superclasse convertendo tutti i parametri in stringhe. modificato il file admin/views/helloworld/tmpl/edit.php aggiungendo il codice necessario per la gestione dell edit in due colonne. modificato il file admin/views/helloworlds/view.html.php aggiungendo la chiamata a JToolBarHelper::preferences('com_helloworld') attraverso cui si mostra il tasto Opzioni in alto a destra. COM_HELLOWORLD_PART13 (2 DI 2)

Modificato il file site/models/helloworld.php aggiungendo i metodi: populatestate() getitem() necessari per mostrare il livello di dettaglio anche nel lato Frontend. Modificato il file site/views/view.html.php aggiungendo la chiamata all oggetto già preparato dal modello $this >item = $this >get('item'); Modificato il file site/views/tmpl/default.php aggiugendo la stampa dei messaggi così come preparati dalla vista, attraverso questa chiamata <h1><?php echo $this >item >greeting.(($this >item >category and $this >item >params >get('show_category'))? (' ('.$this >item >category.')') : '');?></h1> COM_HELLOWORLD_PART14 (1 DI 2) modificato il file admin/access.xml aggiungendo i campi specializzati per la gestione ACL del componente com_helloworld mediante il pannello Opzioni, così come avviene per tutti gli altri componenti. modificato il file admin/config.xml aggiungendo i campi necessari allo scopo di cui al punto precedente. modificato il file admin/helloworld.php aggiungendo il codice per il controllo dell ACL su funzione specifica. // Access check. if (!JFactory::getUser() >authorise('core.manage', 'com_helloworld')) { return JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR')); } modificato il file admin/helpers/helloworld.php aggiungendo il metodo getactions() necessario alla lettura dei parametri di configurazione dell ACL modificato il file admin/models/helloworld.php aggiungendo il metodo allowedit() necessario al controllo della sola funzionalità edit se permessa o meno all utente specifico. COM_HELLOWORLD_PART14 (2 DI 2)

modificato il file admin/tables/helloworld.php aggiungendo metodi per il recupero di specifici campi dal record corrente. protected function _getassettitle() { return $this >greeting; } modificato il file admin/views/helloworld/view.html.php aggiungendo nel metodo addtoolbar() di dettaglio il controllo se i task elencati debbano essere o meno abilitati all utente specifico modificato il file admin/views/helloworlds/view.html.php aggiungendo nel metodo addtoolbar() di lista il controllo se i task elencati debbano essere o meno abilitati all utente specifico COM_HELLOWORLD_PART15 creato il file admin/script.php nel quale vengono previste tutte le operazioni da fare in alcuni momenti della fase di installazione/aggiornamento del componente. I metodi in esso contenuti sono: install() da eseguire al momento dell installazione uninstall() da eseguire al momento della disinstallazione update() da eseguire ad ogni aggiornamento preflight() da eseguire prima di ogni (install, update or discover_install) postflight() eseguire dopo ogni (install, update or discover_install) In questo caso ogni metodo stampa semplicemente un testo modificato il file admin/language/en GB/en GB.com_helloworld.sys.ini aggiugendo la traduzione per i messaggi di alert relativi allo script di cui sopra