Back to top

Autore Topic: La classe jhtml  (Letto 7588 volte)

Offline dacdam

  • Esploratore
  • **
  • Post: 183
  • Sesso: Maschio
    • Mostra profilo
La classe jhtml
« il: 28 Dic 2009, 16:35:49 »
Ciao a tutti.
Volevo approfindire la conoscenza della classe jhtml.
Ho trovato documentazione che riguarda i suoi metodi ma io volevo saperne di più a proposito dei suoi utilizzi come questo:
JHTML::_('select.option',$xxx,$xxx);
Dove trovo un elenco dei valori possibili del primo parametro e qualche spiegazione in merito ?

Ciao.

Offline = odino =

  • Instancabile
  • ******
  • Post: 5696
  • Sesso: Maschio
  • "In realtà li trasforma in menomati" Danzel
    • Mostra profilo

Offline mneri

  • Nuovo arrivato
  • *
  • Post: 4
  • Sesso: Maschio
    • Mostra profilo
Re:La classe jhtml
« Risposta #2 il: 26 Set 2012, 04:06:06 »
So che questo post è un po' datato, ma una buona risposta avrebbe fatto comodo anche a me.
Quindi, ecco qualche informazione aggiuntiva sulla classe JHtml ed in particolare sul misterioso metodo statico _ (underscore).

Ormai mancano poche ore alla release ufficiale della versione 3.0 di Joomla!, quindi prenderò come esempio l'istruzione:

Codice: [Seleziona]
JHtml::_('bootstrap.framework');

che si può trovare nel file index.php del nuovo template Protostar. (joomla_path/templates/protostar).

Quest'istruzione significa «Esegui il metodo framework() della classe JHtmlBootstrapIl metodo framework() carica gli header necessari per il framework Bootstrap (e quindi gli header necessari per il supporto mobile).Da dove deriva tutto ciò?

Il metodo JHtml::_() fa esplodere il suo primo argomento in 2 parti:
  • il nome del file (in questo caso 'bootstrap.php');
  • il nome del metodo da eseguire (in questo caso 'framework()');
Il file bootstrap.php si trova in joomla_path/libraries/cms/html, e al suo interno è definita la classe JHtmlBootstrap.

Il file bootstrap.php ha al suo interno la classe JHtmlBootstrap. L'ipotetico file foo.php avrà al suo interno definita la classe JHtmlFoo.

È possibile eseguire qualsiasi metodo di qualsiasi classe (di qualsiasi file) contenuta in joomla_path/libraries/cms/html e joomla_path/libraries/joomla/html.
Eventuali parametri addizionali passati al metodo JHtml::_() verranno inviati direttamente alla funzione invocata. Ad esempio:


Codice: [Seleziona]
JHtml::_('bootstrap.framework', true);


Passa il parametro true alla funzione framework() dell'oggetto JHtmlBootstrap.
Spero di essere stato di aiuto.

EDIT:
In Joomla 3.0, la classe JHtml può eseguire anche i metodi degli oggetti contenuti nella cartella /libraries/legacy/html.

Non so se la lista delle path è esaustiva e se lo sarà nel prossimo futuro. Per una lista esaustiva fare riferimento al campo $includePath della classe.
« Ultima modifica: 28 Set 2012, 04:32:54 da mneri »

Offline alexdi

  • Appassionato
  • ***
  • Post: 304
  • Sesso: Maschio
  • M5S , forse riusciamo a mandarli tutti a casa !!
    • Mostra profilo
Re:La classe jhtml
« Risposta #3 il: 03 Ott 2012, 22:05:40 »
Ciao mneri e benvenuto nel forum.


Per quanto mi riguarda ti ringrazio per la tua segnalazione. Mi è stata d' aiuto per capire come utilizzare bootstrap (anche se, sto facendo delle prove per il momento scoraggianti [size=78%]http://forum.joomla.it/index.php/topic,171415.msg773373.html#msg773373[/size])


La classe JHtml , non mi pare sia ben documentata , si fa sempre fatica a trovare esempi.
Non è la specie più intelligente a sopravvivere e nemmeno quella piu' forte. E' quella più predisposta al cambiamento. Charles Darwin

Blog Personale

Offline mneri

  • Nuovo arrivato
  • *
  • Post: 4
  • Sesso: Maschio
    • Mostra profilo
Re:La classe jhtml
« Risposta #4 il: 04 Ott 2012, 07:42:47 »
La classe JHtml non è poi così mal documentata ed è molto facile da capire.

È una classe utility. La maggior parte dei suoi metodi sono del tipo (ne elencherò alcuni di esempio):

Codice: [Seleziona]
public static function link($url, $text, $attribs = null)
public static function iframe($url, $name, $attribs = null, $noFrames = '')
public static function image($file, $alt, $attribs = null, $relative = false, $path_only = false)

Che rispettivamente restituiscono stringhe come '<a href="..."></a >', '<iframe></iframe>' e '<img />'. Niente di così complicato, direi.

Poi c'è il metodo class loader di cui ho parlato nel post precedente: il misterioso _() (l'unico degno di nota in tutta la classe). E tutta una serie di metodi che gli servono per funzionare: extract(), register(), unregister(), isRegistered(), call() e addIncludePath(). È possibile usare register(), unregister() e addIncludePath() per aggiungere un path di ricerca per le classi. I metodi extract() e call() sono privati e non possono essere acceduti dall'esterno.

La classe JHtml si trova nel file joomla_path/libraries/joomla/html/html.php. Se provi a darci un'occhiata non ti sembrerà poi così difficile: tutta la documentazione che ti serve per capire questa classe è presente all'interno di questo file sottoforma di commento.
« Ultima modifica: 04 Ott 2012, 12:04:39 da mneri »

Offline alexdi

  • Appassionato
  • ***
  • Post: 304
  • Sesso: Maschio
  • M5S , forse riusciamo a mandarli tutti a casa !!
    • Mostra profilo
Re:La classe jhtml
« Risposta #5 il: 04 Ott 2012, 18:37:32 »
Grazie per la risposta.


Si, lo so, avevo già utilizzato la classe  e il misterioso _() però un pò di problemini li ho sempre avuti. Ma mi si stanno chiarendo di volta in volta....



Non è la specie più intelligente a sopravvivere e nemmeno quella piu' forte. E' quella più predisposta al cambiamento. Charles Darwin

Blog Personale

 



Web Design Bolzano Kreatif