first commit

This commit is contained in:
2025-06-17 11:53:18 +02:00
commit 9f0f7ba12b
8804 changed files with 1369176 additions and 0 deletions

View File

@ -0,0 +1,47 @@
<?php
/**
* @package Joomla.Site
* @subpackage com_wrapper
*
* @copyright (C) 2009 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace Joomla\Component\Wrapper\Site\Controller;
use Joomla\CMS\MVC\Controller\BaseController;
// phpcs:disable PSR1.Files.SideEffects
\defined('_JEXEC') or die;
// phpcs:enable PSR1.Files.SideEffects
/**
* Content Component Controller
*
* @since 1.5
*/
class DisplayController extends BaseController
{
/**
* Method to display a view.
*
* @param boolean $cachable If true, the view output will be cached
* @param array $urlparams An array of safe URL parameters and their variable types.
* @see \Joomla\CMS\Filter\InputFilter::clean() for valid values.
*
* @return BaseController This object to support chaining.
*
* @since 1.5
*/
public function display($cachable = false, $urlparams = [])
{
$cachable = true;
// Set the default view name and format from the Request.
$vName = $this->input->get('view', 'wrapper');
$this->input->set('view', $vName);
return parent::display($cachable, ['Itemid' => 'INT']);
}
}

View File

@ -0,0 +1,57 @@
<?php
/**
* @package Joomla.Site
* @subpackage com_wrapper
*
* @copyright (C) 2008 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace Joomla\Component\Wrapper\Site\Service;
use Joomla\CMS\Component\Router\RouterBase;
// phpcs:disable PSR1.Files.SideEffects
\defined('_JEXEC') or die;
// phpcs:enable PSR1.Files.SideEffects
/**
* Routing class from com_wrapper
*
* @since 3.3
*/
class Router extends RouterBase
{
/**
* Build the route for the com_wrapper component
*
* @param array $query An array of URL arguments
*
* @return array The URL arguments to use to assemble the subsequent URL.
*
* @since 3.3
*/
public function build(&$query)
{
if (isset($query['view'])) {
unset($query['view']);
}
return [];
}
/**
* Parse the segments of a URL.
*
* @param array $segments The segments of the URL to parse.
*
* @return array The URL attributes to be used by the application.
*
* @since 3.3
*/
public function parse(&$segments)
{
return ['view' => 'wrapper'];
}
}

View File

@ -0,0 +1,115 @@
<?php
/**
* @package Joomla.Site
* @subpackage com_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\Component\Wrapper\Site\View\Wrapper;
use Joomla\CMS\Factory;
use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView;
use Joomla\CMS\Uri\Uri;
// phpcs:disable PSR1.Files.SideEffects
\defined('_JEXEC') or die;
// phpcs:enable PSR1.Files.SideEffects
/**
* Wrapper view class.
*
* @since 1.5
*/
class HtmlView extends BaseHtmlView
{
/**
* The page class suffix
*
* @var string
* @since 4.0.0
*/
protected $pageclass_sfx = '';
/**
* The page parameters
*
* @var \Joomla\Registry\Registry|null
* @since 4.0.0
*/
protected $params = null;
/**
* The page parameters
*
* @var \stdClass
* @since 4.0.0
*/
protected $wrapper = null;
/**
* Execute and display a template script.
*
* @param string $tpl The name of the template file to parse; automatically searches through the template paths.
*
* @return void
*
* @since 1.5
*/
public function display($tpl = null)
{
$params = Factory::getApplication()->getParams();
// Because the application sets a default page title, we need to get it
// right from the menu item itself
$this->setDocumentTitle($params->get('page_title', ''));
if ($params->get('menu-meta_description')) {
$this->getDocument()->setDescription($params->get('menu-meta_description'));
}
if ($params->get('robots')) {
$this->getDocument()->setMetaData('robots', $params->get('robots'));
}
$wrapper = new \stdClass();
// Auto height control
if ($params->def('height_auto')) {
$wrapper->load = 'onload="iFrameHeight(this)"';
} else {
$wrapper->load = '';
}
$url = $params->def('url', '');
if ($params->def('add_scheme', 1)) {
// Adds 'http://' or 'https://' if none is set
if (strpos($url, '//') === 0) {
// URL without scheme in component. Prepend current scheme.
$wrapper->url = Uri::getInstance()->toString(['scheme']) . substr($url, 2);
} elseif (strpos($url, '/') === 0) {
// Relative URL in component. Use scheme + host + port.
$wrapper->url = Uri::getInstance()->toString(['scheme', 'host', 'port']) . $url;
} elseif (strpos($url, 'http://') !== 0 && strpos($url, 'https://') !== 0) {
// URL doesn't start with either 'http://' or 'https://'. Add current scheme.
$wrapper->url = Uri::getInstance()->toString(['scheme']) . $url;
} else {
// URL starts with either 'http://' or 'https://'. Do not change it.
$wrapper->url = $url;
}
} else {
$wrapper->url = $url;
}
// Escape strings for HTML output
$this->pageclass_sfx = htmlspecialchars($params->get('pageclass_sfx', ''));
$this->params = &$params;
$this->wrapper = &$wrapper;
parent::display($tpl);
}
}

