Back to top

Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - mneri

Pagine: [1]
1
Sbirciando ancora un pochino nel codice sorgente di JHtmlBootstrap, ho trovato il metodo renderModal(). Al suo interno renderModal() richiama modal(). Dovresti usare renderModal() poiché costruisce anche i tag HTML necessari.

renderModal() aggiunge anche la classe HTML hide.

Codice: [Seleziona]
$html = "<div class=\"modal hide fade\" id=\"" . $selector . "\">\n";

2
Sviluppo / Re:La classe jhtml
« 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.

3
A giudicare dai commenti d'intestazione del metodo, sembra un errore. Infatti ci dice di passare parametri booleani:

Codice: [Seleziona]
     /**
     * Add javascript support for Bootstrap modals
     *
     * @param   string  $selector  The ID selector for the modal.
     * @param   array   $params    An array of options for the modal.
     *                             Options for the modal can be:
     *                             - backdrop  boolean  Includes a modal-backdrop element.
     *                             - keyboard  boolean  Closes the modal when escape key is pressed.
     *                             - show      boolean  Shows the modal when initialized.
     *                             - remote    string   An optional remote URL to load
     *
     * @return  void
     *
     * @since   3.0
     */

Ma le righe le seguenti righe restituiscono sempre true (sia con parametro true, che con parametro false).

Codice: [Seleziona]
$opt['backdrop'] = (isset($params['backdrop']) && ($params['backdrop'])) ? (boolean) $params['backdrop'] : true;
$opt['keyboard'] = (isset($params['keyboard']) && ($params['keyboard'])) ? (boolean) $params['keyboard'] : true;
$opt['show']     = (isset($params['show']) && ($params['show'])) ? (boolean) $params['show'] : true;
$opt['remote']   = (isset($params['remote']) && ($params['remote'])) ? (boolean) $params['remote'] : '';

Non solo: restituiscono true anche con parametri di tipo stringa e numerici, qualunque sia il valore.

Ho segnalato il bug qui: http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_item_id=29432

4
Sviluppo / Re:La classe jhtml
« 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.

Pagine: [1]


Web Design Bolzano Kreatif