Joomla.it Forum
Non solo Joomla... => Sviluppo => : luca.santaniello 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
-
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ì:
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:
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 (http://error.bengtuo.com/page/271858.html) parlando sempre
della 2.5 come metodo è proposto il seguente: (a me questo metodo non funziona.)
jimport( 'joomla.application.component.helper' );
$params = &JComponentHelper::getParams('com_mycomponent');
$param = $params->get('my_param_name', 'defaultValue');
Poi non mi funziona nemmeno questo:
$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:
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;
}