/var/www/konzept21.com/html/redaxo/src/addons/yrewrite/lib/yrewrite/yrewrite.php
return isset(self::$domainsByMountId[$aid][$clang]);
}
public static function isInCurrentDomain($aid)
{
return (self::getDomainByArticleId($aid)->getName() == self::getCurrentDomain()->getName()) ? true : false;
}
// ----- url
public static function getPathsByDomain($domain)
{
return self::$paths['paths'][$domain];
}
public static function prepare()
{
if (rex::isFrontend() && 'get' === rex_request_method() && !rex_get('rex-api-call') && $articleId = rex_get('article_id', 'int')) {
$params = $_GET;
$article = rex_article::get((int) $params['article_id'], (int) $params['clang']);
if ($article instanceof rex_article) {
unset($params['article_id']);
unset($params['clang']);
$url = self::getFullUrlByArticleId($articleId, null, $params, '&');
rex_response::sendRedirect($url, rex_response::HTTP_MOVED_PERMANENTLY);
}
}
if ($articleId = rex_request('article_id', 'int')) {
$url = rex_getUrl($articleId);
} else {
if (!isset($_SERVER['REQUEST_URI'])) {
$_SERVER['REQUEST_URI'] = substr($_SERVER['PHP_SELF'], 1);
if (!empty($_SERVER['QUERY_STRING'])) {
$_SERVER['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING'];
}
}
$url = urldecode($_SERVER['REQUEST_URI']);
}
Arguments
"Undefined array key "clang""
/var/www/konzept21.com/html/redaxo/src/addons/yrewrite/lib/yrewrite/yrewrite.php
return isset(self::$domainsByMountId[$aid][$clang]);
}
public static function isInCurrentDomain($aid)
{
return (self::getDomainByArticleId($aid)->getName() == self::getCurrentDomain()->getName()) ? true : false;
}
// ----- url
public static function getPathsByDomain($domain)
{
return self::$paths['paths'][$domain];
}
public static function prepare()
{
if (rex::isFrontend() && 'get' === rex_request_method() && !rex_get('rex-api-call') && $articleId = rex_get('article_id', 'int')) {
$params = $_GET;
$article = rex_article::get((int) $params['article_id'], (int) $params['clang']);
if ($article instanceof rex_article) {
unset($params['article_id']);
unset($params['clang']);
$url = self::getFullUrlByArticleId($articleId, null, $params, '&');
rex_response::sendRedirect($url, rex_response::HTTP_MOVED_PERMANENTLY);
}
}
if ($articleId = rex_request('article_id', 'int')) {
$url = rex_getUrl($articleId);
} else {
if (!isset($_SERVER['REQUEST_URI'])) {
$_SERVER['REQUEST_URI'] = substr($_SERVER['PHP_SELF'], 1);
if (!empty($_SERVER['QUERY_STRING'])) {
$_SERVER['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING'];
}
}
$url = urldecode($_SERVER['REQUEST_URI']);
}
/var/www/konzept21.com/html/redaxo/src/addons/yrewrite/boot.php
$sql->next();
}
return $warning;
});
}
// rex_extension::register('ALL_GENERATED', 'rex_yrewrite::init');
rex_extension::register('URL_REWRITE', static function (rex_extension_point $ep) {
$params = $ep->getParams();
$params['subject'] = $ep->getSubject();
return rex_yrewrite::rewrite($params);
});
rex_extension::register('MEDIA_MANAGER_URL', static function (rex_extension_point $ep) {
return rex_yrewrite::rewriteMedia($ep->getParams());
});
if ('cli' !== PHP_SAPI) {
rex_yrewrite::prepare();
}
if (rex::isBackend()) {
if (!$this->getConfig('yrewrite_hide_url_block') && rex::getUser() instanceof rex_user && rex::getUser()->hasPerm('yrewrite[url]')) {
rex_extension::register('STRUCTURE_CONTENT_SIDEBAR', function (rex_extension_point $ep) {
$params = $ep->getParams();
$subject = $ep->getSubject();
$panel = include rex_path::addon('yrewrite', 'pages/content.yrewrite_url.php');
$fragment = new rex_fragment();
$fragment->setVar('title', '<i class="rex-icon rex-icon-info"></i> '.rex_i18n::msg('yrewrite_rewriter'), false);
$fragment->setVar('body', $panel, false);
$fragment->setVar('article_id', $params['article_id'], false);
$fragment->setVar('collapse', true);
$fragment->setVar('collapsed', false);
$content = $fragment->parse('core/page/section.php');
return $subject.$content;
/var/www/konzept21.com/html/redaxo/src/core/lib/extension.php
*/
public static function registerPoint(rex_extension_point $extensionPoint)
{
if ($factoryClass = static::getExplicitFactoryClass()) {
return $factoryClass::registerPoint($extensionPoint);
}
$name = $extensionPoint->getName();
rex_timer::measure('EP: '.$name, static function () use ($extensionPoint, $name) {
foreach ([self::EARLY, self::NORMAL, self::LATE] as $level) {
if (!isset(self::$extensions[$name][$level]) || !is_array(self::$extensions[$name][$level])) {
continue;
}
foreach (self::$extensions[$name][$level] as $extensionAndParams) {
[$extension, $params] = $extensionAndParams;
$extensionPoint->setExtensionParams($params);
/** @var T|null $subject */
$subject = call_user_func($extension, $extensionPoint);
// Update subject only if the EP is not readonly and the extension has returned something
if ($extensionPoint->isReadonly()) {
continue;
}
if (null === $subject) {
continue;
}
$extensionPoint->setSubject($subject);
}
}
});
return $extensionPoint->getSubject();
}
/**
* Registers an extension for an extension point.
*
* @template T as rex_extension_point
* @param string|string[] $extensionPoint Name(s) of extension point(s)
/var/www/konzept21.com/html/redaxo/src/core/lib/util/timer.php
*
* On sufficient user permissions - or in debug mode - this timings will be sent over the wire to the browser via server timing api http headers.
*
* @template T
*
* @param string $label
* @param callable():T $callable
*
* @return T result of callable
*/
public static function measure($label, callable $callable)
{
if (!rex::isDebugMode()) {
return $callable();
}
$timer = new self();
try {
return $callable();
} finally {
$timer->stop();
self::measured($label, $timer);
}
}
/**
* Saves the measurement of the given timer.
*
* This method should be used only if the measured code can not be wrapped inside a callable, otherwise use `measure()`.
*/
public static function measured(string $label, self $timer): void
{
$duration = self::$serverTimings[$label]['sum'] ?? 0;
$duration += $timer->getDelta(self::MILLISEC);
self::$serverTimings[$label]['sum'] = $duration;
self::$serverTimings[$label]['timings'][] = [
'start' => $timer->start,
/var/www/konzept21.com/html/redaxo/src/core/lib/extension.php
private static $extensions = [];
/**
* Registers an extension point.
*
* @template T
* @param rex_extension_point<T> $extensionPoint Extension point
* @return T Subject, maybe adjusted by the extensions
*
* @psalm-taint-specialize
*/
public static function registerPoint(rex_extension_point $extensionPoint)
{
if ($factoryClass = static::getExplicitFactoryClass()) {
return $factoryClass::registerPoint($extensionPoint);
}
$name = $extensionPoint->getName();
rex_timer::measure('EP: '.$name, static function () use ($extensionPoint, $name) {
foreach ([self::EARLY, self::NORMAL, self::LATE] as $level) {
if (!isset(self::$extensions[$name][$level]) || !is_array(self::$extensions[$name][$level])) {
continue;
}
foreach (self::$extensions[$name][$level] as $extensionAndParams) {
[$extension, $params] = $extensionAndParams;
$extensionPoint->setExtensionParams($params);
/** @var T|null $subject */
$subject = call_user_func($extension, $extensionPoint);
// Update subject only if the EP is not readonly and the extension has returned something
if ($extensionPoint->isReadonly()) {
continue;
}
if (null === $subject) {
continue;
}
$extensionPoint->setSubject($subject);
}
}
/var/www/konzept21.com/html/redaxo/src/core/packages.php
$packageOrder = rex::getPackageOrder();
}
// in the first run, we register all folders for class- and fragment-loading,
// so it is transparent in which order the addons are included afterwards.
foreach ($packageOrder as $packageId) {
rex_package::require($packageId)->enlist();
}
// now we actually include the addons logic
rex_timer::measure('packages_boot', static function () use ($packageOrder) {
foreach ($packageOrder as $packageId) {
rex_timer::measure('package_boot: '.$packageId, static function () use ($packageId) {
rex_package::require($packageId)->boot();
});
}
});
// ----- all addons configs included
rex_extension::registerPoint(new rex_extension_point('PACKAGES_INCLUDED'));
/var/www/konzept21.com/html/redaxo/src/core/frontend.php
<?php
if (rex::isSetup()) {
rex_response::sendRedirect(rex_url::backendController());
}
if (rex::isDebugMode()) {
header('X-Robots-Tag: noindex, nofollow, noarchive');
}
// ----- INCLUDE ADDONS
include_once rex_path::core('packages.php');
// ----- caching end für output filter
$CONTENT = ob_get_clean();
// trigger api functions. the api function is responsible for checking permissions.
rex_api_function::handleCall();
if (rex_extension::isRegistered('FE_OUTPUT')) {
// ----- EXTENSION POINT
rex_extension::registerPoint(new rex_extension_point('FE_OUTPUT', $CONTENT));
} else {
// ----- inhalt ausgeben
rex_response::sendPage($CONTENT);
}
Arguments
"/var/www/konzept21.com/html/redaxo/src/core/packages.php"
/var/www/konzept21.com/html/redaxo/src/core/boot.php
rex_clang::setCurrentId($clangId);
}
}
// ----------------- HTTPS REDIRECT
if ('cli' !== PHP_SAPI && !rex::isSetup()) {
if ((true === rex::getProperty('use_https') || rex::getEnvironment() === rex::getProperty('use_https')) && !rex_request::isHttps()) {
rex_response::enforceHttps();
}
if (true === rex::getProperty('use_hsts') && rex_request::isHttps()) {
rex_response::setHeader('Strict-Transport-Security', 'max-age='.(int) rex::getProperty('hsts_max_age', 31536000)); // default 1 year
}
}
rex_extension::register('SESSION_REGENERATED', [rex_backend_login::class, 'sessionRegenerated']);
if (isset($REX['LOAD_PAGE']) && $REX['LOAD_PAGE']) {
unset($REX);
require rex_path::core(rex::isBackend() ? 'backend.php' : 'frontend.php');
}
Arguments
"/var/www/konzept21.com/html/redaxo/src/core/frontend.php"
/var/www/konzept21.com/html/index.php
<?php
unset($REX);
$REX['REDAXO'] = false;
$REX['HTDOCS_PATH'] = './';
$REX['BACKEND_FOLDER'] = 'redaxo';
$REX['LOAD_PAGE'] = true;
require $REX['BACKEND_FOLDER'] . '/src/core/boot.php';
Arguments
"/var/www/konzept21.com/html/redaxo/src/core/boot.php"