From 67728b514cd77cb18cb972ca14eb5a229b562c6f Mon Sep 17 00:00:00 2001 From: maul75 Date: Mon, 15 Jan 2024 23:06:11 +0100 Subject: [PATCH 1/4] Update settings.php Add section to define article_ids to use as parameter on specific urls. --- lib/yrewrite/settings.php | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/lib/yrewrite/settings.php b/lib/yrewrite/settings.php index 68d05e3..75474ef 100644 --- a/lib/yrewrite/settings.php +++ b/lib/yrewrite/settings.php @@ -30,6 +30,7 @@ public static function processFormPost() $addon->setConfig('unicode_urls', rex_post('yrewrite_unicode_urls', 'bool')); $addon->setConfig('yrewrite_hide_url_block', rex_post('yrewrite_hide_url_block', 'bool')); $addon->setConfig('yrewrite_hide_seo_block', rex_post('yrewrite_hide_seo_block', 'bool')); + $addon->setConfig('yrewrite_allow_article_ids', rex_post('yrewrite_allow_article_ids', 'string')); rex_yrewrite::deleteCache(); @@ -46,6 +47,8 @@ public static function getForm() { $addon = self::getAddon(); + $formElements = []; + // Checkboxes $checkbox_elements = [ [ @@ -64,7 +67,27 @@ public static function getForm() $fragment = new rex_fragment(); $fragment->setVar('elements', $checkbox_elements, false); - $checkboxes = $fragment->parse('core/form/checkbox.php'); + $content = $fragment->parse('core/form/checkbox.php'); + + // Input Fields + $inputGroups = []; + $n = []; + $n['field'] = ''; + $n['left'] = $addon->i18n('yrewrite_allow_article_ids'); + $inputGroups[] = $n; + + $fragment = new rex_fragment(); + $fragment->setVar('elements', $inputGroups, false); + $inputGroup = $fragment->parse('core/form/input_group.php'); + + $n = []; + $n['label'] = ''; + $n['field'] = $inputGroup; + $formElements[] = $n; + + $fragment = new rex_fragment(); + $fragment->setVar('elements', $formElements, false); + $content .= $fragment->parse('core/form/form.php'); // Submit $submit_elements = [ @@ -80,7 +103,7 @@ public static function getForm() $fragment = new rex_fragment(); $fragment->setVar('class', 'edit'); $fragment->setVar('title', $addon->i18n('yrewrite_settings')); - $fragment->setVar('body', $checkboxes, false); + $fragment->setVar('body', $content, false); $fragment->setVar('buttons', $submit, false); return ' @@ -106,5 +129,8 @@ public static function install() if (!$addon->hasConfig('yrewrite_hide_url_block')) { $addon->setConfig('yrewrite_hide_url_block', false); } + if (!$addon->hasConfig('yrewrite_allow_article_ids')) { + $addon->setConfig('yrewrite_allow_article_ids', ''); + } } } From 5aa5d881abab134596b2ef4b49204466656157de Mon Sep 17 00:00:00 2001 From: maul75 Date: Mon, 15 Jan 2024 23:07:33 +0100 Subject: [PATCH 2/4] Update yrewrite.php Added check for new setup section to exclude article ids from rewriting. --- lib/yrewrite/yrewrite.php | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/lib/yrewrite/yrewrite.php b/lib/yrewrite/yrewrite.php index 6bbfee7..5d75141 100644 --- a/lib/yrewrite/yrewrite.php +++ b/lib/yrewrite/yrewrite.php @@ -217,7 +217,12 @@ public static function getPathsByDomain($domain) public static function prepare() { - if (rex::isFrontend() && 'get' === rex_request_method() && !rex_get('rex-api-call') && $articleId = rex_get('article_id', 'int')) { + if (rex::isFrontend() && 'get' === rex_request_method() && !rex_get('rex-api-call') && $articleId = rex_get('article_id', 'int')) + { + if (self::allowArticleId($articleId)) { + return true; + } + $params = $_GET; $article = rex_article::get((int) $params['article_id'], (int) $params['clang']); if ($article instanceof rex_article) { @@ -598,4 +603,15 @@ private static function getSubPath(): string return rtrim($path, DIRECTORY_SEPARATOR) . '/'; } + + protected static function allowArticleId($articleId) + { + $ids = explode(',', rex_addon::get('yrewrite')->getConfig('yrewrite_allow_article_ids')); + + if (in_array($articleId, $ids)) { + return true; + } + + return false; + } } From 25dd4316ebebe703179e88b5c8cae7ecf85c1492 Mon Sep 17 00:00:00 2001 From: maul75 Date: Mon, 15 Jan 2024 23:13:36 +0100 Subject: [PATCH 3/4] Update de_de.lang yrewrite_allow_article_ids --- lang/de_de.lang | 1 + 1 file changed, 1 insertion(+) diff --git a/lang/de_de.lang b/lang/de_de.lang index 40bc63f..19c0e82 100644 --- a/lang/de_de.lang +++ b/lang/de_de.lang @@ -195,3 +195,4 @@ yrewrite_settings_saved = Einstellungen gespeichert yrewrite_unicode_urls = Unicode-Zeichen in URLs erlauben (Umlaute, chinesische/kyrillische Zeichen etc.) yrewrite_hide_url_block = URL-Block verbergen yrewrite_hide_seo_block = SEO-Block verbergen +yrewrite_allow_article_ids = Aufruf von article_id erlauben (Bsp. 1,2,3) From 50e82ee15e9d1f02230682be3bd7cd8610237bb1 Mon Sep 17 00:00:00 2001 From: maul75 Date: Mon, 15 Jan 2024 23:15:52 +0100 Subject: [PATCH 4/4] Update en_gb.lang --- lang/en_gb.lang | 1 + 1 file changed, 1 insertion(+) diff --git a/lang/en_gb.lang b/lang/en_gb.lang index 46c7d5d..11b2311 100644 --- a/lang/en_gb.lang +++ b/lang/en_gb.lang @@ -194,3 +194,4 @@ yrewrite_settings_saved = Settings updated yrewrite_unicode_urls = Allow unicode chars in URLs (umlauts, chinese/cyrillic characters etc.) yrewrite_hide_url_block = Hide URL-Block yrewrite_hide_seo_block = Hide SEO-Block +yrewrite_allow_article_ids = Allow article_id parameter (1,2,3)