<?php
$filename = rex_request::request('f','string');
if(strcmp($filename,'')!=0) {
while (@ob_end_flush());
$filename = base64_decode($filename);
$media_data = rex_media::get($filename);
$canonical = $media_data->getValue('med_canonical');
// $mime_type = $media_data->getValue('type');
$mime_type = mime_content_type($_SERVER["DOCUMENT_ROOT"].$mcms."/media/".$filename);
// Ausgabe
header( "Pragma: no-cache" );
header( "Expires: 0" );
header( "Content-Type: ".$mime_type );
header( "Content-Disposition: attachment; filename=\"".$filename."\"");
header("Content-Description: Download ".$mime_type."-File");
if(strcmp($canonical,'')!=0) header('Link: <'.$canonical.'>; rel="canonical"');
readfile($_SERVER["DOCUMENT_ROOT"].$mcms."/media/".$filename);
}
else {
$media = /* REX_MEDIA[1] */ '';
$bezeichnung = /* REX_VALUE[1] */ '';
$linkid = 34;
if(strcmp($bezeichnung,'')==0) $bezeichnung = $media;
$link = rex_getUrl($linkid,rex_clang::getCurrentId()).'?f='.base64_encode($media);
$vl_start = '<div class="container inner">';
$vl_ende = '</div><div style="height:120px;"></div>';
$fsize = filesize($_SERVER["DOCUMENT_ROOT"].'/media/'.$media);
$item = '<div class="col-md-6">
<table class="table table-bordered table-striped">
<tr><td width="50"><i class="icon-download-1"></i></td><td><a href="'.$link.'" target="_blank">'.$bezeichnung.' ('.number_format(($fsize / 1024 / 1024),2,",",".").'MB)</td></tr>
</table>
</div>';
Arguments
"Call to a member function getValue() on null"
/srv/www/web9/htdocs/studienkolleg.rahn.education/redaxo/cache/addons/structure/34.1.content
<?php if ($this->ctype == '1' || ($this->ctype == '-1')) {
require rex_stream::factory('module/7/output',
<<<'EOD_4ED04CC30A5D2A80C92F407627FC8841D8D7E4DF'
<?php
$filename = rex_request::request('f','string');
if(strcmp($filename,'')!=0) {
while (@ob_end_flush());
$filename = base64_decode($filename);
$media_data = rex_media::get($filename);
$canonical = $media_data->getValue('med_canonical');
// $mime_type = $media_data->getValue('type');
$mime_type = mime_content_type($_SERVER["DOCUMENT_ROOT"].$mcms."/media/".$filename);
// Ausgabe
header( "Pragma: no-cache" );
header( "Expires: 0" );
header( "Content-Type: ".$mime_type );
header( "Content-Disposition: attachment; filename=\"".$filename."\"");
header("Content-Description: Download ".$mime_type."-File");
if(strcmp($canonical,'')!=0) header('Link: <'.$canonical.'>; rel="canonical"');
readfile($_SERVER["DOCUMENT_ROOT"].$mcms."/media/".$filename);
}
else {
$media = /* REX_MEDIA[1] */ '';
$bezeichnung = /* REX_VALUE[1] */ '';
$linkid = 34;
if(strcmp($bezeichnung,'')==0) $bezeichnung = $media;
$link = rex_getUrl($linkid,rex_clang::getCurrentId()).'?f='.base64_encode($media);
$vl_start = '<div class="container inner">';
$vl_ende = '</div><div style="height:120px;"></div>';
$fsize = filesize($_SERVER["DOCUMENT_ROOT"].'/media/'.$media);
$item = '<div class="col-md-6">
<table class="table table-bordered table-striped">
<tr><td width="50"><i class="icon-download-1"></i></td><td><a href="'.$link.'" target="_blank">'.$bezeichnung.' ('.number_format(($fsize / 1024 / 1024),2,",",".").'MB)</td></tr>
/srv/www/web9/htdocs/studienkolleg.rahn.education/redaxo/src/addons/structure/plugins/content/lib/article_content.php
{
// bc
if ($this->viasql) {
return parent::getArticle($curctype);
}
$this->ctype = $curctype;
if (!$this->getSlice && 0 != $this->article_id) {
// ----- start: article caching
ob_start();
ob_implicit_flush(0);
$article_content_file = rex_path::addonCache('structure', $this->article_id . '.' . $this->clang . '.content');
if (!is_file($article_content_file)) {
rex_content_service::generateArticleContent($this->article_id, $this->clang);
}
require $article_content_file;
// ----- end: article caching
$CONTENT = ob_get_clean();
} else {
// Inhalt ueber sql generierens
$CONTENT = parent::getArticle($curctype);
}
$CONTENT = rex_extension::registerPoint(new rex_extension_point('ART_CONTENT', $CONTENT, [
'ctype' => $curctype,
'article' => $this,
]));
return $CONTENT;
}
}
Arguments
"/srv/www/web9/htdocs/studienkolleg.rahn.education/redaxo/cache/addons/structure/34.1.content"
<?= /* REX_ARTICLE[] */ $this->getArticle(-1) ?>
Arguments
/srv/www/web9/htdocs/studienkolleg.rahn.education/redaxo/src/addons/structure/plugins/content/lib/article_content_base.php
*/
protected function postArticle($articleContent, $module_id)
{
// nichts tun
return $articleContent;
}
// ----- Template inklusive Artikel zurückgeben
public function getArticleTemplate()
{
if (0 != $this->template_id && 0 != $this->article_id) {
ob_start();
ob_implicit_flush(0);
$TEMPLATE = new rex_template($this->template_id);
rex_timer::measure('Template: '.($TEMPLATE->getKey() ?? $TEMPLATE->getId()), function () use ($TEMPLATE) {
$tplContent = $this->replaceCommonVars($TEMPLATE->getTemplate());
require rex_stream::factory('template/' . $this->template_id, $tplContent);
});
$CONTENT = ob_get_clean();
$CONTENT = $this->replaceLinks($CONTENT);
} else {
$CONTENT = 'no template';
}
return $CONTENT;
}
/**
* @return string
*/
protected function getStreamOutput($path, $content)
{
if (!$this->eval) {
$key = 'EOD_' . strtoupper(sha1((string) time()));
return "require rex_stream::factory('$path', \n<<<'$key'\n$content\n$key\n);\n";
Arguments
/srv/www/web9/htdocs/studienkolleg.rahn.education/redaxo/src/core/lib/util/timer.php
/**
* Measures the runtime of the given callable.
*
* 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.
*
* @param string $label
*
* @return mixed 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,
/srv/www/web9/htdocs/studienkolleg.rahn.education/redaxo/src/addons/structure/plugins/content/lib/article_content_base.php
protected function postArticle($articleContent, $module_id)
{
// nichts tun
return $articleContent;
}
// ----- Template inklusive Artikel zurückgeben
public function getArticleTemplate()
{
if (0 != $this->template_id && 0 != $this->article_id) {
ob_start();
ob_implicit_flush(0);
$TEMPLATE = new rex_template($this->template_id);
rex_timer::measure('Template: '.($TEMPLATE->getKey() ?? $TEMPLATE->getId()), function () use ($TEMPLATE) {
$tplContent = $this->replaceCommonVars($TEMPLATE->getTemplate());
require rex_stream::factory('template/' . $this->template_id, $tplContent);
});
$CONTENT = ob_get_clean();
$CONTENT = $this->replaceLinks($CONTENT);
} else {
$CONTENT = 'no template';
}
return $CONTENT;
}
/**
* @return string
*/
protected function getStreamOutput($path, $content)
{
if (!$this->eval) {
$key = 'EOD_' . strtoupper(sha1((string) time()));
return "require rex_stream::factory('$path', \n<<<'$key'\n$content\n$key\n);\n";
}
Arguments
"Template: 3"
Closure() {#290 …4}
/srv/www/web9/htdocs/studienkolleg.rahn.education/redaxo/src/addons/structure/plugins/content/boot.php
}
rex_extension::register('CLANG_DELETED', static function (rex_extension_point $ep) {
$del = rex_sql::factory();
$del->setQuery('delete from ' . rex::getTablePrefix() . "article_slice where clang_id='" . $ep->getParam('clang')->getId() . "'");
});
} else {
rex_extension::register('FE_OUTPUT', static function (rex_extension_point $ep) {
$clangId = rex_get('clang', 'int');
if ($clangId && !rex_clang::exists($clangId)) {
rex_redirect(rex_article::getNotfoundArticleId(), rex_clang::getStartId());
}
$content = $ep->getSubject();
$article = new rex_article_content();
$article->setCLang(rex_clang::getCurrentId());
if ($article->setArticleId(rex_article::getCurrentId())) {
$content .= $article->getArticleTemplate();
} else {
$fragment = new rex_fragment([
'content' => '<p><b>Kein Startartikel selektiert - No starting Article selected.</b><br />Please click here to enter <a href="' . rex_url::backendController() . '">redaxo</a>.</p>',
]);
$content .= $fragment->parse('core/fe_ooops.php');
rex_response::sendPage($content);
exit;
}
$art_id = $article->getArticleId();
if ($art_id == rex_article::getNotfoundArticleId() && $art_id != rex_article::getSiteStartArticleId()) {
rex_response::setStatus(rex_response::HTTP_NOT_FOUND);
}
// ----- inhalt ausgeben
rex_response::sendPage($content, $article->getValue('updatedate'));
});
}
rex_extension::register('EDITOR_URL', static function (rex_extension_point $ep) {
/srv/www/web9/htdocs/studienkolleg.rahn.education/redaxo/src/core/lib/extension.php
* @return mixed Subject, maybe adjusted by the extensions
*/
public static function registerPoint(rex_extension_point $extensionPoint)
{
if (static::hasFactoryClass()) {
return static::callFactoryClass(__FUNCTION__, func_get_args());
}
$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);
$subject = call_user_func($extension, $extensionPoint);
// Update subject only if the EP is not readonly and the extension has returned something
if (!$extensionPoint->isReadonly() && null !== $subject) {
$extensionPoint->setSubject($subject);
}
}
}
});
return $extensionPoint->getSubject();
}
/**
* Registers an extension for an extension point.
*
* @param string|string[] $extensionPoint Name(s) of extension point(s)
* @param callable $extension Callback extension
* @param int $level Runlevel (`rex_extension::EARLY`, `rex_extension::NORMAL` or `rex_extension::LATE`)
* @param array $params Additional params
*/
public static function register($extensionPoint, callable $extension, $level = self::NORMAL, array $params = [])
Arguments
rex_extension_point {#274}
/srv/www/web9/htdocs/studienkolleg.rahn.education/redaxo/src/core/lib/util/timer.php
/**
* Measures the runtime of the given callable.
*
* 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.
*
* @param string $label
*
* @return mixed 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,
/srv/www/web9/htdocs/studienkolleg.rahn.education/redaxo/src/core/lib/extension.php
$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);
$subject = call_user_func($extension, $extensionPoint);
// Update subject only if the EP is not readonly and the extension has returned something
if (!$extensionPoint->isReadonly() && null !== $subject) {
$extensionPoint->setSubject($subject);
}
}
}
});
return $extensionPoint->getSubject();
}
/**
* Registers an extension for an extension point.
*
* @param string|string[] $extensionPoint Name(s) of extension point(s)
* @param callable $extension Callback extension
* @param int $level Runlevel (`rex_extension::EARLY`, `rex_extension::NORMAL` or `rex_extension::LATE`)
* @param array $params Additional params
*/
public static function register($extensionPoint, callable $extension, $level = self::NORMAL, array $params = [])
{
if (static::hasFactoryClass()) {
static::callFactoryClass(__FUNCTION__, func_get_args());
return;
}
foreach ((array) $extensionPoint as $ep) {
self::$extensions[$ep][(int) $level][] = [$extension, $params];
Arguments
"EP: FE_OUTPUT"
Closure() {#275 …3}
/srv/www/web9/htdocs/studienkolleg.rahn.education/redaxo/src/core/frontend.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
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
rex_extension_point {#274}
/srv/www/web9/htdocs/studienkolleg.rahn.education/redaxo/src/core/boot.php
$clangId = rex_request('clang', 'int', rex_clang::getStartId());
if (rex::isBackend() || rex_clang::exists($clangId)) {
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='.rex::getProperty('hsts_max_age', 31536000)); // default 1 year
}
}
if (isset($REX['LOAD_PAGE']) && $REX['LOAD_PAGE']) {
unset($REX);
require rex_path::core(rex::isBackend() ? 'backend.php' : 'frontend.php');
}
Arguments
"/srv/www/web9/htdocs/studienkolleg.rahn.education/redaxo/src/core/frontend.php"
/srv/www/web9/htdocs/studienkolleg.rahn.education/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
"/srv/www/web9/htdocs/studienkolleg.rahn.education/redaxo/src/core/boot.php"