View File

@ -0,0 +1,46 @@
<?php
/**
* @package Joomla.Site
* @subpackage com_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;
$this->document->getWebAssetManager()
->registerAndUseScript('com_wrapper.iframe', 'com_wrapper/iframe-height.min.js', [], ['defer' => true]);
?>
<div class="com-wrapper contentpane">
<?php if ($this->params->get('show_page_heading')) : ?>
<div class="page-header">
<h1>
<?php if ($this->escape($this->params->get('page_heading'))) : ?>
<?php echo $this->escape($this->params->get('page_heading')); ?>
<?php else : ?>
<?php echo $this->escape($this->params->get('page_title')); ?>
<?php endif; ?>
</h1>
</div>
<?php endif; ?>
<iframe <?php echo $this->wrapper->load; ?>
id="blockrandom"
name="iframe"
src="<?php echo $this->escape($this->wrapper->url); ?>"
width="<?php echo $this->escape($this->params->get('width')); ?>"
height="<?php echo $this->escape($this->params->get('height')); ?>"
loading="<?php echo $this->params->get('lazyloading', 'lazy'); ?>"
<?php if ($this->escape($this->params->get('page_heading'))) : ?>
title="<?php echo $this->escape($this->params->get('page_heading')); ?>"
<?php else : ?>
title="<?php echo $this->escape($this->params->get('page_title')); ?>"
<?php endif; ?>
class="com-wrapper__iframe wrapper <?php echo $this->pageclass_sfx; ?>">
<?php echo Text::_('COM_WRAPPER_NO_IFRAMES'); ?>
</iframe>
</div>

View File

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<layout title="COM_WRAPPER_WRAPPER_VIEW_DEFAULT_TITLE" option="COM_WRAPPER_WRAPPER_VIEW_DEFAULT_OPTION">
<help
key="Menu_Item:_Iframe_Wrapper"
/>
<message>
<![CDATA[COM_WRAPPER_WRAPPER_VIEW_DEFAULT_DESC]]>
</message>
</layout>
<!-- Add fields to the parameters object for the layout. -->
<fields name="params">
<fieldset name="request" label="COM_MENUS_BASIC_FIELDSET_LABEL">
<field
name="url"
type="url"
label="COM_WRAPPER_FIELD_URL_LABEL"
required="true"
/>
</fieldset>
<!-- Add fields to the parameters object for the layout. -->
<!-- Scroll. -->
<fieldset name="basic" label="COM_WRAPPER_FIELD_LABEL_SCROLLBARSPARAMS">
<field
name="width"
type="text"
label="JGLOBAL_WIDTH"
default="100%"
/>
<field
name="height"
type="number"
label="COM_WRAPPER_FIELD_HEIGHT_LABEL"
default="500"
/>
</fieldset>
<!-- Advanced options. -->
<fieldset name="advanced">
<field
name="height_auto"
type="radio"
label="COM_WRAPPER_FIELD_HEIGHTAUTO_LABEL"
default="0"
layout="joomla.form.field.radio.switcher"
>
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>
<field
name="add_scheme"
type="radio"
label="COM_WRAPPER_FIELD_ADD_LABEL"
description="COM_WRAPPER_FIELD_ADD_DESC"
layout="joomla.form.field.radio.switcher"
default="1"
>
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>
<field
name="lazyloading"
type="radio"
label="COM_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>
</fields>
</metadata>