=== MediaWiki 管理者の集い 第2版 ===at PHP
=== MediaWiki 管理者の集い 第2版 === - 暇つぶし2ch331:nobodyさん
07/12/07 09:06:28
>>324 XREA無料版の場合、広告の自動挿入がアプリケーションの正常な動作を妨げることがあります。この場合、自動挿入を停止させてMonoBook.phpなどのスキンファイルに広告を手動で貼ります。
それと>>267で1.11.0と1.12αの動作が報告されているので、なるべく新しいバージョンを利用することをお勧めします。

>>328 トップページにindex.html・index.cgi・index.phpなどが存在しないと自動的に削除されます。VALUE-DOMAIN.COMで広告免除を一度でも購入したサーバアカウントは削除されません。

広告付きの無料アカウントの継続方法
URLリンク(sb.xrea.com)

332:nobodyさん
07/12/08 18:21:16
>>322さんありがとうございました。

いろいろやってみて上手く行きました。やったことは次の
ようなことです。

他のドライブやフォルダーにファイルをアップロードする
方法

1 当該フォルダー下のファイルがクライアントからの
リクエストに応じることができるようにapacheの設定を
変更する。apacheの再起動が必要。

<IfModule alias_module>以下に次のように記述

Alias /upfile/ "e:/upfile/"
<Directory "e:/upfile">
Order allow,deny
Allow from all
</Directory>

2 mediawikiが他のドライブやフォルダーにファイルをアップロード
するようにLocalSettings.phpに次のように記述。
$wgUploadDirectory = "E:/upfile";

3 mediawikiが他のドライブやフォルダーを参照できるように
LocalSettings.phpに次のように記述。
$wgUploadPath = "/upfile";

この場合"E:/upfile"のように記述してはいけない。


333:nobodyさん
07/12/10 05:17:29
MediaWikiの各ページにアクセス用のショートカットを
設定するエクステンションがリリースされました

URLリンク(openoffice-ja.org)

こんな感じのURLになります

334:nobodyさん
07/12/10 21:45:02
>>333 最近短縮URLサービスがスパムやセキュリティ問題を抱えているそうなので
それらの対策としてもよさそうですね。

335:nobodyさん
07/12/11 20:32:33
>>327
>>331
遅くなりましたがありがとうございました。
文字コードを変えると上手くいったんですが、今度は何をしてもメインページが表示できず・・・。

最新バージョンに入れ替えて、どうにか事なきを得ましたが・・・難しいです。

336:nobodyさん
07/12/13 15:38:03
履歴の一部を消すプラグインって、ありませんか?

利用者がわりとこまめに保存するために履歴が大量に残ってしまっています。
(例えば同じ人が2~3時間内に10の履歴とか)
履歴が残ること自体はいいのですが、履歴が見づらくなってしまい困っています。
利用者に注意を促していますが、システム側でも対応したいと思っています。

全ての履歴を消してしまうと問題があるので、
短時間内の複数の履歴を1つにまとめるために、
(手動で)履歴の一部を消すプラグイン(テーブルからの物理削除でもOK)って、ありませんか?

ベストなのは、以下のようなものです。
1.自分の履歴しか消せない。(管理者を除く)
2.自分の連続した履歴しか消せない。

皆様のお知恵を拝借したくお願いします。

337:nobodyさん
07/12/13 23:13:24
>>336
それは俺も気になる。

338:nobodyさん
07/12/15 06:20:24
>>336
プラグインは無いが操作とメンテナンススクリプトの組み合わせでできる
削除したいページを一旦消す。
消したページの履歴の上の方にある削除された版の履歴と復帰のリンクを開いて
残したい版だけチェックして復帰。履歴だけならこれできれいになる。
何度も同じページでやろうとすると昔消した版も時系列で並ぶのに注意。
ま、手間はかかるがアーカイブの管理なんて泥臭いもんだ。

DBから削除するときには /maintenance にarchive(削除した版)に入った履歴をDBから消すスクリプトがあるのでそれで。

mediawikiにはいわゆる一般的な意味での削除の機能はない。全て一般利用者からの隠蔽。
mediawikiのインターフェースから削除するとログが増える分DBは肥大する。

まあInnoDB自体が肥大し続けるから強制的にMyISAMにでもしてないと何をしても付け焼き刃だけど。

339:nobodyさん
07/12/15 06:32:21
と書いて思い出したが一時期連続投稿をまとめるスクリプトどっかにあったな。
DB構造変わってなくなったのかね。


340:nobodyさん
07/12/15 07:02:20
たとえば 5分間とか 10分間といったしきい値を設定して、
その時間帯に何回編集しようとも編集したユーザーの編集回数は 1回としてカウントされる
そんな Extension ありそうですけどねぇ…

教えて! Extensions 博士ー!\(^o^)/

341:nobodyさん
07/12/15 13:17:30
ページに毎にskinを変更することはできませんか。
medeawikiをCMSツールとして使い、複数サイトを作成し、
サイト毎に違ったレイアウトにしたいと思っています。



342:nobodyさん
07/12/15 18:33:24
>>251 の本を立ち読みしてきましたが、ページ数が10~20ぐらいしかなくて
完全なCSS初心者用でした。携帯機能については何も書かれていませんでした。
やはり自分で実装しなければならないということですか。

>>341 異なるユーザーグループごとにwikiを提供したいというのであれば
普通にwikiファームを構築した方が早いと思います。

body要素の範囲内でCSSをカスタマイズするのでよいなら
LocalSettings.phpで名前空間を割り当ててクラスセレクタごとのCSSを用意します。

ページごとのskin変更も同じように記事の名前空間ごとにユーザーオプションを変更する
という方法が考えられますが、オプション変更ボタンの下の注意書きの通り
ブラウザのキャッシュはサーバーサイドではクリアできないので、実装は困難だと思います。

ちなみにデフォルトの匿名と新規ユーザーオプションは$wgDefaultUserOptions変数で設定できます。

343:nobodyさん
07/12/15 19:45:53
>>342
ありがとうございます。
>body要素の範囲内でCSSをカスタマイズするのでよいなら
>LocalSettings.phpで名前空間を割り当ててクラスセレクタごとのCSSを用意します。

ということは
if ($hoge):
$wgDefaultSkin = 'cologneblue';
else:
$wgDefaultSkin = 'monobook';
endif;

このような書き方ができるのでしょうか。
リクエストURLを$hogeに入れる方法はどのようになります
でしょうか。

344:342
07/12/15 22:23:59
>>343 独自の名前空間を割り当てるには下記の記事をご覧下さい
URLリンク(www.mediawiki.org)

記事の例ではFoo名前空間にインデックス番号100を割り当てているので
body要素のクラスセレクタはns-100が追加されます。
公式サイトのCSSのカスタマイズ例は下記のページで見ることができます。
URLリンク(www.mediawiki.org)

書いた後に匿名ユーザーと新規ユーザー限定で
skinを切り替えする方法を思いついたので書いておきます。

例えば「メインページ」「Special:Recentchanges」だけを
standard skinにするには次のようになります。

$urls = array(
"/mediawiki/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8",
"/mediawiki/index.php/%E7%89%B9%E5%88%A5:Recentchanges"
);

if(in_array($_SERVER['REQUEST_URI'], $urls)) {
$wgDefaultSkin = 'standard';
}

$_SERVER['REQUEST_URI']から名前空間の部分を取得するには
basename関数とexplode関数を組み合わせます。

$name = '/mediawiki/index.php/Manual:%24wgDefaultUserOptions';
$result = explode(':', basename($name));
echo $result[0];

345:nobodyさん
07/12/16 11:14:46
>>344さんへ

できました。ありがとうございました。
次のようにLocalSettings.phpに記述しました。
この例ではメインページとヘルプページについては
nostalgiaをその他ではmonobookというように目的とすること
はできました。

アドバイスのあった匿名ユーザーと新規ユーザー限定という
ことや名前空間ということを特に考慮はしていないのですが
この例で、全てのユーザーについてnostalgiaとmonobookとに
使い分けできていると思いますが、これでは何かまずい点は
出てくるのでしょうか。

$urls = array(
"/wiki/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8", "/wiki/index.php/Help:%E7%9B%AE%E6%AC%A1"
);

if(in_array($_SERVER['REQUEST_URI'], $urls)):
$wgDefaultSkin = 'nostalgia';
else:
$wgDefaultSkin = 'monobook';
endif;



346:nobodyさん
07/12/16 14:12:23
>>345 うまく動作をしているのであれば気にする必要はありません。
私の環境(1.12α)では管理者権限を持つログインユーザーのオプションで
例えばスタンダードを選択したら$wgDefaultSkinに関係なくスタンダードになりました。

それで$urls変数の方を少し改良したので貼っておきます。create_function内の$kは
各配列のインデックス番号を表します。これは省略しても動作します。
array_walk関数では2つの引数を使うという慣習に合わせるためです。

サブページ(メインページ/サブページ)を一切使わないのでしたら
$_SERVER['REQUEST_URI']をbasename($_SERVER['REQUEST_URI'])に置き換える
というのもありです。

$urls = array(
"%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8",
"%E7%89%B9%E5%88%A5:Recentchanges"
);
array_walk($urls, create_function('&$v,$k', '$v = "/mediawiki/index.php/".$v;'));

347:nobodyさん
07/12/16 15:34:18
さらに試したところブラウザのユーザーエージェントでも切り替えできました。
例えば、OperaとIE7の場合はstandardににするには次のようになります。

$useragents = "/MSIE 7.0|Opera/";
if(preg_match($useragents, $_SERVER{'HTTP_USER_AGENT'})) {
$wgDefaultSkin = 'standard';
}else{
$wgDefaultSkin = 'monobook';
}

携帯のユーザーエージェントの切り替えるためにPEAR::Net_UserAgent_Mobile
というライブラリがありますが、MediaWikiで採用しているGPLと矛盾する
PHPライセンスなので再配布はできません。

あと携帯向けに表示する場合はページ分割が必要になりますが
Pear::Pagerが使えると思います。

348:nobodyさん
07/12/17 06:53:13
前スレでXREAといったPHPがセーフモードのサーバーで
タイムゾーンを補正できないことが話題になっていましたが
代わりに匿名ユーザーのオプションを設定することで対応します。

$wgDefaultUserOptions['timecorrection'] = '09:00';

設定をした後で記事のキャッシュをパージすることを忘れないで下さい。

349:nobodyさん
07/12/17 07:22:27
>>336 投稿を統合するよりもむしろ2chのように
投稿時間の間隔を規制する方がベターだと思います。

連投の表示を隠匿するもしくは投稿時に連投を統合する場合、
追加のSQLを発行する必要がでてくるのでサーバー負担が増えますし
データベースの設計に関わるのでカスタマイズの難易度が上がります。

連投を規制する場合はAPIなどで以前の投稿時間を取得して
規制時間の間は投稿ボタンを表示しないようにするという実装で済みます。

action=submitなどで投稿できる可能性があるので
そこまでやる人はあまりいないだろうという前提の元ですが。

350:nobodyさん
07/12/18 13:19:04 Gx8WPDAu
SVNで最新版にアップデートしたら、下記のようなエラーで表示されないんですが。
from within function "Database::select". MySQL returned error "1146: Table 'hoge.protected_titles' doesn't exist (localhost)".



351:nobodyさん
07/12/18 14:55:35 Gx8WPDAu
>>350
事故解決しました。スマソ

352:nobodyさん
07/12/18 20:17:47
>>347 訂正と追記。
PHPでは多重継承ができないので、自分で実装することにしました。
通常の記事のページの分割方法は次のようなものです。

