From 132d580c00ef1e6fff959e2928107e35aa9c0517 Mon Sep 17 00:00:00 2001
From: Jan-Hendrik Willms <tleilax+studip@gmail.com>
Date: Tue, 13 Jun 2023 13:18:56 +0000
Subject: [PATCH] deprecated less compilation in plugins, fixes #2718

Closes #2718

Merge request studip/studip!1836
---
 RELEASE-NOTES.md                    |  4 ++--
 lib/classes/assets/LESSCompiler.php | 15 +++++++++++++++
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md
index 80421dea71e..b4f021e3ca3 100644
--- a/RELEASE-NOTES.md
+++ b/RELEASE-NOTES.md
@@ -16,8 +16,8 @@
 
 ## Deprecated Features
 
--
+- Das Verwenden von LESS-Stylesheets in Plugins wurde deprecated und wird zu Stud.IP 6.0 entfernt werden. Die betroffenen Plugins müssen angepasst und auf SCSS umgestellt werden.
 
 ## Known Issues
 
-- Der Vollbildmodus funktioniert nicht auf Apple iPads. Der Modus kann zwar initiiert werden, beendet sich aber selbsständig, wenn nach oben gescrollt wird. Dieses Verhalten ist en Fehler innerhalb von iOS/iPadOS und kann seitens Stud.IP nicht umgangen werden. Der Fehler ist bei Apple gemeldet.
\ No newline at end of file
+- Der Vollbildmodus funktioniert nicht auf Apple iPads. Der Modus kann zwar initiiert werden, beendet sich aber selbsständig, wenn nach oben gescrollt wird. Dieses Verhalten ist en Fehler innerhalb von iOS/iPadOS und kann seitens Stud.IP nicht umgangen werden. Der Fehler ist bei Apple gemeldet.
diff --git a/lib/classes/assets/LESSCompiler.php b/lib/classes/assets/LESSCompiler.php
index f5d1b9fe847..ccb8371cc94 100644
--- a/lib/classes/assets/LESSCompiler.php
+++ b/lib/classes/assets/LESSCompiler.php
@@ -16,6 +16,7 @@ use ILess\Parser;
  * @author  Jan-Hendrik Willms <tleilax+studip@gmail.com>
  * @license GPL2 or any later version
  * @since   Stud.IP 4.4
+ * @deprecated since Stud.IP 5.4 and will be removed in Stud.IP 6.0
  */
 class LESSCompiler implements Compiler
 {
@@ -54,6 +55,20 @@ class LESSCompiler implements Compiler
      */
     public function compile($input, array $variables = []): string
     {
+        // Show deprecation notice
+        if (\Studip\ENV === 'development') {
+            \PageLayout::postMessage(
+                \MessageBox::info(
+                    _('Das Verwenden von LESS-Stylesheets in Plugins ist deprecated und wird zu Stud.IP 6.0 entfernt.'),
+                    [
+                        _('Als Alternative steht die Verwendung von SCSS bereit.'),
+                        _('Bitte stellen Sie Ihre Plugins entsprechend um bzw. geben den Plugin-AutorInnen Bescheid.'),
+                    ]
+                ),
+                'less-deprecation-notice'
+            );
+        }
+
         $less = $this->getPrefix() . $input;
 
         $variables['image-path'] = '"' . Assets::url('images') . '"';
-- 
GitLab