From 647441e3dd31477406199461aa34e10fb0ad75d0 Mon Sep 17 00:00:00 2001 From: SomeRandomDeveloper Date: Tue, 8 Jul 2025 12:11:50 +0200 Subject: [PATCH 1/2] Add import for namespaced Html class Raise MW requirement accordingly. --- extension.json | 2 +- includes/EmbedSnap.php | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/extension.json b/extension.json index 23e2bc6..41fc0fa 100644 --- a/extension.json +++ b/extension.json @@ -9,7 +9,7 @@ "license-name": "GPLv3", "type": "parserhook", "requires": { - "MediaWiki": ">=1.35.0" + "MediaWiki": ">=1.40.0" }, "AutoloadClasses": { "EmbedSnap": "includes/EmbedSnap.php" diff --git a/includes/EmbedSnap.php b/includes/EmbedSnap.php index ab5972f..e5c9558 100644 --- a/includes/EmbedSnap.php +++ b/includes/EmbedSnap.php @@ -18,13 +18,14 @@ */ use MediaWiki\Hook\ParserFirstCallInitHook; +use MediaWiki\Html\Html; if ( !defined( 'MEDIAWIKI' ) ) { die( 'Snap! Project Embed requires MediaWiki 1.35 or later to run.' ); } class EmbedSnap implements ParserFirstCallInitHook { - /** Register and tags */ + /** Register and tags */ public function onParserFirstCallInit( $parser ) { $parser->setHook( 'snap', [ __CLASS__,'renderEmbedSnap' ] ); $parser->setHook( 'snap-project', [ __CLASS__,'renderEmbedSnap' ] ); @@ -41,9 +42,9 @@ public static function renderEmbedSnap( $input, $argv, $parser ) { $pause = ''; $hide = ''; $elementtorender = ''; - + // Arguments passed to the parser - if ( !empty( $argv['project'] ) ) { + if ( !empty( $argv['project'] ) ) { $project = $argv['project']; } elseif ( !empty( $input ) ) { $project = $input; @@ -122,7 +123,7 @@ public static function renderEmbedSnap( $input, $argv, $parser ) { } if ( !empty( $project ) ) { if ( !empty( $user ) ) { - return ( + return ( // If both user and project values are given, it renders the proper iframe. $elementtorender ); From 17a1860ca48342022b11c52fe72b7a32c948c601 Mon Sep 17 00:00:00 2001 From: SomeRandomDeveloper Date: Tue, 8 Jul 2025 12:14:00 +0200 Subject: [PATCH 2/2] Use rawElement instead of concatenating --- includes/EmbedSnap.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/includes/EmbedSnap.php b/includes/EmbedSnap.php index e5c9558..f799bfd 100644 --- a/includes/EmbedSnap.php +++ b/includes/EmbedSnap.php @@ -117,7 +117,11 @@ public static function renderEmbedSnap( $input, $argv, $parser ) { ] ); if ( $hide == 'true' ) { - $elementtorender = Html::openElement( 'details' ) . Html::openElement( 'summary' ) . Html::closeElement( 'summary' ) . $iframe . Html::closeElement( 'details' ); + $elementtorender = Html::rawElement( + 'details', + [], + Html::element( 'summary' ) . $iframe + ); } elseif ( $hide == 'false' ) { $elementtorender = $iframe; }