=== MediaWiki 管理者 ..
[2ch|▼Menu]
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拡張機能がインストールされていることが前提条件です。
Wikipedia項目リンク条件文

ソースコードのハイライトに関しては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で更新しています。


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

3986日前に更新/385 KB
担当:undef