2015-04-27 14:05:31 +00:00
|
|
|
<?php
|
2015-05-06 12:49:15 +00:00
|
|
|
|
2015-04-27 14:05:31 +00:00
|
|
|
class PortableInfoboxHooks {
|
2015-06-19 12:16:07 +00:00
|
|
|
|
2015-08-27 11:41:33 +00:00
|
|
|
public static function onBeforePageDisplay( OutputPage $out, Skin $skin ) {
|
2018-07-24 11:02:29 +00:00
|
|
|
$out->addModules( 'ext.PortableInfobox' );
|
2018-05-23 17:14:09 +00:00
|
|
|
|
2015-04-27 14:05:31 +00:00
|
|
|
return true;
|
|
|
|
}
|
2018-08-09 11:52:56 +00:00
|
|
|
|
2018-08-01 10:23:14 +00:00
|
|
|
public static function onBeforePageDisplayMobile( OutputPage $out, Skin $skin ) {
|
|
|
|
$out->addModules( 'ext.PortableInfobox.mobile' );
|
2018-08-09 11:52:56 +00:00
|
|
|
|
2018-08-01 10:23:14 +00:00
|
|
|
return true;
|
|
|
|
}
|
2015-06-09 10:14:49 +00:00
|
|
|
|
2015-08-27 11:41:33 +00:00
|
|
|
public static function onWgQueryPages( &$queryPages = [ ] ) {
|
2015-08-20 13:14:23 +00:00
|
|
|
$queryPages[] = [ 'AllinfoboxesQueryPage', 'AllInfoboxes' ];
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
2018-08-07 14:02:51 +00:00
|
|
|
public static function onBeforeParserrenderImageGallery ( $parser, $gallery ) {
|
|
|
|
if ( $gallery instanceof ImageGalleryBase ) {
|
2018-08-09 11:52:56 +00:00
|
|
|
PortableInfobox\Helpers\PortableInfoboxDataBag::getInstance()->setGallery(
|
2018-08-07 14:02:51 +00:00
|
|
|
Parser::MARKER_PREFIX . "-gallery-" . sprintf( '%08X', $parser->mMarkerIndex-1 ) . Parser::MARKER_SUFFIX,
|
|
|
|
$gallery
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
2015-09-08 17:42:49 +00:00
|
|
|
|
2015-09-22 15:48:38 +00:00
|
|
|
public static function onAllInfoboxesQueryRecached() {
|
2018-08-06 12:27:25 +00:00
|
|
|
$cache = ObjectCache::getMainWANInstance();
|
|
|
|
$cache->delete( $cache->makeKey( __CLASS__, ApiQueryAllinfoboxes::MCACHE_KEY ) );
|
2015-09-22 15:48:38 +00:00
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Purge memcache before edit
|
|
|
|
*
|
2015-09-25 07:23:25 +00:00
|
|
|
* @param $article Page|WikiPage
|
2015-09-22 15:48:38 +00:00
|
|
|
* @param $user
|
|
|
|
* @param $text
|
|
|
|
* @param $summary
|
|
|
|
* @param $minor
|
|
|
|
* @param $watchthis
|
|
|
|
* @param $sectionanchor
|
|
|
|
* @param $flags
|
|
|
|
* @param $status
|
|
|
|
*
|
|
|
|
* @return bool
|
|
|
|
*/
|
2018-08-06 12:27:25 +00:00
|
|
|
public static function onPageContentSave( Page $article, User $user, &$text, &$summary, $minor, $watchthis, $sectionanchor, &$flags, Status &$status ): bool {
|
2015-09-25 14:53:39 +00:00
|
|
|
PortableInfoboxDataService::newFromTitle( $article->getTitle() )->delete();
|
2015-09-22 15:48:38 +00:00
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2015-09-25 14:53:39 +00:00
|
|
|
* Purge memcache, this will not rebuild infobox data
|
2015-09-22 15:48:38 +00:00
|
|
|
*
|
2015-09-25 07:23:25 +00:00
|
|
|
* @param Page|WikiPage $article
|
2015-09-22 15:48:38 +00:00
|
|
|
*
|
|
|
|
* @return bool
|
|
|
|
*/
|
2017-08-07 19:26:54 +00:00
|
|
|
public static function onArticlePurge( Page $article ) {
|
2015-09-22 15:48:38 +00:00
|
|
|
PortableInfoboxDataService::newFromTitle( $article->getTitle() )->purge();
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2016-03-31 07:31:54 +00:00
|
|
|
/**
|
|
|
|
* Insert a newly created infobox into querycache, and purge the list of
|
|
|
|
* infoboxes.
|
|
|
|
*
|
|
|
|
* @param Page $page The created page object
|
|
|
|
* @param User $user The user who created the page
|
|
|
|
* @param string $text Text of the new article
|
|
|
|
* @param string $summary Edit summary
|
|
|
|
* @param int $minoredit Minor edit flag
|
|
|
|
* @param boolean $watchThis Whether or not the user should watch the page
|
|
|
|
* @param null $sectionAnchor Not used, set to null
|
|
|
|
* @param int $flags Flags for this page
|
|
|
|
* @param Revision $revision The newly inserted revision object
|
|
|
|
* @return boolean
|
|
|
|
*/
|
2018-08-06 12:27:25 +00:00
|
|
|
public static function onPageContentInsertComplete( Page $page, User $user, $text, $summary, $minoredit,
|
|
|
|
$watchThis, $sectionAnchor, &$flags, Revision $revision ) {
|
2016-03-31 07:31:54 +00:00
|
|
|
$title = $page->getTitle();
|
2016-04-06 08:50:01 +00:00
|
|
|
if ( $title->inNamespace( NS_TEMPLATE ) ) {
|
2016-04-06 09:54:04 +00:00
|
|
|
( new AllinfoboxesQueryPage() )->addTitleToCache( $title );
|
2016-03-31 07:31:54 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
2015-04-27 14:05:31 +00:00
|
|
|
}
|