it-swarm.dev

JModuleHelper :: getModule non restituisce i parametri in joomla 3

Sto usando uno script esterno per joomla e ho bisogno di ottenere i parametri di un modulo.

In joomla 2.5, il codice funzionava bene, ma in j3 ho dei problemi.

il codice è:

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);

E ottengo:

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) ""
}

Se qualcuno ha un ide perché il campo "params" è una stringa vuota, sarei grato.

Grazie.

2
pcrikos

È molto probabile che il modulo non soddisfi i criteri richiesti. Assicurarsi:

  1. È abilitato.
  2. È assegnato alla voce di menu corrente o è assegnato a tutte le voci di menu.
  3. L'utente soddisfa i requisiti del livello di accesso.

Ho appena testato quanto segue:

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);

Che è uno script esterno che importa la libreria Joomla 3.x e ottiene l'oggetto del modulo di login. Tutto funziona perfettamente.

1
Lodder