Questo post è un tutorial scritto per introdurre allo sviluppo di componenti per Joomla 1.5.
Il componente creato per l'esempio si chiama com_allarmi, e permette agli utenti registrati al sito di inserire da frontend un allarme nel sistema, memorizzato in una apposita tabella del DB MySQL.
Un allarme è composto da un'ora e da un giorno. Ogni utente inserisce allarmi in modo indipendente dagli altri utenti del sito, e attraverso il componente può vedere tutti gli allarmi che ha impostato.
Il backend mostra tutti gli allarmi impostati, classificati per utente.
Notare che allo scoccare degli allarmi non succede niente, è solo un esempio di applicazione
Essendo un tutorial introduttivo non ho preso in considerazione l'architettura MVC.
Prima di partire, potete scaricare il codice del componente finito.
Iniziamo
Creare un'installazione di Joomla in locale e testare che funzioni correttamente.
Se non avete un editor di codice preferito, prendete in considerazione EasyEclipse, una versione di Eclipse preconfigurato per lo sviluppo di Web Application in PHP, quindi perfetto per Joomla.
Aprire EasyEclipse e creare due progetti PHP: uno chiamato com_allarmi con location Joomla/components/com_allarmi (frontend), l'altro com_allarmi_admin con location Joomla/administrator/components/com_allarmi (backend).
All'interno della cartella frontend creare un file allarmi.php e una cartella di nome 'views'. Al suo interno creare una cartella chiamata 'all'.
All'interno della cartella backend creare un file admin.allami.php
FRONTEND
Aprire il file allarmi.php ed inserire le seguenti linee di codice
< ?php //no direct access defined('_JEXEC') or die('Restricted access'); echo ' <div class="componentheading">Allarmi' ?>
La riga
defined('_JEXEC') or die('Restricted access');
indica che il codice deve essere eseguito all'interno di Joomla e non può essere richiamato dall'esterno.
echo ' <div class="componentheading">Allarmi</div> '
inserisce il div nella pagina HTML.
Puntare ora il browser all'indirizzo joomla/index.php?option=com_allarmi.
Verrà visualizzata una pagina riportante il titolo del componente, così come lo abbiamo dichiarato usando la classe CSS componentheading.

