Joomla! 1.5 generatore di componenti
Creare componenti per Joomla 1.5! è decisamente più complicato che farlo per la versione 1.0 dato che è necessario scrivere parecchio codice per controllers, models, views, tables e per i templates delle view.
Tuttavia buona parte di questo codice è giusto una scrittura meccanica... e allora perchè riscriverlo ogni volta?
Questo è il motivo per cui ho scritto questo generatore di componenti per Joomla! 1.5, per me è stato utile, spero lo sia anche per voi.
Creare componenti per Joomla! 1.5
CARATTERISTICHE
- genera componenti (quasi) funzionanti
- recupera i dati necessari direttamente dal database mySql
- crea controllers, models, views, tables e templates
- crea i files necessari per l'editing dei singoli record e per il listing delle tabelle
- genera componenti installabili
- si basa su template php personalizzabili per generare i files di Joomla
- i template sono basati sul componente com_hello in modo da poter far riferimento alla documentazione ufficiale di Joomla!
REQUISITI
- runtime di .NET 2.0+ o Mono 2.4.3+
- un db mySql accessibile via tcp/ip con installate le tabelle contenenti i dati per la gestione dei quali si vuole creare il componente
- perchè siano creati componenti funzionanti, le tabelle devo avere questi tre campi (default di Joomla!): id (chiave primaria), published e ordering. Se questi campi non esistono dovranno essere editati anche i sorgenti di table e controllers.
- un po' di pazienza dato che è ancora in beta...
ISTRUZIONI
1.
scaricate il pacchetto: Joomla! 1.5 generatore di componenti e decompattatelo in una cartella.
2.
modificate JoomlaComponentBuilder.exe.config ed aggiungete il vostro server mySql nella sezione delle connectionStrings
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="testServer" providerName="MySql.Data.MySqlClient" connectionString="Server=192.168.10.76;Database=vmtest1;Uid=root;Pwd=;"/>
</connectionStrings>
</configuration>
dovrete inserire:
- indirizzo ip o mnemonico del server (Server)
- nome del database da usare (Database)
- nome utente (Uid) [deve poter vedere le tabelle necessarie al componente]
- password (Pwd)
3.
lanciate il programma.

compilate i campi:
- il nome del componente (Component Name)
- il nome (senza _ od altri caratteri strani, usando solo lettere minuscole) da usare in models. controllers... (Safe Name)
- il suffisso da aggiungere agli oggetti creati per visualizzare l'elenco dei records delle tabelle (List View Suffix)
- il prefisso delle tabelle usato per l'installazione di Joomla (Prefix Table) [la parte del nome da sostituire con '#__', tipicamente 'jos_']
4.
selezionate il database e poi le tabelle per le quali diovranno essere creati models, controllers e views

compilate i campi:
- Select: selezionate le tabelle che faranno parte del componente
- Single record object handlers name: il nome usato per creare gli oggetti necessari alla gestione dei singoli records della tabella
- Recordset object handlers name: il nome usato per creare gli oggetti necessari alla gestione alla lista dei records della tabella
5.
il programma effettua il parsing del DB per creare il componente per Joomla!

6.
e crea il componente per Joomla! in una sottodirectory nella cartella in cui è stato eseguito il programma (com_[Safe Name])

