web-dev-qa-db-fra.com

$ params et $ module restent vides pour les modules personnalisés

J'ai créé un module personnalisé mod_helloworld, conformément aux instructions de la documentation de Joomla 3. J'ai un paramètre "lang" sur la section mod_helloworld.xml config.

Le module est chargé dans un article en utilisant {loadmodule mod_helloworld, "mytestmodule"}

Dans le mod_helloworld.php, je ne peux pas extraire la valeur du paramètre "lang" en utilisant

$language = $params->get('lang').

De plus, var_dump ($ params) et var_dump ($ module) donnent des résultats plutôt vides.

J'ai réussi à obtenir les résultats en utilisant:

jimport( 'joomla.application.module.helper' );
$module = JModuleHelper::getModule( 'mod_helloworld', 'mytestmodule' );
$params = new JRegistry($module->params); 

Mais, je ne pense pas que cela devrait être nécessaire dans le module "actuel".

Nous avons également essayé cela en dupliquant un module joomla standard existant et en changeant son nom. Même effet, bien que l'original fonctionne bien.

Si je charge le module ailleurs sur une page, comme dans une position de modèle, cela fonctionne correctement, mais pas lorsqu'il est chargé dans un article. Pourtant, les modules joomla "standard" existants fonctionnent bien également lorsqu'ils sont chargés dans un article.

Quel est le problème ici?

1
Juha Tuunanen

Créez un module et définissez sa position sur myposition. myposition peut être n'importe quelle valeur n'entrant pas en conflit avec une position de modèle existante. Tapez la position myposition et appuyez sur Entrée au lieu de la sélectionner dans la liste déroulante.

Attribuez le module à tous les éléments de menu. Cela fera en sorte qu'il apparaisse toujours, peu importe comment le visiteur est arrivé à l'article. Le module ne sera pas affiché à moins que vous ne mettiez la commande pour charger le module dans un article.

Editez les articles où vous souhaitez que ce module apparaisse et insérez le texte {loadposition myposition} dans l'article à l'emplacement où vous souhaitez installer le module.

1
NicholasByDesign