mirror of
https://github.com/Universal-Omega/PortableInfobox.git
synced 2024-11-16 04:22:37 +00:00
70 lines
1.9 KiB
PHP
70 lines
1.9 KiB
PHP
<?php
|
|
|
|
class PortableInfoboxHooks {
|
|
const PARSER_TAG_GALLERY = 'gallery';
|
|
|
|
public static function onBeforePageDisplay( OutputPage $out, Skin $skin ) {
|
|
if ( F::app()->checkSkin( 'monobook', $skin ) ) {
|
|
Wikia::addAssetsToOutput( 'portable_infobox_monobook_scss' );
|
|
} else {
|
|
Wikia::addAssetsToOutput( 'portable_infobox_scss' );
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
public static function onImageServingCollectImages( &$imageNamesArray, $articleTitle ) {
|
|
if ( $articleTitle ) {
|
|
$infoboxImages = PortableInfoboxDataService::newFromTitle( $articleTitle )->getImages();
|
|
if ( !empty( $infoboxImages ) ) {
|
|
$imageNamesArray = array_merge( $infoboxImages, (array)$imageNamesArray );
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Store information about raw content of all galleries in article to handle images in infoboxes
|
|
*
|
|
* @param $name Parser tag name
|
|
* @param $marker substitution marker
|
|
* @param $content raw tag contents
|
|
* @param $attributes
|
|
* @param $parser
|
|
* @param $frame
|
|
*
|
|
* @return bool
|
|
*/
|
|
public static function onParserTagHooksBeforeInvoke( $name, $marker, $content, $attributes, $parser, $frame ) {
|
|
if ( $name === self::PARSER_TAG_GALLERY ) {
|
|
\Wikia\PortableInfobox\Helpers\PortableInfoboxDataBag::getInstance()->setGallery( $marker, $content );
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
public static function onWgQueryPages( &$queryPages = [ ] ) {
|
|
$queryPages[] = [ 'AllinfoboxesQueryPage', 'AllInfoboxes' ];
|
|
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* @param EditPageLayoutController $editPage
|
|
*
|
|
* @return bool
|
|
*/
|
|
public static function onEditPageLayoutExecute( $editPage ) {
|
|
// run only on template
|
|
$requestContext = $editPage->getContext();
|
|
if ( $requestContext->getTitle()->getNamespace() == NS_TEMPLATE &&
|
|
$requestContext->getRequest()->getBool( PortableInfoboxBuilderController::INFOBOX_BUILDER_PARAM )
|
|
) {
|
|
$editPage->getResponse()->setVal( 'isPortableInfoboxBuilder', true );
|
|
}
|
|
|
|
return true;
|
|
}
|
|
}
|