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.

Creare componenti per Joomla! - impostazioni componente

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

Creare componenti per Joomla! - Selezione Db e tabelle

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!

Creare componenti per Joomla! - Parsing delle tabelle

 

 

6.

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

Creare componenti per Joomla! - crittura del componente

 

 

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:

 

 

 

Commenti  

 
+1 #1 giovanni 2010-01-13 10:59
Carino, anche se per i componenti scritti per ora, ho preferito fare tutto da 0
Citazione
 
 
0 #2 Salvatore 2010-01-22 21:34
Ma per Linux? mono?
Citazione
 
 
0 #3 mmleoni 2010-01-23 07:52
ciao,
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.
Citazione
 
 
0 #4 mmleoni 2010-02-13 16:03
IT WORKS!
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
Citazione
 

Aggiungi commento


Codice di sicurezza
Aggiorna