7.
A questo punto dovrete:
- aggiungere il routing per indicare la view di default nel back-end (decommentate il codice ed aggiungete il nome del controller e view) in com_[Safe Name]/admin/[Safe Name].php
- correggere le form di editing dei dati nelle forms di back-end in com_[Safe Name]/admin/views/[Table Class]/tmpl/default.php
- correggere il javascript di controllo
- creare le textarea se necessario l'editing di HTML; attualmente sono creati solo input di tipo text che non possono gestire codice HTML; in tale caso deve essere modificata anche la funzione 'store()' nel corrispettivo model per permettere tale tipo di contenuto.
- rimuove i campi non necessari dalle form di visualizzazione dei record set in com_[Safe Name]/admin/views/[Table Class List]/tmpl/default.php
- disegnare il layout delle views di front end in in com_[Safe Name]/site/views/[Table Class]/tmpl/default.php
- ovviamente aggiungere la logica del componente nel controller ;)
compattate il componente, oppure caricatelo nella directory /tmp, ed installatelo.
8.
fatemi sapere che cosa ne pensate: siate buoni, è ancora in beta ;)
OS supportati
Il programma richiede Microsoft .NET 2.0+ o Mono 2.4.3+ pertanto può essere utilizzato su qualsiasi sistema operativo che supporti uno dei due frameworks:
- windows: XP, Vista, Windows 7, Windows 2003
- linux
- Mac OS X Tiger (10.4), Leopard (10.5), and Snow Leopard (10.6)
Il pacchetto di installazione contiene la libreria Mysql.Data.dll 6.1.2.0 per windows, per utilizzare il programma in un altro OS cancellate la libreria ed installate il pacchetto 'Connector-Net 6.2.2' versione '.Net & Mono (Architecture Independent)' , o successivo, da mysql.com.
Per maggiori dettagli, o per la risoluzione dei problemi di installazione di Mono fate riferimento al supporto di Mono e del vostro sistema operativo.
Lavorare su Ubuntu
istruzioni brevi: Per usare il software su Ubuntu (testato con Ubuntu 10.4) installate i pacchetti 'monodevelop' e 'monodevelop-database'. Dopo di che scaricate il pacchetto 'Connector-Net 6.2.2' versione '.Net & Mono (Architecture Independent)' da mysql.com. Decomprimete il pacchetto ed installate la libreria nel GAC, da root, con
gacutil -i [pathToLib/]mysql.data.dll
dopo di che copiate mysql.data.dll in /user/lib/mono/2.0/
Nota importante: per maggiori dettagli, o per la risoluzione dei problemi di installazione di Mono fate riferimento al supporto di Mono e del vostro sistema operativo.
History:
13 Febbraio 2010
- nessuna nuova release; ma testato il funzionamento su Linux e Mac OS X!
17 dicembre 2009
- fe: aggiunto esempio di uso della variabile $link per gli href
- be: reso java script funzionante anche senza editing, viene visualizzato un alert per ricordare di modificarlo
- be: inserita indicazione sulla posizione in cui specificare la view di default (ricordarsi di commentare il die() ;)
- be: aggiunto esempio di uso della variabile $link per gli href
- corretto bug nell'interazione con mysql 5.1 per windows che non [ermetteva di recuperare la struttura della tabella per install.sql
- aggiunta la possibilità di specificare i nomi anche per la gestione dei record set (evita plurali quali categoriess o categorys;)
- aggiunto il controllo della sequenza di attivazione delle tab
10 dicembre 2009
- be: spostato textbox ordinamento prima dei cursori
- be: spostato inclusione della paginazione fuori dal loop
- be: corretto bug che eliminava i campi ordering e published
- be: aggiunta indentazione in template view
- be: table, corretto il commento con le barre \\
- be: model,corretto l'inizializzazione del nuovo oggetto recuperando i valori da table
- be: view.html.php, corretto controllo nuova item $hello anzichè $data
- be: view template, aggiuntoscheletro javascript per check
- be: model, inseriti i metodi per ordinare i records
- be: controllers, inserita la specifica del controller in tutti i redirect all'entry point
20 novembre 2009
- release iniziale
DOWLOAD:
- Joomla! 1.5 generatore di componenti versione 091217
- Joomla! 1.5 generatore di componenti versione 091210
Commenti
il MoMA (Mono Migration Analyzer) mi segnala 4 warning di tipo "Method with [MonoTodo]" dati da una chiamata a "ConnectionStrin gSettingsCollec tion ConfigurationMa nager.get_ConnectionS trin gs()", secondo le "Issue Descriptions" di mono-project quindi il codice potrebbe anche funzionare. al momento però non ho un desktop linux su cui fare gli esperimenti... qualcuno mi sa dire se funziona?
nota: la libreria MySql.Data.dll deve essere cancellata e sostituita da quella specifica per Mono.
ok ragazzi, funziona su linux e Mac OS X, con Mono 2.4.3 e MySql Connector 6.2.2.
buon lavoro a tutti!
marco
RSS feed dei commenti di questo post.