[ Index ]

PHP Cross Reference of Joomla 4.2.2 documentation

title

Body

[close]

/libraries/src/Document/Renderer/Html/ -> ModulesRenderer.php (source)

   1  <?php
   2  
   3  /**
   4   * Joomla! Content Management System
   5   *
   6   * @copyright  (C) 2015 Open Source Matters, Inc. <https://www.joomla.org>
   7   * @license    GNU General Public License version 2 or later; see LICENSE.txt
   8   */
   9  
  10  namespace Joomla\CMS\Document\Renderer\Html;
  11  
  12  use Joomla\CMS\Document\DocumentRenderer;
  13  use Joomla\CMS\Factory;
  14  use Joomla\CMS\Helper\ModuleHelper;
  15  use Joomla\CMS\Layout\LayoutHelper;
  16  
  17  // phpcs:disable PSR1.Files.SideEffects
  18  \defined('JPATH_PLATFORM') or die;
  19  // phpcs:enable PSR1.Files.SideEffects
  20  
  21  /**
  22   * HTML document renderer for a module position
  23   *
  24   * @since  3.5
  25   */
  26  class ModulesRenderer extends DocumentRenderer
  27  {
  28      /**
  29       * Renders multiple modules script and returns the results as a string
  30       *
  31       * @param   string  $position  The position of the modules to render
  32       * @param   array   $params    Associative array of values
  33       * @param   string  $content   Module content
  34       *
  35       * @return  string  The output of the script
  36       *
  37       * @since   3.5
  38       */
  39      public function render($position, $params = array(), $content = null)
  40      {
  41          $renderer = $this->_doc->loadRenderer('module');
  42          $buffer   = '';
  43  
  44          $app          = Factory::getApplication();
  45          $user         = Factory::getUser();
  46          $frontediting = ($app->isClient('site') && $app->get('frontediting', 1) && !$user->guest);
  47          $menusEditing = ($app->get('frontediting', 1) == 2) && $user->authorise('core.edit', 'com_menus');
  48  
  49          foreach (ModuleHelper::getModules($position) as $mod) {
  50              $moduleHtml = $renderer->render($mod, $params, $content);
  51  
  52              if ($frontediting && trim($moduleHtml) != '' && $user->authorise('module.edit.frontend', 'com_modules.module.' . $mod->id)) {
  53                  $displayData = array('moduleHtml' => &$moduleHtml, 'module' => $mod, 'position' => $position, 'menusediting' => $menusEditing);
  54                  LayoutHelper::render('joomla.edit.frontediting_modules', $displayData);
  55              }
  56  
  57              $buffer .= $moduleHtml;
  58          }
  59  
  60          $app->triggerEvent('onAfterRenderModules', array(&$buffer, &$params));
  61  
  62          return $buffer;
  63      }
  64  }


Generated: Wed Sep 7 05:41:13 2022 Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer