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