PK       ! ›Þ•¡  ¡    src/Dispatcher/Dispatcher.phpnu „[µü¤        <?php

/**
 * @package     Joomla.Site
 * @subpackage  mod_wrapper
 *
 * @copyright   (C) 2024 Open Source Matters, Inc. <https://www.joomla.org>
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

namespace Joomla\Module\Wrapper\Site\Dispatcher;

use Joomla\CMS\Dispatcher\AbstractModuleDispatcher;
use Joomla\CMS\Helper\HelperFactoryAwareInterface;
use Joomla\CMS\Helper\HelperFactoryAwareTrait;

// phpcs:disable PSR1.Files.SideEffects
\defined('_JEXEC') or die;
// phpcs:enable PSR1.Files.SideEffects

/**
 * Dispatcher class for mod_wrapper
 *
 * @since  5.1.0
 */
class Dispatcher extends AbstractModuleDispatcher implements HelperFactoryAwareInterface
{
    use HelperFactoryAwareTrait;

    /**
     * Returns the layout data.
     *
     * @return  array
     *
     * @since   5.1.0
     */
    protected function getLayoutData()
    {
        $data = parent::getLayoutData();

        $params = $this->getHelperFactory()->getHelper('WrapperHelper')->getParamsWrapper($data['params'], $this->getApplication());

        $data['load']        = $params->get('load');
        $data['url']         = htmlspecialchars($params->get('url', ''), ENT_COMPAT, 'UTF-8');
        $data['target']      = htmlspecialchars($params->get('target', ''), ENT_COMPAT, 'UTF-8');
        $data['width']       = htmlspecialchars($params->get('width', ''), ENT_COMPAT, 'UTF-8');
        $data['height']      = htmlspecialchars($params->get('height', ''), ENT_COMPAT, 'UTF-8');
        $data['ititle']      = $this->module->title;
        $data['id']          = $this->module->id;
        $data['lazyloading'] = $params->get('lazyloading', 'lazy');

        return $data;
    }
}
PK       ! ÐHõCv
  v
    src/Helper/WrapperHelper.phpnu „[µü¤        <?php

/**
 * @package     Joomla.Site
 * @subpackage  mod_wrapper
 *
 * @copyright   (C) 2006 Open Source Matters, Inc. <https://www.joomla.org>
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

namespace Joomla\Module\Wrapper\Site\Helper;

use Joomla\CMS\Application\SiteApplication;
use Joomla\CMS\Factory;
use Joomla\Registry\Registry;

// phpcs:disable PSR1.Files.SideEffects
\defined('_JEXEC') or die;
// phpcs:enable PSR1.Files.SideEffects

/**
 * Helper for mod_wrapper
 *
 * @since  1.5
 */
class WrapperHelper
{
    /**
     * Gets the parameters for the wrapper
     *
     * @param   Registry        $params     The module parameters.
     * @param   SiteApplication $app        The current application.
     *
     * @return  mixed  $params  The modified parameters
     *
     * @since   5.1.0
     */
    public function getParamsWrapper(Registry $params, SiteApplication $app)
    {
        $params->def('url', '');
        $params->def('scrolling', 'auto');
        $params->def('height', '200');
        $params->def('height_auto', 0);
        $params->def('width', '100%');
        $params->def('add', 1);
        $params->def('name', 'wrapper');

        $url = $params->get('url');

        if ($params->get('add')) {
            // Adds 'http://' if none is set
            if (str_starts_with($url, '/')) {
                // Relative URL in component. use server http_host.
                $url = 'http://' . $app->getInput()->server->get('HTTP_HOST') . $url;
            } elseif (!str_starts_with($url, 'http://') && !str_starts_with($url, 'https://')) {
                $url = 'http://' . $url;
            }
        }

        $load = '';

        // Auto height control
        if ($params->def('height_auto')) {
            $load = 'onload="iFrameHeight(this)"';
        }

        $params->set('load', $load);
        $params->set('url', $url);

        return $params;
    }

    /**
     * Gets the parameters for the wrapper
     *
     * @param   mixed  &$params  The parameters set in the administrator section
     *
     * @return  mixed  &$params  The modified parameters
     *
     * @since   1.5
     *
     * @deprecated 5.1.0 will be removed in 7.0
     *             Use the non-static method getParamsWrapper
     *             Example: Factory::getApplication()->bootModule('mod_wrapper', 'site')
     *                          ->getHelper('WrapperHelper')
     *                          ->getParamsWrapper($params, Factory::getApplication())
     */
    public static function getParams(&$params)
    {
        return (new self())->getParamsWrapper($params, Factory::getApplication());
    }
}
PK       ! x	Ü„  „    services/provider.phpnu „[µü¤        <?php

/**
 * @package     Joomla.Site
 * @subpackage  mod_wrapper
 *
 * @copyright   (C) 2024 Open Source Matters, Inc. <https://www.joomla.org>
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

\defined('_JEXEC') or die;

use Joomla\CMS\Extension\Service\Provider\HelperFactory;
use Joomla\CMS\Extension\Service\Provider\Module;
use Joomla\CMS\Extension\Service\Provider\ModuleDispatcherFactory;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;

/**
 * The wrapper module service provider.
 *
 * @since  5.1.0
 */
return new class () implements ServiceProviderInterface {
    /**
     * Registers the service provider with a DI container.
     *
     * @param   Container  $container  The DI container.
     *
     * @return  void
     *
     * @since   5.1.0
     */
    public function register(Container $container)
    {
        $container->registerServiceProvider(new ModuleDispatcherFactory('\\Joomla\\Module\\Wrapper'));
        $container->registerServiceProvider(new HelperFactory('\\Joomla\\Module\\Wrapper\\Site\\Helper'));

        $container->registerServiceProvider(new Module());
    }
};
PK       ! IuÜÈ  È    mod_wrapper.xmlnu „[µü¤        <?xml version="1.0" encoding="UTF-8"?>
<extension type="module" client="site" method="upgrade">
	<name>mod_wrapper</name>
	<author>Joomla! Project</author>
	<creationDate>2004-10</creationDate>
	<copyright>(C) 2005 Open Source Matters, Inc.</copyright>
	<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
	<authorEmail>admin@joomla.org</authorEmail>
	<authorUrl>www.joomla.org</authorUrl>
	<version>3.0.0</version>
	<description>MOD_WRAPPER_XML_DESCRIPTION</description>
	<namespace path="src">Joomla\Module\Wrapper</namespace>
	<files>
		<folder module="mod_wrapper">services</folder>
		<folder>src</folder>
		<folder>tmpl</folder>
	</files>
	<languages>
		<language tag="en-GB">language/en-GB/mod_wrapper.ini</language>
		<language tag="en-GB">language/en-GB/mod_wrapper.sys.ini</language>
	</languages>
	<help key="Site_Modules:_Wrapper" />
	<config>
		<fields name="params">
			<fieldset name="basic">
				<field
					name="url"
					type="url"
					validate="url"
					filter="url"
					relative="true"
					label="MOD_WRAPPER_FIELD_URL_LABEL"
					required="true"
				/>

				<field
					name="add"
					type="radio"
					layout="joomla.form.field.radio.switcher"
					label="MOD_WRAPPER_FIELD_ADD_LABEL"
					default="1"
					filter="integer"
					>
					<option value="0">JNO</option>
					<option value="1">JYES</option>
				</field>

				<field
					name="width"
					type="text"
					label="MOD_WRAPPER_FIELD_WIDTH_LABEL"
					default="100%"
				/>

				<field
					name="height"
					type="text"
					label="MOD_WRAPPER_FIELD_HEIGHT_LABEL"
					default="200"
				/>

				<field
					name="height_auto"
					type="radio"
					layout="joomla.form.field.radio.switcher"
					label="MOD_WRAPPER_FIELD_AUTOHEIGHT_LABEL"
					default="1"
					filter="integer"
					>
					<option value="0">JNO</option>
					<option value="1">JYES</option>
				</field>

				<field
					name="target"
					type="text"
					label="MOD_WRAPPER_FIELD_TARGET_LABEL"
				/>

				<field
					name="lazyloading"
					type="radio"
					label="MOD_WRAPPER_FIELD_LAZYLOADING_LABEL"
					default="lazy"
					layout="joomla.form.field.radio.switcher"
					validate="options"
					>
					<option value="eager">JNO</option>
					<option value="lazy">JYES</option>
				</field>
			</fieldset>
			<fieldset name="advanced">
				<field
					name="layout"
					type="modulelayout"
					label="JFIELD_ALT_LAYOUT_LABEL"
					class="form-select"
					validate="moduleLayout"
				/>

				<field
					name="moduleclass_sfx"
					type="textarea"
					label="COM_MODULES_FIELD_MODULECLASS_SFX_LABEL"
					rows="3"
					validate="CssIdentifier"
				/>

				<field
					name="cache"
					type="list"
					label="COM_MODULES_FIELD_CACHING_LABEL"
					default="1"
					filter="integer"
					validate="options"
					>
					<option value="1">JGLOBAL_USE_GLOBAL</option>
					<option value="0">COM_MODULES_FIELD_VALUE_NOCACHING</option>
				</field>

				<field
					name="cache_time"
					type="number"
					label="COM_MODULES_FIELD_CACHE_TIME_LABEL"
					default="900"
					filter="integer"
				/>

				<field
					name="cachemode"
					type="hidden"
					default="static"
					>
					<option value="static"></option>
				</field>
			</fieldset>
		</fields>
	</config>
</extension>
PK       ! »ÄüBm  m    tmpl/default.phpnu „[µü¤        <?php

/**
 * @package     Joomla.Site
 * @subpackage  mod_wrapper
 *
 * @copyright   (C) 2006 Open Source Matters, Inc. <https://www.joomla.org>
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;

use Joomla\CMS\Language\Text;

/** @var Joomla\CMS\WebAsset\WebAssetManager $wa */
$wa = $app->getDocument()->getWebAssetManager();
$wa->registerAndUseScript('com_wrapper.iframe', 'com_wrapper/iframe-height.min.js', [], ['defer' => true]);

?>
<iframe <?php echo $load; ?>
    id="blockrandom-<?php echo $id; ?>"
    name="<?php echo $target; ?>"
    src="<?php echo $url; ?>"
    width="<?php echo $width; ?>"
    height="<?php echo $height; ?>"
    loading="<?php echo $lazyloading; ?>"
    title="<?php echo $ititle; ?>"
    class="mod-wrapper wrapper">
    <?php echo Text::_('MOD_WRAPPER_NO_IFRAMES'); ?>
</iframe>
PK         ! ›Þ•¡  ¡                  src/Dispatcher/Dispatcher.phpnu „[µü¤        PK         ! ÐHõCv
  v
              î  src/Helper/WrapperHelper.phpnu „[µü¤        PK         ! x	Ü„  „              °  services/provider.phpnu „[µü¤        PK         ! IuÜÈ  È              y  mod_wrapper.xmlnu „[µü¤        PK         ! »ÄüBm  m              €#  tmpl/default.phpnu „[µü¤        PK      ­  -'    