Laad Joomla module op basis van ID. Simpele voorbeeld PHP code.

Het kan natuurlijk voorkomen dat je een module binnen een stukje maatwerk PHP wil inladen op basis van een ID. Dit stukje code laat zien hoe dit werkt binnen Joomla > 3. Hou er rekening mee dat het ID een (int) moet zijn. En dat je zoals altijd bij user input de boel netjes filtert.

// $module_id is het ID van de module die je wilt laden
// We halen de module eerst op uit de database

$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query
  ->select('*')
  ->from('#__modules')
  ->where('id = ' . $module_id);
  
$db->setQuery($query);
$module = $db->loadObject();


if (!empty($module))
{

  $doc = JFactory::getDocument();
  $doc->_type = 'html';
  
  $modrender = $doc->loadRenderer('module');
  
  //Pas hier eventueel de module style aan
  $module->style = 'none';
  
  //Output kan je echo'en, returnen als dit een functie is etc. Doe er wat mee...   
  $output = $modrender->render($module, array('style' => $module->style, 'name' => ''));
  
}