Back to top

Autore Topic: Parametri di configurazione di un componente  (Letto 2181 volte)

Offline luca.santaniello

  • Nuovo arrivato
  • *
  • Post: 49
    • Mostra profilo
Parametri di configurazione di un componente
« il: 08 Nov 2009, 19:56:56 »
Salve,

ho creato un componente personalizzato con dei parametri di configurazione.

Come posso acquisire il loro valore da una view?

Ho fatto lo stesso in un modulo e in questo caso accedo tranquillamente alle proprietà utilizzando la variabile $params. Nel componente invece la variabile non è definita.

Esempio:
$imagePath = $params->get("imagePath");

Grazie

Offline jabber

  • Esploratore
  • **
  • Post: 114
    • Mostra profilo
Re:Parametri di configurazione di un componente
« Risposta #1 il: 05 Ago 2014, 13:29:04 »
Ho trovato questo vecchio topic al quale nessuno ha risposto e siccome vorrei delle
delucidazioni in merito e allo stesso tempo voglio evitare di creare una discussione nuova
(e qualcosa di troppo simile) continuerò su questo topic.

Mi riferirò alla v2.5.

Il retrieving dei parametri del component io lo faccio così:
Codice: [Seleziona]
jimport( 'joomla.application.component.helper' );
$params = JComponentHelper::getParams('com_mycomponent');
$params = $params->get('params'); // IDEM: "getValue"
echo $params->my_param_name;

Oppure il alternativa c'è questo metodo abbastanza simile:
Codice: [Seleziona]
jimport( 'joomla.application.component.helper' );
$component = JComponentHelper::getComponent( "com_mycomponent" );
$params = new JParameter( $component->params );
$params = $params->get('params');
echo $params->my_param_name;




Però in rete ho letto altri metodi, per esempio in questo sito parlando sempre
della 2.5 come metodo è proposto il seguente: (a me questo metodo non funziona.)
Codice: [Seleziona]
jimport( 'joomla.application.component.helper' );
$params = &JComponentHelper::getParams('com_mycomponent');
$param = $params->get('my_param_name', 'defaultValue');


Poi non mi funziona nemmeno questo:
Codice: [Seleziona]
$mainframe = JFactory::getApplication();
$params    = new JParameter( $mainframe->params );
$par = $params->get( "my_param_name" );


Non saprei se i metodi proposti sono sbagliati oppure
sono io ad omettere qualche passaggio, in tal caso
vorrei sapere anche io dove (o se) sbaglio qualcosa.



In aggiunta ho visto che qualcuno usa funzioni di questo tipo,
magari messe nel modello, comunque non saprei di nuovo  quando
è preferibile/utile usare soluzioni di questo tipo:
Codice: [Seleziona]
function getParam( $key ) {
    $db    = JFactory::getDbo();
    $query = $db->getQuery(true);

    $query
    ->select( $db->quoteName('params') )
    ->from( $db->quoteName('#__extensions') )   
    ->where("element = '".$key."'");
    $db->setQuery($query);
    $results = $db->loadObjectList();
    $results = $results[0]->params;
    $results = json_decode( $results, true );
    $results = $results['params'];
   
    return $results;   
}

« Ultima modifica: 05 Ago 2014, 13:31:51 da jabber »

 



Web Design Bolzano Kreatif