lun 06 febbraio 2012

Rilasciata Joomla 1.6.3

Posted by Modify On aprile - 20 - 2011 ADD COMMENTS

Joomla 1.6.3Continua lo sviluppo del .

Dopo il rilascio della nuovissima 1.6 sono stati rilasciati 3 aggiornamenti che correggono in corsa piccoli bug di sicurezza.

L’ultimo aggiornamento risolve quattro problemi (non di sicurezza) nati dal precedente e recente aggiornamento, come comunicato nella notizia ufficiale.

Nella versione italiana disponibile qui invece è stata effettuata una revisione sui file di lingua e corrette alcune imprecisioni.

Ecco l’annuncio ufficiale



Utilizzare la classe JDatabaseQuery in Joomla 1.6

Posted by Modify On aprile - 1 - 2011 ADD COMMENTS

Utilizzare la classe JDatabaseQuery in Joomla 1.6Utilizzare la classe in

La struttura del database di è rimasto pressochè invariato dalla verisone 1.0 lanciata nel 2005.
Dopo sei anni, era abbastanza prevedibile un refactoring, per risolvere diversi problemi esistenti e per preparare il terreno per i prossimi cinque o sei anni di sviluppo.
Nell’ultima vesrsione Joomla 1.6 ci sono dei cambiamentei nell schema del database e nelle strutture dati che gestiscono lo stesso Db.
In questo e in successivi articoli vedidremo alcune di queste novità e come utilizzarle dal punto di vista dello sviluppo.

Oggi parliamo di JDatabaseQuery.
E’ una nuova classe nata per rispondere alle richieste di un supporto migliore ai motori di database esistenti, e per una maggiore scalabilità del sistema.
Joomla 1.6 introduce appunto una nuova classe utilizzata per la generazione di query che gli sviluppatori possono facoltativamente sfruttare.

Questa classe consente di astrarsi dal database usato.
Si noti inoltre che in PHP è possibile utilizzare il concatenamento e creare query anche molto complesse programmando in un modo molto ordinato e pulito.

Vediamo degli esempi pratici.

Nella versione precedente di Joomla per creare una query si usava

	$db = JFactory::getDbo();
	$db->setQuery(
	 'SELECT *'.
	 ' FROM #__articles'.
	 ' WHERE state = '.(int) $published.
	 '  AND catid = '.(int) $categoryId.
	 ' ORDER BY created DESC'
	);

che crea una query che legge tutti gli articoli della categoria selezionata con lo stato selezionato ordinati in base alla data di creazione descrescente.

	$db = JFactory::getDbo();
	$query = $db->getQuery(true);
	$query->select('*')
	 ->from('#__articles')
	 ->where('state = '.(int) $published)
	 ->where('catid = '.(int) $categoryId)
	 ->order('created DESC');
	$db->setQuery($query);

Vediamo ora un esempio più complesso.


Preso direttamente dalla documentazione online di joomla 1.6

Consideriamo un caso in cui ci sono tre tabelle denominate “__pt_property”, “__pt_building” e “__pt_unit”.
Le chiavi primarie per queste tabelle sono “property_id”, “building_id” e “unit_id”, rispettivamente.
Vogliamo costruire una query che restituisce il numero di unità associate a un property_id.
La tabella __pt_unit non ha relazione diretta con la tabella di __pt_property.
Essa ha una relazione con la tabella __pt_building, che a sua volta ha una relazione con la tabella di proprietà.

	$db =& JFactory::getDBO();
	$query = $db->getQuery(true);
	$query->select('count(*)');
	$query->from('#__pt_building AS b');
	$query->leftJoin('#__pt_unit AS u ON b.building_id = u.building_id');
	$query->where('b.property_id = '. (int) $property_id);
	$db->setQuery($query);


Ecco gli altri metodi della classe

 	select ($columns)
	delete ($table=null)
 	insert ($tables)
 	update ($tables)
 	from ($tables)
 	join ($type, $conditions)
 	innerJoin ($conditions)
 	outerJoin ($conditions)
 	leftJoin ($conditions)
 	rightJoin ($conditions)
 	set ($conditions, $glue=',')
 	where ($conditions, $glue='AND')
 	group ($columns)
 	having ($conditions, $glue='AND')
 	order ($columns)
 	clear ($clause=null)	
 	__toString ()

Ognuno di questi metodi serve per comporre la query.
Si possono richiamare anche in modo non ordinato e alla fine l’oggetto query avrà sempre la medesima stringa sql.




Joomla! 1.6Se si vuole costruire siti web sofisticati che possono essere facilmente modificati e aggiornati, è necessaria una buona conoscienza del più utilizzato della reta : !.
Il libro, ancora in versione in lingua inglese è una guida da utilizzare per Joomla, manager, amministratori e sviluppatori.
Installazione, amministrazione, modello di sviluppo, aggiornamenti dei contenuti, e molto altro ancora. Read the rest of this entry »

joomla 1.6

In questo post vedremo come creare un per ,uno dei più utilizzati nella rete, di cui da poche settimana è stata rilasciata la versione 1.6.
La nuova versione ha portato grosse novità dal pundo vista degli utilizzatori molte delle quali descritte nel precedente articolo “Finalmente disponibile Joomla 1.6“.
Delle novità ci sono ovviamente anche per chi sviluppa estensioni e questo vale quindi, anche per i moduli.

Per inserire il modulo all’interno della struttura del framework Joomla, sono necessari determinati file e cartelle con una determinata gerarchia.
Questi sono i file base per creare il modulo hello_word

