mediawiki-skins-Citizen/includes/Partials/Logos.php
2022-05-26 16:58:14 -04:00

68 lines
1.7 KiB
PHP

<?php
/**
* Citizen - A responsive skin developed for the Star Citizen Wiki
*
* This file is part of Citizen.
*
* Citizen is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Citizen is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Citizen. If not, see <https://www.gnu.org/licenses/>.
*
* @file
* @ingroup Skins
*/
declare( strict_types=1 );
namespace MediaWiki\Skins\Citizen\Partials;
use ResourceLoaderSkinModule;
/**
* Drawer partial of Skin Citizen
* Generates the following partials:
* - Logo
* - Drawer
* + Special Pages Link
* + Upload Link
*/
final class Logos extends Partial {
/**
* Get and pick the correct logo based on types and variants
* Based on getLogoData() in MW 1.36
*
* @return array
*/
public function getLogoData(): array {
$skin = $this->skin;
$logoData = ResourceLoaderSkinModule::getAvailableLogos( $skin->getConfig() );
// check if the logo supports variants
$variantsLogos = $logoData['variants'] ?? null;
if ( $variantsLogos ) {
$title = $this->title;
$preferred = $title->getPageViewLanguage()->getCode();
$variantOverrides = $variantsLogos[$preferred] ?? null;
// Overrides the logo
if ( $variantOverrides ) {
foreach ( $variantOverrides as $key => $val ) {
$logoData[$key] = $val;
}
}
}
return $logoData;
}
}