sg <

[MediawikiHac][メディアウィキハック]邪魔な機能を削除・改変します。

インストールディレクトリに存在する謎のファイルを削除

CODE_OF_CONDUCT.md
COPYING
CREDITS
FAQ
HISTORY
INSTALL
README
RELEASE-NOTES
SECURITY
UPGRAD

$wgEnableAPI=falseにしている時、api.phpにアクセスすると出てくるメッセージがじゃまくさい。

以下の行を探す。

if ( !$wgEnableAPI ) {
header( $_SERVER['SERVER_PROTOCOL'] . ' 500 MediaWiki configuration Error', true, 500 );
echo 'MediaWiki API is not enabled for this site. Add the following line to your LocalSettings.php'
. '<pre><b>$wgEnableAPI=true;</b></pre>';
die( 1 );
}

echo以下のメッセージが邪魔なので消す。

if ( !$wgEnableAPI ) {
	header( $_SERVER['SERVER_PROTOCOL'] . ' 500 MediaWiki configuration Error', true, 500 );
#	echo 'MediaWiki API is not enabled for this site. Add the following line to your LocalSettings.php'
#		. '<pre><b>$wgEnableAPI=true;</b></pre>';
	die( 1 );
}

Article.php

/includes/page/ 配下に存在する。

何かが嫌で、コメントアウト

何かしようとして以下の行をコメントアウトしたのだけど、もう思い出せない。

$outputPage->wrapWikiMsg(
    "<div id='mw-clearyourcache' lang='$lang' dir='$dir' class='mw-content-$dir'>\n$1\n</div>",
    'clearyourcache'
);

履歴がある場合、過去ページを表示させないようにする

// the outer div is need for styling the revision info and nav in MobileFrontend
$outputPage->addSubtitle( "<div class=\"mw-revision\">" . $revisionInfo .
    "<div id=\"mw-revision-nav\">" . $cdel .
    $context->msg( 'revision-nav' )->rawParams(
    $prevdiff, $prevlink, $lnk, $curdiff, $nextlink, $nextdiff
    )->escaped() . "</div></div>" );

EditPage.php

/includes/ 配下に存在する。

wikiページのソースを表示させないようにする。

ソースを見てもしょうがない

 protected function displayViewSourcePage( Content $content, $errorMessage = '' ) {

上記のfunctionを探して、その関数に含まれる

 $this->showTextbox( $text, 'wpTextbox1', [ 'readonly' ] );

をコメントアウト。

OutputPage.php

/includes/ 配下に存在する。

generatorのメタタグを消す。

MediaWikiで作りましたアピールは必要か? 無駄なトラフィックを減らすために削除。以下コメントアウト。

 $tags['meta-generator'] = Html::element( 'meta', [
    'name' => 'generator',
    'content' => "MediaWiki $wgVersion",
] );

Parser.php

/includes/parser/ 配下に存在する。

デバック用のコメントを出力しないようにする。

デバッグ用のコメント、つまりNewPP limit reportが含まれるコメント行のことだが、われわれには全く役に立たない情報。トラフィック削減をの為に削除する。

以下functionの次の行に太字の文字を追加

protected function makeLimitReport() {
return;

LinkHolderArray.php

/include/perser配下に存在する。

存在しない用語に[[]]をつけたときに、勝手に「新しいページ」のリンクを貼らせないようにする。つまり、redlinkをつけさせないようにする。

以下の行を

$link = $linkRenderer->makeBrokenLink(
    $title, $displayText, $attribs, $query
);

次のように書き換える。

#$link = $linkRenderer->makeBrokenLink(
#    $title, $displayText, $attribs, $query
#);
$link = $title;

使わないような各種actionを削除

includes/actions 配下に含まれる要らないactionを消す

CreditsAction.php

以下functionの次の行に太字の文字を追加

public function onView() {
return;

EditAction.php

以下functionの次の行に太字の文字を追加

public function show() {
return true;

HistoryAction.php

以下functionの次の行に太字の文字を追加

public function onView() {
return;

InfoAction.php

以下functionの次の行に太字の文字を追加

public function onView() {
return;

PurgeAction.php

以下functionの次の行に太字の文字を追加

public function show() {
return;

RawAction.php

以下functionの次の行に太字の文字を追加

public function onView() {
return;

RenderAction.php

以下functionの次の行に太字の文字を追加

public function show() {
return;

セクションごとの編集リンクはいりません

wikitextにおいて、

== はじめましょう ==

なんて記載しようものなら

はじめましょう[編集]

とかいう[編集]リンクがつけられてしまう。目障り。

/includes/skins/Skin.phpにおいて

以下functionの次の行に太字の文字を追加

 public function doEditSectionLink( Title $nt, $section, $tooltip = null, $lang = false ) {
return;

フッタの最終更新日もいらんよ

そんな項目誰が見るの?余計なお世話だよ

かっこ悪いソースだけど、目的は達成できる。

includes/skins/BaseTemplate.php において

以下forearch文の中を太字の文字の通りに書き換え

foreach ( $validFooterLinks as $aLink ) {
	if ( $aLink == "lastmod" ) { } else {
		$html .= Html::rawElement(
			'li',
			[ 'id' => Sanitizer::escapeIdForAttribute( $aLink ) ],
			$this->get( $aLink )
		);
	}
}

リファラーを飛ばしやがれ

httpsサイトでmediawikiを運営していると、リファラーが飛ばないことがあって困る場合があるんです。

調べると、、ふむふむ

https://webtan.impress.co.jp/e/2015/04/14/19750

https://y-com.info/contents/?p=5554

HTTPSからHTTPサイトにリファラーが飛ばないんなんて聞いてないよ。

/includes/OutputPage.php において

以下行の手前に太字の文字を追加

$pieces[] = '<meta name="referrer" content="origin">';
$pieces[] = Html::closeElement( 'head' );

Redlinkを表示させないようにする。

redlinkをたどって編集することはないので非常に邪魔である。

存在しない用語に[[ ]]でリンクを張ってもRedlinkが表示されないようにする。

/includes/parser/LinkHolderArray.php において

$link = $linkRenderer->makeBrokenLink(
	$title, $displayText, $attribs, $query
);

を以下の通り書き換え。

$link = $title;

検索結果が煩雑すぎる

ページ検索結果のうち、文字数とか編集日とか、だれも興味ないと思いますよ。

/includes/widget/search/FullSearchResultWidget.php において

"<div class='mw-search-result-heading'>{$joined}</div>"; #.
#"{$extract} {$meta}";

ここを

"<div class='mw-search-result-heading'>{$joined}</div>"; #.
#"{$extract} {$meta}";

上記のように書き換え

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください