NikiWiki has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/401094 )

Change subject: Specials: Add LibraryInfoHook
......................................................................

Specials: Add LibraryInfoHook

I would like to extend Extension:ControlSpecialVersion to be able to
hide the versions of the installed libraries. It already does so for
php, extensions, etc.

To accomplish this, a hook in SpecialVersions::getExternalLibraries is
needed.

Similar hooks already exist for softwareInformation, getExtensionTypes
and other information about versions.

I considered adding the hook to ComposerInstalled, however I prefer to
keep that as a source of truth and only allow changing the presentation.

Change-Id: I3b0f31f2a9b9ee379781d13555cd186739f02a6f
---
M docs/hooks.txt
M includes/specials/SpecialVersion.php
2 files changed, 11 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/94/401094/1

diff --git a/docs/hooks.txt b/docs/hooks.txt
index 45387a3..75f1e8a 100644
--- a/docs/hooks.txt
+++ b/docs/hooks.txt
@@ -1538,6 +1538,12 @@
 change the tables headers.
 &$extTypes: associative array of extensions types
 
+'ExternalLibraryInfo': Called by Special:Version for returning information 
about the
+installed external libraries.
+&$software: The array of software in format 'name' => ['version', 'type', 
'licenses'
+, 'authors', 'description']. See
+  ComposerInstalled::getInstalledDependencies().
+
 'FetchChangesList': When fetching the ChangesList derivative for a particular
 user.
 $user: User the list is being fetched for
diff --git a/includes/specials/SpecialVersion.php 
b/includes/specials/SpecialVersion.php
index f176b40..b2530c9 100644
--- a/includes/specials/SpecialVersion.php
+++ b/includes/specials/SpecialVersion.php
@@ -488,7 +488,10 @@
                        return '';
                }
 
-               $installed = new ComposerInstalled( $path );
+               $composerInstalled = new ComposerInstalled( $path );
+               $installed = $composerInstalled->getInstalledDependencies();
+               Hooks::run( 'ExternalLibraryInfo', [ &$installed ] );
+
                $out = Html::element(
                        'h2',
                        [ 'id' => 'mw-version-libraries' ],
@@ -506,7 +509,7 @@
                        . Html::element( 'th', [], $this->msg( 
'version-libraries-authors' )->text() )
                        . Html::closeElement( 'tr' );
 
-               foreach ( $installed->getInstalledDependencies() as $name => 
$info ) {
+               foreach ( $installed as $name => $info ) {
                        if ( strpos( $info['type'], 'mediawiki-' ) === 0 ) {
                                // Skip any extensions or skins since they'll 
be listed
                                // in their proper section

-- 
To view, visit https://gerrit.wikimedia.org/r/401094
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I3b0f31f2a9b9ee379781d13555cd186739f02a6f
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: NikiWiki <mf-mediawiki...@hansche.de>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to