/FRONTEND
BACKEND
In admin.allarmi.php inseriamo il codice
< ?php //no direct access defined('_JEXEC') or die('Restricted access'); echo 'Allarmi'; ?>
Apriamo la pagina joomla/administrator/index.php?option=com_allarmi, dove vedremo la scritta 'Allarmi' che campeggia all'interno di una pagina vuota.
/BACKEND
Come abbiamo potuto notare Joomla divide nettamente il codice inerente la parte di amministrazione (backend) e la parte visualizzata all'interno del sito (frontend).
Per poter inserire il componente all'interno del workflow di Joomla è necessario registrarlo nel database, nella tabella jos_components.
Aprite il vostro tool preferito per accedere al database (CocoaMySQL o phpMyAdmin sono perfetti, oppure direttamente la console di MySQL) e create una nuova voce nella tabella usando il codice
INSERT INTO `jos_components` VALUES (42, 'Allarmi', 'option=com_allarmi', 0, 0, 'option=com_allarmi', 'Allarmi', 'com_allarmi', 0, '', 0, '', 1);
Se viene generato un errore, cambiare il primo valore per modificare il numero univoco che identifica il componente (l'ID).
A questo punto accedendo al backend selezionare il menu Components: dovrebbe essere visibile la voce 'Allarmi', e selezionandola dovrebbe aprirsi la pagina che abbiamo visto poco fa.

Possiamo anche aggiungere un collegamento al frontend inserendo una voce nel main menu: selezionare Menus, Main Menu, premere il pulsante New, selezionare la voce Internal Link -> Allarmi. Selezionare All e dare un titolo alla voce di menu: "Allarmi", quindi premere Save.
In frontend sarà visibile la voce "Allarmi" nel menu principale, e premendola verrà visualizzata la pagina vista in precedenza.
Bene! Lo scheletro base del componente è stato creato. Ma da bravo scheletro, questo componente non fa ancora nulla.
Costuiamo intorno allo scheletro
Creiamo una tabella nel DB per memorizzare gli allarmi che gli utenti inseriscono.
CREATE TABLE `jos_allarmi` (
`id` int(11) DEFAULT NULL auto_increment,
`user` int(11) DEFAULT NULL,
`orario` time DEFAULT NULL,
`giorno` date DEFAULT NULL,
primary key(id)
);
FRONTEND
Creiamo la cartella tables ed un file chiamato allarme.php.
< ?php //no direct access defined('_JEXEC') or die('Restricted access'); class TableAllarme extends JTable { var $id = null; var $user = null; var $orario = null; var $giorno = null; function __construct(&$db) { parent::__construct( '#__allarmi', 'id', $db); } } ?>
Questo file viene creato per gestire la tabella del database in modo che non dobbiamo scrivere il codice per interagire direttamente con l'SQL, ma astraiamo il concetto, usando la classe JTable - da cui tra l'altro ereditiamo i metodi bind(), store(), load() e delete(), che useremo più tardi.
Torniamo ad agire sul file allarmi.php, inserendo il codice
< ?php //no direct access defined('_JEXEC') or die('Restricted access'); echo ' <div class="componentheading">Allarmi'; jimport('joomla.application.helper'); require_once(JApplicationHelper::getPath('html')); JTable::addIncludePath(JPATH_ADMINISTRATOR.DS.'components'.DS.$option.DS.'tables'); switch($task) { default: showAllarmi($option); break; } function showAllarmi($option) { $user =& JFactory::getUser(); $db =& JFactory::getDBO(); $query = "SELECT * FROM #__allarmi WHERE user=".$user->id." ORDER BY giorno DESC"; $db->setQuery($query); $rows = $db->loadObjectList(); if ($db->getErrorNum()) { echo $db->stderr(); return false; } HTML_allarmi::showAllarmi($rows, $option); } ?>
Questo codice importa la classe helper che ci servirà per includere il file allarmi.html.php e la classe che abbiamo definito per usare la tabella jos_allarme.
Il codice è molto semplice e in ogni caso viene lanciata la funzione showAllarmi, che si collega al database e recupera tutte le voci presenti nella tabella jos_allarmi, quindi passa il comando ad allarmi.html.php.
Provando a ricaricare nel browser la pagina joomla/index.php?option=com_allarmi verrà mostrato un messaggio di errore: Joomla non trova il file che abbiamo indicato di includere. Lo creiamo ora, allarmi.html.php.
< ?php //no direct access defined('_JEXEC') or die('Restricted access'); class HTML_allarmi { function showAllarmi($rows, $option) { ?> <table>< ?php echo " <tr> <th>ID</th> <th>Utente</th> <th>Ora</th> <th>Giorno</th> "; foreach ($rows as $row) { echo ' <tr> <td>'.$row->id.'</td> <td>'.$row->user.'</td> <td>'.$row->orario.'</td> <td>'.$row->giorno.'</td> </tr> '; } ?></table> < ?php } } ?>
Questo file organizza una semplice tabella mostrando i valori degli allarmi.
Inseriamo un valore di esempio nel database
INSERT INTO `jos_allarmi`
VALUES (
'1', '62', NOW( ) , '2008-08-21'
);
Dove 62 è l'id dell'utente amministratore.
Se apriamo la pagina di frontend come utente non registrato, non vedremo nessun allarme. Facendo il login come amministratore vedremo invece una riga con i valori appena inseriti nel database.

In effetti è più indicato aggiungere la voce che componente nel menu User, che compare soltanto quando un utente effettua il login.
/FRONTEND
BACKEND
Apriamo l'interfaccia di amministrazione ed eliminiamo la voce Allarmi nel Main Menu, ed inseriamola nello User Menu.
Il backend per ora non svolge alcuna operazione. Vediamo di elencare tutti gli allarmi impostati.
In admin.allarmi.php inseriamo
< ?php //no direct access defined('_JEXEC') or die('Restricted access'); jimport('joomla.application.helper'); require_once(JApplicationHelper::getPath('admin_html')); JTable::addIncludePath(JPATH_COMPONENT.DS.'tables'); switch($task) { default: showAllarmi($option); break; } function showAllarmi($option) { $db =& JFactory::getDBO(); $query = "SELECT * FROM #__allarmi ORDER BY giorno DESC"; $db->setQuery($query); $rows = $db->loadObjectList(); if ($db->getErrorNum()) { echo $db->stderr(); return false; } HTML_allarmi::showAllarmi($rows, $option); } ?>
Ed in admin.allarmi.html.php
< ?php //no direct access defined('_JEXEC') or die('Restricted access'); class HTML_allarmi { function showAllarmi($rows, $option) { ?> <table>< ?php echo " <tr> <th>ID</th> <th>Utente</th> <th>Ora</th> <th>Giorno</th> "; foreach ($rows as $row) { echo ' <tr> <td>'.$row->id.'</td> <td>'.$row->user.'</td> <td>'.$row->orario.'</td> <td>'.$row->giorno.'</td> </tr> '; } ?></table> < ?php } } ?>
Questo codice ricalca quasi fedelmente quello usato per il frontend, le differenze risiedono nel file admin.allarmi.php, dove il path per la cartella tables è diverso e non ci interessano le informazioni sull'utente, in quanto carichiamo tutti gli allarmi inseriti.

/BACKEND
Creiamo una form per inserire nuovi allarmi
Non vi è ancora modo di inserire un nuovo allarme, per cui ora modifichiamo il frontend.
FRONTEND
Prendiamo il file allarmi.html.php e modifichiamo la funzione showAllarmi, in modo che inserisca un link alla fine della tabella, che rimandi al componente, con task newAlarm. Inoltre aggiungiamo la funzione newAlarm, che ha il compito di mostrare la form per l'inserimento di un nuovo allarme.
function showAllarmi($rows, $option) { ?> <table>< ?php echo " <tr> <th>ID</th> <th>Utente</th> <th>Ora</th> <th>Giorno</th> "; foreach ($rows as $row) { echo ' <tr> <td>'.$row->id.'</td> <td>'.$row->user.'</td> <td>'.$row->orario.'</td> <td>'.$row->giorno.'</td> </tr> '; } ?></table> < ?php echo '<a href="index.php?option=com_allarmi&task=newAlarm">Crea nuovo allarme'; } function newAlarm($id, $option) { JHTML::_('behavior.calendar'); ?> <form action="index.php?option=com_allarmi&task=salvaAllarme" method="post" name="formNuovoAllarme" id="formNuovoAllarme"> <table> <tr> <td> Orario: <input type="text" name="orario" id="orario" /> </td> </tr> <tr> <td> Giorno: <input type="text" name="giorno" id="giorno" /> <input type="reset" class="button" value="..." onclick="return showCalendar('giorno', 'yy-mm-dd');" /> </td> </tr> <tr> </tr> </table> <input type="hidden" name="user" value="<?php echo $id; ?/>" /> <input type="submit" class="button" value="crea" /> </form> < ? }
Inseriamo il task newAlarm in allarmi.php
switch($task) { case newAlarm: newAlarm($option); break; default: showAllarmi($option); break; }
Quindi, sempre in allarmi.php, creiamo la funzione newAlarm.
function newAlarm($option) { $id = null; $user =& JFactory::getUser(); if($user->id) { $id = $user->id; } $row =& JTable::getInstance('allarme', 'Table'); if (!$row->bind(JRequest::get('post'))) { echo "<script> alert('".$row->getError()."'); window.history.go(-1); </script>\n"; exit(); } HTML_allarmi::newAlarm($id, $option); }
Infine creiamo la funzione salvaAllarme, chiamata dalla form.
function salvaAllarme ($option) { global $mainframe; $row =& JTable::getInstance('allarme', 'Table'); if (!$row->bind(JRequest::get('post'))) { echo "<script> alert('".$row->getError()."'); window.history.go(-1); </script>\n"; exit(); } if (!$row->store()) { echo "<script> alert('".$row->getError()."'); window.history.go(-1); </script>\n"; exit(); } $mainframe->redirect('index.php?option='.$option, 'Allarme salvato'); }
Dobbiamo ulteriormente modificare lo switch
switch($task) { case newAlarm: newAlarm($option); break; case salvaAllarme: salvaAllarme($option); break; default: showAllarmi($option); break; }
Facciamo una nuova modifica a showAllarmi, in modo che non sia visibile agli utenti non registrati.
function showAllarmi($option) { $user =& JFactory::getUser(); if($user->id == 0) { echo "Occorre il login per visualizzare questa pagina"; } else { $db =& JFactory::getDBO(); $query = "SELECT * FROM #__allarmi WHERE user=".$user->id." ORDER BY giorno DESC"; $db->setQuery($query); $rows = $db->loadObjectList(); if ($db->getErrorNum()) { echo $db->stderr(); return false; } HTML_allarmi::showAllarmi($rows, $option); } }
Siamo a buon punto
A questo punto il componente funziona come dovrebbe: provate ad effettuare il login come utente e premete il pulsante "Crea nuovo allarme".

Inserite l'ora nel formato di MySQL, ovvero 17:34:37 e selezionate una data dal calendario premendo il pulsante "...".
Cliccando 'Crea' verrà inserito l'allarme nel database, e mostrato insieme agli altri che avete creato.

Effettuando il logout e collegandosi come un altro utente, non verranno visualizzati gli allarmi degli altri utenti, mentre da admin sarà possibile vedere tutto.

Conclusioni
Questo componente è un primo esempio di sviluppo per Joomla 1.5. Prima di poter usare un componente di questo tipo occorre come minimo introdurre una protezione contro SQL injection, andando a controllare bene i valori che vengono digitati nella form.
In caso contrario il componente potrebbe essere soggetto a problemi di sicurezza.
E' possibile scaricare il codice del componente.
Tags: componente, Estensioni Joomla, Joomla, Sviluppo per Joomla- Post correlati:

August 22nd, 2008 at 4:00 pm
Bravo Flavio ma…
eheh un paio di critiche non te le risparmio! >D
1° - sarebbe stato più scorrevole suddividere il post in più pagine
2° - dato che credo che questa guida vada incontro a neofiti della creazione estensioni in Joomla!, secondo me l’hai fatta poco basilare, de tipo frasi come:
“Inseriamo un valore di esempio nel database
INSERT INTO `jos_allarmi`
VALUES (
‘1′, ‘62′, NOW( ) , ‘2008-08-21′
);
Dove 62 è l’id dell’utente amministratore.”
…un utente medio non saprebbe nemmeno COME inserire tale dato XD
Ciò non toglie che come al solito ti vengono le idee prima di me! Bravo!
August 22nd, 2008 at 5:19 pm
Grazie Odino, in effetti ho dato per scontate alcune cose.. come hai fatto notare tu, l’uso di un database e la conoscenza di PHP.
Se uno decide di avventurarsi nella realizzazione di estensioni per Joomla.. credo che queste cose siano da conoscere
Però hai fatto bene a farmelo notare!
Hai ragione riguardo alla paginazione, probabilmente sarebbe stato meglio scrivere due post diversi, parte 1 e parte 2.
Mi sono accorto di quant’era lunga soltanto dopo averla pubblicata
Non vorrei iniziare a prendere il brutto vizio di scrivere post-papiri
August 22nd, 2008 at 5:24 pm
Bah, non prendertela eh, anzi se scrivi papiri li leggo comunque!
Il fatto era che più dai per scontato delle cose meno gente avrai qui a leggere, e siccome per me tante delle cose che scrivi sono risorse che MOLTI dovrebbero apprendere…tutto qui.
P.S. Hai 2 mail
August 25th, 2008 at 6:42 pm
ciao
complimenti per il tuo tutorial davvero chiaro..ma se avessi voluto avere una pagina in cui da normale utente potevo vedere tutti gli allarmi inseriti dagli altri utenti come avrei dovuto fare??
ciao e grazie
August 25th, 2008 at 7:13 pm
Ciao smokingOro
Innanzitutto bisognerebbe creare una nuova View ed associarla al Main menu, accessibile a tutti, con il compito di mostrare
index.php?option=’.$option.’&task=showTuttiAllarmi
Quindi nel file allarmi.php avresti un nuovo case nello switch($task), chiamato ad esempio showTuttiAllarmi, con relativa funzione.
Nel file allarmi.html.php ci sarebbe la rispettiva funzione usata per generare effettivamente l’elenco degli allarmi.
Spero di essere stato (un po’) chiaro
Ciao
August 26th, 2008 at 1:13 pm
ciao, anche io trovo molto utile questo tutorial.. è esattamente quello che cercavo!
Purtroppo però sono fermo di fronte ad un ostacolo che da solo non riesco a superare:
Nel FrontEnd e nel BackEnd creo i file e le cartelle necessarie, li compilo con il codice descritto nella procedura. Ho anche aggiunto la riga di dati nella tabella jos_components.. fin quì tutto ok credo.
Il risultato è che se faccio puntare il browser sul componente mi da errore 404 ‘componente non trovato’.
Nel BackEnd trovo la voce relativa al componente nell’apposito menu di amministrazione, ma l’errore è lo stesso.
Dove sbaglio? Grazie in anticipo.
August 27th, 2008 at 11:51 am
Grande, veramnte interessante.
Ma visto la tua competenza, perchè non crei un tutorial
dove viene illustrata l’architettura di Joomla, per intenderci
il progetto Joomla rapresentato tramite il suo diagramma di classi,sarebbe interessante riuscire a capire le vaire funzionalità
delle classi.
Sai indicarmi qualcorsa che si trovi in rete?
Coplimenti per l’articolo su Html.it
Buon lavoro.
August 27th, 2008 at 12:27 pm
@cristian: Ciao, forse hai gli URL SEF abilitati? Altrimenti non saprei dirti. Ho pubblicato il codice del componente finito, così puoi confrontarlo e vedere se c’è qualcosa di sbagliato. http://www.copesflavio.com/download/com_allarmi.zip
@cosb2002: Grazie per i complimenti, quello che suggerisci sarebbe davvero una cosa interessante.. magari un’esplorazione di Joomla a puntate
Oltre al Development Wiki http://dev.joomla.org/component/option,com_jd-wiki/Itemid,32/ non saprei cosa suggerirti
August 29th, 2008 at 2:23 am
ciao flavio.. gli URL SEF sono disabilitati. E anche caricando il tuo componente mi da lo stesso errore. Ho confrontato i codici, sono uguali.
Avrò qualche magagna nella struttura delle directory! E’ un peccato, mi piaceva l’idea di imparare a sviluppare un po’. Va beh.. mi darò ai contenuti nel frattempo.
August 29th, 2008 at 5:04 pm
@cristian: il nome del componente della view non è lo stesso riportato in altri file, vero?
L’errore in questione è una cavolata, vai nella view di default e trova dove il nominativo non corrisponde.
Se invece l’errore si presenta con altri componenti: “ahi, ahi…”
August 29th, 2008 at 6:08 pm
@Odino: grazie per l’intervento
August 29th, 2008 at 6:18 pm
@odiono: i componenti hanno nomi univoci. Fortunatamente l’errore mi si presenta solo con quello che ho creato io e quello che ha postato flavio. I nativi e quelli che installo e disinstallo regolarmente vanno benissimo! Non so che dire…. non può essere un problema di directory anzichè di nome? Il mio sito sta sotto root/Joomla/
August 30th, 2008 at 11:51 am
@cristian:nono allora il problema è proprio l’architettura del tuo componente, o meglio, il nome che la view interpreta.
Come si chiama la view di default del back-end?
E qual’è l’URL che ti restituisce l’errore 400 ( scrivi pure l’URL )?
@flavio: figurati, i’m waiting for your mail. Intanto sto scrivendo la mia
October 3rd, 2008 at 10:19 pm
Ciao!!grazie veramente per la guida!!
Volevo chiederti un grosso favore!!mi potresti aiutare con il mio componente mi serve per il mio tirocinio e non so piu che fare!!non riesco ad andare avanti!!
Fammi saxe grazie mille
October 5th, 2008 at 3:53 pm
@wdanaw: che problema hai, di preciso?
October 11th, 2008 at 2:51 pm
Allora io ho cominciato a sviluppare il componente che consiste della gestione del prestito di risorse del nostro centro di calcolo!!
FRONTEND:
l’utente del componente deve poter chiedere in prestito un risorsa di quelle inserite dall’amministratore e se la risorsa non e’ libera mettersi in lista di attesa, in piu deve poter fare l’upload di un file associata a una precisa risorsa e prima della scadenza della risorsa di 2 giorni il sistema dovrebbe mandare un email di avviso all’utente ricordandogli di restituirla in tempo. L’amministratore cmq deve poter richiedere un risorsa che gli interessa anche prima della scadenza sempre mandando un email all’utente che l’aveva presa in prestito.
BACKEND:
l’amministratore dovrebbe poter
- visualizzare le info sugli utenti
- aggiungere, visualizzare e modificare un risorsa
- fare l’upload dei file e associarli ad una determinata risorsa
- poter effettuare una ricerca di risorse (vale anche per l’utente nel front end) e di un utente con determinati criteri
- visualizzare le scadenze dei prestiti
- mandare un email di comunicazione agli utente
io ho fatto i vari form per inserire..e veramente non riesco ad organizzare le mie idee e come sviluppare le cose!! … in poche parole mi serve una guida che mi illumini la strada! ;p
se per te non e’ un problema ti mando quello che ho fatto per email!
October 30th, 2008 at 10:23 am
Ottima guida, Direi “complicata” al punto giusto…se uno è arrivato qui e vuole sviluppare un componente per Joomla si suppone che abbia come minimo un po’ di familiarità con MySql, php, phMyAdmin ;-)…(magari un po’ meno con le classi, concetti di astrazione ed ereditarietà)
Non ho porvato il componente che hai scritto tu ma mi è abbastanza chiaro cosa fa e quali sono i passi per arrivarci. Adesso allo studio dell’architettura MVC!!! (hint: dai, scrivi qualcosa anche su quella)
November 13th, 2008 at 4:58 pm
Comlimenti per il tutorial!Davvero utile.
Ho però una domanda…dopo essere arrivati a questo punto (che è già una grande soddisfazione per un neofita) come posso inserire nuovamente le icone di creazione pdf e stampa?
è obbligatorio usare l’architettura MVC?
Grazie e ancora complimenti!
November 23rd, 2008 at 5:31 pm
Grande Flavio!!!!
Mi viene in mente la pubblicità del caffè… non ricordo quale
“Se me lo dicevi prima!… Ormai!”
Ci ho messo un sacco di tempo a capire come funzionavano i componenti di Joomla. Se avessi letto prima la tua guida avrei risparmiato metà del tempo ;-D
Ormai!
Quoto le osservazioni di Odino ma forse potrebbe bastare anche una postilla nell’introduzione del tipo: per comprendere questo tutorial bisogna avere nozioni minime di…
Ottimo tutorial comunque. Ben fatto!
Ciao
November 23rd, 2008 at 6:39 pm
Ciao bigham, ti ringrazio per i complimenti! Per il discorso del caffè.. diciamo meglio tardi che mai
December 10th, 2008 at 6:45 pm
Ciao, grazie per il tutorial!
Ho visto che hai usato un’unica tabella.
Dovendone usare invece di piu, ad esempio 3, cosa dovrei fare? Dovrei creare dentro la dir “tables” altrettanti file con le classi per gestire le tabelle? Oppure una sola?
December 10th, 2008 at 7:16 pm
Ciao Claudio, si dovresti creare un file per ogni tabella che usi.
Es.
file tables/elementi.php class TableElementi -> jos_elementi
file tables/categorie.php class TableCategorie -> jos_categorie_elementi
December 16th, 2008 at 6:22 pm
Ciao Flavio,
ho fatto anche questo ed è tutto ok! Grazie mille!
Una sola cosa non ho capito: su molte pagine di Joomla vedo le classiche iconcine di intestazione contenuto (stampa, esporta pdf ecc).
Per metterle nelle pagine dei nostri moduli basta richiamare una funzione di Joomla o bisogna sviluppare qualcosa nel nostro codice?
December 16th, 2008 at 6:39 pm
Ciao Claudio, bene sono contento che tu abbia risolto!
Per quanto riguarda le icone di intestazione, vengono visualizzate dal componente com_content.. e sono specifiche per quel componente. Certo puoi modificare i file per realizzare questa funzione anche nella tua estensione, prova a guardare il file
components/com_content/views/article/tmpl/default.php, linee 25-41
e
components/com_content/helpers/icon.php
December 18th, 2008 at 1:06 pm
Ciao,
complimenti per la guida!!!
avrei la necessita di cambiare il nome dei componenti sul menu del back-end, mi potresti spiegare come dovrei fare???
esempio vorrei che il componente joomlapack nel menu di amministrazione si chiamasse BACKUP
grazie anticipatamente
December 18th, 2008 at 2:15 pm
Ciao Lorenzo, devi agire sul database.
Usando phpMyAdmin o un programma per accedere al database, apri la tabella jos_components e modifichi il valore della colonna admin_menu_alt corrispondente alla linea del componente joomlapack.
December 18th, 2008 at 4:53 pm
Ciao Flavio ti chiedo di controllare che per modificare il nome di un componente in backend bisogni modificare “admin_menu_alt” e non direttamente “name”
@lorenzo: prova o altrimenti aspetta il fine settimana che esce il componente COMNAME, realizzato appositamente per questo
December 18th, 2008 at 5:00 pm
Aaah grande Odino, hai proprio ragione
grazie per la correzione! ..ma a che serve allora admin_menu_alt?
December 18th, 2008 at 5:07 pm
Allora seguendo la logica dell’aternative text si può pensare che sia un testo che vada ad ampliare la descrizione del mero nome del componente.
Occhio a una cosa: i componenti di default, quelli con iscore = 1 sul DB, anche agendo su “name”, “admin_menu_alt” o altri campi sembrano non ricevere cambiamenti
December 18th, 2008 at 5:20 pm
Ecco la DOC:
http://api.joomla.org/svn/Joomla-Framework/Table/JTableComponent.html
December 21st, 2008 at 2:12 pm
Ciao, complimenti per la guida.
Volevo chiederti una cosa. Sto modificando il componente, cioè sto aggiungendo dei dati, però vorrei anche creare la possibilità dal lato amministrativo di cancellare gli allarmi scaduti, oppure cambiare lo stato di esso, cioè da stato in attesa a stato scaduto. Come posso inserire in alto la barra per cancellare o cambiare lo stato?
January 6th, 2009 at 8:51 pm
il formato del parametro &format della funzione showCalendar per funzionare deve essere questo:
showCalendar(’giorno’, ‘%d-%m-%Y’)