diff --git a/lib/speed_up.php b/lib/speed_up.php
index 93d29ad..aedbe7f 100644
--- a/lib/speed_up.php
+++ b/lib/speed_up.php
@@ -26,7 +26,7 @@ public function __construct($profile = 'auto')
}
$mount_id = rex_yrewrite::getCurrentDomain()->getMountId();
$category_mount_children = [];
-
+
if (rex_category::get($mount_id)) {
$category_mount_children = rex_category::get($mount_id)->getChildren(true);
}
@@ -35,20 +35,21 @@ public function __construct($profile = 'auto')
$category_neighbours = [];
- if (null != $category_parent && $category_current->getId() != $mount_id) {
+ if ($category_parent != null && $category_current->getId() != $mount_id) {
// Nur wenn wir uns nicht in Root befinden oder überhalb eines Mount-Points - andere YRewrite-Domains möchten wir nicht prefetchen.
$category_neighbours = $category_parent->getChildren(true);
}
// Manuelle Einstellungen
- $article_prefetch_config = explode(',', self::getConfig('prefetch_articles') ?? '');
+ $article_prefetch_config = explode(",", speed_up::getConfig('prefetch_articles') ?? "");
+
+ if (self::getConfig('profile') === 'auto') {
- if ('auto' === self::getConfig('profile')) {
// Mount-Point = oberste Navigationsebene (Startseite könnte auch in einer Unterkategorie sein)
foreach ($category_mount_children as $category) {
$urls[$category->getId()] = $category->getUrl();
}
-
+
// Nur das erste Kind-Element
foreach ($category_children as $category) {
$urls[$category->getId()] = $category->getUrl();
@@ -63,9 +64,9 @@ public function __construct($profile = 'auto')
}
$urls[$category->getId()] = $category->getUrl();
// Nach 2 gefundenen Nachbarn aussteigen
- if (2 == ++$neighbours) {
+ if (++$neighbours == 2) {
break;
- }
+ };
}
$neighbours = 0;
@@ -75,21 +76,22 @@ public function __construct($profile = 'auto')
continue;
}
$urls[$article->getId()] = $article->getUrl();
- if (2 == ++$neighbours) {
+ if (++$neighbours == 2) {
break;
- }
+ };
}
if ($category_current && $category_current->getId() != $start_id) {
// Startseite hinzufügen
$urls[$start_id] = rex_article::get($start_id)->getUrl();
}
- } elseif ('aggressive' === self::getConfig('profile')) {
+ } elseif (self::getConfig('profile') === 'aggressive') {
+
// Mount-Point = oberste Navigationsebene (Startseite könnte auch in einer Unterkategorie sein)
foreach ($category_mount_children as $category) {
$urls[$category->getId()] = $category->getUrl();
}
-
+
foreach ($category_children as $category) {
$urls[$category->getId()] = $category->getUrl();
}
@@ -97,10 +99,13 @@ public function __construct($profile = 'auto')
foreach ($category_articles as $article) {
$urls[$article->getId()] = $article->getUrl();
}
+
+
foreach ($category_neighbours as $category) {
$urls[$category->getId()] = $category->getUrl();
}
+
if ($category_current && $category_current->getId() != $start_id) {
// Startseite hinzufügen
@@ -118,7 +123,7 @@ public function __construct($profile = 'auto')
$urls = rex_extension::registerPoint(new rex_extension_point(
'PREFETCH_URLS',
- $urls,
+ $urls
));
/*
@@ -128,52 +133,59 @@ public function __construct($profile = 'auto')
}
*/
if (rex_addon::get('ycom')->isAvailable()) {
- // YCom-spezifische Seiten wie Logout sollten keinesfalls geladen werden.
- unset($urls[rex_config::get('ycom', 'article_id_jump_ok')]);
- unset($urls[rex_config::get('ycom', 'article_id_jump_not_ok')]);
- unset($urls[rex_config::get('ycom', 'article_id_jump_logout')]);
+ // YCom-spezifische Seiten wie Logout sollten keinesfalls eigenständig aufgerufen werden. */
unset($urls[rex_config::get('ycom', 'article_id_jump_denied')]);
+ unset($urls[rex_config::get('ycom', 'article_id_jump_logout')]);
+ unset($urls[rex_config::get('ycom', 'article_id_jump_not_ok')]);
+ unset($urls[rex_config::get('ycom', 'article_id_jump_ok')]);
unset($urls[rex_config::get('ycom', 'article_id_jump_password')]);
unset($urls[rex_config::get('ycom', 'article_id_jump_termsofuse')]);
+ unset($urls[rex_config::get('ycom', 'article_id_login')]);
+ unset($urls[rex_config::get('ycom', 'article_id_logout')]);
+ unset($urls[rex_config::get('ycom', 'article_id_register')]);
+ unset($urls[rex_config::get('ycom', 'article_id_password')]);
+ unset($urls[rex_config::get('ycom', 'otp_article_id')]);
- // Reicht das? Wie verhält sich das prefetching zwischen einem ein- und ausgeloggten Nutzer?
}
unset($urls[rex_yrewrite::getCurrentDomain()->getNotfoundId()]);
-
+
$this->urls = $urls;
return $this;
}
+
public function showOutput()
{
echo $this->getOutput();
+ return;
}
-
+
public function show() /* Alias, BC */
{
return $this->showOutput();
}
+
public function getOutput()
{
- if ('disabled' === self::getConfig('profile')) {
+ if (self::getConfig('profile') === 'disabled') {
return;
}
- $output = PHP_EOL;
- $output .= self::getConfig('preload') . PHP_EOL;
- $output .= self::getConfig('prefetch') . PHP_EOL;
-
- $preload_media_config = explode(',', self::getConfig('preload_media') ?? '');
-
+ $output = PHP_EOL;
+ $output .= self::getConfig('preload').PHP_EOL;
+ $output .= self::getConfig('prefetch').PHP_EOL;
+
+ $preload_media_config = explode(",", speed_up::getConfig('preload_media') ?? "");
+
foreach ($preload_media_config as $file) {
if ($media = rex_media::get($file)) {
- $output .= '' . PHP_EOL;
+ $output .= ''.PHP_EOL;
}
}
-
- if ('custom' === self::getConfig('profile')) {
+
+ if (self::getConfig('profile') === "custom") {
return;
}
@@ -182,7 +194,7 @@ public function getOutput()
if (isset($parsedUrl['scheme']) && !in_array($parsedUrl['scheme'], ['http', 'https'])) {
continue;
}
- $output .= '' . PHP_EOL;
+ $output .= ''.PHP_EOL;
}
return $output;
}