folder->mod_helloword
file->mod_helloword.php
file->mod_helloword.xml
file->helper.php
folder->tmpl
file->default.php

I nomi dei file “mod_helloword” non sono casuali ma devono avere lo stesso nome indicato come nome del modulo nel file xml, cioè il nome che vogliamo dare al modulo.

Ora passiamo alla parte relativa al codice PHP.

Il file mod_helloword.php in pratica è il punto di ingresso, cioè il punto da cui il sistema Joomla accede al modulo qualunque sia la sua complessità.
In questo file ci sono dei controlli sull’accesso e successivamente vencono istanziati gli oggetti che poi gestiranno il modulo.

Vediamo un semplice esempio :

< ?php
	// impediamo l'accesso diretto alla pagina
	defined('_JEXEC') or die;
	// chiamata al file helper.php
 
	require_once dirname(__FILE__).DS.'helper.php';
 
	// chiamata al modulo
	$saluto = modCiaoMondoHelper::getSaluto($params);
	require JModuleHelper::getLayoutPath('mod_helloword');
	?>

Il file helper.php si occupa di far funzionare il modulo.
Al suo interno abbiamo tutte le funzioni che serviranno per le operazione ìche il modulo deve effettuare e da qui si richiama il layout dello stesso.

Ecco il codice del file helper.php in cui semplicemtne definiamo una funzione getSaluto che ritorna la stringa di saluto che verrà stampata sulla pagina.

< ?php
// classe del modulo
class modCiaoMondoHelper
{
	// metodo della classe
	function getSaluto( $params )
	{
		// valore di ritorno
		return 'Ciao Mondo!';
	}
}
?>

Il file tmpl/default.php si occupa del cosiddetto view del modulo cioè della visualizzazione vera e propria sulla pagina. In pratica è il template del modulo che prende i dati passati dall’helper e li visualizza.

< ?php
	defined('_JEXEC') or die;
	echo $saluto;
?>

L’ultimo file è molto importante.
Si tratta del file mod_helloword.xml che contiene informazioni relative al modulo come ad esempio i file di cui è composto, i parametri da passare, autore, versione, descrizione ed altre che vedremo in seguito.

Per il nostro semplice modulo risulta semplice anche il file xml
Ecco la struttura di mod_helloword.xml

	< ?xml version="1.0" encoding="utf-8"?>
	<extension type="module" version="1.6.0" client="site" method="upgrade">
	<name>hello word</name>
	<author>Modifycando.com</author>
	<version>1.6.0</version>
	<description>Modulo base per Joomla.</description>
	<files>
		<filename module="mod_helloword">mod_helloword.php</filename>
		<filename>mod_helloword.xml</filename>
		<filename>index.html</filename>
		<filename>helper.php</filename>
		<filename>tmpl/default.php</filename>
		<filename>tmpl/index.html</filename>
	</files>
	<params>
	</params>
	</extension>

Il file index.html che c’è nella cartella tmpl è utilizzato solo per evitare il browsing della cartella e può contentere semplicemente una pagina bianca.

	<html>
	<body>
	</body>
	</html>



Finalmente disponibile Joomla 1.6.0

Posted by Modify On gennaio - 11 - 2011 1 COMMENT

joomla 1.6Finalmente disponibile 1.6.0

Dopo dopo mesi di sviluppo e test, dopo tantissime versioni beta e diverse release candidate finalmente è stata rilasciata la versione 1.6.0 stabile di Joomla.
La nuova versione come largamente già anticipato da tempo contiene molti miglioramenti e molte novità. Read the rest of this entry »

Joomla 1.6 passa allo stato RC

Posted by Modify On dicembre - 16 - 2010 ADD COMMENTS

Joomla 1.6 RCOrmai ci siamo quasi. Il rilascio della versione stabile è programmato per il 10 Gennaio 2011.
Intanto sul sito ufficiale del progetto viene resa disponibile per il download la prima Release Candidate.
Disclamer d’obbilgo è che si tratta ancora di una versione di valutazione e non destinato per l’esecuzione di un sito di produzione.
Tuttavia si spera possa diventare la versione stabile con pochissimi ritocchi soprattutto legati alla sicurezza.
La prima versione beta della 1.6 era stata rilasciata il 17 Maggio 2010. Read the rest of this entry »

Joomla 1.6 Beta ora disponibile

Posted by Modify On maggio - 19 - 2010 ADD COMMENTS
Joomla 1.6 BetaFinalmente è disponibile la versione beta di 1.6.
Si tratta solo di una versione beta, quindi non è consigliabile utilizzarla in produzione ma è un ottimo assaggio di quello che avremo nella versione finale.
Dico subito che non ho dato uno sguardo approfondito però quel poco che ho visto è bastato per rimanere davvero entusiasta della direzione in cui sta andando il progetto joomla. Read the rest of this entry »

L’80° anniversario della Nascita di Francois Truffaut nel logo google di oggi

E’ per celebrare il regista francese  François Truffaut il Doodle di oggi. Ricorre infatti l’anniversario della sua nascita avvenuta il [...]

Creare un modulo in Joomla 1.7

Disponibile un nuovo articolo per Mr Webmaster. I moduli sono tasselli importantissimi nella creazione di un sito web Joomla e [...]

Rendimenti Adsense in Calo nel 2012

Il primo mese di questo nuovo anno è ormai terminato ed è tempo dei primi bilanci. La crisi economico/finanziaria  che [...]

Stili, override e layout alternativi in Joomla 1.7

Disponibile un nuovo articolo per Mr Webmaster. L’articolo ”Stili, override e layout alternativi in Joomla 1.7″  è una guida alla personalizzazione del [...]