Back to HtmlDocument class

Method countModules

public int
countModules
(string $positionName, bool $withContentOnly = false)
Count the modules in the given position
Parameters
  • string $positionName The position to use
  • bool $withContentOnly Count only a modules which actually has a content
Returns
  • int Number of modules found
Since
  • 1.7.0
Class: HtmlDocument
Project: Joomla

Method countModules - Source code

/**
 * Count the modules in the given position
 *
 * @param   string   $positionName     The position to use
 * @param   boolean  $withContentOnly  Count only a modules which actually has a content
 *
 * @return  integer  Number of modules found
 *
 * @since   1.7.0
 */
public function countModules(string $positionName, bool $withContentOnly = false)
{
    if (isset(parent::$_buffer['modules'][$positionName]) && parent::$_buffer['modules'][$positionName] === false) {
        return 0;
    }
    $modules = ModuleHelper::getModules($positionName);
    if (!$withContentOnly) {
        return \count($modules);
    }
    // Now we need to count only modules which actually have a content
    $result = 0;
    $renderer = $this->loadRenderer('module');
    foreach ($modules as $module) {
        if (empty($module->contentRendered)) {
            $renderer->render($module, ['contentOnly' => true]);
        }
        if (trim($module->content) !== '') {
            $result++;
        }
    }
    return $result;
}