1 本文を変数として取得するには$this->data['bodytext']を使う。
  ちなみに通常表示は$this->html('bodytext')です。
2 変数として取得した本文を分割して配列として収納する。
3 例えば、$_GET['id']を使って記事名?id=ページ番号でパラメータを取得して
 そのパラメータに対応した本文を収納した配列の要素を表示する。
4 表示の場合分けは上記の$_GET['id']に加えて$_GET['action']などの値を使う。

定義済の変数は
URLリンク(www.php.net)
index.phpに渡すことができるパラメータは
URLリンク(www.mediawiki.org)

を参照して下さい。

編集も携帯でできるようにするにはincludes/EditPage.phpを編集すればよいはずですが未調査です。

分割方法に関して平文のみで文字数で分割する場合、英文ならwordwrap関数が、
日本語の場合は厳密な文字数で分割できませんが、下記の記事が参考になりました。

続:日本語(マルチバイト)でのwordwrap処理 -OKWave
URLリンク(www.mediawiki.org)

ざっと調べた範囲では携帯向けのプロクシサイトのように
一定量のサイズとHTMLブロック単位で分割する方法の解説記事は見つからなかったので、
自分で考える必要があるようです。あとはpuwikiが携帯対応しているのでこちらも参考になるかもしれません。

353:nobodyさん
07/12/19 05:09:12
今さっき、xreaにMediaWikiをインストールして最初のセットアップを完了しました。
そのあとLocalSettup.phpを親ディレクトリに入れたのですが
Warning: require_once(./LocalSettings.php) [function.require-once]: failed to open stream: Permission denied in
/virtual/hoge/public_html/hoge2/mediawiki/includes/WebStart.php on line 86

Fatal error: require_once() [function.require]: Failed opening required './LocalSettings.php' (include_path='.:/usr/local/lib/php') in
/virtual/hoge/public_html/hoge2/mediawiki/includes/WebStart.php on line 86

というエラーが出るのでます。どうすればいいのでしょうか。

354:nobodyさん
07/12/19 06:19:27
>>353
== 質問するときに書いてね ==
>>3-4 をご覧になってお分かりになる範囲の情報を記載しましょう。

回答する方も MediaWiki のバージョンくらいは分からないと困ると思いますので。

xrea に MediaWiki を導入している経験者の方々が多くの情報を残しています。
そちらも参照されると手助けになると思いますのでよければどうぞ。
URLリンク(www.google.co.jp)

355:nobodyさん
07/12/19 08:50:50
すいません
ちなみにver. は1.11.0です。

356:nobodyさん
07/12/19 09:51:13
>>353
とりあえずDocumentRootとLocalSettings.phpのパスを教えてください
/virtual/hoge/public_html/hoge2/
/virtual/hoge/public_html/hoge2/mediawiki/LocalSettings.php
かな?

357:353
07/12/19 10:48:32
>>356
LocalSettup.phpをコンフィグから一度PCにダウソして親ディレクトリにうpしたのでそうだと思います。

そのあとコンフィグは削除しました。

358:nobodyさん
07/12/19 11:01:37
>>357
LocalSettup.php ?
まさか、リネームしてないよね?

359:353
07/12/19 11:42:50
いじらずダウソ、うpしたのでリネームはしてません。

エラーの文章の意味はどういうものなんでしょう?

360:nobodyさん
07/12/19 12:12:42
>>359
パーミッションが無いよと言っている。
LocalSettings.phpの所有者とパーミッション(属性)とindex.php等他のファイルの所有者は何?

361:nobodyさん
07/12/19 14:12:12 I01GQrBL
>>352
phpで動かしてる?
cgiモードだとうまく動くかもよ。


362:nobodyさん
07/12/19 14:12:59 I01GQrBL
>353の間違い

363:353
07/12/19 14:24:47
>360
LocalSettings.phpの属性は600.
index.phpの属性は644でした。
ファイルの所有者ってのはどうやって見るんですか?

>361
cgiモードってのはどうやるんですか?

364:nobodyさん
07/12/19 16:30:28 4oqVnmt9
>>363

XREAでcgiモードは、Mediawiki下の.htaccessに下記を追加
(.htaccessがなければ、新規で作成)

<Files index.php>
AddHandler application/x-httpd-php5cgi .php
</Files>


365:nobodyさん
07/12/19 16:40:15
>>363 私が利用しているXREAサーバーではLocalSettings.phpの属性は707にしています。
さらに動作しなければ属性を755、777で試してみて下さい。

また、ファイルとデータベースのレコードを削除して再度アップロードとインストールをすると
正常に動作するようになることがあります。

ファイルの所有者を調べるにはサーバーの管理のファイルマネージャーの画面を見るか
サーバーを遠隔操作するためにSSH接続をしてls -lもしくはls -allのコマンドを使います。
XREAの仕様ではモジュール版PHPで生成されたファイルの所有者はapacheとなります。

PHPをCGIモードに切り替えるには下記の一行を記した.htaccessファイルを設置します。
AddHandler application/x-httpd-phpcgi .php

PHPをCGIとして動かす方法について
URLリンク(sb.xrea.com)

CGIモードはモジュール版PHPで動かない関数やLinuxコマンドを実行するために利用されます。
セーフモードで動かない関数は以下のページで書かれています。
URLリンク(www.php.net)

366:nobodyさん
07/12/19 16:43:02
>>363
とりあえずLocalSettings.phpを644にしてみて

367:353
07/12/19 16:49:39
>366
とりあえず言われたとおり、644にしてみました。

データベース・エラー
データベース検索の文法エラー。これは恐らくソフトウェアのバグを表しています。 最後に実行を試みた問い合わせ:

(SQLクエリー非表示)

from within function "Article::pageData". MySQL returned error "1267: Illegal mix of collations (ujis_bin,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '=' (localhost)".

って言われました。

368:353
07/12/19 16:51:48
755 777にしても同じでした。


369:nobodyさん
07/12/19 16:59:12
>>367 データベースを作るときにキャラクタセットはunicodeにしたかな?

370:353
07/12/19 17:05:47
EUC JPっす。
ググッたらこのスレの34でよく似た文章出てきました。
やり直してみます。

371:353
07/12/20 01:09:07
MySQLをUnicodeに属性を644に
変更したら動作しました。
皆さんありがとうございました。
またお世話になるかもしれません。

372:nobodyさん
07/12/20 18:58:18
やっと時間ができたのでスレのまとめページを作りました。
とりあえず>>10-12までを転載しました。

URLリンク(www12.atwiki.jp)

ウィキペディアライクモードがいつの間にか実装されていました。


373:nobodyさん
07/12/21 08:23:19
>>372
すばらしく乙

374:nobodyさん
07/12/21 12:54:32
>>372


