web-dev-qa-db-fra.com

JModuleHelper :: getModule ne renvoie pas de paramètres dans joomla 3

J'utilise un script externe à joomla et j'ai besoin d'obtenir les paramètres d'un module.

Dans joomla 2.5, le code fonctionnait bien, mais en j3, j'ai des problèmes.

le code est:

define( '_JEXEC', 1 );
define('JPATH_BASE', getcwd().'/../../');
require_once ( JPATH_BASE.'includes/defines.php' );
require_once ( JPATH_BASE.'includes/framework.php' );

/* Create the Application */
$app = JFactory::getApplication('site');


jimport( 'joomla.application.module.helper' );
$module = &JModuleHelper::getModule( 'mod_mailformmodule');
var_dump($module);

Et je reçois:

object(stdClass)#43 (8) {
  ["id"]=>
  int(0)
  ["title"]=>
  string(0) ""
  ["module"]=>
  string(18) "mod_mailformmodule"
  ["position"]=>
  string(0) ""
  ["content"]=>
  string(0) ""
  ["showtitle"]=>
  int(0)
  ["control"]=>
  string(0) ""
  ["params"]=>
  string(0) ""
}

Si quelqu'un a une idée pourquoi le champ "params" est une chaîne vide, je serais très reconnaissant.

Merci.

2
pcrikos

Il est fort probable que votre module ne réponde pas aux critères requis. Assure-toi:

  1. C'est activé.
  2. Il est affecté à l'élément de menu actuel ou à tous les éléments de menu.
  3. L'utilisateur répond aux exigences de niveau d'accès.

Je viens de tester les éléments suivants:

define( '_JEXEC', 1 );
define('JPATH_BASE', getcwd().'/../../');
require_once ( JPATH_BASE.'includes/defines.php' );
require_once ( JPATH_BASE.'includes/framework.php' );

/* Create the Application */
$app = JFactory::getApplication('site');

jimport( 'joomla.application.module.helper' );
$module = JModuleHelper::getModule( 'mod_login' );

$registry = new JRegistry();
$params = $registry->loadString($module->params);

print_r($params);

Il s’agit d’un script externe qui importe la bibliothèque Joomla 3.x et récupère l’objet du module de connexion. Tout fonctionne parfaitement bien.

1
Lodder