Archivio

Posts Tagged ‘Joomla’

Joomla: wdbanner variant v. 1.3, modulo per banner a rotazione

27 luglio 2011

Ho aggiornato il modulo per la visualizzazione di banner a rotazione con le seguenti caratteristiche:

  • Rimosso il campo suffisso dai parametri: ora non è più necessario specificare il suffisso che identificava univocamente il banner in caso di presenza di più moduli nella stessa pagina
  • Aggiunto parametro Flash wmode per indicare la modalità di visualizzazione dei banner in flash. Infatti nella precedente versione vi era un problema quando un elemento div della pagina si sovrapponeva al banner, quest’ultimo veniva mostrato sempre in primo piano. Adesso il problema è risolto, basta impostare il parametro wmode con il valore transparent che è di default.
E’ possibile scaricare questa nuova versione da qui:

Informatica , , , , , ,

Joomla: recuperare l’identificativo di una voce di menu

6 luglio 2011

Volendo recuperare l’identificativo di una voce di menu il codice di esempio qui sotto può essere di aiuto:

1
2
3
4
5
6
7
8
9
10
11
12
$Itemid = '';
$menu = &JSite::getMenu();
if ( $items = $menu->getItems( 'link', 'index.php?option=com_agimm&view=elencoimmobili' ) )
  foreach( $items as $menuItem )
  {
    if ( !$menuItem->published )
     continue;
 
    $params = $menu->getParams( $menuItem->id );
    if ( $params->get('tipo') == $immobili[0]->tipo and $params->get('id_categoria') == $immobili[0]->id_categoria )
      $Itemid = $menuItem->id;
  }
  • Alla linea 3 vengono recuperate le voci di menu in base al contenuto del link. Infatti il metodo getItems() di JMenu serve proprio a recuperare tutte le voci di menu corrispondenti ad un certo attributo. Il nome dell’attributo (ovvero il nome di un campo della tabella jos_menu) va indicato come primo parametro, mentre nel secondo va inserito il valore di pertinenza. Nel esempio vengono recuperate tutte le voci i cui link puntano alla view elencoimmobili del componente com_agimm.
  • Dalla linea 4 inizia il loop per ciclare le voci di menu recuperate
  • Alle linee 6 e 7 vengono saltate le voci di menu non pubblicate
  • Alle linee 9, 10 e 11  viene fatto un controllo sui parametri della voce di menu attuale e se corrisponde a quanto voluto viene preso l’id inserendolo nella variabile $Itemid

Informatica , ,

Joomla: wdbanner variant v. 1.2, modulo per banner a rotazione

15 aprile 2011

Grazie alle segnalazione dell’utente Anto (qui e qui) ho aggiunto a wdbanner variant la possibilità di assegnare un suffisso per la classe css che viene assegnata da joomla al div contenente il modulo.

E’ possibile scaricare questa nuova versione da qui:

mod_wdbanners_variant_1_2.zip

Informatica , , , , , ,

Joomla: integrare Joom!fish e xmap

10 marzo 2011

Un piccolo appunto per integrare le nei sitemap generati da xmap le url multi-lingua gestite da Joom!fish:

Modificare l’url del sitemap generato da xmap inserendo la lingua con il parametro

lang=en

en sta per il nome della lunga, se avessi voluti generare il sitemap per le pagine in italiano avrei dovuto mettere it.

Un esempio:

http://www.fromvenicetowine.it/index.php?option=com_xmap&lang=it&sitemap=1&view=xml

Informatica , , , ,

Joomla: LoadModuleBetweenArticle plugin per visualizzare un modulo tra un articolo e l’altro

10 febbraio 2011

Qualche tempo fa ho avuto l’esigenza di visualizzare dei banner a rotazione fra un’articolo e l’altro del nel front-end di Joomla. Vedete un’esempio qui www.dodicesimouomo.net.