ですが、MediaWiki の有用性の分かっているスレ住人のお一人でしたら
MediaWiki を使ったまとめサイトにしていただければ尚嬉しいのですが…
(´・ω・`)

375:nobodyさん
07/12/24 19:28:14
345です。
その節はお世話になりました。

依然としてmediawikiをcmsツールとして利用できないかと
色々TRYしています。

先日は、ページ毎にSkinを変更する手段としてLocalSettings.php
にif文を記載して分岐しましたが、これだとページを作成する度に
LocalSettings.phpに手を加えなくてはなりません。
これを回避するために、ページにSkin名が含まれている場合
当該Skinで表示するということをやろうと思い、次のように
コーティングしましたが上手く行きません。


イベントハンドラをフックに割り当て、フックのイベント
が発生したタイミングでchangeSkinが実行されることを予定してい
ます。
changeSkinでは$wgOut->getHTML()で得たHTML文にSkin名(例ではnostalgia)
が記載されている場合は$wgDefaultSkin = 'nostalgia';となるように
しています。

フックのイベントのタイミングが既にSkinが選択された後であれば
当然上手く行かないでしょうし、また、$wgOutにHTML文が割り当てられて
いない時も上手く行かないと思います。コメント部分で色々と
フックのイベントタイミングを選びましたが、なかなか上手く行きません。

どのようにコーティングすれば当初の目的が果たせるでしょうか。

よろしくお願いします。
なお、書き込みエラーになったのでコードは次に書き込みます。

376:nobodyさん
07/12/24 19:31:37
<?php

//$wgHooks['OutputPageBeforeHTML'][] = 'changeSkin';
//$wgHooks['ArticleAfterFetchContent'][] = 'changeSkin';
//$wgHooks['ParserBeforeTidy'][] = 'changeSkin';
//$wgHooks['ParserBeforeStrip'][] = 'changeSkin';
//$wgHooks['OutputPageParserOutput'][] = 'changeSkin';
//$wgHooks['ArticleFromTitle'][] = 'changeSkin';

$wgHooks['ArticleFromTitle'][] = 'changeSkin';

function changeSkin() {
global $wgDefaultSkin,$wgOut;
if(strpos($wgOut->getHTML(),"nostalgia")!== false) {
$wgDefaultSkin = 'nostalgia';
}
return true;

}
?>



377:353
07/12/24 23:05:57
353です。
インストールのときはお世話になりました。

また質問なのですが、テンプレートや表示の仕様をwikipediaそっくりにしたいのですが
mediawiki:common.css
mediawiki:common.js
のソースをそのままコピペしても全然同じになりません。
infoboxを使ってみたいのですがうまくいかないので
どうしたものかと悩んでいます。
wikipediaのcommon.cssとかはソースの色分けとかもされてたり、
ソースの上の部分の文頭に四角が付いていますがそういうのも付きません。

ver.1.11.0
サーバーはxreaです。

よろしくお願いします。

378:nobodyさん
07/12/25 00:57:46
>>375-376
とりあえず、「CologneBlue:記事名」ならCologneBlueスキンを表示する動作は以下のコードで
確認しました。

$title = str_replace('/mediawiki/index.php/', '', $_SERVER['REQUEST_URI']);
$namespace = explode(':', $title);
$skins = array('Chick', 'CologneBlue', 'MonoBook', 'MySkin', 'Nostalgia', 'Simple', 'Standard');

if(in_array($namespace[0], $skins)){
  $wgDefaultSkin = $namespace[0];
  //$wgDefaultUserOptions['skin'] = $namespace[0];
}

スキン内部のコードならSkin::getSkinNames()スタティックメソッドで
利用できるスキン名の一覧の配列を得ることができますが
LocalSettings.php内ではメソッドを書いただけでは利用できませんでした。

379:nobodyさん
07/12/25 01:29:27
>>377
URLリンク(en.wikipedia.org)

Template:Infoboxのテーブルで指定されているCSSのクラスをお探しなら
MediaWiki:Monobook.cssページで見つかります。
URLリンク(en.wikipedia.org)

念のため書いておきますが、上記のテンプレートは
ParserFunctions拡張機能がインストールされていることが前提条件です。
URLリンク(ja.wikipedia.org)条件文

ソースコードのハイライトに関してはSyntaxHighlight GeSHi拡張機能
を導入してみて下さい。
URLリンク(www.mediawiki.org)

380:nobodyさん
07/12/25 02:44:54
>>378 追記。もし記事の名前空間と記事が異なる場合は
記事の名前空間をキー、スキン名を要素とする配列を用意して
array_key_exists関数で判定します。

$title = str_replace('/mediawiki/index.php/', '', $_SERVER['REQUEST_URI']);
$namespace = explode(':', $title);

$skins = array(
'Chi' => 'Chick',
'Col' => 'CologneBlue',
'Mon' => 'MonoBook',
'MyS' => 'MySkin',
'Nos' => 'Nostalgia',
'Sim' => 'Simple',
'Sta' => 'Standard');

if(array_key_exists($namespace[0], $skins)) {
$wgDefaultSkin = $skins[$namespace[0]];
//$wgDefaultUserOptions['skin'] = $skins[$namespace[0]];
}

381:nobodyさん
07/12/25 02:56:48
もう一つ追記。上記のコードでは記事名の取得はstr_replace関数を使っていますが、
削除する文字列が記事名にも含まれる場合は正常に記事名が取得できなくなりますので
対策をすると下記のようになります。

<?php
$url = '/mediawiki/index.php/mainpage/subpage1/subpage2';
$url = explode('/', $url);
$n = count($url);

for($i=3; $i<$n; $i++){
$title .= $url[$i];
$title .= ($i==$n-1) ? '' : '/';
}

echo $title;

($i==$n-1) ? '' : '/'の部分は三項演算子で単純な条件分岐を簡略化するために使っています。

382:nobodyさん
07/12/25 21:22:36
>>378さんへ
上手くできました。ありがとうございました。
URL引数が名前空間毎に変わることを利用しているのですね。
こちらの方がフックを使うよりもとてもスムーズだと思います。

ところで、$wgDefaultSkin = を使う場合、ログインユーザの
skinは変更できないのですね。これはログインなしで使用する
ことで回避できるので仕様として諦めるしかないのかなと思って
います。ただ、ログインを前提としない場合はデフォルトの検索
は名前空間が標準のみとなってしまいますが、作成した名前空間
をデフォルト検索対象に含めることはできないでしょうか。

383:nobodyさん
07/12/25 23:06:34
>>382 
匿名ユーザーのデフォルトの検索対象となる名前空間は
$wgNamespacesToBeSearchedDefault変数で指定します。

$wgExtraNamespaces[110] = "MonoBook";
でMonoBook名前空間のインデックス番号を110にした場合は
次のようになります。

$wgNamespacesToBeSearchedDefault = array(
NS_MAIN => true,
110 => true
);


せっかくなので名前空間ごとにユーザーグループの編集を制限する方法も書いておきます。
1.10以降なら$wgNamespaceProtection変数、1.10以前ならLockdown拡張機能で行います。

上記のMonoBook名前空間に対してsysopグループだけが編集できるようにするには
次のように設定します。

1.10.0以降
$wgNamespaceProtection[110] = array( 'sysop' );

1.10.0以前
require_once( "$IP/extensions/Lockdown/Lockdown.php" );
$wgNamespacePermissionLockdown[110]['edit'] = array('sysop');

384:nobodyさん
07/12/25 23:21:00
続き。sysopグループだけがMonoBook名前空間を閲覧できるようにする
には以下の通りです。

require_once( "$IP/extensions/Lockdown/Lockdown.php" );
$wgNamespacePermissionLockdown[110]['read'] = array('sysop');
$wgNonincludableNamespaces[] = 110;

以前と比べて$wgNonincludableNamespacesによって
他のページへのインクルードを禁止できるようになりましたが、
特別ページの検索機能で見出しが表示されたり
統計情報が表示されるのは相変わらずです。

385:nobodyさん
07/12/26 11:22:34
ド素人かつ只の利用者なんで恐縮ですが、ページの下部にコメント欄を表示させることは出来ないでしょうか?
最新の10~20件のみ表示されるような物が理想なのですが、情報が見当たりませんでした。

386:nobodyさん
07/12/26 12:19:28
>>385
次回から、スレッド内を全文検索してから質問するよう心がけてください
>>105-107

387:nobodyさん
07/12/26 20:49:31
>>383-384さんへ
上手く行きました。助かりました。大変ありがとうございました。

388:nobodyさん
07/12/28 13:05:59 MBh5CIXS
パスワードで閲覧を制御しているディレクトリと
誰でも見られるディレクトリとあって、
その両方で MediaWiki を使いたいのですが、
このような使い方の場合は
MediaWiki をその数だけインストールしないといけないんでしょうか?


389:388
07/12/28 14:38:08 MBh5CIXS
>388 ですが
URLリンク(www.steverumberg.com)
ここにありました、すみません。


390:388
07/12/28 17:02:15 MBh5CIXS
何回もすみません。
>389のサイトですが、Debian/EtchについてくるMediaWiki1.7.1だと
うまくいかなかったです。
config/index.php内の/path/to/LocalSettings.phpの部分を
./LocalSettings.phpというふうに相対パスにする必要があります。


391:nobodyさん
07/12/28 17:20:42
>>389
できたら日本語で概要を簡単に説明してくれると助かる

392:388
07/12/28 17:38:30 MBh5CIXS
>391
元々インストールされているMediaWikiが
/home/yourdomain/www/wiki
にインストールされていて
/home/yourdomain/www/new/wiki
にもインストールしたい場合、
わざわざファイルまるごとインストールせずに、
シンボリックリンクを作って
データベース名を変えれば
LocalSettings.php
を作るだけでおkという話です。


393:nobodyさん
07/12/29 00:25:24 AJGv2kDc
質問です。
無事にMediaWikiを動作させることは出来たのですが、
カテゴリを編集しようとすると、
「セッションが切断されたため編集を保存できません。もう一度やりなおしてください。
それでも失敗する場合、ログアウトしてからログインし直してください。」
とメッセージが出てしまいます。

23氏のようにログインして他のページに行ってもログアウトされたりはしません。
また、メインページや普通の記事の編集ではこのメッセージは出ません。
問題なく編集できます。
今のところ、あくまでカテゴリを編集しようとしたときだけでます。
どなたかご教授をお願いします。

サーバー:さくら
MediaWiki:1.6.10
OS:FreeBSD 6.1-RELEASE-p10 i386
Apache:1.3.39
PHP:4.4.6
MySQL:4.0.27

あと、さくらでは.htaccessのRewriteEngineなどは使えないんですかね。
URLリンク(example.com)記事名
になるように.htaccessを編集したら500エラーがでます。

394:353
07/12/29 01:19:54
>379
亀レススマソです。
一応、紹介してもらったhelpの通り、三つのphpをうpして、
LocalSettingを書き換えたら
URLリンク(sakuratan.ddo.jp)
こんな感じになりました。
何が原因か自分では分からないのですが。
よろしくお願いします。

395:353
07/12/29 01:22:20
ちなみに左が僕の設置したwikiで右がwikipediaのテンプレです。
自分方の内容はwikipediaのものをそのままコピーしてみました。

396:nobodyさん
07/12/29 04:30:31
>>394-395 「Template:Tnavbar」テンプレートが不足しています。ページで使われている
テンプレートを調べるには編集画面の一番下の「このページで使われているテンプレート:」を見ます。

あと「Template:Infobox プログラミング言語/doc」テンプレート内の多言語間リンクを削除して記事をパージして下さい。
記事をパージするにはURLの一番の記事名の後ろに?action=purgeを追加してEnterキーを押します。

397:nobodyさん
07/12/29 11:43:39
質問です。
SecureHTMLで<html>タグ内にphpをajaxで呼び出すjavascriptを書いています。URLを
example.php?a=xxx&b=yyy
と記述すると、&が&に変換されてしまうようで、($_GET['a']は問題ないのですが)、$_GET['b']に値を送れません。

どなたか解決法をご存知の方はいますか?
(ver1.11)

398:397
07/12/29 11:45:04
>>397
あらら。
「&が&amp;に変換されてしまう」
です。

399:nobodyさん
07/12/29 17:29:33
>>397-398 JavaScriptの方はよくわかりませんが、htmlタグは$wgRawHtmlで設定するものなので
PHPコードは無効にされます。
wiki上でPHPコードを実行したいのであれば同じ作者のExtension:SecurePHP extensionがあります。

400:nobodyさん
07/12/29 18:04:06
>>393 記事をパージする、一時的ではない、どの記事でも、再インストール、
>>25 のsession save pathの設定をするといったことをやっても
セッション切断が再現されるのであれば、ご自分でPHP5をコンパイルして
最新のMediaWikiを導入することもお考え下さい。

さくらインターネットのスレによれば最新のサーバーではPHP5が投入されているそうなので
PHP5の利用を考える場合はPHPのバージョンの確認や公式マニュアルを参照して下さい。

mod_rewriteに関しては設定内容が書かれてないので何も申しようがありませんが、
「さくらインターネット mediawiki」で検索すればURLを短縮したwikiサイトが見つかるので
できるのかという質問に対する回答はできるでしょう。

401:nobodyさん
07/12/29 18:11:28
URLリンク(mediacloth.rubyforge.org)

Ruby製のmediaiwkiのパーサーを見つけました。

gem install mediacloth

でインストールして

require 'mediacloth'
puts MediaCloth::wiki_to_html(input)

でinputのwikitextがhtmlに変換されます。

402:393
07/12/30 03:08:56 JAqNZR9B
>>400
ありがとうございます。
ちょっと大変ですが、試してみます。

403:nobodyさん
07/12/30 15:55:26
アンケートを取れるようなエクステンションはありませんか。

404:nobodyさん
07/12/30 16:08:09
>>403
どういったアンケートを想定されているのか分かりませんが、こういうことですか?

BoardVote
URLリンク(www.mediawiki.org)

405:397
07/12/30 18:15:11
>>399
ちょっと違うんですよね。
phpコードを実行したいのではなくて、複数の引数が入ったURLを記述したいだけなんです。
で、URLの文字列のうち&が実態参照された文字列に変わってしまっているようで。。。

406:nobodyさん
07/12/31 10:50:50
>>404
ありがとうございます。
ページ毎の投票ではなくて、自由にアンケートの設問
(チェックボタン、ラジオボタン、テキストフィルド)
が作れてその結果を表示できるようなものですが、
wikiに求めるのは無理なような気もしていますので
やはりないでしょうね。


407:nobodyさん
07/12/31 14:12:59
phpスクリプトを実行させるということができるそうですが
URLリンク(opentechpress.jp)

うまくいきません。本当にできるのでしょうか。

408:nobodyさん
07/12/31 14:22:49
>>407
自己レスです。できましたすみません。

409:nobodyさん
07/12/31 15:04:13
>>406
MediaWiki が組み込まれた CMS を使えば可能だと思います

410:nobodyさん
07/12/31 15:51:08
>>409
xoops,joomla,nucleus,drupalなども当たってみましたが
残念ながらアンケートができるような機能はありません
でした。
具体的にどのようなCMSを使えば可能でしょうか。

411:nobodyさん
08/01/02 19:15:41
>>392
全部のシンボリックリンクを作るなら
丸ごとコピーでも良いのでは?
デスク容量は喰ってもそのほうが
分かりやすいと思う。

412:388
08/01/03 00:20:28 pOX3gvok
>411
そのへんは好みでよいかと。。
私は気分的にそこはシンボリックリンク、
そこはコピー、と使い分けます^^

413:nobodyさん
08/01/06 08:16:23
>>173
社内LANでの運用はXPを使わない方が良いとのことですがこれは
なぜでしょうか。

414:nobodyさん
08/01/06 08:18:40
編集で改行は<br>を使いますがなぜ自動改行される
仕様になっていないのでしょうか。一行おいての改行
はされるのに。<br>を使わないで済むエクステンション
はないでしょうか。

415:TPkEnflaVjdXidknilI
08/01/06 13:33:09
Very nice and cheap mp3 download

416:nobodyさん
08/01/07 01:02:48
>>414
MonoBook.phpの
<?php $this->html('bodytext') ?>

<?php echo nl2br($this->data['bodytext']) ?>

に置き換えてみるとわかりますが、リストやテーブル、preの部分を正規表現で回避する必要があるので
動作の確認に手間がかかるのとwikiを編集する時点で最小限のHTMLの知識が前提になるので、
改行コードだけを変換するエクステンションを公開する人は考えにくいです。

WYSIWYGが必要であるならFCKeditorなどのエクステンションの導入をお考え下さい。

417:nobodyさん
08/01/07 05:58:20
>>414
そもそも普通の文章を書いていると想定すると、
強制改行を使わなければならない場面なんて
まずあまり考え付かないのだが、どういうことを
意図しているの?

> 一行おいての改行はされるのに。
空行を入れると段落(HTMLの p 要素)が作られるが
これは別に改行を意味しないし、そういう意味では
ないとすると何をいいたいのかわからない。

418:nobodyさん
08/01/07 07:11:47
>>416さんへ
回答ありがとうございます。
skinの部分ではなく、417さんの言っているように
medeawikiの深層部分で段落(HTMLの p 要素)が作られる
のと同じように改行をHTMLの br 要素に置き換えてくれる
と便利なのになぜやってくれないでいるのかなと思いました。

特に、プログラムコードをwikiにメモる場合にはです。

仰るとおりエクステンションを考えてみたいと思います。

419:nobodyさん
08/01/07 10:25:28
>>418 ソースコードの掲載だけなら
preタグかSyntaxHighlightエクステンションで
恐らく間に合います。

実際にエクステンションを作るのであれば
>>207 のエクステンションを下敷きにすればいいでしょう。

420:nobodyさん
08/01/07 18:08:00
> 便利なのになぜやってくれないでいるのかなと
brは強制改行であって改行とはちがうぞ、と。

pre要素使えに一票。
それに、MediaWikiは行頭に半角空白があれば
勝手にpre要素を開始してくれる。
真面目に整形するならリストを使うべきかもね。

421:nobodyさん
08/01/07 22:16:52
すみません。
スレ違いかもしれませんが教えてください。


テーブルタグの背景に画像を埋め込むにはどうすれば良い
でしょうか。ダメもとでこんなふうに書いてみましたが
やっぱりダメでした。

<table>
<tr>
<td background= [[画像:barTop.gif]]>ABC</td>
</tr>
</table>

422:nobodyさん
08/01/08 13:16:56
>>421
URLリンク(www.tagindex.com)

MediaWiki:Common.cssもしくはmonobook/main.cssで
アップロードした画像が実際に存在するURLをbackground-imageプロパティで
指定して動作を確認しました。HTMLの属性ではできないようです。

423:nobodyさん
08/01/12 14:21:46 e0HSB2Xt
質問です。
さくらインターネットのサーバーを使ってるんですが
mysqlのバージョンが4.0です。

最新バージョンのMediaWikiのためにPHPバージョン5.0以降が要求されます
と書かれていますが、最新バージョンをいれることは無謀でしょうか?
動かしている人いたらレス下さい


424:nobodyさん
08/01/12 14:58:05 e0HSB2Xt
インストールしたら1.6系

URLリンク(www.e-manse.net)
これと同じようになったw

Warning: main(maintenance/updaters.inc) [function.main]: failed to open stream: No such file or directory

Fatal error: main() [function.require]: Failed opening required 'maintenance/updaters.inc'

挫折しそうですw

425:nobodyさん
08/01/12 14:58:52
>>423
PHPのバージョンがPHP4って事だよね? それなら無謀。
でもさくらなら順次PHP5に変わってるよ(6月までに全部入れ替わるはず)
鯖によっては既にPHP4とPHP5を選択できるようになってる

426:nobodyさん
08/01/12 15:02:49
>>423
MySQL のことではなく、PHP のバージョンのことでよろしいんですよね?

でしたら、さくらサーバは目下のところ順次 PHP5 へ Ver-up 進行中ですよ
URLリンク(faq.sakuratan.com)

新しく加入された方でしたら、さくらサーバのコントロールパネルから
PHP5 が選択できるようになっているようです
昔から使っているのでしたら、遅くとも 2008/春 以降には PHP5 が使える
ようになる予定らしいですので、それまで待ってみるのが吉だと思います

詳しい状況については上記の Wiki か下のスレをチェックしておけばOKかと

さくらインターネット 質問にマジレスするスレ Part14
スレリンク(hosting板)

427:nobodyさん
08/01/12 16:25:03
>>424 正常にファイルがアップロードされていないので
アップロードし直して下さい。

428:nobodyさん
08/01/13 14:32:45
俺もsakuraで、PHPを4⇒5にしました。
現在はこんな感じ

MediaWiki: 1.6.10
PHP: 5.2.5 (cgi)
MySQL: 4.0.27

WikiMediaのバージョンアップしようと思うんですけど、
いくつがお勧めですか?




429:nobodyさん
08/01/14 22:29:51
>>428
No Time でver1.11

430:nobodyさん
08/01/14 23:09:22
俺もverupしようかな・・・
でもスキーマとか変わってるよね?
その辺の移行ってどうなってるの?
どこかにverupのレポとかないかな?

431:nobodyさん
08/01/15 15:19:35
>>430
URLリンク(www.mediawiki.org)
ここ読めば大体分かるよ。(翻訳感謝)
スキーマは変わっているけど、update.phpで自動的に変換される

ver1.6からのverUPは経験ないけど。
(カスタマイズ具合によっては、データをXML化して、ver1.11インストール⇒importが良いかもね)

432:nobodyさん
08/01/17 00:06:20
さくらの方でPHP5の対応が発表されました。

「さくらのレンタルサーバ」スタンダード・プレミアム PHP5 の提供
URLリンク(www.sakura.ne.jp)

433:nobodyさん
08/01/18 02:38:41 0toCpXbz
data, data/a, data/b というページがあった場合に、
dataページ上で、配下の階層の a, b を一覧表示する方法はあるでしょうか?
pukiwikiのls.inc.phpのような使い方をしたいのですが。

434:nobodyさん
08/01/18 22:30:52
>>433
[[Special:Prefixindex/data/]]
階層と言うより、特定の文字列で始まるページ名の列挙だが。

435:434
08/01/18 22:31:44
あ、ページ上でか。ごめん、読み違えてた。

436:nobodyさん
08/01/19 04:07:42
>>433
SQLのパフォーマンスの観点からカテゴリを活用する戦略を
採用した方が良いと思います。指定したカテゴリの一覧を
ページに埋め込むextensionがあると思います。

それでも機能が必要で自分で作る場合、大まかな手順は
>>207のextensionのgetPages()関数のように
全ページ名を配列で取得し正規表現のふるいにかけます。

437:nobodyさん
08/01/19 11:22:40
>>436 訂正。>>381のようにexplode関数で記事名を分割すればいいので
正規表現は必ずしも必要ないかもです。

438:nobodyさん
08/01/19 17:22:24 1DuJsiWQ
AnyWikiDraw Extension
    URLリンク(www.mediawiki.org)
を導入している方、教えてください。

URLリンク(sourceforge.net)
に挙げられている質問と同じ症状なのですが、このextensionを使って画像を編集しようとすると、
    Couldn't load the drawing.
    java.io.ByteArrayInputStream@1a5f739
というエラーが出ます。どうやればエラー回避できますか?

439:433
08/01/19 17:44:47 KxCdtvlz
>434
全く知らなかったので、参考になりました。
>436
>SQLのパフォーマンスの観点からカテゴリを活用する戦略を
もう少しカテゴリの活用を考えてみます。

ところで、カテゴリのヘルプを調べてみると、
よく考えてカテゴリを決めろという感じで書かれているのですが、
張り捨てのタグみたいに使える機能はないでしょうか?
たとえば、 「日記/2007-01-01」という記事があった場合に、カテゴリ「日記」以外に、
「正月」「TV」「こたつ」「おみくじ」「神社」のようなタグを使いたいです。

>>207のextensionのgetPages()関数のように
調べてみます。ありがとうございます。

440:nobodyさん
08/01/19 19:15:24
>>439=433
張り捨てのタグというのがどんな機能か分かりませんが、
当方が使用している Wiki では、その都度その都度適当だと思うカテゴリを作って
「正月」「TV」だけだったのが、「こたつ」「おみくじ」と追加したりしています

ですので、情報が増える途中で1ページだけに存在する1カテゴリもありますし、
しばらく経って必要が無いと思えばカテゴリを削って運用しています

441:439
08/01/20 02:46:01 I+L3teqs
>440
>張り捨てのタグというのがどんな機能か分かりませんが、
ニコニコ動画のタグのように、いい加減に追加するタグを想定してました。
カテゴリを樹形図のような考え抜いた構成しないといけないと思いこんでました。

>ですので、情報が増える途中で1ページだけに存在する1カテゴリもありますし、
>しばらく経って必要が無いと思えばカテゴリを削って運用しています
運用、参考になりました。とりあえず、もうちょっと気軽に試してみます。

442:nobodyさん
08/01/20 13:31:41
>>441
Mediawikiのカテゴリは、いわゆるタギングに近いことができますよ。
Category:xxxのページが、タグがついている記事一覧という意味合いで利用できると思います。

ちなみに
URLリンク(www.mediawiki.org)
というのもあるみたいです。
これも要はカテゴリの機能をタグという名で提供するらしいです。よく読んでいませんが。
気軽にカテゴライズ(タギング)できるということでいえば、使えるかも。

443:nobodyさん
08/01/21 20:52:14
最近の書き込みを見ているとパフォーマンスの判断が
必要な局面が増えてきていると思うのですが、
データベースに接続するという行為自体が
サーバーにとってコストの高いものであるという認識は
プログラマでない方も持っておくとよいかもしれません。

これはPHPが必要なときに呼び出されるCGIとしてよりも
Apacheモジュールとして使われることが多いの
と同じようなものだと思います。

最近試したORM(オブジェクトリレーショナルマッパー)では
本当に必要になるまでデータベースに接続せず
エミュレーションですませる仕組みを持っていました。

444:nobodyさん
08/01/24 11:42:01
api.phpに関するセキュリティ修正版がリリースされました。

[MediaWiki-announce] MediaWiki 1.11.1, 1.10.3, 1.9.5 released
URLリンク(lists.wikimedia.org)

445:nobodyさん
08/01/26 14:35:54
Firefoxを新規インストールしたら、URLで日本語名が使えなったので
設定方法を書いておきます。URLバーにabout:configを入力し
フィルタツールバーにnetworkかutf8を入力すると
network.standard-url.encode-utf8が表示されるので
この値をtrueに切り替えます。

446:nobodyさん
08/01/29 02:49:59 ybdJW5wA
mediawikiのデータ(というかMySQL)をパソコン間でコピーペーストして、
サービスを立ち上げるために、ib_logfile0, ib_logfile1 あたりを消したら、
(あと、間違ってibdata1を消してしまったことも)
インデックスが壊れてしまったようなのですが、再構築する方法はありますか?
ページの一覧や、ページ表示は問題ないのですが、
mediewikiの検索ボックスから検索かけて、
全然関係ないのがひっかかったり、関係あるのがかからなかったりします。

447:446
08/01/29 16:55:48 6wkk685w
どうも勘違いしてたっぽいのですが、
OSXやMACなどでは検索がうまくいかず、
4文字以上だと検索かかります。
もしかして、そういう制約あります?


448:nobodyさん
08/01/29 17:06:56
>>446-447
447のことでしたら、日本語全文検索に対応していないからですね
>>234-235 に書いてあるような方法で対応する必要があります

449:nobodyさん
08/01/29 17:17:07
>>446-447
インデックスの再構築はmaintenace/rebuildtextindex.phpで行います。
3文字以下を検索できないのはMySQLのデフォルトの設定になっていることが
原因と思われます。変更方法はマニュアルに書かれています。
URLリンク(dev.mysql.com)


450:446
08/01/29 21:08:18 6wkk685w
>448-449
とても参考になります。
ありがとうございました。


451:nobodyさん
08/01/31 22:50:04
MySQL、新データベースエンジンMariaを投入- InnoDBの代わりとなるか - builder by ZDNet Japan
URLリンク(builder.japan.zdnet.com)
The Maria Storage Engine The Maria Storage Engine
URLリンク(forge.mysql.com)

MySQLのサイトでもMediaWikiが使われているのを見つけました。



452:nobodyさん
08/02/03 12:08:01 mJAYVh8L
WikiMediaを1.6→1.11.1にバージョンアップしたいんだけど、
LocalSettings.phpとかスキンとかは1.6のときのをそのまま上書きするだけじゃダメだよね?
差分をチマチマ反映するのでしょうか?

453:nobodyさん
08/02/03 21:40:25
>>452
URLリンク(www.mediawiki.org)
あとUPGRADEも見て下さい。

454:nobodyさん
08/02/03 22:43:46 wIfEub4G
つまり、LocalSettings.phpは自動的に移行してくれるけど、スキンは手作業でアップデートってことですね・・・


455:nobodyさん
08/02/04 13:29:24
そうなんだよねえ。
スキンいじってるとこういうときつらい。

456:nobodyさん
08/02/04 13:53:13
>>454 スキンをカスタマイズしているのであればスキンのディレクトリを変更すれば
影響を受けません。私の環境では次のように変数を設定しています。

$wgStylePath = "$wgScriptPath/myskins";
$wgStyleDirectory = "$IP/myskins";


457:455
08/02/05 00:07:04
>>456
そう。でもそうすると、スキンのアップデートが反映されない。
cssもそうだし、monobook.phpもbodyタグ等が一部変わっている。

cssのclassとかの情報がまとまってるとこ無いのかなあ

458:nobodyさん
08/02/05 01:42:00 nCaJqTyt
俺もsakuraのPHP5に伴って1.6→1.11にしようと思ってる組なんだけど、
スキンいじりまくってるから躊躇してる人間です。
特に不自由もないから、もう少し1.6で我慢しようかな・・・とも思い始めてます。
バージョンアップした方がいいと思わせるような劇的な違いって何があるんですかね?
逆にこれが不要ならいまのままでいいんじゃない?みたいな「これ」があったら教えてください。


459:nobodyさん
08/02/05 02:06:11
豊富なextensionsが使える
これだけでもバージョンアップする価値あると感じている側@さくらユーザー

460:nobodyさん
08/02/05 02:45:09
>>457 そのためには差分ツールを使います。
コマンドツールならdiffもしくは
diff3(MWでも履歴の差分表示に使用)、
WindowsならWinMergeなどがあります。

カスタマイズを続けるならSubvesionやMercurialなどの
バージョン管理ツールを使うことをお勧めします。

私の場合、MWではない別のサイトですが、
ローカルで変更した内容をsvn+ssh(TortoiseSVN+公開鍵認証)で
XREAに設置したリポジトリにコミットして、
一定の期間が経ったらSSH(Putty)で接続して
svn upで更新しています。

461:nobodyさん
08/02/05 10:13:04
>>458
>>459もいうように、基本的にはextensionがらみか新機能の場合が多いと思います。
それらがどれだけ必要かに応じてverUPするかどうか(=スキンを修正する手間をかけるか)が変わってくるだろうねえ。

うちの場合は、内輪で使ってるMWは、SyntaxHighlight使いたくてverUPしたし、外向けのMWは$wgNamespaceProtectionとか{{DEFAULTSORT}}とかsecurehtmlとか使いたくてverUPしたかな。
どれも好き好きだけど。


462:nobodyさん
08/02/05 14:04:05
性能大幅アップの「PostgreSQL 8.3」がリリース
URLリンク(journal.mycom.co.jp)

PostgreSQL 8.3では全文検索のtsearch2が標準装備になったそうです。

463:nobodyさん
08/02/05 14:14:19
ついでなのでWindowsのPostgreSQL8.2系で
MediaWikiを試したときにはまったことを書いておきます。

インストール時にロケールをCにしてPL/pgsqlとTsearch2も
チェックしておけばデータベースを作成すると同時に
pg_ts_cfg、pg_ts_cfgmap、pg_ts_dict、pg_ts_parser
というテーブルも自動的に生成されます。

ただし、それらのテーブルのオーナーがスーパーユーザーに
なっているのでオーナーをwiki用のアカウントに変更する必要が
あります。変更するには次のようなクエリーを実行します

ALTER TABLE pg_ts_cfg OWNER TO MW用のデータベースユーザー;

テーブルの一覧とオーナーを確認するには「\d」コマンドを実行します。

以上の設定をすれば後はMySQLと同様にインストールウィザードと
同じです。

464:nobodyさん
08/02/06 05:35:57
ページの左上隅のロゴの部分について。
デフォルトではトップページへのリンクになっていますが、
ロゴはそのままでリンクだけ無くすにはどうすればよいのでしょうか。
Monobook.phpでソースを見ると、AタグにCSSで指定されていたので、
今はその内のhrefの部分だけ削除している状態です。
AタグをDivタグに変えてみるなどしたのですが、これだとロゴ自体が表示されなくなります。
どんなタグで代替すればいいでしょうか。

465:nobodyさん
08/02/06 10:09:48
>>464
href="<?php echo htmlspecialchars($this->data['nav_urls']['mainpage']['href'])?>"
を削除します。action=purgeもお忘れ無く。

466:nobodyさん
08/02/06 10:25:31
>>465
ありがとうございます。
というか現在その状態なのです。
それだと、IEで表示してロゴ上をポイントするとクリックアイコン(指差しアイコン)になってしまう。
これが気持ち悪くて、464のような質問をさせて頂いた運びになります。

ところでaction=purgeというのは何なのでしょうか。
そんな文字列が見当たらないのです・・

467:nobodyさん
08/02/06 12:31:10
>>466
URLリンク(example.com)

468:nobodyさん
08/02/06 13:19:02
>>466
手元にカスタマイズしたmonobookしかないので詳細は違っているかもだけど。

monobook/main.css内の以下を修正する
#p-logo a,

#p-logo a:hover {

例)aタグをspan class=logologoに変えるとしたら、
#p-logo span.logologo {
とする

469:468
08/02/06 13:25:51
もし>>468がうまくいかずで、単にカーソルの形だけが気になるというのなら、
aタグのstyleにcursor:default;を追加でいけるはず

470:nobodyさん
08/02/07 00:30:16
>>466 MediaWikiは独自の記法で書かれたテキストを正規表現で
HTMLに置き換え(レンダー・描画)しており、
その置き換え作業の負荷を減らすために
一旦キャッシュとして保存してからサイトに表示しているので、
必ずしも変更した内容が即座に反映されません。

ですので最新の変更を表示するためには
>>467のようにPOSTメソッドによってキャッシュを破棄して
新しいテキストを取得するにようにMediaWikiに伝える必要があるわけです。

あともう一つ、ブラウザでも一旦見たページをキャッシュしているので
こちらのキャッシュもパージしないと最新の更新内容が表示されないことがあります。

471:nobodyさん
08/02/07 00:34:44
>>463 を書いた後にPostgres8.3をWindowsで試してみましたが、
tsearch2が本体に取り込まれた結果、データベースに
pg_ts_cfg、pg_ts_cfgmap、pg_ts_dict、pg_ts_parserが
生成されなくなりインストールできませんでした。

ざっと調べた範囲では解決策が見つからなかったので、
現時点では新規導入する場合は8.2.6を使った方が
よいと思います。

472:nobodyさん
08/02/07 03:50:44
Templateに投げたパラメータをTemplate先で
<pre>タグで囲ませるにはどうすればいいんでしょうか?
Template先で<pre>{{{1}}}</pre>とやると
当然ですがただ{{{1}}}と表示されてしまいます。
パラメータの中身をpreタグに囲ませた状態で表示したいのですが
方法はありますか?


473:nobodyさん
08/02/07 09:16:23
>>472
一番確実なのは、extenstion書く、かな。

474:nobodyさん
08/02/07 09:20:41
$wgExtensionFunctions[] = "wfMypreExtension";
function wfMypreExtension() {
global $wgParser;
$wgParser->setHook( "mypre", "renderMypre" );
}
function renderMypre( $input, $argv, &$parser ) {
$output = "<pre>$input</pre>";
return $output;
}


こんな感じかな?<mypre>なんたら</mypre>

475:nobodyさん
08/02/07 13:16:51
>>451 のMySQLに加えてPostgreSQLの開発者も
MediaWikiを利用していることが判明しました。

pgwiki
URLリンク(developer.postgresql.org)

476:472
08/02/07 14:26:04
>>474
そのコードを試したところTemplate内で<pre>タグするのと同じ結果でした。

どうしてそうなるのかまだ理解してないのですが
MediaWikiのManual:Parser_functions/jaのページの必要な部分だけを
書き換えたところパラメータが記事側に整形済テキストとして表示できました。

extensionをいじるのは初めてだったんですが
タグの簡単な拡張くらいならそんなに難しくないんですね。
ありがとうございました。


477:474
08/02/07 19:07:22
>>476
そうか。失礼した。
parser functions使えばよかったのね。

extentionはphpが使えるからホント便利。

478:nobodyさん
08/02/08 11:25:29 fA24gyPl
リンクに関して質問があるのですが、
--------------------------------
==特徴1==

===チェックポイント===

==特徴2==

===チェックポイント===
--------------------------------
みたいな記事があって、同一記事の文中で「特徴1」の「チェックポイント」見出しに内部リンクしたいときって
どうしたらいいんでしょう? 「特徴1」だったら[[#特徴1|特徴1]]でいいんですけど、同一名の見出しが
複数あるなかで特定の1つに飛ばす方法が分からないんです。 よろしくお願いします。


479:478
08/02/08 11:58:12 fA24gyPl
すみません、解決しました。

[[#チェックポイント|チェックポイント]]で良かったですね。

ちなみに、「特徴2」の「チェックポイント」へは

[[#チェックポイント_2|チェックポイント]] でした。


480:nobodyさん
08/02/11 12:39:51
記事名がURLの場合、例えば『xxx.com』という記事名の場合、
その記事のURLが ~/xxx.com となるのは当たり前ですが、
現設定がおかしいのだと思いますがこれそのものが.comドメインのURLだと判断されて、
404NotFoundになってしまいます。
Wikipediaでは問題なく表示されているのを見ました。どうすれば解決できるのでしょうか。

481:nobodyさん
08/02/11 16:56:54 WZdcK4tb
突然質問すいません
URLリンク(www.mediawiki.org) ってどうやって導入すればいいんですか?
Installation Instructionsは分かったんですけど、Contributingの方が良く分からなくて。
どなたか解説していただけませんか?

482:nobodyさん
08/02/12 10:42:05
>>480
>>3を参考に、サーバー環境を教えてください。
また、index.php?title=xxx.comでアクセスしたときはどうなりますか?
URL書き換えのルールはどうなっていますか?

483:nobodyさん
08/02/12 10:55:31
>>481
導入していないので参考にならないかも知れないが。

導入自体は、Installationだけでいけると思うのですが、これは済んでいるのかな?
それとも「Adding a new question type」の仕方を教えてと言っているの?

484:nobodyさん
08/02/12 11:34:48
>>482
御返信ありがとうございます。

まず、index.php?title=xxx.com で表示したところ、表示できてしまいました。
次に、「URL書き換えのルール」というのが、 URLリンク(www.mediawiki.org)
説明されているものを指すとすれば、自分の場合は ドメイン.jp/記事名 です。

MediaWiki のバージョン : mediawiki-1.11.0.tar.gz
MediaWiki をインストールした OS の種類とバージョン : Linux
ウェブサーバの種類とバージョン : Apache 2.0.52
データベースサーバの種類とバージョン : MySQL 4.0.26
PHP のバージョン : PHP4 4.3.9 PHP5 5.1.6

485:nobodyさん
08/02/12 11:55:20
>>484
Short_URLがくさいので、URLリンク(www.mediawiki.org) のどれを使ったかを教えてください。

486:nobodyさん
08/02/12 12:15:43
>>485
どれを参考にしたかが思い出せません。自分が参考にしたときのと構成が変わっているようです。
しかし、URL構成の設定にあたって手を加えたのは.htaccessだけだったと思うので、それ(現状)を以下に。

AddHandler x-httpd-php5 .php .phps

RewriteEngine On
RewriteRule ^[^:]*\. - [L]
RewriteRule ^[^:]*\/ - [L]
RewriteRule ^/*$ /index.php?title=Main_Page [L,QSA]
RewriteRule ^(.+)$ /index.php?title=$1 [L,QSA]

487:nobodyさん
08/02/12 13:59:25
>>486
RewriteRule ^[^:]*\. - [L]

が悪さをしているようですね。

あらかじめドメインが分かっているなら、
↑の前に
RewriteRule ^.+\com$ - [L]
かな?
詳しくないので、もっとエレガントな解決よろしく<他の人

根本的解決策は、多分 example.com/wiki/xxxx 形式のShort URLに変更することだと思う

488:487
08/02/12 14:00:17
.ドットが消えてた
RewriteRule ^.+\.com$ - [L]

489:487
08/02/12 14:46:02
URLリンク(www.mediawiki.org)
こっちのほうが参考になるかも。
(詳しく読んでませんが)

490:nobodyさん
08/02/12 21:34:20
>>488
ありがとうございます。
『↑の前に』とは、『RewriteRule ^[^:]*\. - [L] 』の一段上にそれを加えればよい、ということでしょうか。
だとすれば、それは xxx.com という記事を作る場合、ということでしょうか。
できれば.net/.org/.jp/... といったあらゆるドメインの記事が作れるようにしたいのです。
それが不可能なのであればせめて .com だけでも作れるようにしたいところです。

491:487
08/02/13 10:29:40
>>490
ごめんなさい。上記はうまくいかない気がしてきた。
>>489を参考にして。

■RewriteRule ^[^:]*\. - [L] の代わりに以下を記述。
RewriteRule ^[^:]*\.(php|src|jpg|jpeg|png|gif|bmp|css|js|inc|phtml|pl|ico|html|shtml)$ - [L,NC]
※upload可能なファイルを追加している場合は |pdf のように適宜追加

これで試してみてください。

492:487
08/02/13 10:33:38
追記。
おそらく、この場合、 example.com/index.html のようなページ(末尾が列挙した拡張子になっているタイトルの記事)は、作れないと思います。

493:nobodyさん
08/02/13 13:43:08
>>491
ありがとうございました。その通りの方法で解決することができました。
ただひとつ気になった点が、読み込みが微妙に遅くなったように感じられるところです。
この設定が影響して、ということはあり得るのでしょうか。
いずれにしても、ありがとうございました。

494:nobodyさん
08/02/13 14:45:30
補足です。
その読み込みの遅さというのは、ページの取得の遅さではなく、リンクをクリックした直後―つまり移動の際のそれです。
変更前のものに戻してみたところ、その「遅さ」はやはりなくなりました。
あくまで体感ですが、Encyclopediadramaticaのそれと酷似しています。
URLリンク(www.encyclopediadramatica.com)

495:487
08/02/13 14:54:27
>>493
解決できましたか、良かったです。
読み込みが遅くなる可能性が無いとは言えません。
MediaWikiは、内部で、たくさんのファイルを読み込んでいますが、その都度、上記のRewriteRuleで振り分けを行っていると考えられるからです。
解決策のひとつとして、htaccessではなく、httpd.confに書き直すという手もあります。(多少は改善すると思いますが、気休め程度の可能性もあります)

そのうえで、>>492であげたような問題や、sitemap.xmlを配置した場合など新たな拡張子の追加の可能性を考慮すると、やはり/wiki/xxxのようなURLによる運用がベターであるといえるでしょう。(>>293)

496:nobodyさん
08/02/14 08:29:46
>>495 MWの動作の必須条件にmod_rewriteはなかったので
クラスファイルの読み込みは__autoload関数を通して行われている
はずです。ざっと調べた範囲ではincludes/AutoLoader.phpが
該当するようです。


497:nobodyさん
08/02/14 13:10:25
RentalWikiの作者は広告表示なしで一体どうやって収入を得ているのだろう?
2chねらーで高校生らしいが・・・

498:nobodyさん
08/02/14 15:30:00
>>497
ただの自己満足でしょ

499:nobodyさん
08/02/14 16:47:01
アクセスログを代表として投稿される情報など、
あそこの管理者はそういった情報は販売していないのかもしれませんが、
収集できる情報自体に価値があるということには気がつかないものなのですね

500:nobodyさん
08/02/15 19:32:12
生のHTMLを書きたかったのでエクステンションを書いたんですけど、
そのエクステンションでマジックワードが展開されません。

<ext>{{LOCALDAY}}</ext>

とか。どうすればいいのでしょうか

501:nobodyさん
08/02/16 01:11:28
>>500 $wgRawHtmlでは要件を解決できないということでしょうか?
wikiパーサの処理はフック(Manual:Hooks)を通して制御できますが、
申し訳ないですが今すぐにコードサンプルを挙げられないです。

502:500
08/02/16 01:46:57
>>501
他の人も投稿するので$wgRawHtmlは使いたくなかったんです。

具体的には、pagetitleをキーワードにアフィリエイトの商品ページを表示したかったのですが、
どうにもできなかったので、結局エクステンションの中で $_GET['title'] でひっぱてしまいました。。。。

503:nobodyさん
08/02/18 14:02:56
>>502
global $title;
でいけると思う。

504:500
08/02/18 16:08:37
>>503 でもいけました。

映画に関するWikiで、ページタイトルに映画タイトルが入り、
その映画タイトルでAmazonのアフィリエイトをインラインフレームで表示させてます。

505:nobodyさん
08/02/26 03:34:28
TritonnでSennaを入れましたが、MediaWikiの検索窓をSennaを利用した検索結果がだせるようにするにはどうすればよいのでしょうか。

Sphinxもトライしましたがうまくコンパイルできず、せっかく導入できたSennaでなんとか検索機能を改善したいのですが・・

506:nobodyさん
08/02/26 06:29:57
PHPがCGIでなければ利用できない鯖にこれ設置しようとしてるんだけどやめた方がいい?

507:nobodyさん
08/02/26 15:54:45
>>505 データベース板かSennaの開発者に改めて問い合わせた方が
いいと思います。自分でMediaWikiの拡張機能を書かなければならない
場合、Lucene extensionが参考になると思います。

>>506 業者とサイトの規模次第です。無料鯖は避けた方がいいでしょう。
CGIモードの場合diff3やImageMagickといったコマンドツールが使える鯖が
あるので、用途によっては積極的に選ぶ人もいると思います。

私の場合XREAのセーフモードで一日のリクエスト数が1万数千件ありますが、
アクセスが集中する昼間に編集をするとエラーになることが多いので、
記事の更新作業は夕方以降にしています。

508:nobodyさん
08/02/26 16:01:43
>>507 ありがとうございます。自力でMediaWikiのextensionを書くのは無理っぽいです。トライできる力量があれば是非とは思いますが。

509:nobodyさん
08/02/26 18:58:37
MediaWiki のバージョン : v1.11.1

検索エンジンで調べた際の検索キーワード
「MediaWiki」 「ファイルタイプ」 「ファイル形式」

画像形式以外のファイルをアップロードしても
MediaWiki で「画像」と認識されてしまうことを変更するにはどうすればいいのでしょうか?

例えば、ZIP形式のファイルをアップロードしても「画像」扱いになってしまい、
Wikiの画像一覧などのくくりに属してしまいます
これを画像以外の、たとえば単なる「ファイル」などのようなくくりでまとめたいと思っています

ご存知の方がいらっしゃいましたら教えていただきたく、
よろしくお願いいたします

510:nobodyさん
08/02/27 18:17:14
>>509 Special:ImagelistやSpecial:Log/uploadとは異なる方法で
画像の一覧を表示したいのであれば
それぞれincludes/SpecialImagelist.php、SpecialLog.phpを改造するか、
新たなSpecialページを作ることになります。

Specialページの作り方のチュートリアルは
公式サイトのマニュアルにあります。
URLリンク(www.mediawiki.org)

511:nobodyさん
08/02/27 18:20:32
URLリンク(people.planetpostgresql.org)

開発者によるとrevision 31083からPostgreSQL8.3に対応したとのことです。
試したい人はSVN版を入手して下さい。

512:509
08/02/27 18:38:44
>>510
URLの "p"ages は Capital じゃなかったみたいですね^^;
URLリンク(www.mediawiki.org)

Special:Imagelist のように、
Special:Files といった分類を作ってその中に画像形式以外の、
例えばZIP形式のファイル一覧を作りたいことが目的でしたので、
教えていただきました情報で解決できそうです

早速読みこんでみようと思います
お忙しいところレスしていただきましてありがとうございました

513:nobodyさん
08/03/03 02:05:11
>>510 ども。
>>511 追記です。Windows XP、Pg8.3、MW1.13αで動作を確認しました。

514:nobodyさん
08/03/03 17:55:05
1.11.2、1.10.4、1.9.6がリリースされました。

[Mediawiki-l] MediaWiki 1.11.2 released (security)
URLリンク(lists.wikimedia.org)
[Mediawiki-l] MediaWiki 1.10.4, 1.9.6 released (bug fix)
URLリンク(lists.wikimedia.org)

515:nobodyさん
08/03/05 00:09:14
スキンと本体の分離がもうちょっと進んでくれたらバージョンアップのハードルが下がるんだけどなあ

516:nobodyさん
08/03/06 14:22:22
はじめまして。このスレの情報にはグーグルで経由で何度かお世話になりました。
どうしても行き詰ってしまったので、一つ質問させてください。

■MediaWiki、サーバ関連情報 : (コロンから右に書いた情報はたとえばの情報)
MediaWiki : ver1.11.1
サーバー : Xrea s330
Apache : 1.3.37
PHP : 5.2.5 (セーフモード)
MySQL : 5.1.22-rc

■検索エンジンで調べた際の検索キーワード
「MediaWiki」 「Unable to run external programs in safe mode.」 等々

■分からないこと、発生している問題、やりたいこと、など
SVGファイルが表示されずにエラーが出る。他の形式は今のところ正常に表示されている。
「サムネイルの作成中にエラーが発生しました: Unable to run external programs in safe mode.」

■その他
この記事がそのものずばり・・・なんですが同じようにやってもエラーが出続けています。
URLリンク(blog.cellfan.info)

= includeフォルダ内修正済み関連ファイル =
URLリンク(www-2ch.net:8080)

= local.php =
$wgEnableUploads = true;
$wgUseImageMagick = true;
$wgUseImageResize = true;
$wgImageMagickConvertCommand = "/usr/local/php/bin/convert";
$wgFileExtensions = array('png', 'gif', 'jpg', 'jpeg' ,'svg');

以上です。よろしくお願いします。

517:516
08/03/06 14:24:39
local.phpではなくLocalSettings.phpでした。

518:516
08/03/06 15:34:53
自己解決
LocalSettings.phpに以下の一文追加でいけました

$wgSVGConverterPath = "/usr/local/php/bin/convert";

519:nobodyさん
08/03/07 00:59:57
「この項目をパトロール済みにする」を一発で全部消すSQLってありますか?

一応、verは1.11.1です。

520:nobodyさん
08/03/07 06:25:59
>>519
>>157で紹介されているDBのレイアウトを見てみれば出来るかどうか分かると思うよ
公開ページにある関連リンクも要チェックということで

521:nobodyさん
08/03/08 07:15:03
>>519
あまりいいやり方ではないのかもしれませんが、
限られた利用者しかいないのであれば
自分(管理者)で自分のパトロール権限を無効にしてしまう方法があります。

Help:新規ページのパトロール
URLリンク(ja.wikipedia.org)
URLリンク(www.mediawiki.org)

522:nobodyさん
08/03/09 00:44:04 wLazwpKh
基本的なことかもしれないけど、質問します。
mediawikiにフォームを設置するほうほうってないんでしょうか?
具体的にいうと、すでにあるテンプレートに任意の値を入力させて新しいページを作る、という機能を実現したいのですが
まずフォームの作り方がわからず困惑しています。なんか方法はないんですかねー。

523:nobodyさん
08/03/09 02:23:39
>>522
調べ足りない、検索し足りないとしか言いようがない

ExtensionsのForm検索結果
URLリンク(www.mediawiki.org)

524:nobodyさん
08/03/12 15:52:17
Mediawikiの携帯電話対応ってどうしてますか?
いまはGoogle Wireless Transcoderに頼ってるのですが、
他の人はどうしてるのかと思いまして。

525:nobodyさん
08/03/12 16:26:05
>>522
pukiwikiのようなシステムを考えているのなら次のページが参考になるかもしれません。
URLリンク(www.mediawiki.org)

>>524 IPアドレスやブラウザーのユーザーエージェントなどで
スキンを切り替えすれば対応できます。
参考 >>347,352

526:nobodyさん
08/03/12 16:27:23
バージョン1.12.0rc1がリリースされました。

[MediaWiki-announce] MediaWiki 1.12.0rc1 released
URLリンク(lists.wikimedia.org)

527:nobodyさん
08/03/15 17:55:09
MonoBookの本文のフォントが小さいのですが、本文フォントのみを大きくするには
(wikipediaと同じくらい)、cssのどの部分をいじれば良いのでしょうか。

528:nobodyさん
08/03/15 18:47:31
>>527
バージョンがかかれていないので v1.11.2 の場合で

MediaWiki/skins/monobook/main.css

/* general styles */

table {
font-size: 50%; <-- ここです
color: black;
/* we don't want the bottom borders of <h2>s to be visible through
floated tables */
background-color: white;
}

詳しいことはこのスレの>>37-から追いかければ分かると思います

529:nobodyさん
08/03/15 20:14:35
>>528
ver1.12.0rc1でしたすみません。同じ箇所がありましたので直せました。
ご丁寧にありがとうございます。

530:529
08/03/15 20:28:01
249行目
#bodyContent h1, #bodyContent h2 {

の上に
#bodyContent{ font-size:118%; }
を一行加えた方が、テーブル以外の要素も全体的に大きくなっていいですね。
参考までに書いておきます。

531:528
08/03/15 20:53:23
>>529
それは何よりでした

テンプレ>>3の中の回答や調査に必要そうな情報を書いておくと
回答する人もしやすいと思いますので、今後のご参考までに

532:nobodyさん
08/03/16 11:27:36
記事の内容をと名前空間についてアドバイスを頂ければと思い投稿させていただきます。
MediaWiki のバージョン:v1.12 を導入予定
検索したこと:名前空間で取り扱う情報を分けていそうなWikiをいくつか

例えで話させていただきますが、料理のレシピという大枠があり、
その大枠の中で和食と中華のレシピについて掘り下げたWikiを作りたいと思っています。
Wikiを編集する人間は和食と中華それぞれにこだわり過ぎてお互いを認めない風潮があり、
これら2つの内容を同じWikiで運用すると人間的なぶつかりがあることを懸念しています。
そこで、名前空間を利用して和食と中華を独立させれば、実際には1つのWikiでも
お互いの存在にほぼ触れることなく運用できるかと思ったのですが、どうなのでしょうか。
それとも、名前空間で分けるのではなく、Wiki自体を2つに分けて運用した方が良さそうでしょうか。

管理側の怠慢や願望だけかもしれませんが、わたし個人的にはどちらのレシピも貴重な情報で、
まとめて管理しつつ、和食と中華の情報にまたがるカテゴリ等を料理レシピ全体のカテゴリで
まとめられたら便利だと考えて、名前空間で分ける方法に辿り着きました。
具体的に参考になりそうなWikiがありましたら助かります。アドバイスよろしくお願いいたします。

533:nobodyさん
08/03/16 23:52:32
レンタルサーバ Coreserver
■MediaWiki、サーバ関連情報 : (コロンから右に書いた情報はたとえばの情報)
MediaWiki ver.: v1.11.0
サーバ: s35.coreserver.jp
ウェブサーバ:Apache v1.3.37
データベースサーバ:MySQL v5.1.22-rc
PHP のバージョン : v5.2.5

■調べたこと
URLリンク(www.mediawiki.org)」のチェック

■やりたいこと
一つのページの中で、ある特定の部分(何らかの目印を付けます)を
管理者のみが閲覧できるようにする。

■試みたこと
・addHTMLの利用→うまく動作せず
・AuthorRestrictionの利用→レイアウトが崩れ、表示までの時間がかかるようになったため、検証せず

■その他のアイデア(ただし技術がないので自分は実現できません)
・Extension:SecurePHPを使う
・Magic Wordを自作
・Media Wikiの書式を改変

技術的にハードルの低い方法をご存じであれば、ご教示下さい。

534:533
08/03/17 03:00:40
自己解決しました。
やっぱソース読まないと新しいことは分からないっすね
稚拙ですがextension書いてみました。
<restrictadmin>・・・</restrictadmin>
-------------------------------------------
<?php
$wgExtensionFunctions[] = 'restrictAdmin';
$wgHooks['ParserAfterStrip'][] = 'restrictAdmin';
function restrictAdmin() {
// Declaring the global parser..
global $wgParser;
// Setting the hook to parse <restrictadmin></restrictadmin> tags from the parser output..
$wgParser->setHook( 'restrictadmin', 'startRestrictadmin' );
return TRUE;
}
function startRestrictadmin( $input, $argv ) {
global $wgUser;
#$input = implode(' ', $wgUser->getGroups()); #テスト
if ( in_array('sysop', $wgUser->getGroups()) ) {
//show
} else {
$input='';
//hide
}
return $input;
}
?>


535:nobodyさん
08/03/18 02:28:50
>>532
名前空間ごとに編集権限を割り当てるには >>383 >>384 が参考になると思います。


536:nobodyさん
08/03/21 05:36:16
>>176 >>178で日本語検索のことが触れられていますが、その後はどうなりましたか?
1万語規模の用語辞典を作成しているのですが、データをインポートして初めて、
デフォルトでは日本語の全文検索ができないことに気づいて狼狽しています。

537:nobodyさん
08/03/21 20:28:14
1.12.0がリリースされました

[MediaWiki-announce] MediaWiki 1.12.0 released
URLリンク(lists.wikimedia.org)

538:nobodyさん
08/03/22 00:11:56
おいおい!1.11をやっとカスタマイズできたところなのに、そりゃねーよ!

539:nobodyさん
08/03/22 01:27:15
>>505
MediaWikiでSennaを検索に使うためには、

MySQLでデータベースを使うときに
CREATE DATABASE `wikidb`;
ALTER DATABASE `wikidb` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
grant create,select,insert,update,delete,lock tables on wikidb.* to wikiuser@localhost identified by 'wikiuser';
grant all on wikidb.* to admin@localhost identified by 'admin';
flush privileges;
と文字コードを指定してあげるだけでよいはずです。
ほら、簡単でしょう?(by ボブ

540:nobodyさん
08/03/22 09:25:01
>>538 MWは三ヶ月ごとに定期リリースする開発モデルを採用しているので、
差分エディタで変更を確認しながら移植できるようにしておくとよいかもしれません。

私の場合はWinMerge日本語版とエクスプローラ上から差分ツールを呼び出せるdiff-extを
組み合わせて使っています。diff-extはDebian/Ubuntu 8.04にパッケージとして採用されています。
URLリンク(diff-ext.sourceforge.net)

Webインターフェイスを比較対象するためにFirefoxのアドオンである分割ブラウザを使っています。
これによってブラウザ上で左右にウィンドウを並べて同期スクロールできます。
URLリンク(addons.mozilla.org)

541:nobodyさん
08/03/22 09:44:46
>>536 >>539さんは>>536さんへの回答だと思いますが、
インストール作業時にデータベースのエンコーディングをUTF-8に指定しなかった場合
ISO 8859-1 (Latin-1)になり日本語が数値文字参照で保存されるのが原因でしょうかね?

別のUTF-8なwikiを用意してmaitenanceディレクトリの
dumpBackup.php/importDump.phpでXMLファイルを出し入れすれば
数値文字参照にならずに済むかな?

データベースのコマンド/組み込み関数でデータベース/文字データのエンコーディングを
変換する方法は私は知らないのでそちらの方法を採用するのであれば
データベース板で聞いた方が速いでしょう。

542:532
08/03/22 10:35:50
>>535
お答えいただきましてありがとうございました。
参考にさせていただきたいと思います。


(1)運用事例はあるか
(2)運用して問題がなさそうか
について情報がございましたらお教えくださりましたら助かります。
運用的な問題がないか知りたい次第です。よろしくお願いいたします。

そういった運用的な質問はスレ違いだということでしたらすみません。
該当しそうなスレをご存知でしたら誘導していただけましたら幸いです。

543:533=536
08/03/22 13:28:37
レンタルサーバ「coreserver」を使っているのですが、
sennaのインストールはMySQLのリビルドも伴うのですね。
レンサバじゃ日本語全文検索を実現するのは無理っぽ。
しばらくこの案件は寝かせます。

>>539 >>541
密かに参考になりました。

544:533=536=543
08/03/22 13:51:32
>>505 >>543
実際にsennaが稼働しているMediaWikiで検索してみたいので、もしよければURLを教えてください。
ちなみに、自分のところはここ(URLリンク(mednt.jp))です(閲覧only)。


545:505
08/03/22 23:27:11
>>539

ありがとうございます。
すでに稼働中のMWに対して、Senna(Tritonn)を導入後、検索窓においてSenna利用の結果を得るには私には簡単ではないようです。

546:nobodyさん
08/03/22 23:53:10
>>545
全文検索はgoogleにcrawlしてもらえばよいかと

547:505
08/03/22 23:59:55
>>546
確かにそれはひとつのideaですが、Googleでは使い物にならないのです。

548:nobodyさん
08/03/25 14:22:20 NZBq0bV8
== 質問するときに書いてね ==
■MediaWiki、サーバ関連情報 : (コロンから右に書いた情報はたとえばの情報)
MediaWiki のバージョン : v1.12
Xreaのs322鯖です

■検索エンジンで調べた際の検索キーワード
「MediaWiki」 「AddHandler application/x-httpd-phpcgi .php」

■分からないこと、発生している問題、やりたいこと、など
Xreaで数式やサルネイムとかやりたいので
URLリンク(sb.xrea.com)
を導入したところ
No input file specified.
とでてしまう
■その他、質問に関係するカスタマイズについて(skinやextention等)
1.12は<inputbox>が使えないのでしょうか?


549:nobodyさん
08/03/25 14:23:44 NZBq0bV8
セフモド解除したいから
URLリンク(sb.xrea.com)
をやったらNo input file specified. となった
助けてください

550:nobodyさん
08/03/25 19:10:25
>>549 inputの機能は拡張機能(URLリンク(www.mediawiki.org) )を
インストールします。
セーフモード解除に関しては.htaccessの具体的な設定内容が
書かれていないのでアドバイスしようがありません。

あとXREAの制限事項はApacheがsuEXECなのでファイルをアップロードすると
ファイルの所有者がapacheになるのでスクリプトから削除できるようにするには
管理画面のツールからファイルの所有者を変更します。
伝え話によればcronジョブで定期的に所有者を変更してくれるらしいですが
確認はしていません。

551:550
08/03/25 19:29:44
追記。公式サイトで使われている拡張機能
(URLリンク(www.mediawiki.org) )
はすべて最新のバージョンで動作します。

552:nobodyさん
08/03/26 17:15:55 NlUH9Eo0
ありがとうございます

553:nobodyさん
08/03/26 19:28:33 NlUH9Eo0
あのもう一つ質問していいですか

目次を非表示にする方法教えてください

554:nobodyさん
08/03/26 19:37:21 NlUH9Eo0
すいません既出でした

555:nobodyさん
08/03/27 13:56:10
こんにちわ、
現在pukiwikiを使っているのですがMediaWikiに移行したいと考えてます。
wikiの移行方法なんですが、
内容は1つ1つ新しい方へ新規編集していくしかないですよね?
コンバートツールのようなものを使って1発移行なんか出来ないですよね…?
何か知っている方が居ましたらお願いします。

556:555
08/03/27 14:09:58
そもそも全然違う系統のwikiなんでムリですよね…
自己解決です、すいません

557:nobodyさん
08/03/27 14:36:56
>>555 
見出しとかリストなどの単純な記法の部分は正規表現で置き換えて、
テーブルなど複雑な記法の部分は手作業で行うということは
できると思います。

558:nobodyさん
08/03/28 09:59:52
>>557さん
ありがとうございます。
置換試してみます。
wiki文法も違うので結構大変ですね…

559:nobodyさん
08/03/28 14:32:07
>>558
検索すると同じような悩みに引っかかって
pukiwiki に投稿した文書を MediaWiki 形式へコンバートするツールを作ろうとした(作った?)
人がいたから、そういうところで聞いてみたりツールを提供してもらうのも手かもね

560:nobodyさん
08/03/28 17:25:22
>>555
OpenOffice Writerの2.3以降を使って、
まずWebの内容をコピペでWriter上に表示、
エクスポート機能でMediaWiki形式に


561:nobodyさん
08/03/29 16:53:21
>>558
自分はPukiwikiからMediawikiに9000ページ写しましたが、
vbaとか駆使して半自動の変換ツールを作りましたよ
しかし、あまりにも自分の環境に依存したツールなので、汎用性がありません

ページが少なければ>>560氏の通りにやるか、
正規表現が使えるテキストエディタorスクリプトで文字の置換をした方がよいでしょう

562:nobodyさん
08/03/29 22:30:12
API周りが一通り整備されたと思うのですが、翻訳をお願いできないでしょうか?

563:nobodyさん
08/03/30 00:50:22
てか、ファイルをアップロードするためのAPIに関する情報が記載されていた記事が
mediawiki.orgから削除されてる... 実装される見込みあんのかな。
大量の画像を投稿できるようにアップローダ作ろうと思ってたのに。

deleted "API:Edit - Uploading files" ? (Action hasn't been implemented yet; it'll take some time before it will be)




564:nobodyさん
08/03/30 14:04:49
>>562 現在進行形で翻訳しています。優先順位の高いものがありましたら教えて下さい。

565:nobodyさん
08/03/30 20:18:26
>>564
さっそく着手して頂きありがとうございます。
まず、記事を編集するAPIを頼みたいです。
URLリンク(www.mediawiki.org)

1.12のAPI拡充でMediaWiki専用ブラウザが雨後のタケノコのように出てくるのかな??



566:nobodyさん
08/03/31 17:10:17
mediawiki 1.12で閲覧にパスワード制限を加えることって
拡張機能でできますか?
1.11用の
URLリンク(www.mediawiki.org)
これだと、<password></password>って書き込んだらバグってしまうなど
ちょっと使っただけでいろいろダメな感じだったので。。

apache ssl + authで最悪なんとかできますが、
それだとサイト証明書とかオレオレになるので、
できればmediawikiのほうでなんとかできればなあと、、

やっぱそうなると上記のエクステンションを
自分でデバッグしないとダメですかね。。


567:nobodyさん
08/03/31 19:00:01
>>565 とりあえずご依頼の記事は翻訳しておきました。
他の方も翻訳して欲しい記事がありましたら記事名を教えて下さい。
時間が空いている時に優先して翻訳します。

あとはextensionの訳語が「エクステンション」から「拡張機能」に変更されました。
今後検索で調べる際に留意しておいた方がいいでしょう。

それとSpecial:Versionがローカライズされ公式サイトで採用されている
拡張機能の説明は日本語で表示されるようになっています。

568:nobodyさん
08/03/31 21:17:15
MediaWiki 1.12で、項目の閲覧に
パスワード制限を加えることって
なんらかの拡張機能でできますか?

MediaWiki 1.11 用には
URLリンク(www.mediawiki.org)
という拡張機能があります。
ただ、これだと、<password></password>って書き込んだら
以後その項目が読めなくなるなどのバグがあり
ちょっと使っただけでいろいろダメな感じだったので。。

Apache mod_ssl + 認証で最悪なんとかできますが、
それだとサイト証明書がオレオレ証明書になるので、
できれば MediaWiki のほうでなんとかできればなあと、、

やっぱそうなると上記の拡張機能を
自分でデバッグして修正しないとダメですかね。。


569:nobodyさん
08/04/01 00:27:43
>>567
翻訳おつかれさまです。
おかげでソフト開発もはかどります。
>>156 で9月に開始して半年経つのか...


570:nobodyさん
08/04/01 23:17:29
>>566 名前空間・ページごとにユーザグループの設定をするだけ間に合いませんか?

571:nobodyさん
08/04/04 19:54:53
Wikipedia: The Missing Manual
URLリンク(www.oreilly.com)
一覧
URLリンク(www.oreilly.com)


オライリーからWikipediaの編集方法のガイドブックが出版されています。
見出しをざっと見ると11章の「無礼な態度と個人攻撃に対処する」など
のようにコミュニティとの接し方まで書かれています。

既に使っている人にとっては目新しいことはないと思いますが、
まだ使ったことがない人のためのチュートリアルや
Wikipediaのコミュニティ研究のための資料になるかもしれません。

572:nobodyさん
08/04/04 20:13:17
1.12からiPhone/iPod Touchのwebclip iconの設定変数が追加されていました。
URLリンク(www.mediawiki.org)

WikipediaでもHTMLのヘッダ部分に次のコードが追加されています。
<link rel="apple-touch-icon" href="URLリンク(ja.wikipedia.org)" />


573:nobodyさん
08/04/05 02:22:24
<a href="javascript: hide();">[隠す]</a>

みたいなスクリプトのトリガーを本文に書きたいんですけど、どうやったらいいんでしょう?

574:nobodyさん
08/04/05 10:57:47
>>573
<nowiki></nowiki>って役に立つかな。やったこと無いけど

575:nobodyさん
08/04/05 14:24:44
>>573
ネタばれテンプレートのようなテンプレートを作りたいのですか?
URLリンク(ja.wikipedia.org)

576:nobodyさん
08/04/05 17:43:43
>>571
スレ違い

577:573
08/04/05 20:22:42
>>575
そうです。そんな感じです。
もうちょっと具体的に言うと、↓みたいな表(TABLE)があって、

---------------------
|  名前  |  住所   |
---------------------
|       |        |
---------------------
|       |        |
---------------------
|       |        |
---------------------
|       |        |
---------------------
|      [隠す]      |
---------------------

初期状態は表示されてて、[隠す]をクリックすると最下行だけ残して display:none;
表記も [表示] になるって感じで。

スクリプトは自分で用意するんだと思うのですが、トリガーの仕掛け方が分からないんです。
そのものスバリとかどこかにないですかね?


578:573
08/04/05 20:23:23
追記
もちろんテンプレートで使います。

579:nobodyさん
08/04/05 22:42:01
>>578
URLリンク(ja.wikipedia.org)
Dynamic Navigation Barsのところにある、
toggleNavigationBar() と createNavigationBarToggleButton()
あたりかな。

仕組みとしては、テーブルにclassを指定しておいて、
ページロード時に呼び出される createNavigationBarToggleButton() が
そのclassを持つ要素を探して、toggleNavigationBar() を呼び出す
[隠す]リンクをそこに挿入する。
なお、addOnloadHook(func) でページロード時に関数func()が実行される。

580:573
08/04/06 01:28:42
↑をヒントにphp改造しまくってやっとできました。
ありがとうございました。


581:nobodyさん
08/04/06 05:10:54
ParserFunctions ってMediaWiki 1.11.x じゃ使えないの?

#if がどうしてもうまくいかないよ・・・(;;


582:nobodyさん
08/04/06 08:20:37
>>580
具体的にどうやったかをフィードバックしてもらえるとスレのためになるんだが。


583:578
08/04/06 10:27:56
これは失礼。

とにかく <body onlod="initialSetup();"> を出力させるのに手間取りました。

Skin.php の getBodyOptions の getBodyOptions() に以下を追加

if( $a['onload'] != '' ) {
$a['onload'] .= ';';
}
$a['onload'] .= 'initialSetup();';

これで常時すべてのページの<body>にonlodトリガが仕込まれるようになりました。



584:578
08/04/06 10:28:45
次に wikibits.js にスクリプトを仕込みます。俺が書いたのは↓の通り

var hidemode = 0;
function initialSetup()
{
if (!document.all.ToggleSwitch) {
return;
}
document.all.ToggleSwitch.innerHTML = '<a href="javascript:hide();" id="ToggleSwitchLink">[非表示]</a>';
}
function hide()
{
if (hidemode == 0) {
document.all.infobox.style.display = "none";
document.all.ToggleSwitchLink.innerText = "[表示]";
hidemode = 1;
} else {
document.all.infobox.style.display = "block";
document.all.ToggleSwitchLink.innerText = "[非表示]";
hidemode = 0;
}
}

あとはテンプレートで、表を上下に2つ並べて、上の表には table要素にid="infobox"
下の表には th要素に id="ToggleSwitch" を振っておけばよし。



次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch