. * * @file * @ingroup Skins */ declare( strict_types=1 ); namespace Citizen\Partials; /** * Tagline partial of Skin Citizen */ final class Tagline extends Partial { /** * Get tagline message * * @param OutputPage $out OutputPage * @return string */ public function getTagline( $out ) { $title = $out->getTitle(); $shortdesc = $out->getProperty( 'shortdesc' ); $tagline = ''; if ( $title ) { // Use short description if there is any // from Extension:ShortDescription if ( $shortdesc ) { $tagline = $shortdesc; } else { $namespaceText = $title->getNsText(); // Check if namespaceText exists // Return null if main namespace or not defined if ( $namespaceText ) { $msg = $this->skin->msg( 'citizen-tagline-ns-' . strtolower( $namespaceText ) ); // Use custom message if exists if ( !$msg->isDisabled() ) { $tagline = $msg->text(); } else { // No tagline if special page if ( $title->isSpecialPage() ) { $tagline = ''; // Use generic talk page message if talk page } elseif ( $title->isTalkPage() ) { $tagline = $this->skin->msg( 'citizen-tagline-ns-talk' )->text(); // Fallback to site tagline } else { $tagline = $this->skin->msg( 'tagline' )->text(); } } } else { $tagline = $this->skin->msg( 'tagline' )->text(); } } } return $tagline; } }