MediaWiki  master
HookRunner.php
Go to the documentation of this file.
1 <?php
2 
4 
5 use Article;
6 use Config;
7 use File;
9 use JsonContent;
10 use ManualLogEntry;
20 use Parser;
21 use ParserOptions;
22 use Skin;
23 use SpecialPage;
24 use StatusValue;
25 use Title;
26 
40 class HookRunner implements
433  \MediaWiki\Page\Hook\ArticleConfirmDeleteHook,
434  \MediaWiki\Page\Hook\ArticleDeleteAfterSuccessHook,
435  \MediaWiki\Page\Hook\ArticleDeleteCompleteHook,
436  \MediaWiki\Page\Hook\ArticleDeleteHook,
437  \MediaWiki\Page\Hook\ArticleFromTitleHook,
438  \MediaWiki\Page\Hook\ArticlePageDataAfterHook,
439  \MediaWiki\Page\Hook\ArticlePageDataBeforeHook,
440  \MediaWiki\Page\Hook\ArticleParserOptionsHook,
441  \MediaWiki\Page\Hook\ArticleProtectCompleteHook,
442  \MediaWiki\Page\Hook\ArticleProtectHook,
443  \MediaWiki\Page\Hook\ArticlePurgeHook,
444  \MediaWiki\Page\Hook\ArticleRevisionViewCustomHook,
445  \MediaWiki\Page\Hook\ArticleShowPatrolFooterHook,
446  \MediaWiki\Page\Hook\ArticleUndeleteHook,
447  \MediaWiki\Page\Hook\ArticleViewFooterHook,
448  \MediaWiki\Page\Hook\ArticleViewHeaderHook,
449  \MediaWiki\Page\Hook\ArticleViewRedirectHook,
450  \MediaWiki\Page\Hook\Article__MissingArticleConditionsHook,
451  \MediaWiki\Page\Hook\BeforeDisplayNoArticleTextHook,
452  \MediaWiki\Page\Hook\CategoryAfterPageAddedHook,
453  \MediaWiki\Page\Hook\CategoryAfterPageRemovedHook,
454  \MediaWiki\Page\Hook\CategoryPageViewHook,
455  \MediaWiki\Page\Hook\DisplayOldSubtitleHook,
456  \MediaWiki\Page\Hook\ImageOpenShowImageInlineBeforeHook,
457  \MediaWiki\Page\Hook\ImagePageAfterImageLinksHook,
458  \MediaWiki\Page\Hook\ImagePageFileHistoryLineHook,
459  \MediaWiki\Page\Hook\ImagePageFindFileHook,
460  \MediaWiki\Page\Hook\ImagePageShowTOCHook,
461  \MediaWiki\Page\Hook\IsFileCacheableHook,
462  \MediaWiki\Page\Hook\OpportunisticLinksUpdateHook,
463  \MediaWiki\Page\Hook\PageDeleteCompleteHook,
464  \MediaWiki\Page\Hook\PageDeleteHook,
465  \MediaWiki\Page\Hook\PageDeletionDataUpdatesHook,
466  \MediaWiki\Page\Hook\PageUndeleteHook,
467  \MediaWiki\Page\Hook\PageViewUpdatesHook,
468  \MediaWiki\Page\Hook\RevisionFromEditCompleteHook,
469  \MediaWiki\Page\Hook\RevisionUndeletedHook,
470  \MediaWiki\Page\Hook\RollbackCompleteHook,
471  \MediaWiki\Page\Hook\ShowMissingArticleHook,
472  \MediaWiki\Page\Hook\WikiPageDeletionUpdatesHook,
564 {
566  private $container;
567 
568  public function __construct( HookContainer $container ) {
569  $this->container = $container;
570  }
571 
572  public function onAbortAutoblock( $autoblockip, $block ) {
573  return $this->container->run(
574  'AbortAutoblock',
575  [ $autoblockip, $block ]
576  );
577  }
578 
579  public function onAbortDiffCache( $diffEngine ) {
580  return $this->container->run(
581  'AbortDiffCache',
582  [ $diffEngine ]
583  );
584  }
585 
586  public function onAbortEmailNotification( $editor, $title, $rc ) {
587  return $this->container->run(
588  'AbortEmailNotification',
589  [ $editor, $title, $rc ]
590  );
591  }
592 
593  public function onAbortTalkPageEmailNotification( $targetUser, $title ) {
594  return $this->container->run(
595  'AbortTalkPageEmailNotification',
596  [ $targetUser, $title ]
597  );
598  }
599 
600  public function onActionBeforeFormDisplay( $name, $form, $article ) {
601  return $this->container->run(
602  'ActionBeforeFormDisplay',
603  [ $name, $form, $article ]
604  );
605  }
606 
607  public function onActionModifyFormFields( $name, &$fields, $article ) {
608  return $this->container->run(
609  'ActionModifyFormFields',
610  [ $name, &$fields, $article ]
611  );
612  }
613 
614  public function onAddNewAccount( $user, $byEmail ) {
615  return $this->container->run(
616  'AddNewAccount',
617  [ $user, $byEmail ]
618  );
619  }
620 
621  public function onAfterBuildFeedLinks( &$feedLinks ) {
622  return $this->container->run(
623  'AfterBuildFeedLinks',
624  [ &$feedLinks ]
625  );
626  }
627 
628  public function onAfterFinalPageOutput( $output ): void {
629  $this->container->run(
630  'AfterFinalPageOutput',
631  [ $output ],
632  [ 'abortable' => false ]
633  );
634  }
635 
636  public function onAfterImportPage( $title, $foreignTitle, $revCount,
637  $sRevCount, $pageInfo
638  ) {
639  return $this->container->run(
640  'AfterImportPage',
641  [ $title, $foreignTitle, $revCount, $sRevCount, $pageInfo ]
642  );
643  }
644 
645  public function onAfterParserFetchFileAndTitle( $parser, $ig, &$html ) {
646  return $this->container->run(
647  'AfterParserFetchFileAndTitle',
648  [ $parser, $ig, &$html ]
649  );
650  }
651 
652  public function onAlternateEdit( $editPage ) {
653  return $this->container->run(
654  'AlternateEdit',
655  [ $editPage ]
656  );
657  }
658 
659  public function onAlternateEditPreview( $editPage, &$content, &$previewHTML,
660  &$parserOutput
661  ) {
662  return $this->container->run(
663  'AlternateEditPreview',
664  [ $editPage, &$content, &$previewHTML, &$parserOutput ]
665  );
666  }
667 
668  public function onAlternateUserMailer( $headers, $to, $from, $subject, $body ) {
669  return $this->container->run(
670  'AlternateUserMailer',
671  [ $headers, $to, $from, $subject, $body ]
672  );
673  }
674 
675  public function onAncientPagesQuery( &$tables, &$conds, &$joinConds ) {
676  return $this->container->run(
677  'AncientPagesQuery',
678  [ &$tables, &$conds, &$joinConds ]
679  );
680  }
681 
682  public function onApiBeforeMain( &$main ) {
683  return $this->container->run(
684  'ApiBeforeMain',
685  [ &$main ]
686  );
687  }
688 
689  public function onArticleConfirmDelete( $article, $output, &$reason ) {
690  return $this->container->run(
691  'ArticleConfirmDelete',
692  [ $article, $output, &$reason ]
693  );
694  }
695 
696  public function onArticleContentOnDiff( $diffEngine, $output ) {
697  return $this->container->run(
698  'ArticleContentOnDiff',
699  [ $diffEngine, $output ]
700  );
701  }
702 
703  public function onArticleDelete( $wikiPage, $user, &$reason, &$error, &$status,
704  $suppress
705  ) {
706  return $this->container->run(
707  'ArticleDelete',
708  [ $wikiPage, $user, &$reason, &$error, &$status, $suppress ]
709  );
710  }
711 
712  public function onArticleDeleteAfterSuccess( $title, $outputPage ) {
713  return $this->container->run(
714  'ArticleDeleteAfterSuccess',
715  [ $title, $outputPage ]
716  );
717  }
718 
719  public function onArticleDeleteComplete( $wikiPage, $user, $reason, $id,
720  $content, $logEntry, $archivedRevisionCount
721  ) {
722  return $this->container->run(
723  'ArticleDeleteComplete',
724  [ $wikiPage, $user, $reason, $id, $content, $logEntry,
725  $archivedRevisionCount ]
726  );
727  }
728 
729  public function onArticleEditUpdateNewTalk( $wikiPage, $recipient ) {
730  return $this->container->run(
731  'ArticleEditUpdateNewTalk',
732  [ $wikiPage, $recipient ]
733  );
734  }
735 
736  public function onArticleFromTitle( $title, &$article, $context ) {
737  return $this->container->run(
738  'ArticleFromTitle',
739  [ $title, &$article, $context ]
740  );
741  }
742 
743  public function onArticleMergeComplete( $targetTitle, $destTitle ) {
744  return $this->container->run(
745  'ArticleMergeComplete',
746  [ $targetTitle, $destTitle ]
747  );
748  }
749 
750  public function onArticlePageDataAfter( $wikiPage, &$row ) {
751  return $this->container->run(
752  'ArticlePageDataAfter',
753  [ $wikiPage, &$row ]
754  );
755  }
756 
757  public function onArticlePageDataBefore( $wikiPage, &$fields, &$tables,
758  &$joinConds
759  ) {
760  return $this->container->run(
761  'ArticlePageDataBefore',
762  [ $wikiPage, &$fields, &$tables, &$joinConds ]
763  );
764  }
765 
766  public function onArticleParserOptions( Article $article, ParserOptions $popts ) {
767  return $this->container->run(
768  'ArticleParserOptions',
769  [ $article, $popts ]
770  );
771  }
772 
773  public function onArticlePrepareTextForEdit( $wikiPage, $popts ) {
774  return $this->container->run(
775  'ArticlePrepareTextForEdit',
776  [ $wikiPage, $popts ]
777  );
778  }
779 
780  public function onArticleProtect( $wikiPage, $user, $protect, $reason ) {
781  return $this->container->run(
782  'ArticleProtect',
783  [ $wikiPage, $user, $protect, $reason ]
784  );
785  }
786 
787  public function onArticleProtectComplete( $wikiPage, $user, $protect, $reason ) {
788  return $this->container->run(
789  'ArticleProtectComplete',
790  [ $wikiPage, $user, $protect, $reason ]
791  );
792  }
793 
794  public function onArticlePurge( $wikiPage ) {
795  return $this->container->run(
796  'ArticlePurge',
797  [ $wikiPage ]
798  );
799  }
800 
801  public function onArticleRevisionViewCustom( $revision, $title, $oldid,
802  $output
803  ) {
804  return $this->container->run(
805  'ArticleRevisionViewCustom',
806  [ $revision, $title, $oldid, $output ]
807  );
808  }
809 
810  public function onArticleRevisionVisibilitySet( $title, $ids,
811  $visibilityChangeMap
812  ) {
813  return $this->container->run(
814  'ArticleRevisionVisibilitySet',
815  [ $title, $ids, $visibilityChangeMap ]
816  );
817  }
818 
819  public function onArticleShowPatrolFooter( $article ) {
820  return $this->container->run(
821  'ArticleShowPatrolFooter',
822  [ $article ]
823  );
824  }
825 
826  public function onArticleUndelete( $title, $create, $comment, $oldPageId,
827  $restoredPages
828  ) {
829  return $this->container->run(
830  'ArticleUndelete',
831  [ $title, $create, $comment, $oldPageId, $restoredPages ]
832  );
833  }
834 
835  public function onArticleUpdateBeforeRedirect( $article, &$sectionanchor,
836  &$extraq
837  ) {
838  return $this->container->run(
839  'ArticleUpdateBeforeRedirect',
840  [ $article, &$sectionanchor, &$extraq ]
841  );
842  }
843 
844  public function onArticleViewFooter( $article, $patrolFooterShown ) {
845  return $this->container->run(
846  'ArticleViewFooter',
847  [ $article, $patrolFooterShown ]
848  );
849  }
850 
851  public function onArticleViewHeader( $article, &$outputDone, &$pcache ) {
852  return $this->container->run(
853  'ArticleViewHeader',
854  [ $article, &$outputDone, &$pcache ]
855  );
856  }
857 
858  public function onArticleViewRedirect( $article ) {
859  return $this->container->run(
860  'ArticleViewRedirect',
861  [ $article ]
862  );
863  }
864 
865  public function onArticle__MissingArticleConditions( &$conds, $logTypes ) {
866  return $this->container->run(
867  'Article::MissingArticleConditions',
868  [ &$conds, $logTypes ]
869  );
870  }
871 
872  public function onAuthChangeFormFields( $requests, $fieldInfo,
873  &$formDescriptor, $action
874  ) {
875  return $this->container->run(
876  'AuthChangeFormFields',
877  [ $requests, $fieldInfo, &$formDescriptor, $action ]
878  );
879  }
880 
881  public function onAuthManagerLoginAuthenticateAudit( $response, $user,
882  $username, $extraData
883  ) {
884  return $this->container->run(
885  'AuthManagerLoginAuthenticateAudit',
886  [ $response, $user, $username, $extraData ]
887  );
888  }
889 
890  public function onAutopromoteCondition( $type, $args, $user, &$result ) {
891  return $this->container->run(
892  'AutopromoteCondition',
893  [ $type, $args, $user, &$result ]
894  );
895  }
896 
897  public function onBacklinkCacheGetConditions( $table, $title, &$conds ) {
898  return $this->container->run(
899  'BacklinkCacheGetConditions',
900  [ $table, $title, &$conds ]
901  );
902  }
903 
904  public function onBacklinkCacheGetPrefix( $table, &$prefix ) {
905  return $this->container->run(
906  'BacklinkCacheGetPrefix',
907  [ $table, &$prefix ]
908  );
909  }
910 
911  public function onBadImage( $name, &$bad ) {
912  return $this->container->run(
913  'BadImage',
914  [ $name, &$bad ]
915  );
916  }
917 
918  public function onBaseTemplateAfterPortlet( $template, $portlet, &$html ) {
919  return $this->container->run(
920  'BaseTemplateAfterPortlet',
921  [ $template, $portlet, &$html ]
922  );
923  }
924 
925  public function onBeforeDisplayNoArticleText( $article ) {
926  return $this->container->run(
927  'BeforeDisplayNoArticleText',
928  [ $article ]
929  );
930  }
931 
932  public function onBeforeInitialize( $title, $unused, $output, $user, $request,
933  $mediaWiki
934  ) {
935  return $this->container->run(
936  'BeforeInitialize',
937  [ $title, $unused, $output, $user, $request, $mediaWiki ]
938  );
939  }
940 
941  public function onBeforePageDisplay( $out, $skin ): void {
942  $this->container->run(
943  'BeforePageDisplay',
944  [ $out, $skin ],
945  [ 'abortable' => false ]
946  );
947  }
948 
949  public function onBeforePageRedirect( $out, &$redirect, &$code ) {
950  return $this->container->run(
951  'BeforePageRedirect',
952  [ $out, &$redirect, &$code ]
953  );
954  }
955 
956  public function onBeforeParserFetchFileAndTitle( $parser, $nt, &$options,
957  &$descQuery
958  ) {
959  return $this->container->run(
960  'BeforeParserFetchFileAndTitle',
961  [ $parser, $nt, &$options, &$descQuery ]
962  );
963  }
964 
965  public function onBeforeParserFetchTemplateAndtitle( $parser, $title, &$skip,
966  &$id
967  ) {
968  return $this->container->run(
969  'BeforeParserFetchTemplateAndtitle',
970  [ $parser, $title, &$skip, &$id ]
971  );
972  }
973 
975  ?LinkTarget $contextTitle, LinkTarget $title,
976  bool &$skip, ?RevisionRecord &$revRecord
977  ) {
978  return $this->container->run(
979  'BeforeParserFetchTemplateRevisionRecord',
980  [ $contextTitle, $title, &$skip, &$revRecord ]
981  );
982  }
983 
984  public function onBeforeParserrenderImageGallery( $parser, $ig ) {
985  return $this->container->run(
986  'BeforeParserrenderImageGallery',
987  [ $parser, $ig ]
988  );
989  }
990 
991  public function onBeforeRevertedTagUpdate( $wikiPage, $user,
992  $summary, $flags, $revisionRecord, $editResult, &$approved
993  ): void {
994  $this->container->run(
995  'BeforeRevertedTagUpdate',
996  [ $wikiPage, $user, $summary, $flags, $revisionRecord, $editResult,
997  &$approved ],
998  [ 'abortable' => false ]
999  );
1000  }
1001 
1002  public function onBeforeWelcomeCreation( &$welcome_creation_msg,
1003  &$injected_html
1004  ) {
1005  return $this->container->run(
1006  'BeforeWelcomeCreation',
1007  [ &$welcome_creation_msg, &$injected_html ]
1008  );
1009  }
1010 
1011  public function onBitmapHandlerCheckImageArea( $image, &$params,
1012  &$checkImageAreaHookResult
1013  ) {
1014  return $this->container->run(
1015  'BitmapHandlerCheckImageArea',
1016  [ $image, &$params, &$checkImageAreaHookResult ]
1017  );
1018  }
1019 
1020  public function onBitmapHandlerTransform( $handler, $image, &$scalerParams,
1021  &$mto
1022  ) {
1023  return $this->container->run(
1024  'BitmapHandlerTransform',
1025  [ $handler, $image, &$scalerParams, &$mto ]
1026  );
1027  }
1028 
1029  public function onBlockIp( $block, $user, &$reason ) {
1030  return $this->container->run(
1031  'BlockIp',
1032  [ $block, $user, &$reason ]
1033  );
1034  }
1035 
1036  public function onBlockIpComplete( $block, $user, $priorBlock ) {
1037  return $this->container->run(
1038  'BlockIpComplete',
1039  [ $block, $user, $priorBlock ]
1040  );
1041  }
1042 
1043  public function onBookInformation( $isbn, $output ) {
1044  return $this->container->run(
1045  'BookInformation',
1046  [ $isbn, $output ]
1047  );
1048  }
1049 
1050  public function onCanonicalNamespaces( &$namespaces ) {
1051  return $this->container->run(
1052  'CanonicalNamespaces',
1053  [ &$namespaces ]
1054  );
1055  }
1056 
1057  public function onCategoryAfterPageAdded( $category, $wikiPage ) {
1058  return $this->container->run(
1059  'CategoryAfterPageAdded',
1060  [ $category, $wikiPage ]
1061  );
1062  }
1063 
1064  public function onCategoryAfterPageRemoved( $category, $wikiPage, $id ) {
1065  return $this->container->run(
1066  'CategoryAfterPageRemoved',
1067  [ $category, $wikiPage, $id ]
1068  );
1069  }
1070 
1071  public function onCategoryPageView( $catpage ) {
1072  return $this->container->run(
1073  'CategoryPageView',
1074  [ $catpage ]
1075  );
1076  }
1077 
1079  return $this->container->run(
1080  'CategoryViewer::doCategoryQuery',
1081  [ $type, $res ]
1082  );
1083  }
1084 
1085  public function onCategoryViewer__generateLink( $type, $title, $html, &$link ) {
1086  return $this->container->run(
1087  'CategoryViewer::generateLink',
1088  [ $type, $title, $html, &$link ]
1089  );
1090  }
1091 
1092  public function onChangeAuthenticationDataAudit( $req, $status ) {
1093  return $this->container->run(
1094  'ChangeAuthenticationDataAudit',
1095  [ $req, $status ]
1096  );
1097  }
1098 
1099  public function onChangesListInitRows( $changesList, $rows ) {
1100  return $this->container->run(
1101  'ChangesListInitRows',
1102  [ $changesList, $rows ]
1103  );
1104  }
1105 
1106  public function onChangesListInsertArticleLink( $changesList, &$articlelink,
1107  &$s, $rc, $unpatrolled, $watched
1108  ) {
1109  return $this->container->run(
1110  'ChangesListInsertArticleLink',
1111  [ $changesList, &$articlelink, &$s, $rc, $unpatrolled, $watched ]
1112  );
1113  }
1114 
1115  public function onChangesListSpecialPageQuery( $name, &$tables, &$fields,
1116  &$conds, &$query_options, &$join_conds, $opts
1117  ) {
1118  return $this->container->run(
1119  'ChangesListSpecialPageQuery',
1120  [ $name, &$tables, &$fields, &$conds, &$query_options,
1121  &$join_conds, $opts ]
1122  );
1123  }
1124 
1125  public function onChangesListSpecialPageStructuredFilters( $special ) {
1126  return $this->container->run(
1127  'ChangesListSpecialPageStructuredFilters',
1128  [ $special ]
1129  );
1130  }
1131 
1132  public function onChangeTagAfterDelete( $tag, &$status ) {
1133  return $this->container->run(
1134  'ChangeTagAfterDelete',
1135  [ $tag, &$status ]
1136  );
1137  }
1138 
1139  public function onChangeTagCanCreate( $tag, $user, &$status ) {
1140  return $this->container->run(
1141  'ChangeTagCanCreate',
1142  [ $tag, $user, &$status ]
1143  );
1144  }
1145 
1146  public function onChangeTagCanDelete( $tag, $user, &$status ) {
1147  return $this->container->run(
1148  'ChangeTagCanDelete',
1149  [ $tag, $user, &$status ]
1150  );
1151  }
1152 
1153  public function onChangeTagsAfterUpdateTags( $addedTags, $removedTags,
1154  $prevTags, $rc_id, $rev_id, $log_id, $params, $rc, $user
1155  ) {
1156  return $this->container->run(
1157  'ChangeTagsAfterUpdateTags',
1158  [ $addedTags, $removedTags, $prevTags, $rc_id, $rev_id, $log_id,
1159  $params, $rc, $user ]
1160  );
1161  }
1162 
1163  public function onChangeTagsAllowedAdd( &$allowedTags, $addTags, $user ) {
1164  return $this->container->run(
1165  'ChangeTagsAllowedAdd',
1166  [ &$allowedTags, $addTags, $user ]
1167  );
1168  }
1169 
1170  public function onChangeTagsListActive( &$tags ) {
1171  return $this->container->run(
1172  'ChangeTagsListActive',
1173  [ &$tags ]
1174  );
1175  }
1176 
1177  public function onChangeUserGroups( $performer, $user, &$add, &$remove ) {
1178  return $this->container->run(
1179  'ChangeUserGroups',
1180  [ $performer, $user, &$add, &$remove ]
1181  );
1182  }
1183 
1184  public function onCollation__factory( $collationName, &$collationObject ) {
1185  return $this->container->run(
1186  'Collation::factory',
1187  [ $collationName, &$collationObject ]
1188  );
1189  }
1190 
1191  public function onConfirmEmailComplete( $user ) {
1192  return $this->container->run(
1193  'ConfirmEmailComplete',
1194  [ $user ]
1195  );
1196  }
1197 
1198  public function onContentAlterParserOutput( $content, $title, $parserOutput ) {
1199  return $this->container->run(
1200  'ContentAlterParserOutput',
1201  [ $content, $title, $parserOutput ]
1202  );
1203  }
1204 
1205  public function onContentGetParserOutput( $content, $title, $revId, $options,
1206  $generateHtml, &$output
1207  ) {
1208  return $this->container->run(
1209  'ContentGetParserOutput',
1210  [ $content, $title, $revId, $options, $generateHtml, &$output ]
1211  );
1212  }
1213 
1214  public function onContentHandlerDefaultModelFor( $title, &$model ) {
1215  return $this->container->run(
1216  'ContentHandlerDefaultModelFor',
1217  [ $title, &$model ]
1218  );
1219  }
1220 
1221  public function onContentHandlerForModelID( $modeName, &$handler ) {
1222  return $this->container->run(
1223  'ContentHandlerForModelID',
1224  [ $modeName, &$handler ]
1225  );
1226  }
1227 
1228  public function onContentModelCanBeUsedOn( $contentModel, $title, &$ok ) {
1229  return $this->container->run(
1230  'ContentModelCanBeUsedOn',
1231  [ $contentModel, $title, &$ok ]
1232  );
1233  }
1234 
1235  public function onContentSecurityPolicyDefaultSource( &$defaultSrc,
1236  $policyConfig, $mode
1237  ) {
1238  return $this->container->run(
1239  'ContentSecurityPolicyDefaultSource',
1240  [ &$defaultSrc, $policyConfig, $mode ]
1241  );
1242  }
1243 
1244  public function onContentSecurityPolicyDirectives( &$directives, $policyConfig,
1245  $mode
1246  ) {
1247  return $this->container->run(
1248  'ContentSecurityPolicyDirectives',
1249  [ &$directives, $policyConfig, $mode ]
1250  );
1251  }
1252 
1253  public function onContentSecurityPolicyScriptSource( &$scriptSrc,
1254  $policyConfig, $mode
1255  ) {
1256  return $this->container->run(
1257  'ContentSecurityPolicyScriptSource',
1258  [ &$scriptSrc, $policyConfig, $mode ]
1259  );
1260  }
1261 
1262  public function onContribsPager__getQueryInfo( $pager, &$queryInfo ) {
1263  return $this->container->run(
1264  'ContribsPager::getQueryInfo',
1265  [ $pager, &$queryInfo ]
1266  );
1267  }
1268 
1269  public function onContribsPager__reallyDoQuery( &$data, $pager, $offset,
1270  $limit, $descending
1271  ) {
1272  return $this->container->run(
1273  'ContribsPager::reallyDoQuery',
1274  [ &$data, $pager, $offset, $limit, $descending ]
1275  );
1276  }
1277 
1278  public function onContributionsLineEnding( $page, &$ret, $row, &$classes,
1279  &$attribs
1280  ) {
1281  return $this->container->run(
1282  'ContributionsLineEnding',
1283  [ $page, &$ret, $row, &$classes, &$attribs ]
1284  );
1285  }
1286 
1287  public function onContributionsToolLinks( $id, Title $title, array &$tools, SpecialPage $specialPage ) {
1288  return $this->container->run(
1289  'ContributionsToolLinks',
1290  [ $id, $title, &$tools, $specialPage ]
1291  );
1292  }
1293 
1294  public function onConvertContent( $content, $toModel, $lossy, &$result ) {
1295  return $this->container->run(
1296  'ConvertContent',
1297  [ $content, $toModel, $lossy, &$result ]
1298  );
1299  }
1300 
1301  public function onCustomEditor( $article, $user ) {
1302  return $this->container->run(
1303  'CustomEditor',
1304  [ $article, $user ]
1305  );
1306  }
1307 
1308  public function onDeletedContribsPager__reallyDoQuery( &$data, $pager, $offset,
1309  $limit, $descending
1310  ) {
1311  return $this->container->run(
1312  'DeletedContribsPager::reallyDoQuery',
1313  [ &$data, $pager, $offset, $limit, $descending ]
1314  );
1315  }
1316 
1317  public function onDeletedContributionsLineEnding( $page, &$ret, $row,
1318  &$classes, &$attribs
1319  ) {
1320  return $this->container->run(
1321  'DeletedContributionsLineEnding',
1322  [ $page, &$ret, $row, &$classes, &$attribs ]
1323  );
1324  }
1325 
1326  public function onDeleteUnknownPreferences( &$where, $db ) {
1327  return $this->container->run(
1328  'DeleteUnknownPreferences',
1329  [ &$where, $db ]
1330  );
1331  }
1332 
1333  public function onDifferenceEngineAfterLoadNewText( $differenceEngine ) {
1334  return $this->container->run(
1335  'DifferenceEngineAfterLoadNewText',
1336  [ $differenceEngine ]
1337  );
1338  }
1339 
1341  $differenceEngine
1342  ) {
1343  return $this->container->run(
1344  'DifferenceEngineLoadTextAfterNewContentIsLoaded',
1345  [ $differenceEngine ]
1346  );
1347  }
1348 
1349  public function onDifferenceEngineMarkPatrolledLink( $differenceEngine,
1350  &$markAsPatrolledLink, $rcid
1351  ) {
1352  return $this->container->run(
1353  'DifferenceEngineMarkPatrolledLink',
1354  [ $differenceEngine, &$markAsPatrolledLink, $rcid ]
1355  );
1356  }
1357 
1358  public function onDifferenceEngineMarkPatrolledRCID( &$rcid, $differenceEngine,
1359  $change, $user
1360  ) {
1361  return $this->container->run(
1362  'DifferenceEngineMarkPatrolledRCID',
1363  [ &$rcid, $differenceEngine, $change, $user ]
1364  );
1365  }
1366 
1367  public function onDifferenceEngineNewHeader( $differenceEngine, &$newHeader,
1368  $formattedRevisionTools, $nextlink, $rollback, $newminor, $diffOnly, $rdel,
1369  $unhide
1370  ) {
1371  return $this->container->run(
1372  'DifferenceEngineNewHeader',
1373  [ $differenceEngine, &$newHeader, $formattedRevisionTools,
1374  $nextlink, $rollback, $newminor, $diffOnly, $rdel, $unhide ]
1375  );
1376  }
1377 
1378  public function onDifferenceEngineOldHeader( $differenceEngine, &$oldHeader,
1379  $prevlink, $oldminor, $diffOnly, $ldel, $unhide
1380  ) {
1381  return $this->container->run(
1382  'DifferenceEngineOldHeader',
1383  [ $differenceEngine, &$oldHeader, $prevlink, $oldminor, $diffOnly,
1384  $ldel, $unhide ]
1385  );
1386  }
1387 
1388  public function onDifferenceEngineOldHeaderNoOldRev( &$oldHeader ) {
1389  return $this->container->run(
1390  'DifferenceEngineOldHeaderNoOldRev',
1391  [ &$oldHeader ]
1392  );
1393  }
1394 
1396  $differenceEngine, $out, $parserOutput, $wikiPage
1397  ) {
1398  return $this->container->run(
1399  'DifferenceEngineRenderRevisionAddParserOutput',
1400  [ $differenceEngine, $out, $parserOutput, $wikiPage ]
1401  );
1402  }
1403 
1405  return $this->container->run(
1406  'DifferenceEngineRenderRevisionShowFinalPatrolLink',
1407  []
1408  );
1409  }
1410 
1411  public function onDifferenceEngineShowDiff( $differenceEngine ) {
1412  return $this->container->run(
1413  'DifferenceEngineShowDiff',
1414  [ $differenceEngine ]
1415  );
1416  }
1417 
1418  public function onDifferenceEngineShowDiffPage( $out ) {
1419  return $this->container->run(
1420  'DifferenceEngineShowDiffPage',
1421  [ $out ]
1422  );
1423  }
1424 
1426  $differenceEngine
1427  ) {
1428  return $this->container->run(
1429  'DifferenceEngineShowDiffPageMaybeShowMissingRevision',
1430  [ $differenceEngine ]
1431  );
1432  }
1433 
1434  public function onDifferenceEngineShowEmptyOldContent( $differenceEngine ) {
1435  return $this->container->run(
1436  'DifferenceEngineShowEmptyOldContent',
1437  [ $differenceEngine ]
1438  );
1439  }
1440 
1441  public function onDifferenceEngineViewHeader( $differenceEngine ) {
1442  return $this->container->run(
1443  'DifferenceEngineViewHeader',
1444  [ $differenceEngine ]
1445  );
1446  }
1447 
1448  public function onDiffTools( $newRevRecord, &$links, $oldRevRecord, $userIdentity ) {
1449  return $this->container->run(
1450  'DiffTools',
1451  [ $newRevRecord, &$links, $oldRevRecord, $userIdentity ]
1452  );
1453  }
1454 
1455  public function onDisplayOldSubtitle( $article, &$oldid ) {
1456  return $this->container->run(
1457  'DisplayOldSubtitle',
1458  [ $article, &$oldid ]
1459  );
1460  }
1461 
1462  public function onEditFilter( $editor, $text, $section, &$error, $summary ) {
1463  return $this->container->run(
1464  'EditFilter',
1465  [ $editor, $text, $section, &$error, $summary ]
1466  );
1467  }
1468 
1469  public function onEditFilterMergedContent( $context, $content, $status,
1470  $summary, $user, $minoredit
1471  ) {
1472  return $this->container->run(
1473  'EditFilterMergedContent',
1474  [ $context, $content, $status, $summary, $user, $minoredit ]
1475  );
1476  }
1477 
1478  public function onEditFormInitialText( $editPage ) {
1479  return $this->container->run(
1480  'EditFormInitialText',
1481  [ $editPage ]
1482  );
1483  }
1484 
1485  public function onEditFormPreloadText( &$text, $title ) {
1486  return $this->container->run(
1487  'EditFormPreloadText',
1488  [ &$text, $title ]
1489  );
1490  }
1491 
1492  public function onEditPageBeforeConflictDiff( $editor, $out ) {
1493  return $this->container->run(
1494  'EditPageBeforeConflictDiff',
1495  [ $editor, $out ]
1496  );
1497  }
1498 
1499  public function onEditPageBeforeEditButtons( $editpage, &$buttons, &$tabindex ) {
1500  return $this->container->run(
1501  'EditPageBeforeEditButtons',
1502  [ $editpage, &$buttons, &$tabindex ]
1503  );
1504  }
1505 
1506  public function onEditPageBeforeEditToolbar( &$toolbar ) {
1507  return $this->container->run(
1508  'EditPageBeforeEditToolbar',
1509  [ &$toolbar ]
1510  );
1511  }
1512 
1513  public function onEditPageCopyrightWarning( $title, &$msg ) {
1514  return $this->container->run(
1515  'EditPageCopyrightWarning',
1516  [ $title, &$msg ]
1517  );
1518  }
1519 
1520  public function onEditPageGetCheckboxesDefinition( $editpage, &$checkboxes ) {
1521  return $this->container->run(
1522  'EditPageGetCheckboxesDefinition',
1523  [ $editpage, &$checkboxes ]
1524  );
1525  }
1526 
1527  public function onEditPageGetDiffContent( $editPage, &$newtext ) {
1528  return $this->container->run(
1529  'EditPageGetDiffContent',
1530  [ $editPage, &$newtext ]
1531  );
1532  }
1533 
1534  public function onEditPageGetPreviewContent( $editPage, &$content ) {
1535  return $this->container->run(
1536  'EditPageGetPreviewContent',
1537  [ $editPage, &$content ]
1538  );
1539  }
1540 
1541  public function onEditPageNoSuchSection( $editpage, &$res ) {
1542  return $this->container->run(
1543  'EditPageNoSuchSection',
1544  [ $editpage, &$res ]
1545  );
1546  }
1547 
1548  public function onEditPageTosSummary( $title, &$msg ) {
1549  return $this->container->run(
1550  'EditPageTosSummary',
1551  [ $title, &$msg ]
1552  );
1553  }
1554 
1555  public function onEditPage__attemptSave( $editpage_Obj ) {
1556  return $this->container->run(
1557  'EditPage::attemptSave',
1558  [ $editpage_Obj ]
1559  );
1560  }
1561 
1562  public function onEditPage__attemptSave_after( $editpage_Obj, $status,
1563  $resultDetails
1564  ) {
1565  return $this->container->run(
1566  'EditPage::attemptSave:after',
1567  [ $editpage_Obj, $status, $resultDetails ]
1568  );
1569  }
1570 
1571  public function onEditPage__importFormData( $editpage, $request ) {
1572  return $this->container->run(
1573  'EditPage::importFormData',
1574  [ $editpage, $request ]
1575  );
1576  }
1577 
1578  public function onEditPage__showEditForm_fields( $editor, $out ) {
1579  return $this->container->run(
1580  'EditPage::showEditForm:fields',
1581  [ $editor, $out ]
1582  );
1583  }
1584 
1585  public function onEditPage__showEditForm_initial( $editor, $out ) {
1586  return $this->container->run(
1587  'EditPage::showEditForm:initial',
1588  [ $editor, $out ]
1589  );
1590  }
1591 
1592  public function onEditPage__showReadOnlyForm_initial( $editor, $out ) {
1593  return $this->container->run(
1594  'EditPage::showReadOnlyForm:initial',
1595  [ $editor, $out ]
1596  );
1597  }
1598 
1599  public function onEditPage__showStandardInputs_options( $editor, $out,
1600  &$tabindex
1601  ) {
1602  return $this->container->run(
1603  'EditPage::showStandardInputs:options',
1604  [ $editor, $out, &$tabindex ]
1605  );
1606  }
1607 
1608  public function onEmailConfirmed( $user, &$confirmed ) {
1609  return $this->container->run(
1610  'EmailConfirmed',
1611  [ $user, &$confirmed ]
1612  );
1613  }
1614 
1615  public function onEmailUser( &$to, &$from, &$subject, &$text, &$error ) {
1616  return $this->container->run(
1617  'EmailUser',
1618  [ &$to, &$from, &$subject, &$text, &$error ]
1619  );
1620  }
1621 
1622  public function onEmailUserCC( &$to, &$from, &$subject, &$text ) {
1623  return $this->container->run(
1624  'EmailUserCC',
1625  [ &$to, &$from, &$subject, &$text ]
1626  );
1627  }
1628 
1629  public function onEmailUserComplete( $to, $from, $subject, $text ) {
1630  return $this->container->run(
1631  'EmailUserComplete',
1632  [ $to, $from, $subject, $text ]
1633  );
1634  }
1635 
1636  public function onEmailUserForm( &$form ) {
1637  return $this->container->run(
1638  'EmailUserForm',
1639  [ &$form ]
1640  );
1641  }
1642 
1643  public function onEmailUserPermissionsErrors( $user, $editToken, &$hookErr ) {
1644  return $this->container->run(
1645  'EmailUserPermissionsErrors',
1646  [ $user, $editToken, &$hookErr ]
1647  );
1648  }
1649 
1650  public function onEnhancedChangesListModifyBlockLineData( $changesList, &$data,
1651  $rc
1652  ) {
1653  return $this->container->run(
1654  'EnhancedChangesListModifyBlockLineData',
1655  [ $changesList, &$data, $rc ]
1656  );
1657  }
1658 
1659  public function onEnhancedChangesListModifyLineData( $changesList, &$data,
1660  $block, $rc, &$classes, &$attribs
1661  ) {
1662  return $this->container->run(
1663  'EnhancedChangesListModifyLineData',
1664  [ $changesList, &$data, $block, $rc, &$classes, &$attribs ]
1665  );
1666  }
1667 
1668  public function onEnhancedChangesList__getLogText( $changesList, &$links,
1669  $block
1670  ) {
1671  return $this->container->run(
1672  'EnhancedChangesList::getLogText',
1673  [ $changesList, &$links, $block ]
1674  );
1675  }
1676 
1677  public function onExemptFromAccountCreationThrottle( $ip ) {
1678  return $this->container->run(
1679  'ExemptFromAccountCreationThrottle',
1680  [ $ip ]
1681  );
1682  }
1683 
1684  public function onExtensionTypes( &$extTypes ) {
1685  return $this->container->run(
1686  'ExtensionTypes',
1687  [ &$extTypes ]
1688  );
1689  }
1690 
1691  public function onFetchChangesList( $user, $skin, &$list, $groups ) {
1692  return $this->container->run(
1693  'FetchChangesList',
1694  [ $user, $skin, &$list, $groups ]
1695  );
1696  }
1697 
1698  public function onFileDeleteComplete( $file, $oldimage, $article, $user,
1699  $reason
1700  ) {
1701  return $this->container->run(
1702  'FileDeleteComplete',
1703  [ $file, $oldimage, $article, $user, $reason ]
1704  );
1705  }
1706 
1707  public function onFileTransformed( $file, $thumb, $tmpThumbPath, $thumbPath ) {
1708  return $this->container->run(
1709  'FileTransformed',
1710  [ $file, $thumb, $tmpThumbPath, $thumbPath ]
1711  );
1712  }
1713 
1714  public function onFileUndeleteComplete( $title, $fileVersions, $user, $reason ) {
1715  return $this->container->run(
1716  'FileUndeleteComplete',
1717  [ $title, $fileVersions, $user, $reason ]
1718  );
1719  }
1720 
1721  public function onFileUpload( $file, $reupload, $hasDescription ) {
1722  return $this->container->run(
1723  'FileUpload',
1724  [ $file, $reupload, $hasDescription ]
1725  );
1726  }
1727 
1728  public function onFormatAutocomments( &$comment, $pre, $auto, $post, $title,
1729  $local, $wikiId
1730  ) {
1731  return $this->container->run(
1732  'FormatAutocomments',
1733  [ &$comment, $pre, $auto, $post, $title, $local, $wikiId ]
1734  );
1735  }
1736 
1737  public function onGalleryGetModes( &$modeArray ) {
1738  return $this->container->run(
1739  'GalleryGetModes',
1740  [ &$modeArray ]
1741  );
1742  }
1743 
1744  public function onGetAllBlockActions( &$actions ) {
1745  return $this->container->run(
1746  'GetAllBlockActions',
1747  [ &$actions ],
1748  [ 'abortable' => false ]
1749  );
1750  }
1751 
1752  public function onGetAutoPromoteGroups( $user, &$promote ) {
1753  return $this->container->run(
1754  'GetAutoPromoteGroups',
1755  [ $user, &$promote ]
1756  );
1757  }
1758 
1759  public function onGetActionName( IContextSource $context, string &$action ): void {
1760  $this->container->run(
1761  'GetActionName',
1762  [ $context, &$action ],
1763  [ 'abortable' => false ]
1764  );
1765  }
1766 
1767  public function onGetCacheVaryCookies( $out, &$cookies ) {
1768  return $this->container->run(
1769  'GetCacheVaryCookies',
1770  [ $out, &$cookies ]
1771  );
1772  }
1773 
1774  public function onGetCanonicalURL( $title, &$url, $query ) {
1775  return $this->container->run(
1776  'GetCanonicalURL',
1777  [ $title, &$url, $query ]
1778  );
1779  }
1780 
1781  public function onGetContentModels( &$models ) {
1782  return $this->container->run(
1783  'GetContentModels',
1784  [ &$models ]
1785  );
1786  }
1787 
1788  public function onGetDefaultSortkey( $title, &$sortkey ) {
1789  return $this->container->run(
1790  'GetDefaultSortkey',
1791  [ $title, &$sortkey ]
1792  );
1793  }
1794 
1795  public function onGetDifferenceEngine( $context, $old, $new, $refreshCache,
1796  $unhide, &$differenceEngine
1797  ) {
1798  return $this->container->run(
1799  'GetDifferenceEngine',
1800  [ $context, $old, $new, $refreshCache, $unhide,
1801  &$differenceEngine ]
1802  );
1803  }
1804 
1805  public function onGetDoubleUnderscoreIDs( &$doubleUnderscoreIDs ) {
1806  return $this->container->run(
1807  'GetDoubleUnderscoreIDs',
1808  [ &$doubleUnderscoreIDs ]
1809  );
1810  }
1811 
1812  public function onGetExtendedMetadata( &$combinedMeta, $file, $context,
1813  $single, &$maxCacheTime
1814  ) {
1815  return $this->container->run(
1816  'GetExtendedMetadata',
1817  [ &$combinedMeta, $file, $context, $single, &$maxCacheTime ]
1818  );
1819  }
1820 
1821  public function onGetFullURL( $title, &$url, $query ) {
1822  return $this->container->run(
1823  'GetFullURL',
1824  [ $title, &$url, $query ]
1825  );
1826  }
1827 
1828  public function onGetHumanTimestamp( &$output, $timestamp, $relativeTo, $user,
1829  $lang
1830  ) {
1831  return $this->container->run(
1832  'GetHumanTimestamp',
1833  [ &$output, $timestamp, $relativeTo, $user, $lang ]
1834  );
1835  }
1836 
1837  public function onGetInternalURL( $title, &$url, $query ) {
1838  return $this->container->run(
1839  'GetInternalURL',
1840  [ $title, &$url, $query ]
1841  );
1842  }
1843 
1844  public function onGetIP( &$ip ) {
1845  return $this->container->run(
1846  'GetIP',
1847  [ &$ip ]
1848  );
1849  }
1850 
1851  public function onGetLangPreferredVariant( &$req ) {
1852  return $this->container->run(
1853  'GetLangPreferredVariant',
1854  [ &$req ]
1855  );
1856  }
1857 
1858  public function onGetLinkColours( $linkcolour_ids, &$colours, $title ) {
1859  return $this->container->run(
1860  'GetLinkColours',
1861  [ $linkcolour_ids, &$colours, $title ]
1862  );
1863  }
1864 
1865  public function onGetLocalURL( $title, &$url, $query ) {
1866  return $this->container->run(
1867  'GetLocalURL',
1868  [ $title, &$url, $query ]
1869  );
1870  }
1871 
1872  public function onGetLocalURL__Article( $title, &$url ) {
1873  return $this->container->run(
1874  'GetLocalURL::Article',
1875  [ $title, &$url ]
1876  );
1877  }
1878 
1879  public function onGetLocalURL__Internal( $title, &$url, $query ) {
1880  return $this->container->run(
1881  'GetLocalURL::Internal',
1882  [ $title, &$url, $query ]
1883  );
1884  }
1885 
1886  public function onGetLogTypesOnUser( &$types ) {
1887  return $this->container->run(
1888  'GetLogTypesOnUser',
1889  [ &$types ]
1890  );
1891  }
1892 
1893  public function onGetMagicVariableIDs( &$variableIDs ) {
1894  return $this->container->run(
1895  'GetMagicVariableIDs',
1896  [ &$variableIDs ]
1897  );
1898  }
1899 
1900  public function onGetMetadataVersion( &$version ) {
1901  return $this->container->run(
1902  'GetMetadataVersion',
1903  [ &$version ]
1904  );
1905  }
1906 
1907  public function onGetNewMessagesAlert( &$newMessagesAlert, $newtalks, $user,
1908  $out
1909  ) {
1910  return $this->container->run(
1911  'GetNewMessagesAlert',
1912  [ &$newMessagesAlert, $newtalks, $user, $out ]
1913  );
1914  }
1915 
1916  public function onGetPreferences( $user, &$preferences ) {
1917  return $this->container->run(
1918  'GetPreferences',
1919  [ $user, &$preferences ]
1920  );
1921  }
1922 
1923  public function onGetRelativeTimestamp( &$output, &$diff, $timestamp,
1924  $relativeTo, $user, $lang
1925  ) {
1926  return $this->container->run(
1927  'GetRelativeTimestamp',
1928  [ &$output, &$diff, $timestamp, $relativeTo, $user, $lang ]
1929  );
1930  }
1931 
1932  public function onGetSlotDiffRenderer( $contentHandler, &$slotDiffRenderer,
1933  $context
1934  ) {
1935  return $this->container->run(
1936  'GetSlotDiffRenderer',
1937  [ $contentHandler, &$slotDiffRenderer, $context ]
1938  );
1939  }
1940 
1941  public function onGetUserBlock( $user, $ip, &$block ) {
1942  return $this->container->run(
1943  'GetUserBlock',
1944  [ $user, $ip, &$block ]
1945  );
1946  }
1947 
1948  public function onPermissionErrorAudit(
1950  UserIdentity $user,
1951  string $action,
1952  string $rigor,
1953  array $errors
1954  ): void {
1955  $this->container->run(
1956  'PermissionErrorAudit',
1957  [ $title, $user, $action, $rigor, $errors ],
1958  [ 'abortable' => false ]
1959  );
1960  }
1961 
1962  public function onGetUserPermissionsErrors( $title, $user, $action, &$result ) {
1963  return $this->container->run(
1964  'getUserPermissionsErrors',
1965  [ $title, $user, $action, &$result ]
1966  );
1967  }
1968 
1969  public function onGetUserPermissionsErrorsExpensive( $title, $user, $action,
1970  &$result
1971  ) {
1972  return $this->container->run(
1973  'getUserPermissionsErrorsExpensive',
1974  [ $title, $user, $action, &$result ]
1975  );
1976  }
1977 
1978  public function onGitViewers( &$extTypes ) {
1979  return $this->container->run(
1980  'GitViewers',
1981  [ &$extTypes ]
1982  );
1983  }
1984 
1985  public function onHistoryPageToolLinks( IContextSource $context, LinkRenderer $linkRenderer, array &$links ) {
1986  return $this->container->run(
1987  'HistoryPageToolLinks',
1988  [ $context, $linkRenderer, &$links ]
1989  );
1990  }
1991 
1992  public function onHistoryTools( $revRecord, &$links, $prevRevRecord, $userIdentity ) {
1993  return $this->container->run(
1994  'HistoryTools',
1995  [ $revRecord, &$links, $prevRevRecord, $userIdentity ]
1996  );
1997  }
1998 
1999  public function onHtmlCacheUpdaterAppendUrls( $title, $mode, &$append ) {
2000  return $this->container->run(
2001  'HtmlCacheUpdaterAppendUrls',
2002  [ $title, $mode, &$append ]
2003  );
2004  }
2005 
2006  public function onHtmlCacheUpdaterVaryUrls( $urls, &$append ) {
2007  return $this->container->run(
2008  'HtmlCacheUpdaterVaryUrls',
2009  [ $urls, &$append ]
2010  );
2011  }
2012 
2013  public function onHTMLFileCache__useFileCache( $context ) {
2014  return $this->container->run(
2015  'HTMLFileCache::useFileCache',
2016  [ $context ]
2017  );
2018  }
2019 
2020  public function onHtmlPageLinkRendererBegin( $linkRenderer, $target, &$text,
2021  &$customAttribs, &$query, &$ret
2022  ) {
2023  return $this->container->run(
2024  'HtmlPageLinkRendererBegin',
2025  [ $linkRenderer, $target, &$text, &$customAttribs, &$query, &$ret ]
2026  );
2027  }
2028 
2029  public function onHtmlPageLinkRendererEnd( $linkRenderer, $target, $isKnown,
2030  &$text, &$attribs, &$ret
2031  ) {
2032  return $this->container->run(
2033  'HtmlPageLinkRendererEnd',
2034  [ $linkRenderer, $target, $isKnown, &$text, &$attribs, &$ret ]
2035  );
2036  }
2037 
2038  public function onImageBeforeProduceHTML( $linker, &$title, &$file,
2039  &$frameParams, &$handlerParams, &$time, &$res, $parser, &$query, &$widthOption
2040  ) {
2041  return $this->container->run(
2042  'ImageBeforeProduceHTML',
2043  [ $linker, &$title, &$file, &$frameParams, &$handlerParams, &$time,
2044  &$res, $parser, &$query, &$widthOption ]
2045  );
2046  }
2047 
2048  public function onImageOpenShowImageInlineBefore( $imagePage, $output ) {
2049  return $this->container->run(
2050  'ImageOpenShowImageInlineBefore',
2051  [ $imagePage, $output ]
2052  );
2053  }
2054 
2055  public function onImagePageAfterImageLinks( $imagePage, &$html ) {
2056  return $this->container->run(
2057  'ImagePageAfterImageLinks',
2058  [ $imagePage, &$html ]
2059  );
2060  }
2061 
2062  public function onImagePageFileHistoryLine( $imageHistoryList, $file, &$line, &$css ) {
2063  return $this->container->run(
2064  'ImagePageFileHistoryLine',
2065  [ $imageHistoryList, $file, &$line, &$css ]
2066  );
2067  }
2068 
2069  public function onImagePageFindFile( $page, &$file, &$displayFile ) {
2070  return $this->container->run(
2071  'ImagePageFindFile',
2072  [ $page, &$file, &$displayFile ]
2073  );
2074  }
2075 
2076  public function onImagePageShowTOC( $page, &$toc ) {
2077  return $this->container->run(
2078  'ImagePageShowTOC',
2079  [ $page, &$toc ]
2080  );
2081  }
2082 
2083  public function onImgAuthBeforeStream( &$title, &$path, &$name, &$result ) {
2084  return $this->container->run(
2085  'ImgAuthBeforeStream',
2086  [ &$title, &$path, &$name, &$result ]
2087  );
2088  }
2089 
2090  public function onImgAuthModifyHeaders( $title, &$headers ) {
2091  return $this->container->run(
2092  'ImgAuthModifyHeaders',
2093  [ $title, &$headers ]
2094  );
2095  }
2096 
2097  public function onImportHandleLogItemXMLTag( $reader, $logInfo ) {
2098  return $this->container->run(
2099  'ImportHandleLogItemXMLTag',
2100  [ $reader, $logInfo ]
2101  );
2102  }
2103 
2104  public function onImportHandlePageXMLTag( $reader, &$pageInfo ) {
2105  return $this->container->run(
2106  'ImportHandlePageXMLTag',
2107  [ $reader, &$pageInfo ]
2108  );
2109  }
2110 
2111  public function onImportHandleRevisionXMLTag( $reader, $pageInfo,
2112  $revisionInfo
2113  ) {
2114  return $this->container->run(
2115  'ImportHandleRevisionXMLTag',
2116  [ $reader, $pageInfo, $revisionInfo ]
2117  );
2118  }
2119 
2120  public function onImportHandleContentXMLTag( $reader, $contentInfo ) {
2121  return $this->container->run(
2122  'ImportHandleContentXMLTag',
2123  [ $reader, $contentInfo ] );
2124  }
2125 
2126  public function onImportHandleToplevelXMLTag( $reader ) {
2127  return $this->container->run(
2128  'ImportHandleToplevelXMLTag',
2129  [ $reader ]
2130  );
2131  }
2132 
2133  public function onImportHandleUnknownUser( $name ) {
2134  return $this->container->run(
2135  'ImportHandleUnknownUser',
2136  [ $name ]
2137  );
2138  }
2139 
2140  public function onImportHandleUploadXMLTag( $reader, $revisionInfo ) {
2141  return $this->container->run(
2142  'ImportHandleUploadXMLTag',
2143  [ $reader, $revisionInfo ]
2144  );
2145  }
2146 
2147  public function onImportLogInterwikiLink( &$fullInterwikiPrefix, &$pageTitle ) {
2148  return $this->container->run(
2149  'ImportLogInterwikiLink',
2150  [ &$fullInterwikiPrefix, &$pageTitle ]
2151  );
2152  }
2153 
2154  public function onImportSources( &$importSources ) {
2155  return $this->container->run(
2156  'ImportSources',
2157  [ &$importSources ]
2158  );
2159  }
2160 
2161  public function onInfoAction( $context, &$pageInfo ) {
2162  return $this->container->run(
2163  'InfoAction',
2164  [ $context, &$pageInfo ]
2165  );
2166  }
2167 
2168  public function onInitializeArticleMaybeRedirect( $title, $request,
2169  &$ignoreRedirect, &$target, &$article
2170  ) {
2171  return $this->container->run(
2172  'InitializeArticleMaybeRedirect',
2173  [ $title, $request, &$ignoreRedirect, &$target, &$article ]
2174  );
2175  }
2176 
2177  public function onInternalParseBeforeLinks( $parser, &$text, $stripState ) {
2178  return $this->container->run(
2179  'InternalParseBeforeLinks',
2180  [ $parser, &$text, $stripState ]
2181  );
2182  }
2183 
2184  public function onInternalParseBeforeSanitize( $parser, &$text, $stripState ) {
2185  return $this->container->run(
2186  'InternalParseBeforeSanitize',
2187  [ $parser, &$text, $stripState ]
2188  );
2189  }
2190 
2191  public function onInterwikiLoadPrefix( $prefix, &$iwData ) {
2192  return $this->container->run(
2193  'InterwikiLoadPrefix',
2194  [ $prefix, &$iwData ]
2195  );
2196  }
2197 
2198  public function onInvalidateEmailComplete( $user ) {
2199  return $this->container->run(
2200  'InvalidateEmailComplete',
2201  [ $user ]
2202  );
2203  }
2204 
2205  public function onIRCLineURL( &$url, &$query, $rc ) {
2206  return $this->container->run(
2207  'IRCLineURL',
2208  [ &$url, &$query, $rc ]
2209  );
2210  }
2211 
2212  public function onIsFileCacheable( $article ) {
2213  return $this->container->run(
2214  'IsFileCacheable',
2215  [ $article ]
2216  );
2217  }
2218 
2219  public function onIsTrustedProxy( $ip, &$result ) {
2220  return $this->container->run(
2221  'IsTrustedProxy',
2222  [ $ip, &$result ]
2223  );
2224  }
2225 
2226  public function onIsUploadAllowedFromUrl( $url, &$allowed ) {
2227  return $this->container->run(
2228  'IsUploadAllowedFromUrl',
2229  [ $url, &$allowed ]
2230  );
2231  }
2232 
2233  public function onIsValidEmailAddr( $addr, &$result ) {
2234  return $this->container->run(
2235  'isValidEmailAddr',
2236  [ $addr, &$result ]
2237  );
2238  }
2239 
2240  public function onIsValidPassword( $password, &$result, $user ) {
2241  return $this->container->run(
2242  'isValidPassword',
2243  [ $password, &$result, $user ]
2244  );
2245  }
2246 
2247  public function onJsonValidateSave( JsonContent $content, PageIdentity $pageIdentity, StatusValue $status ) {
2248  return $this->container->run(
2249  'JsonValidateSave',
2250  [ $content, $pageIdentity, &$status ]
2251  );
2252  }
2253 
2254  public function onLanguageGetNamespaces( &$namespaces ) {
2255  return $this->container->run(
2256  'LanguageGetNamespaces',
2257  [ &$namespaces ]
2258  );
2259  }
2260 
2261  public function onLanguageGetTranslatedLanguageNames( &$names, $code ) {
2262  return $this->container->run(
2263  'LanguageGetTranslatedLanguageNames',
2264  [ &$names, $code ]
2265  );
2266  }
2267 
2268  public function onLanguageLinks( $title, &$links, &$linkFlags ) {
2269  return $this->container->run(
2270  'LanguageLinks',
2271  [ $title, &$links, &$linkFlags ]
2272  );
2273  }
2274 
2275  public function onLanguageSelector( $out, $cssClassName ) {
2276  return $this->container->run(
2277  'LanguageSelector',
2278  [ $out, $cssClassName ]
2279  );
2280  }
2281 
2282  public function onLanguage__getMessagesFileName( $code, &$file ) {
2283  return $this->container->run(
2284  'Language::getMessagesFileName',
2285  [ $code, &$file ]
2286  );
2287  }
2288 
2289  public function onLinkerGenerateRollbackLink( $revRecord, $context, $options, &$inner ) {
2290  return $this->container->run(
2291  'LinkerGenerateRollbackLink',
2292  [ $revRecord, $context, $options, &$inner ]
2293  );
2294  }
2295 
2296  public function onLinkerMakeExternalImage( &$url, &$alt, &$img ) {
2297  return $this->container->run(
2298  'LinkerMakeExternalImage',
2299  [ &$url, &$alt, &$img ]
2300  );
2301  }
2302 
2303  public function onLinkerMakeExternalLink( &$url, &$text, &$link, &$attribs,
2304  $linkType
2305  ) {
2306  return $this->container->run(
2307  'LinkerMakeExternalLink',
2308  [ &$url, &$text, &$link, &$attribs, $linkType ]
2309  );
2310  }
2311 
2312  public function onLinkerMakeMediaLinkFile( $title, $file, &$html, &$attribs,
2313  &$ret
2314  ) {
2315  return $this->container->run(
2316  'LinkerMakeMediaLinkFile',
2317  [ $title, $file, &$html, &$attribs, &$ret ]
2318  );
2319  }
2320 
2321  public function onLinksUpdate( $linksUpdate ) {
2322  return $this->container->run(
2323  'LinksUpdate',
2324  [ $linksUpdate ]
2325  );
2326  }
2327 
2328  public function onLinksUpdateAfterInsert( $linksUpdate, $table, $insertions ) {
2329  return $this->container->run(
2330  'LinksUpdateAfterInsert',
2331  [ $linksUpdate, $table, $insertions ]
2332  );
2333  }
2334 
2335  public function onLinksUpdateComplete( $linksUpdate, $ticket ) {
2336  return $this->container->run(
2337  'LinksUpdateComplete',
2338  [ $linksUpdate, $ticket ]
2339  );
2340  }
2341 
2342  public function onLinksUpdateConstructed( $linksUpdate ) {
2343  return $this->container->run(
2344  'LinksUpdateConstructed',
2345  [ $linksUpdate ]
2346  );
2347  }
2348 
2349  public function onListDefinedTags( &$tags ) {
2350  return $this->container->run(
2351  'ListDefinedTags',
2352  [ &$tags ]
2353  );
2354  }
2355 
2356  public function onLoadExtensionSchemaUpdates( $updater ) {
2357  return $this->container->run(
2358  'LoadExtensionSchemaUpdates',
2359  [ $updater ],
2360  [ 'noServices' => true ]
2361  );
2362  }
2363 
2364  public function onLocalFilePurgeThumbnails( $file, $archiveName, $urls ) {
2365  return $this->container->run(
2366  'LocalFilePurgeThumbnails',
2367  [ $file, $archiveName, $urls ]
2368  );
2369  }
2370 
2371  public function onLocalFile__getHistory( $file, &$tables, &$fields, &$conds,
2372  &$opts, &$join_conds
2373  ) {
2374  return $this->container->run(
2375  'LocalFile::getHistory',
2376  [ $file, &$tables, &$fields, &$conds, &$opts, &$join_conds ]
2377  );
2378  }
2379 
2380  public function onLocalisationCacheRecache( $cache, $code, &$alldata, $unused ) {
2381  return $this->container->run(
2382  'LocalisationCacheRecache',
2383  [ $cache, $code, &$alldata, $unused ]
2384  );
2385  }
2386 
2387  public function onLocalisationCacheRecacheFallback( $cache, $code, &$alldata ) {
2388  return $this->container->run(
2389  'LocalisationCacheRecacheFallback',
2390  [ $cache, $code, &$alldata ]
2391  );
2392  }
2393 
2394  public function onLocalUserCreated( $user, $autocreated ) {
2395  return $this->container->run(
2396  'LocalUserCreated',
2397  [ $user, $autocreated ]
2398  );
2399  }
2400 
2401  public function onLogEventsListGetExtraInputs( $type, $logEventsList, &$input,
2402  &$formDescriptor
2403  ) {
2404  return $this->container->run(
2405  'LogEventsListGetExtraInputs',
2406  [ $type, $logEventsList, &$input, &$formDescriptor ]
2407  );
2408  }
2409 
2410  public function onLogEventsListLineEnding( $page, &$ret, $entry, &$classes,
2411  &$attribs
2412  ) {
2413  return $this->container->run(
2414  'LogEventsListLineEnding',
2415  [ $page, &$ret, $entry, &$classes, &$attribs ]
2416  );
2417  }
2418 
2419  public function onLogEventsListShowLogExtract( &$s, $types, $page, $user,
2420  $param
2421  ) {
2422  return $this->container->run(
2423  'LogEventsListShowLogExtract',
2424  [ &$s, $types, $page, $user, $param ]
2425  );
2426  }
2427 
2428  public function onLogException( $e, $suppressed ) {
2429  return $this->container->run(
2430  'LogException',
2431  [ $e, $suppressed ]
2432  );
2433  }
2434 
2435  public function onLoginFormValidErrorMessages( array &$messages ) {
2436  return $this->container->run(
2437  'LoginFormValidErrorMessages',
2438  [ &$messages ]
2439  );
2440  }
2441 
2442  public function onLogLine( $log_type, $log_action, $title, $paramArray,
2443  &$comment, &$revert, $time
2444  ) {
2445  return $this->container->run(
2446  'LogLine',
2447  [ $log_type, $log_action, $title, $paramArray, &$comment,
2448  &$revert, $time ]
2449  );
2450  }
2451 
2452  public function onLonelyPagesQuery( &$tables, &$conds, &$joinConds ) {
2453  return $this->container->run(
2454  'LonelyPagesQuery',
2455  [ &$tables, &$conds, &$joinConds ]
2456  );
2457  }
2458 
2459  public function onMagicWordwgVariableIDs( &$variableIDs ) {
2460  return $this->container->run(
2461  'MagicWordwgVariableIDs',
2462  [ &$variableIDs ]
2463  );
2464  }
2465 
2466  public function onMaintenanceRefreshLinksInit( $refreshLinks ) {
2467  return $this->container->run(
2468  'MaintenanceRefreshLinksInit',
2469  [ $refreshLinks ]
2470  );
2471  }
2472 
2473  public function onMaintenanceShellStart(): void {
2474  $this->container->run(
2475  'MaintenanceShellStart',
2476  [],
2477  [ 'abortable' => false ]
2478  );
2479  }
2480 
2481  public function onMaintenanceUpdateAddParams( &$params ) {
2482  return $this->container->run(
2483  'MaintenanceUpdateAddParams',
2484  [ &$params ]
2485  );
2486  }
2487 
2488  public function onMakeGlobalVariablesScript( &$vars, $out ): void {
2489  $this->container->run(
2490  'MakeGlobalVariablesScript',
2491  [ &$vars, $out ],
2492  [ 'abortable' => false ]
2493  );
2494  }
2495 
2496  public function onManualLogEntryBeforePublish( $logEntry ): void {
2497  $this->container->run(
2498  'ManualLogEntryBeforePublish',
2499  [ $logEntry ],
2500  [ 'abortable' => false ]
2501  );
2502  }
2503 
2504  public function onMarkPatrolled( $rcid, $user, $wcOnlySysopsCanPatrol, $auto,
2505  &$tags
2506  ) {
2507  return $this->container->run(
2508  'MarkPatrolled',
2509  [ $rcid, $user, $wcOnlySysopsCanPatrol, $auto, &$tags ]
2510  );
2511  }
2512 
2513  public function onMarkPatrolledComplete( $rcid, $user, $wcOnlySysopsCanPatrol,
2514  $auto
2515  ) {
2516  return $this->container->run(
2517  'MarkPatrolledComplete',
2518  [ $rcid, $user, $wcOnlySysopsCanPatrol, $auto ]
2519  );
2520  }
2521 
2522  public function onMediaWikiPerformAction( $output, $article, $title, $user,
2523  $request, $mediaWiki
2524  ) {
2525  return $this->container->run(
2526  'MediaWikiPerformAction',
2527  [ $output, $article, $title, $user, $request, $mediaWiki ]
2528  );
2529  }
2530 
2531  public function onMediaWikiServices( $services ) {
2532  return $this->container->run(
2533  'MediaWikiServices',
2534  [ $services ],
2535  [ 'noServices' => true ]
2536  );
2537  }
2538 
2539  public function onMessageCacheReplace( $title, $text ) {
2540  return $this->container->run(
2541  'MessageCacheReplace',
2542  [ $title, $text ]
2543  );
2544  }
2545 
2546  public function onMessageCache__get( &$key ) {
2547  return $this->container->run(
2548  'MessageCache::get',
2549  [ &$key ]
2550  );
2551  }
2552 
2553  public function onMessagesPreLoad( $title, &$message, $code ) {
2554  return $this->container->run(
2555  'MessagesPreLoad',
2556  [ $title, &$message, $code ]
2557  );
2558  }
2559 
2560  public function onMimeMagicGuessFromContent( $mimeMagic, &$head, &$tail, $file,
2561  &$mime
2562  ) {
2563  return $this->container->run(
2564  'MimeMagicGuessFromContent',
2565  [ $mimeMagic, &$head, &$tail, $file, &$mime ]
2566  );
2567  }
2568 
2569  public function onMimeMagicImproveFromExtension( $mimeMagic, $ext, &$mime ) {
2570  return $this->container->run(
2571  'MimeMagicImproveFromExtension',
2572  [ $mimeMagic, $ext, &$mime ]
2573  );
2574  }
2575 
2576  public function onMimeMagicInit( $mimeMagic ) {
2577  return $this->container->run(
2578  'MimeMagicInit',
2579  [ $mimeMagic ]
2580  );
2581  }
2582 
2583  public function onModifyExportQuery( $db, &$tables, $cond, &$opts,
2584  &$join_conds, &$conds
2585  ) {
2586  return $this->container->run(
2587  'ModifyExportQuery',
2588  [ $db, &$tables, $cond, &$opts, &$join_conds, &$conds ]
2589  );
2590  }
2591 
2592  public function onMovePageCheckPermissions( $oldTitle, $newTitle, $user,
2593  $reason, $status
2594  ) {
2595  return $this->container->run(
2596  'MovePageCheckPermissions',
2597  [ $oldTitle, $newTitle, $user, $reason, $status ]
2598  );
2599  }
2600 
2601  public function onMovePageIsValidMove( $oldTitle, $newTitle, $status ) {
2602  return $this->container->run(
2603  'MovePageIsValidMove',
2604  [ $oldTitle, $newTitle, $status ]
2605  );
2606  }
2607 
2608  public function onMultiContentSave( $renderedRevision, $user, $summary, $flags,
2609  $status
2610  ) {
2611  return $this->container->run(
2612  'MultiContentSave',
2613  [ $renderedRevision, $user, $summary, $flags, $status ]
2614  );
2615  }
2616 
2617  public function onNamespaceIsMovable( $index, &$result ) {
2618  return $this->container->run(
2619  'NamespaceIsMovable',
2620  [ $index, &$result ]
2621  );
2622  }
2623 
2624  public function onNewDifferenceEngine( $title, &$oldId, &$newId, $old, $new ) {
2625  return $this->container->run(
2626  'NewDifferenceEngine',
2627  [ $title, &$oldId, &$newId, $old, $new ]
2628  );
2629  }
2630 
2631  public function onNewPagesLineEnding( $page, &$ret, $row, &$classes, &$attribs ) {
2632  return $this->container->run(
2633  'NewPagesLineEnding',
2634  [ $page, &$ret, $row, &$classes, &$attribs ]
2635  );
2636  }
2637 
2638  public function onOldChangesListRecentChangesLine( $changeslist, &$s, $rc,
2639  &$classes, &$attribs
2640  ) {
2641  return $this->container->run(
2642  'OldChangesListRecentChangesLine',
2643  [ $changeslist, &$s, $rc, &$classes, &$attribs ]
2644  );
2645  }
2646 
2647  public function onOpenSearchUrls( &$urls ) {
2648  return $this->container->run(
2649  'OpenSearchUrls',
2650  [ &$urls ]
2651  );
2652  }
2653 
2654  public function onOpportunisticLinksUpdate( $page, $title, $parserOutput ) {
2655  return $this->container->run(
2656  'OpportunisticLinksUpdate',
2657  [ $page, $title, $parserOutput ]
2658  );
2659  }
2660 
2661  public function onOtherAutoblockLogLink( &$otherBlockLink ) {
2662  return $this->container->run(
2663  'OtherAutoblockLogLink',
2664  [ &$otherBlockLink ]
2665  );
2666  }
2667 
2668  public function onOtherBlockLogLink( &$otherBlockLink, $ip ) {
2669  return $this->container->run(
2670  'OtherBlockLogLink',
2671  [ &$otherBlockLink, $ip ]
2672  );
2673  }
2674 
2675  public function onOutputPageAfterGetHeadLinksArray( &$tags, $out ) {
2676  return $this->container->run(
2677  'OutputPageAfterGetHeadLinksArray',
2678  [ &$tags, $out ]
2679  );
2680  }
2681 
2682  public function onOutputPageBeforeHTML( $out, &$text ) {
2683  return $this->container->run(
2684  'OutputPageBeforeHTML',
2685  [ $out, &$text ]
2686  );
2687  }
2688 
2689  public function onOutputPageBodyAttributes( $out, $sk, &$bodyAttrs ): void {
2690  $this->container->run(
2691  'OutputPageBodyAttributes',
2692  [ $out, $sk, &$bodyAttrs ],
2693  [ 'abortable' => false ]
2694  );
2695  }
2696 
2697  public function onOutputPageCheckLastModified( &$modifiedTimes, $out ) {
2698  return $this->container->run(
2699  'OutputPageCheckLastModified',
2700  [ &$modifiedTimes, $out ]
2701  );
2702  }
2703 
2704  public function onOutputPageMakeCategoryLinks( $out, $categories, &$links ) {
2705  return $this->container->run(
2706  'OutputPageMakeCategoryLinks',
2707  [ $out, $categories, &$links ]
2708  );
2709  }
2710 
2711  public function onOutputPageParserOutput( $outputPage, $parserOutput ): void {
2712  $this->container->run(
2713  'OutputPageParserOutput',
2714  [ $outputPage, $parserOutput ],
2715  [ 'abortable' => false ]
2716  );
2717  }
2718 
2719  public function onPageContentLanguage( $title, &$pageLang, $userLang ) {
2720  return $this->container->run(
2721  'PageContentLanguage',
2722  [ $title, &$pageLang, $userLang ]
2723  );
2724  }
2725 
2726  public function onPageContentSave( $wikiPage, $user, $content, &$summary,
2727  $isminor, $iswatch, $section, $flags, $status
2728  ) {
2729  return $this->container->run(
2730  'PageContentSave',
2731  [ $wikiPage, $user, $content, &$summary, $isminor, $iswatch,
2732  $section, $flags, $status ]
2733  );
2734  }
2735 
2736  public function onPageDelete(
2737  ProperPageIdentity $page,
2738  Authority $deleter,
2739  string $reason,
2740  StatusValue $status,
2741  bool $suppress
2742  ) {
2743  return $this->container->run(
2744  'PageDelete',
2745  [ $page, $deleter, $reason, $status, $suppress ]
2746  );
2747  }
2748 
2749  public function onPageDeleteComplete(
2750  ProperPageIdentity $page,
2751  Authority $deleter,
2752  string $reason,
2753  int $pageID,
2754  RevisionRecord $deletedRev,
2755  ManualLogEntry $logEntry,
2756  int $archivedRevisionCount
2757  ) {
2758  return $this->container->run(
2759  'PageDeleteComplete',
2760  [ $page, $deleter, $reason, $pageID, $deletedRev, $logEntry, $archivedRevisionCount ]
2761  );
2762  }
2763 
2764  public function onPageDeletionDataUpdates( $title, $revision, &$updates ) {
2765  return $this->container->run(
2766  'PageDeletionDataUpdates',
2767  [ $title, $revision, &$updates ]
2768  );
2769  }
2770 
2771  public function onPageUndelete(
2772  ProperPageIdentity $page,
2773  Authority $performer,
2774  string $reason,
2775  bool $unsuppress,
2776  array $timestamps,
2777  array $fileVersions,
2778  StatusValue $status
2779  ) {
2780  return $this->container->run(
2781  'PageUndelete',
2782  [ $page, $performer, $reason, $unsuppress, $timestamps, $fileVersions, $status ]
2783  );
2784  }
2785 
2786  public function onPageHistoryBeforeList( $article, $context ) {
2787  return $this->container->run(
2788  'PageHistoryBeforeList',
2789  [ $article, $context ]
2790  );
2791  }
2792 
2793  public function onPageHistoryLineEnding( $historyAction, &$row, &$s, &$classes,
2794  &$attribs
2795  ) {
2796  return $this->container->run(
2797  'PageHistoryLineEnding',
2798  [ $historyAction, &$row, &$s, &$classes, &$attribs ]
2799  );
2800  }
2801 
2802  public function onPageHistoryPager__doBatchLookups( $pager, $result ) {
2803  return $this->container->run(
2804  'PageHistoryPager::doBatchLookups',
2805  [ $pager, $result ]
2806  );
2807  }
2808 
2809  public function onPageHistoryPager__getQueryInfo( $pager, &$queryInfo ) {
2810  return $this->container->run(
2811  'PageHistoryPager::getQueryInfo',
2812  [ $pager, &$queryInfo ]
2813  );
2814  }
2815 
2816  public function onPageMoveComplete( $old, $new, $user, $pageid, $redirid, $reason, $revision ) {
2817  return $this->container->run(
2818  'PageMoveComplete',
2819  [ $old, $new, $user, $pageid, $redirid, $reason, $revision ]
2820  );
2821  }
2822 
2823  public function onPageMoveCompleting( $old, $new, $user, $pageid, $redirid, $reason, $revision ) {
2824  return $this->container->run(
2825  'PageMoveCompleting',
2826  [ $old, $new, $user, $pageid, $redirid, $reason, $revision ]
2827  );
2828  }
2829 
2830  public function onPageRenderingHash( &$confstr, $user, &$forOptions ) {
2831  return $this->container->run(
2832  'PageRenderingHash',
2833  [ &$confstr, $user, &$forOptions ]
2834  );
2835  }
2836 
2837  public function onPageSaveComplete( $wikiPage, $user, $summary, $flags,
2838  $revisionRecord, $editResult
2839  ) {
2840  return $this->container->run(
2841  'PageSaveComplete',
2842  [ $wikiPage, $user, $summary, $flags, $revisionRecord, $editResult ]
2843  );
2844  }
2845 
2846  public function onPageViewUpdates( $wikipage, $user ) {
2847  return $this->container->run(
2848  'PageViewUpdates',
2849  [ $wikipage, $user ]
2850  );
2851  }
2852 
2853  public function onParserAfterParse( $parser, &$text, $stripState ) {
2854  return $this->container->run(
2855  'ParserAfterParse',
2856  [ $parser, &$text, $stripState ]
2857  );
2858  }
2859 
2860  public function onParserAfterTidy( $parser, &$text ) {
2861  return $this->container->run(
2862  'ParserAfterTidy',
2863  [ $parser, &$text ]
2864  );
2865  }
2866 
2867  public function onParserBeforeInternalParse( $parser, &$text, $stripState ) {
2868  return $this->container->run(
2869  'ParserBeforeInternalParse',
2870  [ $parser, &$text, $stripState ]
2871  );
2872  }
2873 
2874  public function onParserBeforePreprocess( $parser, &$text, $stripState ) {
2875  return $this->container->run(
2876  'ParserBeforePreprocess',
2877  [ $parser, &$text, $stripState ]
2878  );
2879  }
2880 
2881  public function onParserCacheSaveComplete( $parserCache, $parserOutput, $title,
2882  $popts, $revId
2883  ) {
2884  return $this->container->run(
2885  'ParserCacheSaveComplete',
2886  [ $parserCache, $parserOutput, $title, $popts, $revId ]
2887  );
2888  }
2889 
2890  public function onParserClearState( $parser ) {
2891  return $this->container->run(
2892  'ParserClearState',
2893  [ $parser ]
2894  );
2895  }
2896 
2897  public function onParserCloned( $parser ) {
2898  return $this->container->run(
2899  'ParserCloned',
2900  [ $parser ]
2901  );
2902  }
2903 
2904  public function onParserFetchTemplateData( array $titles, array &$tplData ): bool {
2905  return $this->container->run(
2906  'ParserFetchTemplateData',
2907  [ $titles, &$tplData ]
2908  );
2909  }
2910 
2911  public function onParserFirstCallInit( $parser ) {
2912  return $this->container->run(
2913  'ParserFirstCallInit',
2914  [ $parser ]
2915  );
2916  }
2917 
2918  public function onParserGetVariableValueSwitch( $parser, &$variableCache,
2919  $magicWordId, &$ret, $frame
2920  ) {
2921  return $this->container->run(
2922  'ParserGetVariableValueSwitch',
2923  [ $parser, &$variableCache, $magicWordId, &$ret, $frame ]
2924  );
2925  }
2926 
2927  public function onParserGetVariableValueTs( $parser, &$time ) {
2928  return $this->container->run(
2929  'ParserGetVariableValueTs',
2930  [ $parser, &$time ]
2931  );
2932  }
2933 
2934  public function onParserLimitReportFormat( $key, &$value, &$report, $isHTML,
2935  $localize
2936  ) {
2937  return $this->container->run(
2938  'ParserLimitReportFormat',
2939  [ $key, &$value, &$report, $isHTML, $localize ]
2940  );
2941  }
2942 
2943  public function onParserLimitReportPrepare( $parser, $output ) {
2944  return $this->container->run(
2945  'ParserLimitReportPrepare',
2946  [ $parser, $output ]
2947  );
2948  }
2949 
2950  public function onParserLogLinterData( string $title, int $revId, array $lints ): bool {
2951  return $this->container->run(
2952  'ParserLogLinterData',
2953  [ $title, $revId, $lints ]
2954  );
2955  }
2956 
2957  public function onParserMakeImageParams( $title, $file, &$params, $parser ) {
2958  return $this->container->run(
2959  'ParserMakeImageParams',
2960  [ $title, $file, &$params, $parser ]
2961  );
2962  }
2963 
2964  public function onParserModifyImageHTML( Parser $parser, File $file,
2965  array $params, string &$html
2966  ): void {
2967  $this->container->run(
2968  'ParserModifyImageHTML',
2969  [ $parser, $file, $params, &$html ],
2970  [ 'abortable' => false ]
2971  );
2972  }
2973 
2974  public function onParserOptionsRegister( &$defaults, &$inCacheKey, &$lazyLoad ) {
2975  return $this->container->run(
2976  'ParserOptionsRegister',
2977  [ &$defaults, &$inCacheKey, &$lazyLoad ]
2978  );
2979  }
2980 
2981  public function onParserOutputPostCacheTransform( $parserOutput, &$text,
2982  &$options
2983  ): void {
2984  $this->container->run(
2985  'ParserOutputPostCacheTransform',
2986  [ $parserOutput, &$text, &$options ],
2987  [ 'abortable' => false ]
2988  );
2989  }
2990 
2991  public function onParserOutputStashForEdit( $page, $content, $output, $summary,
2992  $user
2993  ) {
2994  return $this->container->run(
2995  'ParserOutputStashForEdit',
2996  [ $page, $content, $output, $summary, $user ]
2997  );
2998  }
2999 
3000  public function onParserPreSaveTransformComplete( $parser, &$text ) {
3001  return $this->container->run(
3002  'ParserPreSaveTransformComplete',
3003  [ $parser, &$text ]
3004  );
3005  }
3006 
3007  public function onParserSectionCreate( $parser, $section, &$sectionContent,
3008  $showEditLinks
3009  ) {
3010  return $this->container->run(
3011  'ParserSectionCreate',
3012  [ $parser, $section, &$sectionContent, $showEditLinks ]
3013  );
3014  }
3015 
3016  public function onParserTestGlobals( &$globals ) {
3017  return $this->container->run(
3018  'ParserTestGlobals',
3019  [ &$globals ]
3020  );
3021  }
3022 
3023  public function onParserTestTables( &$tables ) {
3024  return $this->container->run(
3025  'ParserTestTables',
3026  [ &$tables ]
3027  );
3028  }
3029 
3030  public function onPasswordPoliciesForUser( $user, &$effectivePolicy ) {
3031  return $this->container->run(
3032  'PasswordPoliciesForUser',
3033  [ $user, &$effectivePolicy ]
3034  );
3035  }
3036 
3037  public function onPerformRetroactiveAutoblock( $block, &$blockIds ) {
3038  return $this->container->run(
3039  'PerformRetroactiveAutoblock',
3040  [ $block, &$blockIds ]
3041  );
3042  }
3043 
3044  public function onPersonalUrls( &$personal_urls, &$title, $skin ): void {
3045  $this->container->run(
3046  'PersonalUrls',
3047  [ &$personal_urls, &$title, $skin ],
3048  [ 'abortable' => false ]
3049  );
3050  }
3051 
3052  public function onPingLimiter( $user, $action, &$result, $incrBy ) {
3053  return $this->container->run(
3054  'PingLimiter',
3055  [ $user, $action, &$result, $incrBy ]
3056  );
3057  }
3058 
3059  public function onPlaceNewSection( $content, $oldtext, $subject, &$text ) {
3060  return $this->container->run(
3061  'PlaceNewSection',
3062  [ $content, $oldtext, $subject, &$text ]
3063  );
3064  }
3065 
3066  public function onPostLoginRedirect( &$returnTo, &$returnToQuery, &$type ) {
3067  return $this->container->run(
3068  'PostLoginRedirect',
3069  [ &$returnTo, &$returnToQuery, &$type ]
3070  );
3071  }
3072 
3073  public function onPreferencesFormPreSave( $formData, $form, $user, &$result,
3074  $oldUserOptions
3075  ) {
3076  return $this->container->run(
3077  'PreferencesFormPreSave',
3078  [ $formData, $form, $user, &$result, $oldUserOptions ]
3079  );
3080  }
3081 
3082  public function onPreferencesGetLegend( $form, $key, &$legend ) {
3083  return $this->container->run(
3084  'PreferencesGetLegend',
3085  [ $form, $key, &$legend ]
3086  );
3087  }
3088 
3089  public function onPrefixSearchBackend( $ns, $search, $limit, &$results,
3090  $offset
3091  ) {
3092  return $this->container->run(
3093  'PrefixSearchBackend',
3094  [ $ns, $search, $limit, &$results, $offset ]
3095  );
3096  }
3097 
3098  public function onPrefixSearchExtractNamespace( &$namespaces, &$search ) {
3099  return $this->container->run(
3100  'PrefixSearchExtractNamespace',
3101  [ &$namespaces, &$search ]
3102  );
3103  }
3104 
3105  public function onPrefsEmailAudit( $user, $oldaddr, $newaddr ) {
3106  return $this->container->run(
3107  'PrefsEmailAudit',
3108  [ $user, $oldaddr, $newaddr ]
3109  );
3110  }
3111 
3112  public function onProtectionForm__buildForm( $article, &$output ) {
3113  return $this->container->run(
3114  'ProtectionForm::buildForm',
3115  [ $article, &$output ]
3116  );
3117  }
3118 
3119  public function onProtectionFormAddFormFields( $article, &$hookFormOptions ) {
3120  return $this->container->run(
3121  'ProtectionFormAddFormFields',
3122  [ $article, &$hookFormOptions ]
3123  );
3124  }
3125 
3126  public function onProtectionForm__save( $article, &$errorMsg, $reasonstr ) {
3127  return $this->container->run(
3128  'ProtectionForm::save',
3129  [ $article, &$errorMsg, $reasonstr ]
3130  );
3131  }
3132 
3133  public function onProtectionForm__showLogExtract( $article, $out ) {
3134  return $this->container->run(
3135  'ProtectionForm::showLogExtract',
3136  [ $article, $out ]
3137  );
3138  }
3139 
3140  public function onRandomPageQuery( &$tables, &$conds, &$joinConds ) {
3141  return $this->container->run(
3142  'RandomPageQuery',
3143  [ &$tables, &$conds, &$joinConds ]
3144  );
3145  }
3146 
3147  public function onRawPageViewBeforeOutput( $obj, &$text ) {
3148  return $this->container->run(
3149  'RawPageViewBeforeOutput',
3150  [ $obj, &$text ]
3151  );
3152  }
3153 
3154  public function onRecentChangesPurgeRows( $rows ) {
3155  return $this->container->run(
3156  'RecentChangesPurgeRows',
3157  [ $rows ]
3158  );
3159  }
3160 
3161  public function onRecentChange_save( $recentChange ) {
3162  return $this->container->run(
3163  'RecentChange_save',
3164  [ $recentChange ]
3165  );
3166  }
3167 
3168  public function onRedirectSpecialArticleRedirectParams( &$redirectParams ) {
3169  return $this->container->run(
3170  'RedirectSpecialArticleRedirectParams',
3171  [ &$redirectParams ]
3172  );
3173  }
3174 
3175  public function onRejectParserCacheValue( $parserOutput, $wikiPage,
3176  $parserOptions
3177  ) {
3178  return $this->container->run(
3179  'RejectParserCacheValue',
3180  [ $parserOutput, $wikiPage, $parserOptions ]
3181  );
3182  }
3183 
3184  public function onRequestContextCreateSkin( $context, &$skin ) {
3185  return $this->container->run(
3186  'RequestContextCreateSkin',
3187  [ $context, &$skin ]
3188  );
3189  }
3190 
3191  public function onResetPasswordExpiration( $user, &$newExpire ) {
3192  return $this->container->run(
3193  'ResetPasswordExpiration',
3194  [ $user, &$newExpire ]
3195  );
3196  }
3197 
3198  public function onResourceLoaderGetConfigVars( array &$vars, $skin, Config $config ): void {
3199  $this->container->run(
3200  'ResourceLoaderGetConfigVars',
3201  [ &$vars, $skin, $config ],
3202  [ 'abortable' => false ]
3203  );
3204  }
3205 
3206  public function onResourceLoaderJqueryMsgModuleMagicWords( RL\Context $context,
3207  array &$magicWords
3208  ): void {
3209  $this->container->run(
3210  'ResourceLoaderJqueryMsgModuleMagicWords',
3211  [ $context, &$magicWords ],
3212  [ 'abortable' => false ]
3213  );
3214  }
3215 
3216  public function onRevisionDataUpdates( $title, $renderedRevision, &$updates ) {
3217  return $this->container->run(
3218  'RevisionDataUpdates',
3219  [ $title, $renderedRevision, &$updates ]
3220  );
3221  }
3222 
3223  public function onRevisionFromEditComplete( $wikiPage, $rev, $originalRevId, $user, &$tags ) {
3224  return $this->container->run(
3225  'RevisionFromEditComplete',
3226  [ $wikiPage, $rev, $originalRevId, $user, &$tags ]
3227  );
3228  }
3229 
3230  public function onRevisionRecordInserted( $revisionRecord ) {
3231  return $this->container->run(
3232  'RevisionRecordInserted',
3233  [ $revisionRecord ]
3234  );
3235  }
3236 
3237  public function onRevisionUndeleted( $revisionRecord, $oldPageID ) {
3238  return $this->container->run(
3239  'RevisionUndeleted',
3240  [ $revisionRecord, $oldPageID ]
3241  );
3242  }
3243 
3244  public function onRollbackComplete( $wikiPage, $user, $revision, $current ) {
3245  return $this->container->run(
3246  'RollbackComplete',
3247  [ $wikiPage, $user, $revision, $current ]
3248  );
3249  }
3250 
3251  public function onSearchableNamespaces( &$arr ) {
3252  return $this->container->run(
3253  'SearchableNamespaces',
3254  [ &$arr ]
3255  );
3256  }
3257 
3258  public function onSearchAfterNoDirectMatch( $term, &$title ) {
3259  return $this->container->run(
3260  'SearchAfterNoDirectMatch',
3261  [ $term, &$title ]
3262  );
3263  }
3264 
3265  public function onSearchDataForIndex( &$fields, $handler, $page, $output,
3266  $engine
3267  ) {
3268  return $this->container->run(
3269  'SearchDataForIndex',
3270  [ &$fields, $handler, $page, $output, $engine ]
3271  );
3272  }
3273 
3274  public function onSearchGetNearMatch( $term, &$title ) {
3275  return $this->container->run(
3276  'SearchGetNearMatch',
3277  [ $term, &$title ]
3278  );
3279  }
3280 
3281  public function onSearchGetNearMatchBefore( $allSearchTerms, &$titleResult ) {
3282  return $this->container->run(
3283  'SearchGetNearMatchBefore',
3284  [ $allSearchTerms, &$titleResult ]
3285  );
3286  }
3287 
3288  public function onSearchGetNearMatchComplete( $term, &$title ) {
3289  return $this->container->run(
3290  'SearchGetNearMatchComplete',
3291  [ $term, &$title ]
3292  );
3293  }
3294 
3295  public function onSearchIndexFields( &$fields, $engine ) {
3296  return $this->container->run(
3297  'SearchIndexFields',
3298  [ &$fields, $engine ]
3299  );
3300  }
3301 
3302  public function onSearchResultInitFromTitle( $title, &$id ) {
3303  return $this->container->run(
3304  'SearchResultInitFromTitle',
3305  [ $title, &$id ]
3306  );
3307  }
3308 
3309  public function onSearchResultProvideDescription( array $pageIdentities, &$descriptions ) {
3310  return $this->container->run(
3311  'SearchResultProvideDescription',
3312  [ $pageIdentities, &$descriptions ]
3313  );
3314  }
3315 
3316  public function onSearchResultProvideThumbnail( array $pageIdentities, &$thumbnails, int $size = null ) {
3317  return $this->container->run(
3318  'SearchResultProvideThumbnail',
3319  [ $pageIdentities, &$thumbnails, $size ]
3320  );
3321  }
3322 
3323  public function onSearchResultsAugment( &$setAugmentors, &$rowAugmentors ) {
3324  return $this->container->run(
3325  'SearchResultsAugment',
3326  [ &$setAugmentors, &$rowAugmentors ]
3327  );
3328  }
3329 
3330  public function onSecuritySensitiveOperationStatus( &$status, $operation,
3331  $session, $timeSinceAuth
3332  ) {
3333  return $this->container->run(
3334  'SecuritySensitiveOperationStatus',
3335  [ &$status, $operation, $session, $timeSinceAuth ]
3336  );
3337  }
3338 
3339  public function onSelfLinkBegin( $nt, &$html, &$trail, &$prefix, &$ret ) {
3340  return $this->container->run(
3341  'SelfLinkBegin',
3342  [ $nt, &$html, &$trail, &$prefix, &$ret ]
3343  );
3344  }
3345 
3346  public function onSendWatchlistEmailNotification( $targetUser, $title, $enotif ) {
3347  return $this->container->run(
3348  'SendWatchlistEmailNotification',
3349  [ $targetUser, $title, $enotif ]
3350  );
3351  }
3352 
3353  public function onSessionCheckInfo( &$reason, $info, $request, $metadata,
3354  $data
3355  ) {
3356  return $this->container->run(
3357  'SessionCheckInfo',
3358  [ &$reason, $info, $request, $metadata, $data ]
3359  );
3360  }
3361 
3362  public function onSessionMetadata( $backend, &$metadata, $requests ) {
3363  return $this->container->run(
3364  'SessionMetadata',
3365  [ $backend, &$metadata, $requests ]
3366  );
3367  }
3368 
3369  public function onSetupAfterCache() {
3370  return $this->container->run(
3371  'SetupAfterCache',
3372  []
3373  );
3374  }
3375 
3376  public function onShortPagesQuery( &$tables, &$conds, &$joinConds, &$options ) {
3377  return $this->container->run(
3378  'ShortPagesQuery',
3379  [ &$tables, &$conds, &$joinConds, &$options ]
3380  );
3381  }
3382 
3383  public function onShowMissingArticle( $article ) {
3384  return $this->container->run(
3385  'ShowMissingArticle',
3386  [ $article ]
3387  );
3388  }
3389 
3390  public function onShowSearchHit( $searchPage, $result, $terms, &$link,
3391  &$redirect, &$section, &$extract, &$score, &$size, &$date, &$related, &$html
3392  ) {
3393  return $this->container->run(
3394  'ShowSearchHit',
3395  [ $searchPage, $result, $terms, &$link, &$redirect, &$section,
3396  &$extract, &$score, &$size, &$date, &$related, &$html ]
3397  );
3398  }
3399 
3400  public function onShowSearchHitTitle( &$title, &$titleSnippet, $result, $terms,
3401  $specialSearch, &$query, &$attributes
3402  ) {
3403  return $this->container->run(
3404  'ShowSearchHitTitle',
3405  [ &$title, &$titleSnippet, $result, $terms, $specialSearch,
3406  &$query, &$attributes ]
3407  );
3408  }
3409 
3410  public function onSidebarBeforeOutput( $skin, &$sidebar ): void {
3411  $this->container->run(
3412  'SidebarBeforeOutput',
3413  [ $skin, &$sidebar ],
3414  [ 'abortable' => false ]
3415  );
3416  }
3417 
3418  public function onSiteNoticeAfter( &$siteNotice, $skin ) {
3419  return $this->container->run(
3420  'SiteNoticeAfter',
3421  [ &$siteNotice, $skin ]
3422  );
3423  }
3424 
3425  public function onSiteNoticeBefore( &$siteNotice, $skin ) {
3426  return $this->container->run(
3427  'SiteNoticeBefore',
3428  [ &$siteNotice, $skin ]
3429  );
3430  }
3431 
3432  public function onSkinPageReadyConfig( RL\Context $context,
3433  array &$config
3434  ): void {
3435  $this->container->run(
3436  'SkinPageReadyConfig',
3437  [ $context, &$config ],
3438  [ 'abortable' => false ]
3439  );
3440  }
3441 
3442  public function onSkinAddFooterLinks( Skin $skin, string $key, array &$footerItems ) {
3443  $this->container->run(
3444  'SkinAddFooterLinks',
3445  [ $skin, $key, &$footerItems ]
3446  );
3447  }
3448 
3449  public function onSkinAfterBottomScripts( $skin, &$text ) {
3450  return $this->container->run(
3451  'SkinAfterBottomScripts',
3452  [ $skin, &$text ]
3453  );
3454  }
3455 
3456  public function onSkinAfterContent( &$data, $skin ) {
3457  return $this->container->run(
3458  'SkinAfterContent',
3459  [ &$data, $skin ]
3460  );
3461  }
3462 
3463  public function onSkinAfterPortlet( $skin, $portlet, &$html ) {
3464  return $this->container->run(
3465  'SkinAfterPortlet',
3466  [ $skin, $portlet, &$html ]
3467  );
3468  }
3469 
3470  public function onSkinBuildSidebar( $skin, &$bar ) {
3471  return $this->container->run(
3472  'SkinBuildSidebar',
3473  [ $skin, &$bar ]
3474  );
3475  }
3476 
3477  public function onSkinCopyrightFooter( $title, $type, &$msg, &$link ) {
3478  return $this->container->run(
3479  'SkinCopyrightFooter',
3480  [ $title, $type, &$msg, &$link ]
3481  );
3482  }
3483 
3484  public function onSkinEditSectionLinks( $skin, $title, $section, $tooltip,
3485  &$result, $lang
3486  ) {
3487  return $this->container->run(
3488  'SkinEditSectionLinks',
3489  [ $skin, $title, $section, $tooltip, &$result, $lang ]
3490  );
3491  }
3492 
3493  public function onSkinPreloadExistence( &$titles, $skin ) {
3494  return $this->container->run(
3495  'SkinPreloadExistence',
3496  [ &$titles, $skin ]
3497  );
3498  }
3499 
3500  public function onSkinSubPageSubtitle( &$subpages, $skin, $out ) {
3501  return $this->container->run(
3502  'SkinSubPageSubtitle',
3503  [ &$subpages, $skin, $out ]
3504  );
3505  }
3506 
3507  public function onSkinTemplateGetLanguageLink( &$languageLink,
3508  $languageLinkTitle, $title, $outputPage
3509  ) {
3510  return $this->container->run(
3511  'SkinTemplateGetLanguageLink',
3512  [ &$languageLink, $languageLinkTitle, $title, $outputPage ]
3513  );
3514  }
3515 
3519  public function onSkinTemplateNavigation( $sktemplate, &$links ): void {
3520  $this->container->run(
3521  'SkinTemplateNavigation',
3522  [ $sktemplate, &$links ],
3523  [ 'abortable' => false ]
3524  );
3525  }
3526 
3530  public function onSkinTemplateNavigation__SpecialPage( $sktemplate, &$links ): void {
3531  $this->container->run(
3532  'SkinTemplateNavigation::SpecialPage',
3533  [ $sktemplate, &$links ],
3534  [ 'abortable' => false ]
3535  );
3536  }
3537 
3538  public function onSkinTemplateNavigation__Universal( $sktemplate, &$links ): void {
3539  $this->container->run(
3540  'SkinTemplateNavigation::Universal',
3541  [ $sktemplate, &$links ],
3542  [ 'abortable' => false ]
3543  );
3544  }
3545 
3546  public function onSoftwareInfo( &$software ) {
3547  return $this->container->run(
3548  'SoftwareInfo',
3549  [ &$software ]
3550  );
3551  }
3552 
3553  public function onSpecialBlockModifyFormFields( $sp, &$fields ) {
3554  return $this->container->run(
3555  'SpecialBlockModifyFormFields',
3556  [ $sp, &$fields ]
3557  );
3558  }
3559 
3560  public function onSpecialContributionsBeforeMainOutput( $id, $user, $sp ) {
3561  return $this->container->run(
3562  'SpecialContributionsBeforeMainOutput',
3563  [ $id, $user, $sp ]
3564  );
3565  }
3566 
3567  public function onSpecialContributions__formatRow__flags( $context, $row,
3568  &$flags
3569  ) {
3570  return $this->container->run(
3571  'SpecialContributions::formatRow::flags',
3572  [ $context, $row, &$flags ]
3573  );
3574  }
3575 
3576  public function onSpecialContributions__getForm__filters( $sp, &$filters ) {
3577  return $this->container->run(
3578  'SpecialContributions::getForm::filters',
3579  [ $sp, &$filters ]
3580  );
3581  }
3582 
3583  public function onSpecialExportGetExtraPages( $inputPages, &$extraPages ) {
3584  return $this->container->run(
3585  'SpecialExportGetExtraPages',
3586  [ $inputPages, &$extraPages ]
3587  );
3588  }
3589 
3590  public function onSpecialListusersDefaultQuery( $pager, &$query ) {
3591  return $this->container->run(
3592  'SpecialListusersDefaultQuery',
3593  [ $pager, &$query ]
3594  );
3595  }
3596 
3597  public function onSpecialListusersFormatRow( &$item, $row ) {
3598  return $this->container->run(
3599  'SpecialListusersFormatRow',
3600  [ &$item, $row ]
3601  );
3602  }
3603 
3604  public function onSpecialListusersHeader( $pager, &$out ) {
3605  return $this->container->run(
3606  'SpecialListusersHeader',
3607  [ $pager, &$out ]
3608  );
3609  }
3610 
3611  public function onSpecialListusersHeaderForm( $pager, &$out ) {
3612  return $this->container->run(
3613  'SpecialListusersHeaderForm',
3614  [ $pager, &$out ]
3615  );
3616  }
3617 
3618  public function onSpecialListusersQueryInfo( $pager, &$query ) {
3619  return $this->container->run(
3620  'SpecialListusersQueryInfo',
3621  [ $pager, &$query ]
3622  );
3623  }
3624 
3625  public function onSpecialLogAddLogSearchRelations( $type, $request, &$qc ) {
3626  return $this->container->run(
3627  'SpecialLogAddLogSearchRelations',
3628  [ $type, $request, &$qc ]
3629  );
3630  }
3631 
3632  public function onSpecialMovepageAfterMove( $movePage, $oldTitle, $newTitle ) {
3633  return $this->container->run(
3634  'SpecialMovepageAfterMove',
3635  [ $movePage, $oldTitle, $newTitle ]
3636  );
3637  }
3638 
3639  public function onSpecialMuteModifyFormFields( $target, $user, &$fields ) {
3640  return $this->container->run(
3641  'SpecialMuteModifyFormFields',
3642  [ $target, $user, &$fields ]
3643  );
3644  }
3645 
3646  public function onSpecialMuteSubmit( $data ) {
3647  return $this->container->run(
3648  'SpecialMuteSubmit',
3649  [ $data ]
3650  );
3651  }
3652 
3653  public function onSpecialNewpagesConditions( $special, $opts, &$conds,
3654  &$tables, &$fields, &$join_conds
3655  ) {
3656  return $this->container->run(
3657  'SpecialNewpagesConditions',
3658  [ $special, $opts, &$conds, &$tables, &$fields, &$join_conds ]
3659  );
3660  }
3661 
3662  public function onSpecialNewPagesFilters( $special, &$filters ) {
3663  return $this->container->run(
3664  'SpecialNewPagesFilters',
3665  [ $special, &$filters ]
3666  );
3667  }
3668 
3669  public function onSpecialPageAfterExecute( $special, $subPage ) {
3670  return $this->container->run(
3671  'SpecialPageAfterExecute',
3672  [ $special, $subPage ]
3673  );
3674  }
3675 
3676  public function onSpecialPageBeforeExecute( $special, $subPage ) {
3677  return $this->container->run(
3678  'SpecialPageBeforeExecute',
3679  [ $special, $subPage ]
3680  );
3681  }
3682 
3683  public function onSpecialPageBeforeFormDisplay( $name, $form ) {
3684  return $this->container->run(
3685  'SpecialPageBeforeFormDisplay',
3686  [ $name, $form ]
3687  );
3688  }
3689 
3690  public function onSpecialPage_initList( &$list ) {
3691  return $this->container->run(
3692  'SpecialPage_initList',
3693  [ &$list ]
3694  );
3695  }
3696 
3697  public function onSpecialPasswordResetOnSubmit( &$users, $data, &$error ) {
3698  return $this->container->run(
3699  'SpecialPasswordResetOnSubmit',
3700  [ &$users, $data, &$error ]
3701  );
3702  }
3703 
3704  public function onSpecialRandomGetRandomTitle( &$randstr, &$isRedir,
3705  &$namespaces, &$extra, &$title
3706  ) {
3707  return $this->container->run(
3708  'SpecialRandomGetRandomTitle',
3709  [ &$randstr, &$isRedir, &$namespaces, &$extra, &$title ]
3710  );
3711  }
3712 
3713  public function onSpecialRecentChangesPanel( &$extraOpts, $opts ) {
3714  return $this->container->run(
3715  'SpecialRecentChangesPanel',
3716  [ &$extraOpts, $opts ]
3717  );
3718  }
3719 
3720  public function onSpecialResetTokensTokens( &$tokens ) {
3721  return $this->container->run(
3722  'SpecialResetTokensTokens',
3723  [ &$tokens ]
3724  );
3725  }
3726 
3727  public function onSpecialSearchCreateLink( $t, &$params ) {
3728  return $this->container->run(
3729  'SpecialSearchCreateLink',
3730  [ $t, &$params ]
3731  );
3732  }
3733 
3734  public function onSpecialSearchGoResult( $term, $title, &$url ) {
3735  return $this->container->run(
3736  'SpecialSearchGoResult',
3737  [ $term, $title, &$url ]
3738  );
3739  }
3740 
3741  public function onSpecialSearchNogomatch( &$title ) {
3742  return $this->container->run(
3743  'SpecialSearchNogomatch',
3744  [ &$title ]
3745  );
3746  }
3747 
3748  public function onSpecialSearchPowerBox( &$showSections, $term, &$opts ) {
3749  return $this->container->run(
3750  'SpecialSearchPowerBox',
3751  [ &$showSections, $term, &$opts ]
3752  );
3753  }
3754 
3755  public function onSpecialSearchProfileForm( $search, &$form, $profile, $term,
3756  $opts
3757  ) {
3758  return $this->container->run(
3759  'SpecialSearchProfileForm',
3760  [ $search, &$form, $profile, $term, $opts ]
3761  );
3762  }
3763 
3764  public function onSpecialSearchProfiles( &$profiles ) {
3765  return $this->container->run(
3766  'SpecialSearchProfiles',
3767  [ &$profiles ]
3768  );
3769  }
3770 
3771  public function onSpecialSearchResults( $term, &$titleMatches, &$textMatches ) {
3772  return $this->container->run(
3773  'SpecialSearchResults',
3774  [ $term, &$titleMatches, &$textMatches ]
3775  );
3776  }
3777 
3778  public function onSpecialSearchResultsAppend( $specialSearch, $output, $term ) {
3779  return $this->container->run(
3780  'SpecialSearchResultsAppend',
3781  [ $specialSearch, $output, $term ]
3782  );
3783  }
3784 
3785  public function onSpecialSearchResultsPrepend( $specialSearch, $output, $term ) {
3786  return $this->container->run(
3787  'SpecialSearchResultsPrepend',
3788  [ $specialSearch, $output, $term ]
3789  );
3790  }
3791 
3792  public function onSpecialSearchSetupEngine( $search, $profile, $engine ) {
3793  return $this->container->run(
3794  'SpecialSearchSetupEngine',
3795  [ $search, $profile, $engine ]
3796  );
3797  }
3798 
3799  public function onSpecialStatsAddExtra( &$extraStats, $context ) {
3800  return $this->container->run(
3801  'SpecialStatsAddExtra',
3802  [ &$extraStats, $context ]
3803  );
3804  }
3805 
3806  public function onSpecialTrackingCategories__generateCatLink( $specialPage,
3807  $catTitle, &$html
3808  ) {
3809  return $this->container->run(
3810  'SpecialTrackingCategories::generateCatLink',
3811  [ $specialPage, $catTitle, &$html ]
3812  );
3813  }
3814 
3815  public function onSpecialTrackingCategories__preprocess( $specialPage,
3816  $trackingCategories
3817  ) {
3818  return $this->container->run(
3819  'SpecialTrackingCategories::preprocess',
3820  [ $specialPage, $trackingCategories ]
3821  );
3822  }
3823 
3824  public function onSpecialUploadComplete( $form ) {
3825  return $this->container->run(
3826  'SpecialUploadComplete',
3827  [ $form ]
3828  );
3829  }
3830 
3831  public function onSpecialVersionVersionUrl( $version, &$versionUrl ) {
3832  return $this->container->run(
3833  'SpecialVersionVersionUrl',
3834  [ $version, &$versionUrl ]
3835  );
3836  }
3837 
3838  public function onSpecialWatchlistGetNonRevisionTypes( &$nonRevisionTypes ) {
3839  return $this->container->run(
3840  'SpecialWatchlistGetNonRevisionTypes',
3841  [ &$nonRevisionTypes ]
3842  );
3843  }
3844 
3845  public function onTempUserCreatedRedirect(
3846  Session $session,
3847  UserIdentity $user,
3848  string $returnTo,
3849  string $returnToQuery,
3850  string $returnToAnchor,
3851  &$redirectUrl
3852  ) {
3853  return $this->container->run(
3854  'TempUserCreatedRedirect',
3855  [ $session, $user, $returnTo, $returnToQuery, $returnToAnchor, &$redirectUrl ]
3856  );
3857  }
3858 
3859  public function onTestCanonicalRedirect( $request, $title, $output ) {
3860  return $this->container->run(
3861  'TestCanonicalRedirect',
3862  [ $request, $title, $output ]
3863  );
3864  }
3865 
3866  public function onThumbnailBeforeProduceHTML( $thumbnail, &$attribs,
3867  &$linkAttribs
3868  ) {
3869  return $this->container->run(
3870  'ThumbnailBeforeProduceHTML',
3871  [ $thumbnail, &$attribs, &$linkAttribs ]
3872  );
3873  }
3874 
3875  public function onTitleExists( $title, &$exists ) {
3876  return $this->container->run(
3877  'TitleExists',
3878  [ $title, &$exists ]
3879  );
3880  }
3881 
3882  public function onTitleGetEditNotices( $title, $oldid, &$notices ) {
3883  return $this->container->run(
3884  'TitleGetEditNotices',
3885  [ $title, $oldid, &$notices ]
3886  );
3887  }
3888 
3889  public function onTitleGetRestrictionTypes( $title, &$types ) {
3890  return $this->container->run(
3891  'TitleGetRestrictionTypes',
3892  [ $title, &$types ]
3893  );
3894  }
3895 
3896  public function onTitleIsAlwaysKnown( $title, &$isKnown ) {
3897  return $this->container->run(
3898  'TitleIsAlwaysKnown',
3899  [ $title, &$isKnown ]
3900  );
3901  }
3902 
3903  public function onTitleIsMovable( $title, &$result ) {
3904  return $this->container->run(
3905  'TitleIsMovable',
3906  [ $title, &$result ]
3907  );
3908  }
3909 
3910  public function onTitleMove( $old, $nt, $user, $reason, &$status ) {
3911  return $this->container->run(
3912  'TitleMove',
3913  [ $old, $nt, $user, $reason, &$status ]
3914  );
3915  }
3916 
3917  public function onTitleMoveStarting( $old, $nt, $user ) {
3918  return $this->container->run(
3919  'TitleMoveStarting',
3920  [ $old, $nt, $user ]
3921  );
3922  }
3923 
3924  public function onTitleQuickPermissions( $title, $user, $action, &$errors,
3925  $doExpensiveQueries, $short
3926  ) {
3927  return $this->container->run(
3928  'TitleQuickPermissions',
3929  [ $title, $user, $action, &$errors, $doExpensiveQueries, $short ]
3930  );
3931  }
3932 
3933  public function onTitleReadWhitelist( $title, $user, &$whitelisted ) {
3934  return $this->container->run(
3935  'TitleReadWhitelist',
3936  [ $title, $user, &$whitelisted ]
3937  );
3938  }
3939 
3940  public function onTitleSquidURLs( $title, &$urls ) {
3941  return $this->container->run(
3942  'TitleSquidURLs',
3943  [ $title, &$urls ]
3944  );
3945  }
3946 
3947  public function onUnblockUser( $block, $user, &$reason ) {
3948  return $this->container->run(
3949  'UnblockUser',
3950  [ $block, $user, &$reason ]
3951  );
3952  }
3953 
3954  public function onUnblockUserComplete( $block, $user ) {
3955  return $this->container->run(
3956  'UnblockUserComplete',
3957  [ $block, $user ]
3958  );
3959  }
3960 
3961  public function onUndeleteForm__showHistory( &$archive, $title ) {
3962  return $this->container->run(
3963  'UndeleteForm::showHistory',
3964  [ &$archive, $title ]
3965  );
3966  }
3967 
3968  public function onUndeleteForm__showRevision( &$archive, $title ) {
3969  return $this->container->run(
3970  'UndeleteForm::showRevision',
3971  [ &$archive, $title ]
3972  );
3973  }
3974 
3975  public function onUndeletePageToolLinks( IContextSource $context, LinkRenderer $linkRenderer, array &$links ) {
3976  return $this->container->run(
3977  'UndeletePageToolLinks',
3978  [ $context, $linkRenderer, &$links ]
3979  );
3980  }
3981 
3982  public function onUnitTestsAfterDatabaseSetup( $database, $prefix ) {
3983  return $this->container->run(
3984  'UnitTestsAfterDatabaseSetup',
3985  [ $database, $prefix ]
3986  );
3987  }
3988 
3990  return $this->container->run(
3991  'UnitTestsBeforeDatabaseTeardown',
3992  []
3993  );
3994  }
3995 
3996  public function onUnitTestsList( &$paths ) {
3997  return $this->container->run(
3998  'UnitTestsList',
3999  [ &$paths ]
4000  );
4001  }
4002 
4003  public function onUnwatchArticle( $user, $page, &$status ) {
4004  return $this->container->run(
4005  'UnwatchArticle',
4006  [ $user, $page, &$status ]
4007  );
4008  }
4009 
4010  public function onUnwatchArticleComplete( $user, $page ) {
4011  return $this->container->run(
4012  'UnwatchArticleComplete',
4013  [ $user, $page ]
4014  );
4015  }
4016 
4017  public function onUpdateUserMailerFormattedPageStatus( &$formattedPageStatus ) {
4018  return $this->container->run(
4019  'UpdateUserMailerFormattedPageStatus',
4020  [ &$formattedPageStatus ]
4021  );
4022  }
4023 
4024  public function onUploadComplete( $uploadBase ) {
4025  return $this->container->run(
4026  'UploadComplete',
4027  [ $uploadBase ]
4028  );
4029  }
4030 
4031  public function onUploadCreateFromRequest( $type, &$className ) {
4032  return $this->container->run(
4033  'UploadCreateFromRequest',
4034  [ $type, &$className ]
4035  );
4036  }
4037 
4038  public function onUploadFormInitDescriptor( &$descriptor ) {
4039  return $this->container->run(
4040  'UploadFormInitDescriptor',
4041  [ &$descriptor ]
4042  );
4043  }
4044 
4045  public function onUploadFormSourceDescriptors( &$descriptor, &$radio,
4046  $selectedSourceType
4047  ) {
4048  return $this->container->run(
4049  'UploadFormSourceDescriptors',
4050  [ &$descriptor, &$radio, $selectedSourceType ]
4051  );
4052  }
4053 
4054  public function onUploadForm_BeforeProcessing( $upload ) {
4055  return $this->container->run(
4056  'UploadForm:BeforeProcessing',
4057  [ $upload ]
4058  );
4059  }
4060 
4061  public function onUploadForm_getInitialPageText( &$pageText, $msg, $config ) {
4062  return $this->container->run(
4063  'UploadForm:getInitialPageText',
4064  [ &$pageText, $msg, $config ]
4065  );
4066  }
4067 
4068  public function onUploadForm_initial( $upload ) {
4069  return $this->container->run(
4070  'UploadForm:initial',
4071  [ $upload ]
4072  );
4073  }
4074 
4075  public function onUploadStashFile( $upload, $user, $props, &$error ) {
4076  return $this->container->run(
4077  'UploadStashFile',
4078  [ $upload, $user, $props, &$error ]
4079  );
4080  }
4081 
4082  public function onUploadVerifyFile( $upload, $mime, &$error ) {
4083  return $this->container->run(
4084  'UploadVerifyFile',
4085  [ $upload, $mime, &$error ]
4086  );
4087  }
4088 
4089  public function onUploadVerifyUpload( $upload, $user, $props, $comment,
4090  $pageText, &$error
4091  ) {
4092  return $this->container->run(
4093  'UploadVerifyUpload',
4094  [ $upload, $user, $props, $comment, $pageText, &$error ]
4095  );
4096  }
4097 
4098  public function onUserAddGroup( $user, &$group, &$expiry ) {
4099  return $this->container->run(
4100  'UserAddGroup',
4101  [ $user, &$group, &$expiry ]
4102  );
4103  }
4104 
4105  public function onUserArrayFromResult( &$userArray, $res ) {
4106  return $this->container->run(
4107  'UserArrayFromResult',
4108  [ &$userArray, $res ]
4109  );
4110  }
4111 
4112  public function onUserCan( $title, $user, $action, &$result ) {
4113  return $this->container->run(
4114  'userCan',
4115  [ $title, $user, $action, &$result ]
4116  );
4117  }
4118 
4119  public function onUserCanSendEmail( $user, &$hookErr ) {
4120  return $this->container->run(
4121  'UserCanSendEmail',
4122  [ $user, &$hookErr ]
4123  );
4124  }
4125 
4126  public function onUserClearNewTalkNotification( $userIdentity, $oldid ) {
4127  return $this->container->run(
4128  'UserClearNewTalkNotification',
4129  [ $userIdentity, $oldid ]
4130  );
4131  }
4132 
4133  public function onUserEditCountUpdate( $infos ): void {
4134  $this->container->run(
4135  'UserEditCountUpdate',
4136  [ $infos ],
4137  [ 'abortable' => false ]
4138  );
4139  }
4140 
4141  public function onUserEffectiveGroups( $user, &$groups ) {
4142  return $this->container->run(
4143  'UserEffectiveGroups',
4144  [ $user, &$groups ]
4145  );
4146  }
4147 
4148  public function onUserGetAllRights( &$rights ) {
4149  return $this->container->run(
4150  'UserGetAllRights',
4151  [ &$rights ]
4152  );
4153  }
4154 
4155  public function onUserGetDefaultOptions( &$defaultOptions ) {
4156  return $this->container->run(
4157  'UserGetDefaultOptions',
4158  [ &$defaultOptions ]
4159  );
4160  }
4161 
4162  public function onUserGetEmail( $user, &$email ) {
4163  return $this->container->run(
4164  'UserGetEmail',
4165  [ $user, &$email ]
4166  );
4167  }
4168 
4169  public function onUserGetEmailAuthenticationTimestamp( $user, &$timestamp ) {
4170  return $this->container->run(
4171  'UserGetEmailAuthenticationTimestamp',
4172  [ $user, &$timestamp ]
4173  );
4174  }
4175 
4176  public function onUserGetLanguageObject( $user, &$code, $context ) {
4177  return $this->container->run(
4178  'UserGetLanguageObject',
4179  [ $user, &$code, $context ]
4180  );
4181  }
4182 
4183  public function onUserGetReservedNames( &$reservedUsernames ) {
4184  return $this->container->run(
4185  'UserGetReservedNames',
4186  [ &$reservedUsernames ]
4187  );
4188  }
4189 
4190  public function onUserGetRights( $user, &$rights ) {
4191  return $this->container->run(
4192  'UserGetRights',
4193  [ $user, &$rights ]
4194  );
4195  }
4196 
4197  public function onUserGetRightsRemove( $user, &$rights ) {
4198  return $this->container->run(
4199  'UserGetRightsRemove',
4200  [ $user, &$rights ]
4201  );
4202  }
4203 
4204  public function onUserGroupsChanged( $user, $added, $removed, $performer,
4205  $reason, $oldUGMs, $newUGMs
4206  ) {
4207  return $this->container->run(
4208  'UserGroupsChanged',
4209  [ $user, $added, $removed, $performer, $reason, $oldUGMs,
4210  $newUGMs ]
4211  );
4212  }
4213 
4214  public function onUserIsBlockedFrom( $user, $title, &$blocked, &$allowUsertalk ) {
4215  return $this->container->run(
4216  'UserIsBlockedFrom',
4217  [ $user, $title, &$blocked, &$allowUsertalk ]
4218  );
4219  }
4220 
4221  public function onUserIsBlockedGlobally( $user, $ip, &$blocked, &$block ) {
4222  return $this->container->run(
4223  'UserIsBlockedGlobally',
4224  [ $user, $ip, &$blocked, &$block ]
4225  );
4226  }
4227 
4228  public function onUserIsBot( $user, &$isBot ) {
4229  return $this->container->run(
4230  'UserIsBot',
4231  [ $user, &$isBot ]
4232  );
4233  }
4234 
4235  public function onUserIsEveryoneAllowed( $right ) {
4236  return $this->container->run(
4237  'UserIsEveryoneAllowed',
4238  [ $right ]
4239  );
4240  }
4241 
4242  public function onUserIsLocked( $user, &$locked ) {
4243  return $this->container->run(
4244  'UserIsLocked',
4245  [ $user, &$locked ]
4246  );
4247  }
4248 
4249  public function onUserLoadAfterLoadFromSession( $user ) {
4250  return $this->container->run(
4251  'UserLoadAfterLoadFromSession',
4252  [ $user ]
4253  );
4254  }
4255 
4256  public function onUserLoadDefaults( $user, $name ) {
4257  return $this->container->run(
4258  'UserLoadDefaults',
4259  [ $user, $name ]
4260  );
4261  }
4262 
4263  public function onUserLoadFromDatabase( $user, &$s ) {
4264  return $this->container->run(
4265  'UserLoadFromDatabase',
4266  [ $user, &$s ]
4267  );
4268  }
4269 
4270  public function onLoadUserOptions( UserIdentity $user, array &$options ): void {
4271  $this->container->run(
4272  'LoadUserOptions',
4273  [ $user, &$options ],
4274  [ 'abortable' => false ]
4275  );
4276  }
4277 
4278  public function onUserLoggedIn( $user ) {
4279  return $this->container->run(
4280  'UserLoggedIn',
4281  [ $user ]
4282  );
4283  }
4284 
4285  public function onUserLoginComplete( $user, &$inject_html, $direct ) {
4286  return $this->container->run(
4287  'UserLoginComplete',
4288  [ $user, &$inject_html, $direct ]
4289  );
4290  }
4291 
4292  public function onUserLogout( $user ) {
4293  return $this->container->run(
4294  'UserLogout',
4295  [ $user ]
4296  );
4297  }
4298 
4299  public function onUserLogoutComplete( $user, &$inject_html, $oldName ) {
4300  return $this->container->run(
4301  'UserLogoutComplete',
4302  [ $user, &$inject_html, $oldName ]
4303  );
4304  }
4305 
4306  public function onUserMailerChangeReturnPath( $to, &$returnPath ) {
4307  return $this->container->run(
4308  'UserMailerChangeReturnPath',
4309  [ $to, &$returnPath ]
4310  );
4311  }
4312 
4313  public function onUserMailerSplitTo( &$to ) {
4314  return $this->container->run(
4315  'UserMailerSplitTo',
4316  [ &$to ]
4317  );
4318  }
4319 
4320  public function onUserMailerTransformContent( $to, $from, &$body, &$error ) {
4321  return $this->container->run(
4322  'UserMailerTransformContent',
4323  [ $to, $from, &$body, &$error ]
4324  );
4325  }
4326 
4327  public function onUserMailerTransformMessage( $to, $from, &$subject, &$headers,
4328  &$body, &$error
4329  ) {
4330  return $this->container->run(
4331  'UserMailerTransformMessage',
4332  [ $to, $from, &$subject, &$headers, &$body, &$error ]
4333  );
4334  }
4335 
4336  public function onUserRemoveGroup( $user, &$group ) {
4337  return $this->container->run(
4338  'UserRemoveGroup',
4339  [ $user, &$group ]
4340  );
4341  }
4342 
4343  public function onSaveUserOptions( UserIdentity $user, array &$modifiedOptions, array $originalOptions ) {
4344  return $this->container->run(
4345  'SaveUserOptions',
4346  [ $user, &$modifiedOptions, $originalOptions ]
4347  );
4348  }
4349 
4350  public function onUserSaveSettings( $user ) {
4351  return $this->container->run(
4352  'UserSaveSettings',
4353  [ $user ]
4354  );
4355  }
4356 
4357  public function onUserSendConfirmationMail( $user, &$mail, $info ) {
4358  return $this->container->run(
4359  'UserSendConfirmationMail',
4360  [ $user, &$mail, $info ]
4361  );
4362  }
4363 
4364  public function onUserSetCookies( $user, &$session, &$cookies ) {
4365  return $this->container->run(
4366  'UserSetCookies',
4367  [ $user, &$session, &$cookies ]
4368  );
4369  }
4370 
4371  public function onUserSetEmail( $user, &$email ) {
4372  return $this->container->run(
4373  'UserSetEmail',
4374  [ $user, &$email ]
4375  );
4376  }
4377 
4378  public function onUserSetEmailAuthenticationTimestamp( $user, &$timestamp ) {
4379  return $this->container->run(
4380  'UserSetEmailAuthenticationTimestamp',
4381  [ $user, &$timestamp ]
4382  );
4383  }
4384 
4385  public function onUsersPagerDoBatchLookups( $dbr, $userIds, &$cache, &$groups ) {
4386  return $this->container->run(
4387  'UsersPagerDoBatchLookups',
4388  [ $dbr, $userIds, &$cache, &$groups ]
4389  );
4390  }
4391 
4392  public function onUserToolLinksEdit( $userId, $userText, &$items ) {
4393  return $this->container->run(
4394  'UserToolLinksEdit',
4395  [ $userId, $userText, &$items ]
4396  );
4397  }
4398 
4399  public function onUser__mailPasswordInternal( $user, $ip, $u ) {
4400  return $this->container->run(
4401  'User::mailPasswordInternal',
4402  [ $user, $ip, $u ]
4403  );
4404  }
4405 
4406  public function onValidateExtendedMetadataCache( $timestamp, $file ) {
4407  return $this->container->run(
4408  'ValidateExtendedMetadataCache',
4409  [ $timestamp, $file ]
4410  );
4411  }
4412 
4413  public function onWantedPages__getQueryInfo( $wantedPages, &$query ) {
4414  return $this->container->run(
4415  'WantedPages::getQueryInfo',
4416  [ $wantedPages, &$query ]
4417  );
4418  }
4419 
4420  public function onWatchArticle( $user, $page, &$status, $expiry ) {
4421  return $this->container->run(
4422  'WatchArticle',
4423  [ $user, $page, &$status, $expiry ]
4424  );
4425  }
4426 
4427  public function onWatchArticleComplete( $user, $page ) {
4428  return $this->container->run(
4429  'WatchArticleComplete',
4430  [ $user, $page ]
4431  );
4432  }
4433 
4434  public function onWatchedItemQueryServiceExtensions( &$extensions,
4435  $watchedItemQueryService
4436  ) {
4437  return $this->container->run(
4438  'WatchedItemQueryServiceExtensions',
4439  [ &$extensions, $watchedItemQueryService ]
4440  );
4441  }
4442 
4443  public function onWatchlistEditorBeforeFormRender( &$watchlistInfo ) {
4444  return $this->container->run(
4445  'WatchlistEditorBeforeFormRender',
4446  [ &$watchlistInfo ]
4447  );
4448  }
4449 
4450  public function onWatchlistEditorBuildRemoveLine( &$tools, $title, $redirect,
4451  $skin, &$link
4452  ) {
4453  return $this->container->run(
4454  'WatchlistEditorBuildRemoveLine',
4455  [ &$tools, $title, $redirect, $skin, &$link ]
4456  );
4457  }
4458 
4459  public function onWebRequestPathInfoRouter( $router ) {
4460  return $this->container->run(
4461  'WebRequestPathInfoRouter',
4462  [ $router ]
4463  );
4464  }
4465 
4466  public function onWebResponseSetCookie( &$name, &$value, &$expire, &$options ) {
4467  return $this->container->run(
4468  'WebResponseSetCookie',
4469  [ &$name, &$value, &$expire, &$options ]
4470  );
4471  }
4472 
4473  public function onWfShellWikiCmd( &$script, &$parameters, &$options ) {
4474  return $this->container->run(
4475  'wfShellWikiCmd',
4476  [ &$script, &$parameters, &$options ]
4477  );
4478  }
4479 
4480  public function onWgQueryPages( &$qp ) {
4481  return $this->container->run(
4482  'wgQueryPages',
4483  [ &$qp ]
4484  );
4485  }
4486 
4487  public function onWhatLinksHereProps( $row, $title, $target, &$props ) {
4488  return $this->container->run(
4489  'WhatLinksHereProps',
4490  [ $row, $title, $target, &$props ]
4491  );
4492  }
4493 
4494  public function onWikiExporter__dumpStableQuery( &$tables, &$opts, &$join ) {
4495  return $this->container->run(
4496  'WikiExporter::dumpStableQuery',
4497  [ &$tables, &$opts, &$join ]
4498  );
4499  }
4500 
4501  public function onWikiPageDeletionUpdates( $page, $content, &$updates ) {
4502  return $this->container->run(
4503  'WikiPageDeletionUpdates',
4504  [ $page, $content, &$updates ]
4505  );
4506  }
4507 
4508  public function onWikiPageFactory( $title, &$page ) {
4509  return $this->container->run(
4510  'WikiPageFactory',
4511  [ $title, &$page ]
4512  );
4513  }
4514 
4515  public function onXmlDumpWriterOpenPage( $obj, &$out, $row, $title ) {
4516  return $this->container->run(
4517  'XmlDumpWriterOpenPage',
4518  [ $obj, &$out, $row, $title ]
4519  );
4520  }
4521 
4522  public function onXmlDumpWriterWriteRevision( $obj, &$out, $row, $text, $rev ) {
4523  return $this->container->run(
4524  'XmlDumpWriterWriteRevision',
4525  [ $obj, &$out, $row, $text, $rev ]
4526  );
4527  }
4528 }
$magicWords
@phpcs-require-sorted-array
Definition: MessagesAb.php:72
Legacy class representing an editable page and handling UI for some page actions.
Definition: Article.php:48
Implements some public methods and some protected utility functions which are required by multiple ch...
Definition: File.php:68
JSON text content that can be viewed and edit directly by users.
Definition: JsonContent.php:19
Class for creating new log entries and inserting them into the database.
run(string $hook, array $args=[], array $options=[])
Call registered hook functions through either the legacy $wgHooks or extension.json.
This class provides an implementation of the core hook interfaces, forwarding hook calls to HookConta...
Definition: HookRunner.php:564
onLanguage__getMessagesFileName( $code, &$file)
Use this hook to change the path of a localisation file.
onArticleProtectComplete( $wikiPage, $user, $protect, $reason)
This hook is called after an article is protected.
Definition: HookRunner.php:787
onLanguageLinks( $title, &$links, &$linkFlags)
Use this hook to manipulate a page's language links.
onUserSetEmail( $user, &$email)
This hook is called when changing user email address.
onPreferencesGetLegend( $form, $key, &$legend)
Use the hook to override the text used for the <legend> of a preferences section.
onMarkPatrolled( $rcid, $user, $wcOnlySysopsCanPatrol, $auto, &$tags)
This hook is called before an edit is marked patrolled.
onSkinSubPageSubtitle(&$subpages, $skin, $out)
This hook is called at the beginning of Skin::subPageSubtitle().
onImportSources(&$importSources)
This hook is called when reading from the $wgImportSources configuration variable.
onDifferenceEngineRenderRevisionShowFinalPatrolLink()
Use this hook to not show the final "mark as patrolled" link on the bottom of a page.
onContentHandlerForModelID( $modeName, &$handler)
This hook is called when a ContentHandler is requested for a given content model name,...
onOutputPageParserOutput( $outputPage, $parserOutput)
This hook is called after adding a parserOutput to $wgOut.
onAbortAutoblock( $autoblockip, $block)
Use this hook to cancel an autoblock.
Definition: HookRunner.php:572
onUnitTestsList(&$paths)
This hook is called when building a list of paths containing PHPUnit tests.
onAfterBuildFeedLinks(&$feedLinks)
This hook is called in OutputPage.php after all feed links (atom, rss,...) are created.
Definition: HookRunner.php:621
onAlternateUserMailer( $headers, $to, $from, $subject, $body)
This hook is called before mail is sent so that mail could be logged (or something else) instead of u...
Definition: HookRunner.php:668
onMovePageIsValidMove( $oldTitle, $newTitle, $status)
Use this hook to specify whether a page can be moved for technical reasons.
onProtectionFormAddFormFields( $article, &$hookFormOptions)
This hook is called after all protection type form fields are added.
onArticleRevisionViewCustom( $revision, $title, $oldid, $output)
Use this hook for custom rendering of an article's content.
Definition: HookRunner.php:801
onEnhancedChangesList__getLogText( $changesList, &$links, $block)
Use this hook to alter, remove, or add to the links of a group of changes in EnhancedChangesList.
onGetSlotDiffRenderer( $contentHandler, &$slotDiffRenderer, $context)
Use this hook to replace or wrap the standard SlotDiffRenderer for some content type.
onSkinAddFooterLinks(Skin $skin, string $key, array &$footerItems)
This hook is called when generating the code used to display the footer.
onEditPageTosSummary( $title, &$msg)
Use this hook for site and per-namespace customizations of terms of service summary link that might e...
onUserSendConfirmationMail( $user, &$mail, $info)
This hook is called just before a confirmation email is sent to a user.
onTestCanonicalRedirect( $request, $title, $output)
This hook is called when about to force a redirect to a canonical URL for a title when we have no oth...
onAuthManagerLoginAuthenticateAudit( $response, $user, $username, $extraData)
This hook is called when a login attempt either succeeds or fails for a reason other than misconfigur...
Definition: HookRunner.php:881
onSessionCheckInfo(&$reason, $info, $request, $metadata, $data)
Use this hook to validate a MediaWiki\Session\SessionInfo as it's being loaded from storage.
onDifferenceEngineShowDiffPageMaybeShowMissingRevision( $differenceEngine)
This hook is called in DifferenceEngine::showDiffPage() when revision data cannot be loaded.
onSpecialExportGetExtraPages( $inputPages, &$extraPages)
onParserMakeImageParams( $title, $file, &$params, $parser)
This hook is called before the parser generates an image link, use this to modify the parameters of t...
onSkinAfterBottomScripts( $skin, &$text)
This hook is called at the end of Skin::bottomScripts().
onSpecialContributions__formatRow__flags( $context, $row, &$flags)
This hook is called before rendering a Special:Contributions row.
onLanguageSelector( $out, $cssClassName)
Use this hook to change the language selector available on a page.
onImportHandleRevisionXMLTag( $reader, $pageInfo, $revisionInfo)
This hook is called when parsing an XML tag in a page revision.
onXmlDumpWriterWriteRevision( $obj, &$out, $row, $text, $rev)
This hook is called at the end of a revision in an XML dump, to add extra metadata.
onAbortDiffCache( $diffEngine)
Use this hook to cancel the caching of a diff.
Definition: HookRunner.php:579
onAfterFinalPageOutput( $output)
This hook is called nearly at the end of OutputPage::output() but before OutputPage::sendCacheControl...
Definition: HookRunner.php:628
onUnwatchArticle( $user, $page, &$status)
This hook is called before a watch is removed from an article.
onDifferenceEngineViewHeader( $differenceEngine)
This hook is called before diff display.
onEditPageBeforeEditButtons( $editpage, &$buttons, &$tabindex)
Use this hook to modify the edit buttons below the textarea in the edit form.
onLogEventsListShowLogExtract(&$s, $types, $page, $user, $param)
This hook is called before the string is added to OutputPage.
onSpecialContributions__getForm__filters( $sp, &$filters)
This hook is called with a list of filters to render on Special:Contributions.
onPasswordPoliciesForUser( $user, &$effectivePolicy)
Use this hook to alter the effective password policy for a user.
onImportHandleLogItemXMLTag( $reader, $logInfo)
This hook is called when parsing an XML tag in a log item.
onUserLoadFromDatabase( $user, &$s)
This hook is called when loading a user from the database.
onEditFormInitialText( $editPage)
Use this hook to modify the edit form when editing existing pages.
onGetLogTypesOnUser(&$types)
Use this hook to add log types where the target is a user page.
onChangeTagAfterDelete( $tag, &$status)
This hook is called after a change tag has been deleted (that is, removed from all revisions and log ...
onDiffTools( $newRevRecord, &$links, $oldRevRecord, $userIdentity)
Use this hook to override or extend the revision tools available from the diff view,...
onSpecialContributionsBeforeMainOutput( $id, $user, $sp)
This hook is called before the form on Special:Contributions.
onRevisionUndeleted( $revisionRecord, $oldPageID)
After an article revision is restored.
onImportHandlePageXMLTag( $reader, &$pageInfo)
This hook is called when parsing an XML tag in a page.
onParserClearState( $parser)
This hook is called at the end of Parser::clearState().
onSpecialPasswordResetOnSubmit(&$users, $data, &$error)
This hook is called when executing a form submission on Special:PasswordReset.
onParserFirstCallInit( $parser)
This hook is called when the parser initialises for the first time.
onProtectionForm__showLogExtract( $article, $out)
This hook is called after the protection log extract is shown.
onBeforeWelcomeCreation(&$welcome_creation_msg, &$injected_html)
This hook is called before the welcomecreation message is displayed to a newly created user.
onHtmlCacheUpdaterVaryUrls( $urls, &$append)
This hook is used to add variants of URLs to purge from HTTP caches.
onPageDeletionDataUpdates( $title, $revision, &$updates)
This hook is called when constructing a list of DeferrableUpdate to be executed when a page is delete...
onContribsPager__getQueryInfo( $pager, &$queryInfo)
This hook is called before the contributions query is about to run.
onEditPage__showReadOnlyForm_initial( $editor, $out)
This hook is similar to EditPage::showEditForm:initial but for the read-only 'view source' variant of...
onContentSecurityPolicyDirectives(&$directives, $policyConfig, $mode)
If ContentSecurityPolicyDefaultSource and ContentSecurityPolicyScriptSource do not meet your needs,...
onArticleEditUpdateNewTalk( $wikiPage, $recipient)
This hook is called before updating user_newtalk when a user talk page was changed.
Definition: HookRunner.php:729
onUndeleteForm__showHistory(&$archive, $title)
This hook is called in UndeleteForm::showHistory, after creating the PageArchive object.
onIsUploadAllowedFromUrl( $url, &$allowed)
Use this hook to override the result of UploadFromUrl::isAllowedUrl().
onSearchResultProvideDescription(array $pageIdentities, &$descriptions)
This hook is called when generating search results in order to fill the 'description' field in an ext...
onBeforeParserrenderImageGallery( $parser, $ig)
This hook is called before an image gallery is rendered by Parser.
Definition: HookRunner.php:984
onUser__mailPasswordInternal( $user, $ip, $u)
This hook is called before creation and mailing of a user's new temporary password.
onWhatLinksHereProps( $row, $title, $target, &$props)
Use this hook to add annotations to Special:WhatLinksHere.
onGetAutoPromoteGroups( $user, &$promote)
This hook is called when determining which autopromote groups a user is entitled to be in.
onGetMagicVariableIDs(&$variableIDs)
Use this hook to modify the list of magic variables.
onUserGetReservedNames(&$reservedUsernames)
Use this hook to modify $wgReservedUsernames at run time.
onSkinTemplateNavigation__Universal( $sktemplate, &$links)
This hook is called on both content and special pages after variants have been added.
onEditPageBeforeEditToolbar(&$toolbar)
Use this hook to add an edit toolbar above the textarea in the edit form.
onContributionsToolLinks( $id, Title $title, array &$tools, SpecialPage $specialPage)
Use this hook to change the tool links above Special:Contributions.
onTitleMove( $old, $nt, $user, $reason, &$status)
onSpecialNewpagesConditions( $special, $opts, &$conds, &$tables, &$fields, &$join_conds)
This hook is called when building the SQL query for Special:NewPages.
onImgAuthModifyHeaders( $title, &$headers)
This hook is called just before a file is streamed to a user via img_auth.php, allowing headers to be...
onImageBeforeProduceHTML( $linker, &$title, &$file, &$frameParams, &$handlerParams, &$time, &$res, $parser, &$query, &$widthOption)
This hook is called before producing the HTML created by a wiki image insertion.
onInfoAction( $context, &$pageInfo)
This hook is called when building information to display on the action=info page.
onUserEffectiveGroups( $user, &$groups)
This hook is called in UserGroupManager::getUserEffectiveGroups().
onPageUndelete(ProperPageIdentity $page, Authority $performer, string $reason, bool $unsuppress, array $timestamps, array $fileVersions, StatusValue $status)
onSearchGetNearMatch( $term, &$title)
Use this hook to perform exact-title-matches in "go" searches if nothing was found.
onMultiContentSave( $renderedRevision, $user, $summary, $flags, $status)
This hook is called before an article is saved.
onRecentChange_save( $recentChange)
This hook is called at the end of RecentChange::save().
onSearchIndexFields(&$fields, $engine)
Use this hook to add fields to search index mapping.
onOtherBlockLogLink(&$otherBlockLink, $ip)
Use this hook to add list items to a list of "other blocks" when viewing Special:BlockList.
onSpecialSearchCreateLink( $t, &$params)
This hook is called when making the message to create a page or go to the existing page.
onWatchlistEditorBuildRemoveLine(&$tools, $title, $redirect, $skin, &$link)
This hook is called when building remove lines in Special:Watchlist/edit.
onLinkerMakeExternalLink(&$url, &$text, &$link, &$attribs, $linkType)
This hook is called at the end of Linker::makeExternalLink() just before the return.
onIsValidEmailAddr( $addr, &$result)
Use this hook to override the result of Sanitizer::validateEmail(), for instance to return false if t...
onWatchArticle( $user, $page, &$status, $expiry)
This hook is called before a watch is added to an article.
onInternalParseBeforeLinks( $parser, &$text, $stripState)
This hook is called during Parser's internalParse method before links but after nowiki/noinclude/incl...
onSpecialTrackingCategories__preprocess( $specialPage, $trackingCategories)
This hook is called after LinkBatch on Special:TrackingCategories.
onManualLogEntryBeforePublish( $logEntry)
Use this hook to access or modify log entry just before it is published.
onDifferenceEngineNewHeader( $differenceEngine, &$newHeader, $formattedRevisionTools, $nextlink, $rollback, $newminor, $diffOnly, $rdel, $unhide)
Use this hook to change the $newHeader variable, which contains information about the new revision,...
onSpecialSearchProfileForm( $search, &$form, $profile, $term, $opts)
Use this hook to modify search profile forms.
onSearchGetNearMatchBefore( $allSearchTerms, &$titleResult)
Use this hook to perform exact-title-matches in "go" searches before the normal operations.
onHtmlCacheUpdaterAppendUrls( $title, $mode, &$append)
This hook is used to declare extra URLs to purge from HTTP caches.
onParserFetchTemplateData(array $titles, array &$tplData)
This hook allows Parsoid to fetch additional serialization information about a Template,...
onWebResponseSetCookie(&$name, &$value, &$expire, &$options)
This hook is called when setting a cookie in WebResponse::setcookie().
onHistoryTools( $revRecord, &$links, $prevRevRecord, $userIdentity)
Use this hook to override or extend the revision tools available from the page history view,...
onBeforeParserFetchFileAndTitle( $parser, $nt, &$options, &$descQuery)
This hook is called before an image is rendered by Parser.
Definition: HookRunner.php:956
onDifferenceEngineMarkPatrolledRCID(&$rcid, $differenceEngine, $change, $user)
Use this hook to possibly change the rcid parameter.
onParserCacheSaveComplete( $parserCache, $parserOutput, $title, $popts, $revId)
This hook is called after a ParserOutput has been committed to the parser cache.
onMovePageCheckPermissions( $oldTitle, $newTitle, $user, $reason, $status)
Use this hook to specify whether the user is allowed to move the page.
onWatchlistEditorBeforeFormRender(&$watchlistInfo)
This hook is called before building the Special:EditWatchlist form.
onUserGetAllRights(&$rights)
This hook is called after calculating a list of all available rights.
onSiteNoticeBefore(&$siteNotice, $skin)
This hook is called before the sitenotice/anonnotice is composed.
onImportHandleToplevelXMLTag( $reader)
This hook is called when parsing a top level XML tag.
onAlternateEditPreview( $editPage, &$content, &$previewHTML, &$parserOutput)
This hook is called before generating the preview of the page when editing ( EditPage::getPreviewText...
Definition: HookRunner.php:659
onAddNewAccount( $user, $byEmail)
This hook is called after a user account is created.
Definition: HookRunner.php:614
onArticleDelete( $wikiPage, $user, &$reason, &$error, &$status, $suppress)
Definition: HookRunner.php:703
onUserLogout( $user)
This hook is called before a user logs out.
onRejectParserCacheValue( $parserOutput, $wikiPage, $parserOptions)
Use this hook to reject an otherwise usable cached value from the Parser cache.
onTitleReadWhitelist( $title, $user, &$whitelisted)
This hook is called at the end of read permissions checks, just before adding the default error messa...
onIsFileCacheable( $article)
Use this hook to override the result of Article::isFileCacheable().
onPingLimiter( $user, $action, &$result, $incrBy)
Use this hook to override the results of User::pingLimiter().
onLinksUpdateConstructed( $linksUpdate)
This hook is called at the end of LinksUpdate() is construction.
onMimeMagicInit( $mimeMagic)
This hook is called before processing the list mapping MIME types to media types and the list mapping...
onSpecialRecentChangesPanel(&$extraOpts, $opts)
This hook is called when building form options in SpecialRecentChanges.
onPageDelete(ProperPageIdentity $page, Authority $deleter, string $reason, StatusValue $status, bool $suppress)
onParserPreSaveTransformComplete( $parser, &$text)
This hook is called from Parser::preSaveTransform() after processing is complete, giving the extensio...
onImportHandleContentXMLTag( $reader, $contentInfo)
This hook is called when parsing a content XML tag.
onTitleQuickPermissions( $title, $user, $action, &$errors, $doExpensiveQueries, $short)
This hook is called from Title::checkQuickPermissions to add to or override the quick permissions che...
onDifferenceEngineShowEmptyOldContent( $differenceEngine)
Use this hook to change the diff table body (without header) in cases when there is no old revision o...
onBlockIpComplete( $block, $user, $priorBlock)
This hook is called after an IP address or user is blocked.
onProtectionForm__buildForm( $article, &$output)
This hook is called after all protection type fieldsets are made in the form.
onUsersPagerDoBatchLookups( $dbr, $userIds, &$cache, &$groups)
This hook is called in UsersPager::doBatchLookups()
onPageSaveComplete( $wikiPage, $user, $summary, $flags, $revisionRecord, $editResult)
This hook is called after an article has been updated.
onGetLocalURL__Article( $title, &$url)
Use this hook to modify local URLs specifically pointing to article paths without any fancy queries o...
onShortPagesQuery(&$tables, &$conds, &$joinConds, &$options)
Use this hook to modify the query used by Special:ShortPages.
onFileUndeleteComplete( $title, $fileVersions, $user, $reason)
This hook is called when a file is undeleted.
onWatchArticleComplete( $user, $page)
This hook is called after a watch is added to an article.
onOtherAutoblockLogLink(&$otherBlockLink)
Use this hook to add list items to a list of "other autoblocks" which appears at the end of Special:A...
onEditFilter( $editor, $text, $section, &$error, $summary)
Use this hook to perform checks on an edit.
onEditPage__showStandardInputs_options( $editor, $out, &$tabindex)
Use this hook to inject form fields into the editOptions area.
onBeforeParserFetchTemplateRevisionRecord(?LinkTarget $contextTitle, LinkTarget $title, bool &$skip, ?RevisionRecord &$revRecord)
This hook is called before a template is fetched by Parser.
Definition: HookRunner.php:974
onGetCanonicalURL( $title, &$url, $query)
Use this hook to modify fully-qualified URLs used for IRC and email notifications.
onSendWatchlistEmailNotification( $targetUser, $title, $enotif)
Use this hook to cancel watchlist email notifications (enotifwatchlist) for an edit.
onArticle__MissingArticleConditions(&$conds, $logTypes)
This hook is called before fetching deletion and move log entries to display a message of a non-exist...
Definition: HookRunner.php:865
onSidebarBeforeOutput( $skin, &$sidebar)
Use this hook to edit the sidebar just before it is output by skins.
onDifferenceEngineLoadTextAfterNewContentIsLoaded( $differenceEngine)
This hook is called in DifferenceEngine::loadText() after the new revision's content has been loaded ...
onParserAfterParse( $parser, &$text, $stripState)
This hook is called from Parser::parse() just after the call to Parser::internalParse() returns.
onGetLangPreferredVariant(&$req)
This hook is called in LanguageConverter::getPreferredVariant() to allow fetching the language varian...
onSpecialPageAfterExecute( $special, $subPage)
This hook is called after SpecialPage::execute.
onParserLogLinterData(string $title, int $revId, array $lints)
This hook allows Parsoid to log additional linting information during a parse to a database maintaine...
onGetPreferences( $user, &$preferences)
Use this hook to modify user preferences.
onResourceLoaderGetConfigVars(array &$vars, $skin, Config $config)
Export static site-wide mw.config variables to JavaScript.
onTitleSquidURLs( $title, &$urls)
This hook is called to determine which URLs to purge from HTTP caches.
onGetIP(&$ip)
Use this hook to modify the IP of the current user (called only once).
onMaintenanceRefreshLinksInit( $refreshLinks)
This hook is called before executing the refreshLinks.php maintenance script.
onEditPageCopyrightWarning( $title, &$msg)
Use this hook for site and per-namespace customization of contribution/copyright notice.
onBeforeRevertedTagUpdate( $wikiPage, $user, $summary, $flags, $revisionRecord, $editResult, &$approved)
This hook is called before scheduling a RevertedTagUpdateJob.
Definition: HookRunner.php:991
onLinkerMakeMediaLinkFile( $title, $file, &$html, &$attribs, &$ret)
This hook is called at the end of Linker::makeMediaLinkFile() just before the return.
onPerformRetroactiveAutoblock( $block, &$blockIds)
This hook is called before a retroactive autoblock is applied to a user.
onSiteNoticeAfter(&$siteNotice, $skin)
This hook is called after the sitenotice/anonnotice is composed.
onSearchResultProvideThumbnail(array $pageIdentities, &$thumbnails, int $size=null)
This hook is called when generating search results in order to fill the 'thumbnail' field in an exten...
onLocalFilePurgeThumbnails( $file, $archiveName, $urls)
This hook is called before thumbnails for a local file are purged.
onChangeTagCanDelete( $tag, $user, &$status)
Use this hook to tell whether a change tag should be able to be deleted from the UI (Special:Tags) or...
onResourceLoaderJqueryMsgModuleMagicWords(RL\Context $context, array &$magicWords)
onPageHistoryPager__doBatchLookups( $pager, $result)
This hook is called after the pager query was run, before any output is generated,...
onContentModelCanBeUsedOn( $contentModel, $title, &$ok)
Use this hook to determine whether a content model can be used on a given page.
onGetUserBlock( $user, $ip, &$block)
Use this hook to modify the block found by the block manager.
onUploadFormSourceDescriptors(&$descriptor, &$radio, $selectedSourceType)
This hook is called after the standard source inputs have been added to the descriptor.
onArticleConfirmDelete( $article, $output, &$reason)
This hook is called before writing the confirmation form for article deletion.
Definition: HookRunner.php:689
onSpecialListusersQueryInfo( $pager, &$query)
This hook is called right before the end of UsersPager::getQueryInfo()
onLoadExtensionSchemaUpdates( $updater)
This hook is called during database installation and updates.
onInitializeArticleMaybeRedirect( $title, $request, &$ignoreRedirect, &$target, &$article)
Use this hook to check whether a title is a redirect.
onSpecialSearchPowerBox(&$showSections, $term, &$opts)
Use this hook to modify advanced search profile forms.
onSkinTemplateNavigation__SpecialPage( $sktemplate, &$links)
onSkinPageReadyConfig(RL\Context $context, array &$config)
Allows skins to change the mediawiki.page.ready module configuration.
onLogException( $e, $suppressed)
This hook is called before an exception (or PHP error) is logged.
onRedirectSpecialArticleRedirectParams(&$redirectParams)
Use this hook to alter the set of parameter names such as "oldid" that are preserved when using redir...
onLogEventsListLineEnding( $page, &$ret, $entry, &$classes, &$attribs)
This hook is called before a Special:Log line is finished.
onUnblockUser( $block, $user, &$reason)
This hook is called before an IP address or user is unblocked.
onMediaWikiServices( $services)
This hook is called when a global MediaWikiServices instance is initialized.
onMediaWikiPerformAction( $output, $article, $title, $user, $request, $mediaWiki)
Use this hook to override MediaWiki::performAction().
onTitleGetRestrictionTypes( $title, &$types)
Use this hook to modify the types of protection that can be applied.
onOutputPageMakeCategoryLinks( $out, $categories, &$links)
This hook is called when links are about to be generated for the page's categories.
onParserGetVariableValueTs( $parser, &$time)
Use this hook to change the value of the time for time-related magic words, ie {{CURRENTMONTH}},...
onParserOptionsRegister(&$defaults, &$inCacheKey, &$lazyLoad)
Use this hook to register additional parser options.
onPermissionErrorAudit(LinkTarget $title, UserIdentity $user, string $action, string $rigor, array $errors)
This hook is called from PermissionManager::getPermissionErrorsInternal() to collect internal permiss...
onEditPage__importFormData( $editpage, $request)
Use this hook to read additional data posted in the form.
onBeforePageDisplay( $out, $skin)
This hook is called prior to outputting a page.
Definition: HookRunner.php:941
onUserLoginComplete( $user, &$inject_html, $direct)
Use this hook to show custom content after a user has logged in via the web interface.
onParserLimitReportFormat( $key, &$value, &$report, $isHTML, $localize)
This hook is called for each row in the parser limit report that needs formatting.
onIRCLineURL(&$url, &$query, $rc)
This hook is called when constructing the URL to use in an IRC notification.
onParserAfterTidy( $parser, &$text)
This hook is called after Parser::tidy() in Parser::parse().
onPageMoveCompleting( $old, $new, $user, $pageid, $redirid, $reason, $revision)
This hook is called after moving an article (title), pre-commit.
onContentSecurityPolicyDefaultSource(&$defaultSrc, $policyConfig, $mode)
Use this hook to modify the allowed CSP load sources.
onSecuritySensitiveOperationStatus(&$status, $operation, $session, $timeSinceAuth)
Use this hook to affect the return value from MediaWiki\Auth\AuthManager::securitySensitiveOperationS...
onSkinEditSectionLinks( $skin, $title, $section, $tooltip, &$result, $lang)
Use this hook to modify section edit links.
onSpecialResetTokensTokens(&$tokens)
This hook is called when building token list for SpecialResetTokens.
onImagePageFileHistoryLine( $imageHistoryList, $file, &$line, &$css)
This hook is called when a file history line is constructed.
onParserBeforePreprocess( $parser, &$text, $stripState)
Called at the beginning of Parser::preprocess()
onImportLogInterwikiLink(&$fullInterwikiPrefix, &$pageTitle)
Use this hook to change interwiki links in log entries and edit summaries for transwiki imports.
onParserOutputPostCacheTransform( $parserOutput, &$text, &$options)
This hook is called from ParserOutput::getText() to do post-cache transforms.
onUserGetEmailAuthenticationTimestamp( $user, &$timestamp)
This hook is called when getting the timestamp of email authentication.
onSelfLinkBegin( $nt, &$html, &$trail, &$prefix, &$ret)
This hook is called before a link to the current article is displayed to allow the display of the lin...
onCollation__factory( $collationName, &$collationObject)
This hook is called if $wgCategoryCollation is an unknown collation.
onSearchResultsAugment(&$setAugmentors, &$rowAugmentors)
Use this hook to add code to the list of search result augmentors.
onArticleFromTitle( $title, &$article, $context)
This hook is called when creating an article object from a title object using Wiki::articleFromTitle(...
Definition: HookRunner.php:736
onGetDifferenceEngine( $context, $old, $new, $refreshCache, $unhide, &$differenceEngine)
This hook is called when getting a new difference engine interface object.
onLinksUpdate( $linksUpdate)
This hook is called at the beginning of LinksUpdate::doUpdate() just before the actual update.
onLogEventsListGetExtraInputs( $type, $logEventsList, &$input, &$formDescriptor)
This hook is called when getting extra inputs to display on Special:Log for a specific log type.
onUnitTestsAfterDatabaseSetup( $database, $prefix)
This hook is called right after MediaWiki's test infrastructure has finished creating/duplicating cor...
onContribsPager__reallyDoQuery(&$data, $pager, $offset, $limit, $descending)
This hook is called before really executing the query for My Contributions.
onExemptFromAccountCreationThrottle( $ip)
Use this hook to add an exemption from the account creation throttle.
onUndeleteForm__showRevision(&$archive, $title)
This hook is called in UndeleteForm::showRevision, after creating a PageArchive object.
onActionBeforeFormDisplay( $name, $form, $article)
This hook is called before executing the HTMLForm object.
Definition: HookRunner.php:600
onArticleViewRedirect( $article)
This hook is called before setting "Redirected from ..." subtitle when a redirect was followed.
Definition: HookRunner.php:858
onGetContentModels(&$models)
Use this hook to add content models to the list of available models.
onFormatAutocomments(&$comment, $pre, $auto, $post, $title, $local, $wikiId)
This hook is called when an autocomment is formatted by the Linker.
onChangesListInitRows( $changesList, $rows)
Use this hook to batch process change list rows prior to rendering.
onUserGetRights( $user, &$rights)
This hook is called in PermissionManager::getUserPermissions().
onRevisionFromEditComplete( $wikiPage, $rev, $originalRevId, $user, &$tags)
This hook is called when a revision was inserted due to an edit, file upload, import or page move.
onImageOpenShowImageInlineBefore( $imagePage, $output)
This hook is called just before showing the image on an image page.
onProtectionForm__save( $article, &$errorMsg, $reasonstr)
This hook is called when a protection form is submitted.
onUpdateUserMailerFormattedPageStatus(&$formattedPageStatus)
This hook is called before a notification email gets sent.
onUploadFormInitDescriptor(&$descriptor)
This hook is called after the descriptor for the upload form as been assembled.
onUploadComplete( $uploadBase)
This hook is called upon completion of a file upload.
onUserMailerSplitTo(&$to)
This hook is called in UserMailer::send() to give extensions a chance to split up an email with multi...
onImportHandleUploadXMLTag( $reader, $revisionInfo)
This hook is called when parsing an XML tag in a file upload.
onSetupAfterCache()
This hook is called in Setup.php, after cache objects are set.
onDifferenceEngineShowDiff( $differenceEngine)
Use this hook to affect the diff text which eventually gets sent to the OutputPage object.
onEmailUserPermissionsErrors( $user, $editToken, &$hookErr)
Use this hook to retrieve permissions errors for emailing a user.
onBeforeDisplayNoArticleText( $article)
This hook is called before displaying message key "noarticletext" or "noarticletext-nopermission" at ...
Definition: HookRunner.php:925
onNewPagesLineEnding( $page, &$ret, $row, &$classes, &$attribs)
This hook is called before a NewPages line is finished.
onDifferenceEngineShowDiffPage( $out)
Use this hook to add additional output via the available OutputPage object into the diff view.
onImagePageShowTOC( $page, &$toc)
This hook is called when the file toc on an image page is generated.
onPageViewUpdates( $wikipage, $user)
Use this hook to make database (or other) changes after a page view is seen by MediaWiki.
onDeletedContributionsLineEnding( $page, &$ret, $row, &$classes, &$attribs)
This hook is called before a DeletedContributions HTML line is finished.
onWikiPageFactory( $title, &$page)
Use this hook to override WikiPage class used for a title.
onSpecialLogAddLogSearchRelations( $type, $request, &$qc)
Use this hook to add log relations to the current log.
onSearchGetNearMatchComplete( $term, &$title)
Use this hook to modify exact-title-matches in "go" searches.
onMimeMagicGuessFromContent( $mimeMagic, &$head, &$tail, $file, &$mime)
Use this hook to guess the MIME by content.
onDifferenceEngineAfterLoadNewText( $differenceEngine)
This hook is called in DifferenceEngine::loadNewText() after the new revision's content has been load...
onUserLoadAfterLoadFromSession( $user)
This hook is called to authenticate users on external or environmental means.
onSpecialMovepageAfterMove( $movePage, $oldTitle, $newTitle)
This hook is called after moving a page.
onEditFilterMergedContent( $context, $content, $status, $summary, $user, $minoredit)
onPageContentSave( $wikiPage, $user, $content, &$summary, $isminor, $iswatch, $section, $flags, $status)
This hook is called before an article is saved.
onOutputPageAfterGetHeadLinksArray(&$tags, $out)
This hook is called in OutputPage::getHeadLinksArray right before returning the result.
onSpecialVersionVersionUrl( $version, &$versionUrl)
This hook is called when building the URL for Special:Version.
onSpecialSearchProfiles(&$profiles)
Use this hook to modify search profiles.
onSpecialSearchResultsAppend( $specialSearch, $output, $term)
This hook is called immediately before returning HTML on the search results page.
onGetDoubleUnderscoreIDs(&$doubleUnderscoreIDs)
Use this hook to modify the list of behavior switches (double underscore variables in wikitext).
onTempUserCreatedRedirect(Session $session, UserIdentity $user, string $returnTo, string $returnToQuery, string $returnToAnchor, &$redirectUrl)
This hook is called after an action causes a temporary user to be created.
onModifyExportQuery( $db, &$tables, $cond, &$opts, &$join_conds, &$conds)
Use this hook to modify the query used by the exporter.
onLoadUserOptions(UserIdentity $user, array &$options)
This hook is called when user options/preferences are being loaded from the database.
onAbortEmailNotification( $editor, $title, $rc)
Use this hook to cancel email notifications for an edit.
Definition: HookRunner.php:586
onUserGetLanguageObject( $user, &$code, $context)
This hook is called when getting a user's interface language object.
onLanguageGetNamespaces(&$namespaces)
Use this hook to provide custom ordering for namespaces or remove namespaces.
onPageContentLanguage( $title, &$pageLang, $userLang)
Use this hook to change the language in which the content of a page is written.
onLonelyPagesQuery(&$tables, &$conds, &$joinConds)
Use this hook to modify the query used by Special:LonelyPages.
onSkinAfterPortlet( $skin, $portlet, &$html)
This hook is called when generating portlets.
onFileUpload( $file, $reupload, $hasDescription)
This hook is called when a file upload occurs.
onShowSearchHit( $searchPage, $result, $terms, &$link, &$redirect, &$section, &$extract, &$score, &$size, &$date, &$related, &$html)
Use this hook to customize display of search hit.
onSearchAfterNoDirectMatch( $term, &$title)
This hook is called if there was no match for the exact result.
onSpecialPage_initList(&$list)
This hook is called when setting up SpecialPageFactory::$list.
onOpportunisticLinksUpdate( $page, $title, $parserOutput)
This hook is called by WikiPage::triggerOpportunisticLinksUpdate when a page view triggers a re-rende...
onSpecialTrackingCategories__generateCatLink( $specialPage, $catTitle, &$html)
This hook is called for each category link on Special:TrackingCategories.
onWatchedItemQueryServiceExtensions(&$extensions, $watchedItemQueryService)
Use this hook to create a WatchedItemQueryServiceExtension.
onSpecialNewPagesFilters( $special, &$filters)
This hook is called after building form options at NewPages.
onMimeMagicImproveFromExtension( $mimeMagic, $ext, &$mime)
Use this hook to further improve the MIME type detected by considering the file extension.
onGetUserPermissionsErrorsExpensive( $title, $user, $action, &$result)
This hook is equal to getUserPermissionsErrors, but it is called only if expensive checks are enabled...
onImgAuthBeforeStream(&$title, &$path, &$name, &$result)
This hook is called before a file is streamed to a user, but only when using img_auth....
onEnhancedChangesListModifyLineData( $changesList, &$data, $block, $rc, &$classes, &$attribs)
Use this hook to alter data used to build a grouped recent change inner line in EnhancedChangesList.
onArticleContentOnDiff( $diffEngine, $output)
This hook is called before showing the article content below a diff.
Definition: HookRunner.php:696
onArticleUndelete( $title, $create, $comment, $oldPageId, $restoredPages)
This hook is called when one or more revisions of an article are restored.
Definition: HookRunner.php:826
onChangeTagsAfterUpdateTags( $addedTags, $removedTags, $prevTags, $rc_id, $rev_id, $log_id, $params, $rc, $user)
This hook is called after tags have been updated with the ChangeTags::updateTags function.
onRecentChangesPurgeRows( $rows)
This hook is called when old recentchanges rows are purged, after deleting those rows but within the ...
onAlternateEdit( $editPage)
This hook is called before checking if a user can edit a page and before showing the edit form ( Edit...
Definition: HookRunner.php:652
onUserToolLinksEdit( $userId, $userText, &$items)
This hook is called when generating a list of user tool links, e.g.
onUserIsBot( $user, &$isBot)
Use this hook to establish whether a user is a bot account.
onDifferenceEngineRenderRevisionAddParserOutput( $differenceEngine, $out, $parserOutput, $wikiPage)
Use this hook to change the parser output.
onShowMissingArticle( $article)
This hook is called when generating the output for a non-existent page.
onEmailUserCC(&$to, &$from, &$subject, &$text)
This hook is called before sending the copy of the email to the author.
onPostLoginRedirect(&$returnTo, &$returnToQuery, &$type)
Use this hook to modify the post login redirect behavior.
onSpecialSearchResults( $term, &$titleMatches, &$textMatches)
This hook is called before search result display.
onDisplayOldSubtitle( $article, &$oldid)
This hook is called before creating subtitle when browsing old versions of an article.
onBitmapHandlerCheckImageArea( $image, &$params, &$checkImageAreaHookResult)
This hook is called by BitmapHandler::normaliseParams, after all normalizations have been performed,...
onOutputPageBodyAttributes( $out, $sk, &$bodyAttrs)
This hook is called when OutputPage::headElement is creating the body tag to allow for extensions to ...
onMessagesPreLoad( $title, &$message, $code)
This hook is called when loading a message from the database.
onGetUserPermissionsErrors( $title, $user, $action, &$result)
Use this hook to add a permissions error when permissions errors are checked for.
onValidateExtendedMetadataCache( $timestamp, $file)
Use this hook to validate the cached metadata in FormatMetadata::getExtendedMeta.
onGalleryGetModes(&$modeArray)
Use this hook to get a list of classes that can render different modes of a gallery.
onUserSetCookies( $user, &$session, &$cookies)
This hook is called when setting user cookies.
onSearchableNamespaces(&$arr)
Use this hook to modify which namespaces are searchable.
onCategoryViewer__generateLink( $type, $title, $html, &$link)
This hook is called before generating an output link allow extensions opportunity to generate a more ...
onAfterParserFetchFileAndTitle( $parser, $ig, &$html)
This hook is called after an image gallery is formed by Parser, just before adding its HTML to parser...
Definition: HookRunner.php:645
onSpecialListusersDefaultQuery( $pager, &$query)
This hook is called right before the end of UsersPager::getDefaultQuery().
onContentGetParserOutput( $content, $title, $revId, $options, $generateHtml, &$output)
Use this hook to customize parser output for a given content object.
onUserLogoutComplete( $user, &$inject_html, $oldName)
This hook is called after a user has logged out.
onChangesListSpecialPageQuery( $name, &$tables, &$fields, &$conds, &$query_options, &$join_conds, $opts)
This hook is called when building an SQL query on pages inheriting from ChangesListSpecialPage (in co...
onWikiExporter__dumpStableQuery(&$tables, &$opts, &$join)
Use this hook to get the SELECT query for "stable" revisions dumps.
onEditPageGetDiffContent( $editPage, &$newtext)
Use this hook to modify the wikitext that will be used in "Show changes".
onBookInformation( $isbn, $output)
This hook is called before information output on Special:Booksources.
onOutputPageBeforeHTML( $out, &$text)
This hook is called when a page has been processed by the parser and the resulting HTML is about to b...
onBitmapHandlerTransform( $handler, $image, &$scalerParams, &$mto)
This hook is called before a file is transformed, giving extensions the possibility to transform it t...
onUserSaveSettings( $user)
This hook is called directly after user settings have been saved to the database.
onContentSecurityPolicyScriptSource(&$scriptSrc, $policyConfig, $mode)
Use this hook to modify the allowed CSP script sources.
onUploadVerifyUpload( $upload, $user, $props, $comment, $pageText, &$error)
onGetAllBlockActions(&$actions)
Use this hook to add an action or actions that may be blocked by a partial block.
onParserGetVariableValueSwitch( $parser, &$variableCache, $magicWordId, &$ret, $frame)
This hook is called when the parser needs the value of a custom magic word.
onUserIsLocked( $user, &$locked)
Use this hook to establish that a user is locked.
onHtmlPageLinkRendererBegin( $linkRenderer, $target, &$text, &$customAttribs, &$query, &$ret)
This hook is called when generating internal and interwiki links in LinkRenderer, before processing s...
onPrefixSearchExtractNamespace(&$namespaces, &$search)
This hook is called if core was not able to extract a namespace from the search string so that extens...
onUserIsBlockedGlobally( $user, $ip, &$blocked, &$block)
Use this hook to establish that a user is blocked on all wikis.
onContentAlterParserOutput( $content, $title, $parserOutput)
Use this hook to modify parser output for a given content object.
onMagicWordwgVariableIDs(&$variableIDs)
This hook is called when defining new magic words IDs.
onEditPage__showEditForm_fields( $editor, $out)
Use this hook to inject form field into edit form.
onEditPage__showEditForm_initial( $editor, $out)
This hook is called before showing the edit form.
onLocalFile__getHistory( $file, &$tables, &$fields, &$conds, &$opts, &$join_conds)
This hook is called before a file history query is performed.
onUserMailerChangeReturnPath( $to, &$returnPath)
This hook is called to generate a VERP return address when UserMailer sends an email,...
onSpecialMuteSubmit( $data)
This hook is called at the end of SpecialMute::onSubmit.
onUnwatchArticleComplete( $user, $page)
This hook is called after a watch is removed from an article.
onRawPageViewBeforeOutput( $obj, &$text)
This hook is called right before the text is blown out in action=raw.
onUserIsBlockedFrom( $user, $title, &$blocked, &$allowUsertalk)
Use this hook to check if a user is blocked from a specific page (for specific block exemptions if a ...
onSkinAfterContent(&$data, $skin)
Use this hook to add text after the page content and article metadata.
onGetFullURL( $title, &$url, $query)
Use this hook to modify fully-qualified URLs used in redirects/export/offsite data.
onRevisionRecordInserted( $revisionRecord)
This hook is called after a revision is inserted into the database.
onTitleIsAlwaysKnown( $title, &$isKnown)
This hook is called when determining if a page exists.
onSpecialPageBeforeExecute( $special, $subPage)
This hook is called before SpecialPage::execute.
onRequestContextCreateSkin( $context, &$skin)
This hook is called when RequestContext::getSkin creates a skin instance.
onTitleMoveStarting( $old, $nt, $user)
This hook is called before moving an article (title), but just after the atomic DB section starts.
onGetDefaultSortkey( $title, &$sortkey)
Use this hook to override the default sortkey for a page.
onEditPage__attemptSave( $editpage_Obj)
This hook is called before an article is saved, before WikiPage::doUserEditContent() is called.
onGetLocalURL( $title, &$url, $query)
Use this hook to modify local URLs as output into page links.
onSoftwareInfo(&$software)
This hook is called by Special:Version for returning information about the software.
onEditPageGetPreviewContent( $editPage, &$content)
Use this hook to modify the wikitext that will be previewed.
onArticleMergeComplete( $targetTitle, $destTitle)
This hook is called after merging to article using Special:Mergehistory.
Definition: HookRunner.php:743
onSpecialMuteModifyFormFields( $target, $user, &$fields)
Use this hook to add more fields to Special:Mute.
onLinksUpdateAfterInsert( $linksUpdate, $table, $insertions)
This hook is called at the end of LinksUpdate::incrTableUpdate() after each link table insert.
onCustomEditor( $article, $user)
This hook is called when invoking the page editor.
onOpenSearchUrls(&$urls)
This hook is called when constructing the OpenSearch description XML.
onFileTransformed( $file, $thumb, $tmpThumbPath, $thumbPath)
This hook is called when a file is transformed and moved into storage.
onSkinBuildSidebar( $skin, &$bar)
This hook is called at the end of Skin::buildSidebar().
onChangesListSpecialPageStructuredFilters( $special)
Use this hook to register filters for pages inheriting from ChangesListSpecialPage (in core: RecentCh...
onPrefsEmailAudit( $user, $oldaddr, $newaddr)
This hook is called when user changes their email address.
onWikiPageDeletionUpdates( $page, $content, &$updates)
Use this hook to manipulate the list of DeferrableUpdates to be applied when a page is deleted.
onWantedPages__getQueryInfo( $wantedPages, &$query)
This hook is called in WantedPagesPage::getQueryInfo().
onArticlePageDataBefore( $wikiPage, &$fields, &$tables, &$joinConds)
This hook is called before loading data of an article from the database.
Definition: HookRunner.php:757
onParserTestGlobals(&$globals)
Use this hook to define globals for parser tests.
onEmailUser(&$to, &$from, &$subject, &$text, &$error)
This hook is called before sending email from one user to another.
onSpecialListusersHeaderForm( $pager, &$out)
This hook is called before adding the submit button in UsersPager::getPageHeader().
onAncientPagesQuery(&$tables, &$conds, &$joinConds)
Use this hook to modify the query used by Special:AncientPages.
Definition: HookRunner.php:675
onChangesListInsertArticleLink( $changesList, &$articlelink, &$s, $rc, $unpatrolled, $watched)
Use this hook to override or augment link to article in RC list.
onSpecialSearchResultsPrepend( $specialSearch, $output, $term)
This hook is called immediately before returning HTML on the search results page.
onApiBeforeMain(&$main)
This hook is called before calling ApiMain's execute() method in api.php.
Definition: HookRunner.php:682
onUserClearNewTalkNotification( $userIdentity, $oldid)
This hook is called post-send when viewing a user talk page.
onChangeTagsAllowedAdd(&$allowedTags, $addTags, $user)
This hook is called when checking if a user can add tags to a change.
onEditPageNoSuchSection( $editpage, &$res)
This hook is called when a section edit request is given for an non-existent section.
onPlaceNewSection( $content, $oldtext, $subject, &$text)
Use this hook to override placement of new sections.
onArticleParserOptions(Article $article, ParserOptions $popts)
This hook is called before parsing wikitext for an article, and allows setting particular parser opti...
Definition: HookRunner.php:766
onSpecialWatchlistGetNonRevisionTypes(&$nonRevisionTypes)
This hook is called when building the SQL query for SpecialWatchlist.
onLinksUpdateComplete( $linksUpdate, $ticket)
This hook is called at the end of LinksUpdate::doUpdate() when updating, including delete and insert,...
onGetActionName(IContextSource $context, string &$action)
Use this hook to override the action name depending on request parameters.
onMaintenanceShellStart()
This hook is called before maintenance script shells start, such as eval.php and shell....
onGetExtendedMetadata(&$combinedMeta, $file, $context, $single, &$maxCacheTime)
Use this hook to get extended file metadata for the API.
onLogLine( $log_type, $log_action, $title, $paramArray, &$comment, &$revert, $time)
Use this hook to process a single log entry on Special:Log.
onBlockIp( $block, $user, &$reason)
This hook is called before an IP address or user is blocked.
onIsTrustedProxy( $ip, &$result)
Use this hook to override the result of ProxyLookup::isTrustedProxy().
onUserCanSendEmail( $user, &$hookErr)
Use this hook to override User::canSendEmail() permission check.
onRevisionDataUpdates( $title, $renderedRevision, &$updates)
This hook is called when constructing a list of DeferrableUpdate to be executed to record secondary d...
onImportHandleUnknownUser( $name)
When a user doesn't exist locally, use this hook to auto-create it.
onAfterImportPage( $title, $foreignTitle, $revCount, $sRevCount, $pageInfo)
This hook is called when a page import is completed.
Definition: HookRunner.php:636
onArticleUpdateBeforeRedirect( $article, &$sectionanchor, &$extraq)
This hook is called after a page is updated (usually on save), before the user is redirected back to ...
Definition: HookRunner.php:835
onCategoryAfterPageRemoved( $category, $wikiPage, $id)
This hook is called after a page is removed from a category.
onPreferencesFormPreSave( $formData, $form, $user, &$result, $oldUserOptions)
Use this hook to override preferences being saved.
onMessageCacheReplace( $title, $text)
This hook is called when a message page is changed.
onTitleIsMovable( $title, &$result)
This hook is called when determining if it is possible to move a page.
onMaintenanceUpdateAddParams(&$params)
Use this hook to add params to the update.php maintenance script.
onPersonalUrls(&$personal_urls, &$title, $skin)
Use this hook to alter the user-specific navigation links (e.g.
onDifferenceEngineMarkPatrolledLink( $differenceEngine, &$markAsPatrolledLink, $rcid)
Use this hook to change the "mark as patrolled" link which is shown both on the diff header as well a...
onBeforeInitialize( $title, $unused, $output, $user, $request, $mediaWiki)
This hook is called before anything is initialized in MediaWiki::performRequest().
Definition: HookRunner.php:932
onParserBeforeInternalParse( $parser, &$text, $stripState)
This hook is called at the beginning of Parser::internalParse().
onEmailUserForm(&$form)
This hook is called after building the email user form object.
onPageDeleteComplete(ProperPageIdentity $page, Authority $deleter, string $reason, int $pageID, RevisionRecord $deletedRev, ManualLogEntry $logEntry, int $archivedRevisionCount)
onLanguageGetTranslatedLanguageNames(&$names, $code)
Use this hook to provide translated language names.
onRandomPageQuery(&$tables, &$conds, &$joinConds)
Use this hook to modify the query used by Special:Random to select random pages.
onArticlePrepareTextForEdit( $wikiPage, $popts)
This hook is called when preparing text to be saved.
Definition: HookRunner.php:773
onTitleGetEditNotices( $title, $oldid, &$notices)
Use this hook to add edit notices.
onDeleteUnknownPreferences(&$where, $db)
This hook is called by the cleanupPreferences.php maintenance script to build a WHERE clause with whi...
onUserCan( $title, $user, $action, &$result)
Use this hook to interrupt or advise the "user can do X to Y article" check.
onBadImage( $name, &$bad)
This hook is called when checking against the bad image list.
Definition: HookRunner.php:911
onChangeAuthenticationDataAudit( $req, $status)
This hook is called when a user changes their password.
onUserLoadDefaults( $user, $name)
This hook is called when loading a default user.
onUploadVerifyFile( $upload, $mime, &$error)
Use this hook to perform extra file verification, based on MIME type, etc.
onPrefixSearchBackend( $ns, $search, $limit, &$results, $offset)
Use this hook to override the title prefix search used for OpenSearch and AJAX search suggestions.
onDifferenceEngineOldHeaderNoOldRev(&$oldHeader)
Use this hook to change the $oldHeader variable in cases when there is no old revision.
onParserSectionCreate( $parser, $section, &$sectionContent, $showEditLinks)
This hook is called each time the parser creates a document section from wikitext.
onUserGetRightsRemove( $user, &$rights)
This hook is called in PermissionManager::getUserPermissions().
onHTMLFileCache__useFileCache( $context)
Use this hook to override whether a page should be cached in file cache.
onUserAddGroup( $user, &$group, &$expiry)
This hook is called when adding a group or changing a group's expiry.
onEditFormPreloadText(&$text, $title)
Use this hook to populate the edit form when creating pages.
onSpecialSearchNogomatch(&$title)
This hook is called when the 'Go' feature is triggered and the target doesn't exist.
onGetRelativeTimestamp(&$output, &$diff, $timestamp, $relativeTo, $user, $lang)
Use this hook to pre-emptively override the relative timestamp generated by MWTimestamp::getRelativeT...
onActionModifyFormFields( $name, &$fields, $article)
This hook is called before creating an HTMLForm object for a page action.
Definition: HookRunner.php:607
onInvalidateEmailComplete( $user)
This hook is called after a user's email has been invalidated successfully.
onConfirmEmailComplete( $user)
This hook is called after a user's email has been confirmed successfully.
onMakeGlobalVariablesScript(&$vars, $out)
Export user- or page-specific mw.config variables to JavaScript.
onArticlePageDataAfter( $wikiPage, &$row)
This hook is called after loading data of an article from the database.
Definition: HookRunner.php:750
onResetPasswordExpiration( $user, &$newExpire)
Use this hook to allow extensions to set a default password expiration.
onSpecialUploadComplete( $form)
This hook is called after successfully uploading a file from Special:Upload.
onArticleViewFooter( $article, $patrolFooterShown)
This hook is called after showing the footer section of an ordinary page view.
Definition: HookRunner.php:844
onParserOutputStashForEdit( $page, $content, $output, $summary, $user)
This hook is called when an edit stash parse finishes, before the output is cached.
onXmlDumpWriterOpenPage( $obj, &$out, $row, $title)
This hook is called at the end of XmlDumpWriter::openPage, to allow extra metadata to be added.
onUploadStashFile( $upload, $user, $props, &$error)
onSpecialBlockModifyFormFields( $sp, &$fields)
Use this hook to add more fields to Special:Block.
onParserTestTables(&$tables)
Use this hook to alter the list of tables to duplicate when parser tests are run.
onUserEditCountUpdate( $infos)
This is called from a deferred update on edit or move and provides collected user edit count informat...
onArticleDeleteComplete( $wikiPage, $user, $reason, $id, $content, $logEntry, $archivedRevisionCount)
This hook is called after an article is deleted.
Definition: HookRunner.php:719
onUndeletePageToolLinks(IContextSource $context, LinkRenderer $linkRenderer, array &$links)
Use this hook to add one or more links to edit page subtitle when a page has been previously deleted.
onUploadForm_initial( $upload)
This hook is called before the upload form is generated.
__construct(HookContainer $container)
Definition: HookRunner.php:568
onInternalParseBeforeSanitize( $parser, &$text, $stripState)
This hook is called during Parser's internalParse method just before the parser removes unwanted/dang...