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