Joomla: aggiungere helpers personalizzati a JHTML

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' ) );

Cerco alimentatore switching 5v 4a

Ormai questo blog ultimamante sembra essere diventato un mercatino di compravendita dell’usato 🙂 e anche oggi ne approfitto.

Alcuni giorni fa l’alimentatore del mio minipc si è guastato. Ho fatto un po di ricerche per un’eventuale acquisto, ma date le sue caratteristiche non molto comuni quel poco che ho trovato aveva prezzi spropositati.

Quindi a questo punto chiedo a VOI se avete un’alimentatore con le seguenti caratteristiche e lo volete vendere ad un prezzo ragionevole sono disposto ad acquistarlo.

Le caratteristiche sono le seguenti:
Input: AC100-240V  0.8A
Output: DC3-5.0V  4A Max  20Watt Max

Il massimo sarebbe se avesse il connettore di uscita come quello riprodotto in foto altrimenti fa lo stesso lo adatterò io.

Aggiornamento 18/11/2010:

E’ ormai qualche settimana che ho acquistato l’alimentatore direttamente da Sintek, importatore ufficiale degli ebox, per 36 € spese di spedizione comprese.

Un po caro, ma in cambio ho ricevuto un servizio eccellente: ho dato la conferma del pagamento a mezzo bonifico il mattino alle ore 11,00 ed esattamante 24 ore dopo mi sono trovato il corriere alla porta con l’alimentatore !!!!!