Per realizzare questa caratteristica ho deciso di utilizzare il modulo wdbanners_variant (lo trovate qui http://www.lejubila.net/2011/02/joomla-wdbanner-variant-v-1-1-modulo-per-banner-a-rotazione/), il problema era visualizzarlo tra un articolo e l’altro. A tale proposito ho realizzato il plugin LoadModuleBetweenArticle che serve appunto per posizionare i moduli assegnati ad una posizione fittizia, tra un articolo e l’altro.
I parametri sopra visualizzati hanno il seguente significato:

  • Style: stile di visualizzazione del modulo
  • Articolo iniziale: posizione iniziale da dove iniziare a visualizzare i moduli. -1: prima del primo articolo; 1: dopo il primo articolo; 2: dopo il secondo articolo; 3: dopo il terzo articolo, ecc…
  • Articoli da saltare: indica quanti articoli saltare prima di visualizzare il successivo banner, per esempio inserendo il valore 1 verrà saltato un articolo e quindi il modulo verrà visualizzato ogni due articoli
  • Posizione modulo 1, 2, 3 …. : nome dei della posizione del modulo/i da visualizzare

Per chi interessa è possibile scaricare il plug in da qui

plg_loadmodule_between_article.zip

Informatica , , , , , , ,

Joomla: wdbanner variant v. 1.1, modulo per banner a rotazione

10 febbraio 2011

Pubblico l’aggiornamento al modulo wdbanner variant per visualizzare banner a rotazione in formato immagine e flash descritto alcuni mesi fa qui Joomla: wdbanner variant, modulo per banner a rotazione.

Questo aggiornamento risolve un problema sulla rotazione random.

mod_wdbanners_variant_v_1_1

Informatica , , , , , ,

Joomla: recuperare i parametri di una voce di menu

3 febbraio 2011

Alcuni appunti per ricordarmi come recuperare i parametri settati su una voce di menu:

global $Itemid ;
$menu = JSite::getMenu();
$paramsdata = $menu->getParams( $Itemid );
  • $Itemid viene settato da Joomla e contiene l’id del menu che è stato scelto
  • i valori dei parametri sono recuperabili con la seguente chiamata $paramsdata->get(‘nome_parametro_da_recuperare’);

Informatica , ,

Joomla: pulsante per visualizzare un componente in una finestra modal

31 gennaio 2011

Alcuni appunti per visualizzare in una finestra modale un view di un componente joomla.

Il codice di riferimento è il seguente:

JHTML::_('behavior.modal', 'a.modal-button');
$link = JRoute::_( 'index.php?option=com_agimm&view=foto&tmpl=component' );
echo JHTML::link( $link, 'Foto', array(
    "class" => "modal-button",
    "rel" => "{handler: 'iframe', size: {x: 640, y: 480} }"
) );

Se il link si riferisce ad un componente joomla è possibile inserire il parametro tmp con  il valore component per visualizzare solo il componente senza i menu di sistema.

Informatica , ,

Joomla: messa a punto su host Aruba

22 gennaio 2011

Alcune annotazioni per la messa a punto di una installazione liscia di Joomla su host Aruba, ovvero senza utilizzare l’Application Installer  di quest0ultima.

  • In Configurazione globale / Server / Configurazione ftp non abilitare il wrapper ftp altrimenti si avrà problemi durante l’installazione delle estensioni
  • Se in Configurazione globale / Sito / Configurazione SEO è stato abilitato utilizza mod_rewrite eseguire i seguenti cambiamenti al file .htaccess
    • Commentare la linea 23 in modo da renderla così:
      #Options +FollowSymLinks
    • Decommentare la linea 59 in modo da renderla così:
      RewriteBase /
  • Se si verificano problemi strani (esempio estensioni che non funzionano dopo averle installate) provare ad eseguire un reset dei permessi dei file utilizzando l’apposita funzione Riparazione Permissions del pannello di controllo di Aruba

Informatica , , ,

Joomla: aggiungere helpers personalizzati a JHTML

30 novembre 2010

Di seguito riporto alcuni appunti che indicano come aggiungere degli helpers personalizzati alla classe JHTML che potranno essere richiamati con la classica chiamata

JHTML::_( "prefix.file.function", ........ );

Con il parametro riportato sopra “prefix.file.function” si indica l’helper da richiamare specificando il prefisso della classe (opzionale, se non riportato viene assunto il valore JHTML), il nome del file che poi deve anche essere il suffisso della classe, e il metodo della classe da richiamare.

Per esempio, generalmente si utilizza la seguente chiamata

JHTML::_( "grid.publisher", $row, $i );

per generare codice HTML con il quale eseguire il rendering del pulsante di pubblicazione/non pubblicazione.

Nel caso sopra indicato viene in pratica eseguita la chiamata a JHTMLGrid::publisher(). Per eseguire tale chiamata viene composto il nome della classe, nome delle funzione e nome del file da caricare prendendo il primo argomento fornitoro a JHTML::_():

  • classe JHTMLGrid: composta dal prefisso JHTML (preso di default perché non specificato) e dal suffisso Grid preso dalla prima parte di grid.published
  • funzione published(): presa dalla seconda parte di grid.published
  • file grid.php da cui da cui caricare la classe: preso dalla prima parte grid.published

A questo punto capito il meccanismo con cui viene richiamato l’helper possiamo crearne uno nostro. Di seguito riporto come esempio l’helper che ho creato per eseguire un  nuovo tipo di pubblicazione ovvero chiamato publishedHd, che dovrebbe servire per eseguire la pubblicazione/non pubblicazione di un elemento che qui non sto a specificare.

La chiamata viene eseguita nel seguente modo:

JHTML::_( "extendedgrid.publisherHd", $row, $i );

che in pratica richiama JHTMLExtendgrid::publishedHd( $row, $i ) contenuta nel file extendedgrid.php

Di seguito riporto il codice sorgente della classe JHTMLExtendedgrid:

class JHTMLExtendgrid extends JHTMLGrid
{
  function publishedHd( &$row, $i, $imgY = 'tick.png', $imgX = 'publish_x.png', $prefix='' )
  {
    $img    = $row->published_hd ? $imgY : $imgX;
    $task   = $row->published_hd ? 'unpublish_hd' : 'publish_hd';
    $alt    = $row->published_hd ? JText::_( 'Published' ) : JText::_( 'Unpublished' );
    $action = $row->published_hd ? JText::_( 'Unpublish Item' ) : JText::_( 'Publish item' );
 
    $href = '
    <a title="'. $action .'" onclick="return listItemTask(\'cb'. $i .'\',\''. $prefix.$task .'\')" href="javascript:void(0);">
    <img src="images/'. $img .'" border="0" alt="'. $alt .'" /></a>';
 
    return $href;
  }
}

Il precedente sorgente contenuto nel file extendgrid.php è stato salvato nella cartella helpers/html/ nella parte amministrativa del componente sviluppato. Il path di tale directory dovrà essere fornita JHTML per sapere dove andare a cercare i files contenenti gli helpers da caricare e viene fatto con la seguente chiamata che ho inserito nell’entrypoint del componente:

JHTML::addIncludePath( array( JPATH_COMPONENT_ADMINISTRATOR.DS.'helpers'.DS.'html' ) );

Informatica , , ,

Statistical data collected by Statpress SEOlution (blogcraft).