1 名前:nobodyさん [2007/07/04(水) 07:24:10 ID:77E6ADvG] MediaWiki について情報交換するスレです == 公式サイト等 == [www.mediawiki.org/wiki/MediaWiki/ja MediaWiki.org] [www.mwusers.com/ MediaWiki Forums] [www.amazon.co.jp/dp/1904811590/ Mediawiki Administrators' Tutorial Guide] 日本語翻訳中(らしい)
301 名前:299 mailto:sage [2007/11/29(木) 15:22:14 ID:???] >>299-300 ■httpd.confのShortURLを変更 RewriteEngin On RewriteRule ^/wiki/メインページ$ / [R=301] RewriteRule ^/$ /w/index.php?title=メインページ [L] RewriteRule ^/wiki(.*)$ /w/index.php?title=$1 [PT,L,QSA] ■monobook.phpの</body>の直前に追加(外部リンクの別窓化のJSを使いました) <!-- External Links in a new Window and Change Main Page URL --> <script type="text/javascript"> var sMain = encodeURI("メインページ"); var Xterlinks = document.getElementsByTagName('A'); for (var i=0;i<Xterlinks.length;i++) { var eachLink = Xterlinks[i]; var regexp_isYourdomain="<?php echo $_SERVER["SERVER_NAME"] ?>"; //for example "meta.wikimedia" var regexp_ishttp=/(http(.)*:\/\/)/; var sHref = eachLink.href.slice(eachLink.href.lastIndexOf("/",eachLink.href.length)+1); var eHref = escape(sHref); //Check if the link is valid and is external link if( (eachLink.href != null) && (eachLink.href.match(regexp_isYourdomain) == null) && eachLink.href.match(regexp_ishttp)!=null ) { eachLink.target ="_blank";//make the target for this external link }else if((sHref == sMain) || (eHref == sMain)){ eachLink.href = "/";//Change Main Page URL } } </script> <!-- /External Links in a new Window and Change Main Page URL --> 一応、winIEとfirefoxで確認しましたが、間違ってたり冗長なところがあれば、添削よろしくお願いします。
302 名前:299 mailto:sage [2007/11/29(木) 15:29:19 ID:???] >>301 スレ汚しすみません。 /が抜けてました。 RewriteRuleの最後 RewriteRule ^/wiki/(.*)$ /w/index.php?title=$1 [PT,L,QSA]
303 名前:nobodyさん mailto:sage [2007/11/29(木) 19:45:48 ID:???] MediaWikiで、ユーザごとに見られるページと見られないページを設定することって 出来ますか? もし、知ってる方がいたら教えてください。 お願いします。
304 名前:nobodyさん mailto:sage [2007/11/29(木) 20:09:08 ID:???] >>303 どういった使い方を言っているのかをもうちょっと詳しく。 ユーザーごとっていうのは、どういう単位で分類されるの?個人個人?
305 名前:nobodyさん mailto:sage [2007/11/29(木) 20:41:35 ID:???] >>304 個人個人です。 使い方はこんな感じです。 1,2,3,4 5,6,7 という7つのページがあるとして、 AさんとBさんは、1,2,3,4ページ見られるけど、 5,6,7ページは見れない。 CさんとDさんは、5,6,7ページ見られるけど、1,2,3,4ぺージは見れない。 こんな感じで、 グループ単位で見ることが出来るページと出来ないページ を設定出来ないかなと思っています。
306 名前:nobodyさん mailto:sage [2007/11/29(木) 20:52:08 ID:???] >>305 このページが参考になりそうだ www.mediawiki.org/wiki/Manual:Preventing_access/ja#.E3.81.84.E3.81.8F.E3.81.A4.E3.81.8B.E3.81.AE.E3.83.9A.E3.83.BC.E3.82.B8.E3.81.AB.E5.AF.BE.E3.81.99.E3.82.8B.E9.96.B2.E8.A6.A7.E5.88.B6.E9.99.90
307 名前:nobodyさん mailto:sage [2007/11/29(木) 21:47:00 ID:???] >>306 わざわざありがとうございます! 見たところ hidden namespaces patchというのがあるようですね。 しかし、日本語解説サイトがない 。。。。orz どうにか試行錯誤してみます。
308 名前:nobodyさん mailto:sage [2007/11/29(木) 23:53:06 ID:???] >>293 横からすみません。 その「不安定」という表現が具体的にどういう状態を表しているのかが気になっていました。 自分はそこにある説明の通りの方法で ドメイン.net/記事名 というURLにしていて、 特に何の不具合もなく運用できています。 なにか目に見えない部分でまずいことなどがあるのでしょうか。
309 名前:nobodyさん [2007/12/01(土) 12:32:57 ID:g4AkB+ru] ソースにあるけど不可視状態になってるものに、 1.「表示」(サイドバーの上のほう) 2.「個人用ツール」(1のちょっと下) 3.「検索」(本文の上部) 4.「ナビゲーション」(3と並んでいる) 5.「"記事URL" より作成」(本文の下部) がある。 2,3,4はMonobook.phpから直に削除して消すことがきたんですけど、 1と4の消し方がわかりません。テキストを不可視にするというのは 検索エンジンのペナルティ対象だったと思うのでどうしても消したいのですが、 無理なんでしょうか。
310 名前:nobodyさん mailto:sage [2007/12/01(土) 15:13:52 ID:???] 社員数1万人規模の会社のイントラネット内で使おうと思っています。 mediawiki自体はウィキペディアでの実績があるとおり数百万の項目でも 大丈夫と思いますが、ファイルのアップロードを許可する予定なのでサーバー のHDD容量とデータベースの容量が気になるところです。 mediawikiの設置は複数のサーバーに分けることは可能なのでしょうか。 それと、例えばファイルのアップロード先がデフォルトでimagesフォルダー になっていると思いますが、アップロード先だけ別ドライブにすることなど はできるのでしょうか。 Googleでは複数のサーバーを設置していると聞きます。本家のウィキペディア 同一言語であればサーバーを分散させているのでしょうか。 分散が可能とするとどのように行うのでしょうか。
311 名前:nobodyさん mailto:sage [2007/12/01(土) 15:46:47 ID:???] >>296 291です。 ありがとうございました。 $wgCookieExpiration = 0;だとcookieが作成できなかったため、 includes/User.phpで $exp=0; としたところ動作しました。
312 名前:nobodyさん mailto:sage [2007/12/01(土) 16:20:13 ID:???] >>310 MediaWiki 側で出来るかどうかは諸先輩方にお知恵を拝借するとして、 ファイルサーバとか OS的な観点から、別ドライブや別マシンの HDD 領域を任意のディレクトリ(フォルダ)のために使うことは可能ですよ。 UNIX でいうとマウントすれば OK です。 Windows は詳しくないですが、ファイル共有でフォルダ指定したり アプリケーション等で冗長構成を手伝ってくれるものを導入すれば 可能という気がします。 なにはともあれ UNIXベースでマウントやファイルシステムについて 詳しくなっておくと、おっしゃっている状況から想像するに、後々作業が 楽になるような気がします。 参考になりましたら幸いです。
313 名前:nobodyさん mailto:sage [2007/12/01(土) 16:38:23 ID:???] >>312 ご回答ありがとうございました。UNIX等では そうですね、CドライブとかDドライブなどといった 表現ではなくファイルのマウント操作なので、目的 とするHDDをアップロード先に指定すれば良いという ことですね。 ただ、今回はWindowsでの構築予定でしたので 他に方法があれば と思っています。
314 名前:nobodyさん [2007/12/01(土) 17:41:54 ID:Xe0Pn79k] >>309 1と4の消し方がわかりません。 → 1と5の消し方がわかりません。 でした。
315 名前:nobodyさん mailto:sage [2007/12/01(土) 18:59:45 ID:???] >>308 もっとも大規模な公式サイトがルートディレクトリで運用されていないことから バージョンが上がった場合の動作が保証されないのでそのリスクを承知した上で 実行して下さいということです。最近の事例でも1.11に対して個別の対応ページが書かれています。 もちろん自分で問題解決できるというのであれば心配いりません。 ちなみに私個人ではログインはできたがログアウトのページが通常のページと誤認識されるというのを体験しました。
316 名前:nobodyさん mailto:sage [2007/12/01(土) 19:57:01 ID:???] >>309 >>314 1. 表示:以下のh5要素を削除します MonoBook.php <div id="p-cactions" class="portlet"> <h5><?php $this->msg('views') ?></h5> languages/messages/Messages.Ja.php 'views' => '表示', 5.「"記事URL" より作成」:$outの行をコメントアウトします。 SkinTemplate.php $printfooter = "<div class=\"printfooter\">\n" . $this->printSource() . "</div>\n"; #$out->mBodytext .= $printfooter ; Skin.php function printSource() { global $wgTitle; $url = htmlspecialchars( $wgTitle->getFullURL() ); return wfMsg( 'retrievedfrom', '<a href="'.$url.'">'.$url.'</a>' ); } languages/messages/Messages.Ja.php 'retrievedfrom' => ' "$1" より作成', システムメッセージに関する公式サイトの資料は次のページにあります。 www.mediawiki.org/wiki/WfMsg () meta.wikimedia.org/wiki/Help:System_message
317 名前:nobodyさん mailto:sage [2007/12/01(土) 20:57:11 ID:???] >>313 WikipediaプロジェクトではCommons(commons.wikimedia.org/wiki/ メインページ)で ファイルの集中管理をするようにしています。ネットワーク経由でのファイル保存の設定に関しては www.mediawiki.org/wiki/Manual:Configuration_settings/ja の「共有アップロード」の項目を調べて下さい。 (>>297-298 も参照) Windowsサーバーでのファイル共有に関してはWindows系のスレで質問するか(「Windows 2003」などでスレタイを検索) マイクロソフトのサポートページを調べた方が早いと思います。ざっと検索した限りでは 次のサイトでサーバー構築のためのまとまった資料がありました。 Windows Server 2003による社内ネットワークの構築 www.fmmc.or.jp/fm/nwts/w2003s/index.html Windows 2003とIISのインストールガイドとトラブルシューティングは以下のURLです。 www.mediawiki.org/wiki/Manual:Installing_MediaWiki_on_Windows_Server_2003/ja 企業ユーザー向けのサポートページとメーリングリストがありますが、内容のほとんどが認証関連です。 www.mediawiki.org/wiki/Enterprise_use_of_MediaWiki/ja ちなみに現時点でもっとも大規模な企業導入実績例はインテルで社員が10万人以上だそうです。 www.mediawiki.org/wiki/Sites_using_MediaWiki/corporate
318 名前:nobodyさん mailto:sage [2007/12/01(土) 22:00:19 ID:???] >>316 のついでですが、インクの節約のために "URL"より作成・最終更新を印刷しないようにするだけなら commons/commonPrint.cssに以下のセレクタを追加します。 .printfooter, #credits { display: none; }
319 名前:nobodyさん mailto:sage [2007/12/04(火) 11:41:10 ID:???] [ケーススタディ] エンタープライズ 2.0の先進企業のシステム事例〜カシオの場合〜 | エンタープライズ2.0 Forum e.impressrd.jp/e/2007/10/23/88 CsPediaという名前を付けて社内用語の整備に利用。 真の Web 2.0: ユーザー生成型コンテンツの代表格、ウィキペディア www.ibm.com/developerworks/jp/web/library/wa-realweb4/ wikiEd(編集支援)が紹介されている ・en.wikipedia.org/wiki/User:Cacycle/wikEd Engines of Collaboration: A Look Under the Hood of Wikimedia whygive.wikimedia.org/2007/11/25/engines-of-collaboration-a-look-under-the-hood-of-wikimedia/ 紹介されているエクステンション ・www.mediawiki.org/wiki/Extension:LiquidThreads ・www.mediawiki.org/wiki/Extension:FlaggedRevs
320 名前:nobodyさん mailto:sage [2007/12/04(火) 12:17:30 ID:???] Wiki の方を略したんk…
321 名前:nobodyさん mailto:sage [2007/12/05(水) 15:33:35 ID:???] wikiであることよりもpedia(encyclopedia)であることを前面に押し出したってことか
322 名前:nobodyさん mailto:sage [2007/12/05(水) 15:36:22 ID:???] >>310 WindowsXPでMediaWikiを使っています。 imagesフォルダ以下を別物理ディスクにすることはWindowsの機能で可能です。 また、imagesフォルダ以下は images\5\5e といった具合に、いくつかのフォルダに分けて保存されているので、 それぞれ物理ディスク分けるとさらに大容量&高速化が可能かと思います。 ※$wgHashedUploadDirectoryがtrue(デフォールト)になっている必要があります。
323 名前:nobodyさん mailto:sage [2007/12/06(木) 12:54:19 ID:???] >>303 >>305 前のスレでページ名さえ知っていれば読み込み制限されているページでも {{:ページ名}}でインクルードできる問題が指摘されていましたが 1.10.0以降であれば$wgNonincludableNamespaces変数で 名前空間のインデックスを指定することでインクルードを拒否できるようになります。 例えば通常の記事はMain名前空間に所属してインデックス番号は0なので次のようになります。 $wgNonincludableNamespaces[] = 0;
324 名前:nobodyさん mailto:sage [2007/12/06(木) 18:45:42 ID:???] MediaWikiをサーバー(xreaの無料版)に入れて、インストールも完了しましたが、index.phpに何も表示されません。 正確に言うと"<"だけ表示されてはいるのですが・・・。ちなみにVerは1.9.3です。 どこに原因があるのかさっぱり分からない状態ですが、思い当たる原因が分かる方はいらっしゃいますでしょうか?
325 名前:nobodyさん mailto:sage [2007/12/06(木) 19:10:54 ID:???] >>324 に便乗して質問させてください。 ときどき、xrea の名前が出てきますが、 MediaWiki を運用するにあたってオススメでしょうか!? ssh でログインできる等、他にオススメのレンタルサーバがありましたら お教えいただけましたらありがたく、よろしくお願いいたします。
326 名前:nobodyさん mailto:sage [2007/12/06(木) 20:40:11 ID:???] >>325 xreaを使うよりは、coreserver.jpのほうが安心だと思う。 ttp://www.coreserver.jp/
327 名前:nobodyさん mailto:sage [2007/12/06(木) 20:42:21 ID:???] >>324 過去ログの統計から行くと、文字コード周りを疑ってみると良いと思われます。
328 名前:nobodyさん mailto:sage [2007/12/06(木) 22:09:27 ID:???] >>325 以前、xreaの無料版でMediaWikiインストールして、さあ使おうと思っていたら、 2週間くらいでアカウント削除されてしまったことがある。 広告は表示させていたのだが。 問い合わせてみたところ、自動削除されていたらしく、原因の調査は出来ないとのことだった。 それから自動削除ルールが変わっているかどうか分からないが、細心の注意を払っておいた方がいいと思う。 (´・ω・`)
329 名前:nobodyさん mailto:sage [2007/12/06(木) 22:47:10 ID:???] >>328 xreaで広告免除して使ってるけど、付属のアクセス解析を見ると リクエストはあってもページビューとしてカウントされないようだった。 CGI呼出のみの利用とみなされて規約違反とされたのかも?
330 名前:328 mailto:sage [2007/12/06(木) 23:14:54 ID:???] >>329 2週間以上使えてる?
331 名前:nobodyさん mailto:sage [2007/12/07(金) 09:06:28 ID:???] >>324 XREA無料版の場合、広告の自動挿入がアプリケーションの正常な動作を妨げることがあります。この場合、自動挿入を停止させてMonoBook.phpなどのスキンファイルに広告を手動で貼ります。 それと>>267 で1.11.0と1.12αの動作が報告されているので、なるべく新しいバージョンを利用することをお勧めします。 >>328 トップページにindex.html・index.cgi・index.phpなどが存在しないと自動的に削除されます。VALUE-DOMAIN.COMで広告免除を一度でも購入したサーバアカウントは削除されません。 広告付きの無料アカウントの継続方法 sb.xrea.com/archive/index.php/t-8363.html
332 名前:nobodyさん mailto:sage [2007/12/08(土) 18:21:16 ID:???] >>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さん mailto:sage [2007/12/10(月) 05:17:29 ID:???] MediaWikiの各ページにアクセス用のショートカットを 設定するエクステンションがリリースされました openoffice-ja.org/wiki/?shortcut=a4f255 ↑ こんな感じのURLになります
334 名前:nobodyさん mailto:sage [2007/12/10(月) 21:45:02 ID:???] >>333 最近短縮URLサービスがスパムやセキュリティ問題を抱えているそうなので それらの対策としてもよさそうですね。
335 名前:nobodyさん mailto:sage [2007/12/11(火) 20:32:33 ID:???] >>327 >>331 遅くなりましたがありがとうございました。 文字コードを変えると上手くいったんですが、今度は何をしてもメインページが表示できず・・・。 最新バージョンに入れ替えて、どうにか事なきを得ましたが・・・難しいです。
336 名前:nobodyさん mailto:sage [2007/12/13(木) 15:38:03 ID:???] 履歴の一部を消すプラグインって、ありませんか? 利用者がわりとこまめに保存するために履歴が大量に残ってしまっています。 (例えば同じ人が2〜3時間内に10の履歴とか) 履歴が残ること自体はいいのですが、履歴が見づらくなってしまい困っています。 利用者に注意を促していますが、システム側でも対応したいと思っています。 全ての履歴を消してしまうと問題があるので、 短時間内の複数の履歴を1つにまとめるために、 (手動で)履歴の一部を消すプラグイン(テーブルからの物理削除でもOK)って、ありませんか? ベストなのは、以下のようなものです。 1.自分の履歴しか消せない。(管理者を除く) 2.自分の連続した履歴しか消せない。 皆様のお知恵を拝借したくお願いします。
337 名前:nobodyさん mailto:sage [2007/12/13(木) 23:13:24 ID:???] >>336 それは俺も気になる。
338 名前:nobodyさん mailto:sage [2007/12/15(土) 06:20:24 ID:???] >>336 プラグインは無いが操作とメンテナンススクリプトの組み合わせでできる 削除したいページを一旦消す。 消したページの履歴の上の方にある削除された版の履歴と復帰のリンクを開いて 残したい版だけチェックして復帰。履歴だけならこれできれいになる。 何度も同じページでやろうとすると昔消した版も時系列で並ぶのに注意。 ま、手間はかかるがアーカイブの管理なんて泥臭いもんだ。 DBから削除するときには /maintenance にarchive(削除した版)に入った履歴をDBから消すスクリプトがあるのでそれで。 mediawikiにはいわゆる一般的な意味での削除の機能はない。全て一般利用者からの隠蔽。 mediawikiのインターフェースから削除するとログが増える分DBは肥大する。 まあInnoDB自体が肥大し続けるから強制的にMyISAMにでもしてないと何をしても付け焼き刃だけど。
339 名前:nobodyさん mailto:sage [2007/12/15(土) 06:32:21 ID:???] と書いて思い出したが一時期連続投稿をまとめるスクリプトどっかにあったな。 DB構造変わってなくなったのかね。
340 名前:nobodyさん mailto:sage [2007/12/15(土) 07:02:20 ID:???] たとえば 5分間とか 10分間といったしきい値を設定して、 その時間帯に何回編集しようとも編集したユーザーの編集回数は 1回としてカウントされる そんな Extension ありそうですけどねぇ… 教えて! Extensions 博士ー!\(^o^)/
341 名前:nobodyさん mailto:sage [2007/12/15(土) 13:17:30 ID:???] ページに毎にskinを変更することはできませんか。 medeawikiをCMSツールとして使い、複数サイトを作成し、 サイト毎に違ったレイアウトにしたいと思っています。
342 名前:nobodyさん mailto:sage [2007/12/15(土) 18:33:24 ID:???] >>251 の本を立ち読みしてきましたが、ページ数が10〜20ぐらいしかなくて 完全なCSS初心者用でした。携帯機能については何も書かれていませんでした。 やはり自分で実装しなければならないということですか。 >>341 異なるユーザーグループごとにwikiを提供したいというのであれば 普通にwikiファームを構築した方が早いと思います。 body要素の範囲内でCSSをカスタマイズするのでよいなら LocalSettings.phpで名前空間を割り当ててクラスセレクタごとのCSSを用意します。 ページごとのskin変更も同じように記事の名前空間ごとにユーザーオプションを変更する という方法が考えられますが、オプション変更ボタンの下の注意書きの通り ブラウザのキャッシュはサーバーサイドではクリアできないので、実装は困難だと思います。 ちなみにデフォルトの匿名と新規ユーザーオプションは$wgDefaultUserOptions変数で設定できます。
343 名前:nobodyさん mailto:sage [2007/12/15(土) 19:45:53 ID:???] >>342 ありがとうございます。 >body要素の範囲内でCSSをカスタマイズするのでよいなら >LocalSettings.phpで名前空間を割り当ててクラスセレクタごとのCSSを用意します。 ということは if ($hoge): $wgDefaultSkin = 'cologneblue'; else: $wgDefaultSkin = 'monobook'; endif; このような書き方ができるのでしょうか。 リクエストURLを$hogeに入れる方法はどのようになります でしょうか。
344 名前:342 mailto:sage [2007/12/15(土) 22:23:59 ID:???] >>343 独自の名前空間を割り当てるには下記の記事をご覧下さい www.mediawiki.org/wiki/Manual:Using_custom_namespaces/ja 記事の例ではFoo名前空間にインデックス番号100を割り当てているので body要素のクラスセレクタはns-100が追加されます。 公式サイトのCSSのカスタマイズ例は下記のページで見ることができます。 www.mediawiki.org/wiki/MediaWiki:Common.css 書いた後に匿名ユーザーと新規ユーザー限定で 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さん mailto:sage [2007/12/16(日) 11:14:46 ID:???] >>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さん mailto:sage [2007/12/16(日) 14:12:23 ID:???] >>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さん mailto:sage [2007/12/16(日) 15:34:18 ID:???] さらに試したところブラウザのユーザーエージェントでも切り替えできました。 例えば、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さん mailto:sage [2007/12/17(月) 06:53:13 ID:???] 前スレでXREAといったPHPがセーフモードのサーバーで タイムゾーンを補正できないことが話題になっていましたが 代わりに匿名ユーザーのオプションを設定することで対応します。 $wgDefaultUserOptions['timecorrection'] = '09:00'; 設定をした後で記事のキャッシュをパージすることを忘れないで下さい。
349 名前:nobodyさん mailto:sage [2007/12/17(月) 07:22:27 ID:???] >>336 投稿を統合するよりもむしろ2chのように 投稿時間の間隔を規制する方がベターだと思います。 連投の表示を隠匿するもしくは投稿時に連投を統合する場合、 追加のSQLを発行する必要がでてくるのでサーバー負担が増えますし データベースの設計に関わるのでカスタマイズの難易度が上がります。 連投を規制する場合はAPIなどで以前の投稿時間を取得して 規制時間の間は投稿ボタンを表示しないようにするという実装で済みます。 action=submitなどで投稿できる可能性があるので そこまでやる人はあまりいないだろうという前提の元ですが。
350 名前:nobodyさん [2007/12/18(火) 13:19:04 ID:Gx8WPDAu] SVNで最新版にアップデートしたら、下記のようなエラーで表示されないんですが。 from within function "Database::select". MySQL returned error "1146: Table 'hoge.protected_titles' doesn't exist (localhost)".
351 名前:nobodyさん [2007/12/18(火) 14:55:35 ID:Gx8WPDAu] >>350 事故解決しました。スマソ
352 名前:nobodyさん mailto:sage [2007/12/18(火) 20:17:47 ID:???] >>347 訂正と追記。 PHPでは多重継承ができないので、自分で実装することにしました。 通常の記事のページの分割方法は次のようなものです。 1 本文を変数として取得するには$this->data['bodytext']を使う。 ちなみに通常表示は$this->html('bodytext')です。 2 変数として取得した本文を分割して配列として収納する。 3 例えば、$_GET['id']を使って記事名?id=ページ番号でパラメータを取得して そのパラメータに対応した本文を収納した配列の要素を表示する。 4 表示の場合分けは上記の$_GET['id']に加えて$_GET['action']などの値を使う。 定義済の変数は www.php.net/manual/ja/reserved.variables.php index.phpに渡すことができるパラメータは www.mediawiki.org/wiki/Manual:Parameters_to_index.php/ja を参照して下さい。 編集も携帯でできるようにするにはincludes/EditPage.phpを編集すればよいはずですが未調査です。 分割方法に関して平文のみで文字数で分割する場合、英文ならwordwrap関数が、 日本語の場合は厳密な文字数で分割できませんが、下記の記事が参考になりました。 続:日本語(マルチバイト)でのwordwrap処理 -OKWave ttp://www.mediawiki.org/wiki/Manual:Parameters_to_index.php/ja ざっと調べた範囲では携帯向けのプロクシサイトのように 一定量のサイズとHTMLブロック単位で分割する方法の解説記事は見つからなかったので、 自分で考える必要があるようです。あとはpuwikiが携帯対応しているのでこちらも参考になるかもしれません。
353 名前:nobodyさん mailto:sage [2007/12/19(水) 05:09:12 ID:???] 今さっき、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さん mailto:sage [2007/12/19(水) 06:19:27 ID:???] >>353 == 質問するときに書いてね == >>3-4 をご覧になってお分かりになる範囲の情報を記載しましょう。 回答する方も MediaWiki のバージョンくらいは分からないと困ると思いますので。 xrea に MediaWiki を導入している経験者の方々が多くの情報を残しています。 そちらも参照されると手助けになると思いますのでよければどうぞ。 www.google.co.jp/search?q=xrea+MediaWiki
355 名前:nobodyさん mailto:sage [2007/12/19(水) 08:50:50 ID:???] すいません ちなみにver. は1.11.0です。
356 名前:nobodyさん mailto:sage [2007/12/19(水) 09:51:13 ID:???] >>353 とりあえずDocumentRootとLocalSettings.phpのパスを教えてください /virtual/hoge/public_html/hoge2/ /virtual/hoge/public_html/hoge2/mediawiki/LocalSettings.php かな?
357 名前:353 mailto:sage [2007/12/19(水) 10:48:32 ID:???] >>356 LocalSettup.phpをコンフィグから一度PCにダウソして親ディレクトリにうpしたのでそうだと思います。 そのあとコンフィグは削除しました。
358 名前:nobodyさん mailto:sage [2007/12/19(水) 11:01:37 ID:???] >>357 LocalSettup.php ? まさか、リネームしてないよね?
359 名前:353 mailto:sage [2007/12/19(水) 11:42:50 ID:???] いじらずダウソ、うpしたのでリネームはしてません。 エラーの文章の意味はどういうものなんでしょう?
360 名前:nobodyさん mailto:sage [2007/12/19(水) 12:12:42 ID:???] >>359 パーミッションが無いよと言っている。 LocalSettings.phpの所有者とパーミッション(属性)とindex.php等他のファイルの所有者は何?
361 名前:nobodyさん [2007/12/19(水) 14:12:12 ID:I01GQrBL] >>352 phpで動かしてる? cgiモードだとうまく動くかもよ。
362 名前:nobodyさん [2007/12/19(水) 14:12:59 ID:I01GQrBL] >353の間違い
363 名前:353 mailto:sage [2007/12/19(水) 14:24:47 ID:???] >360 LocalSettings.phpの属性は600. index.phpの属性は644でした。 ファイルの所有者ってのはどうやって見るんですか? >361 cgiモードってのはどうやるんですか?
364 名前:nobodyさん [2007/12/19(水) 16:30:28 ID:4oqVnmt9] >>363 XREAでcgiモードは、Mediawiki下の.htaccessに下記を追加 (.htaccessがなければ、新規で作成) <Files index.php> AddHandler application/x-httpd-php5cgi .php </Files>
365 名前:nobodyさん mailto:sage [2007/12/19(水) 16:40:15 ID:???] >>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として動かす方法について sb.xrea.com/showthread.php?t=10744 CGIモードはモジュール版PHPで動かない関数やLinuxコマンドを実行するために利用されます。 セーフモードで動かない関数は以下のページで書かれています。 www.php.net/manual/ja/features.safe-mode.functions.php
366 名前:nobodyさん mailto:sage [2007/12/19(水) 16:43:02 ID:???] >>363 とりあえずLocalSettings.phpを644にしてみて
367 名前:353 mailto:sage [2007/12/19(水) 16:49:39 ID:???] >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 mailto:sage [2007/12/19(水) 16:51:48 ID:???] 755 777にしても同じでした。
369 名前:nobodyさん mailto:sage [2007/12/19(水) 16:59:12 ID:???] >>367 データベースを作るときにキャラクタセットはunicodeにしたかな?
370 名前:353 mailto:sage [2007/12/19(水) 17:05:47 ID:???] EUC JPっす。 ググッたらこのスレの34でよく似た文章出てきました。 やり直してみます。
371 名前:353 mailto:sage [2007/12/20(木) 01:09:07 ID:???] MySQLをUnicodeに属性を644に 変更したら動作しました。 皆さんありがとうございました。 またお世話になるかもしれません。
372 名前:nobodyさん mailto:sage [2007/12/20(木) 18:58:18 ID:???] やっと時間ができたのでスレのまとめページを作りました。 とりあえず>>10-12 までを転載しました。 www12.atwiki.jp/linux2ch/pages/234.html ウィキペディアライクモードがいつの間にか実装されていました。
373 名前:nobodyさん mailto:sage [2007/12/21(金) 08:23:19 ID:???] >>372 すばらしく乙
374 名前:nobodyさん mailto:sage [2007/12/21(金) 12:54:32 ID:???] >>372 乙 ですが、MediaWiki の有用性の分かっているスレ住人のお一人でしたら MediaWiki を使ったまとめサイトにしていただければ尚嬉しいのですが… (´・ω・`)
375 名前:nobodyさん mailto:sage [2007/12/24(月) 19:28:14 ID:???] 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さん mailto:sage [2007/12/24(月) 19:31:37 ID:???] <?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 mailto:sage [2007/12/24(月) 23:05:57 ID:???] 353です。 インストールのときはお世話になりました。 また質問なのですが、テンプレートや表示の仕様をwikipediaそっくりにしたいのですが mediawiki:common.css mediawiki:common.js のソースをそのままコピペしても全然同じになりません。 infoboxを使ってみたいのですがうまくいかないので どうしたものかと悩んでいます。 wikipediaのcommon.cssとかはソースの色分けとかもされてたり、 ソースの上の部分の文頭に四角が付いていますがそういうのも付きません。 ver.1.11.0 サーバーはxreaです。 よろしくお願いします。
378 名前:nobodyさん mailto:sage [2007/12/25(火) 00:57:46 ID:???] >>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さん mailto:sage [2007/12/25(火) 01:29:27 ID:???] >>377 en.wikipedia.org/wiki/Template:Infobox Template:Infoboxのテーブルで指定されているCSSのクラスをお探しなら MediaWiki:Monobook.cssページで見つかります。 en.wikipedia.org/wiki/MediaWiki:Monobook.css 念のため書いておきますが、上記のテンプレートは ParserFunctions拡張機能がインストールされていることが前提条件です。 ja.wikipedia.org/wiki/Help: 条件文 ソースコードのハイライトに関してはSyntaxHighlight GeSHi拡張機能 を導入してみて下さい。 www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi/ja
380 名前:nobodyさん mailto:sage [2007/12/25(火) 02:44:54 ID:???] >>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さん mailto:sage [2007/12/25(火) 02:56:48 ID:???] もう一つ追記。上記のコードでは記事名の取得は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さん mailto:sage [2007/12/25(火) 21:22:36 ID:???] >>378 さんへ 上手くできました。ありがとうございました。 URL引数が名前空間毎に変わることを利用しているのですね。 こちらの方がフックを使うよりもとてもスムーズだと思います。 ところで、$wgDefaultSkin = を使う場合、ログインユーザの skinは変更できないのですね。これはログインなしで使用する ことで回避できるので仕様として諦めるしかないのかなと思って います。ただ、ログインを前提としない場合はデフォルトの検索 は名前空間が標準のみとなってしまいますが、作成した名前空間 をデフォルト検索対象に含めることはできないでしょうか。
383 名前:nobodyさん mailto:sage [2007/12/25(火) 23:06:34 ID:???] >>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さん mailto:sage [2007/12/25(火) 23:21:00 ID:???] 続き。sysopグループだけがMonoBook名前空間を閲覧できるようにする には以下の通りです。 require_once( "$IP/extensions/Lockdown/Lockdown.php" ); $wgNamespacePermissionLockdown[110]['read'] = array('sysop'); $wgNonincludableNamespaces[] = 110; 以前と比べて$wgNonincludableNamespacesによって 他のページへのインクルードを禁止できるようになりましたが、 特別ページの検索機能で見出しが表示されたり 統計情報が表示されるのは相変わらずです。
385 名前:nobodyさん mailto:sage [2007/12/26(水) 11:22:34 ID:???] ド素人かつ只の利用者なんで恐縮ですが、ページの下部にコメント欄を表示させることは出来ないでしょうか? 最新の10〜20件のみ表示されるような物が理想なのですが、情報が見当たりませんでした。
386 名前:nobodyさん mailto:sage [2007/12/26(水) 12:19:28 ID:???] >>385 次回から、スレッド内を全文検索してから質問するよう心がけてください >>105-107
387 名前:nobodyさん mailto:sage [2007/12/26(水) 20:49:31 ID:???] >>383-384 さんへ 上手く行きました。助かりました。大変ありがとうございました。
388 名前:nobodyさん [2007/12/28(金) 13:05:59 ID:MBh5CIXS] パスワードで閲覧を制御しているディレクトリと 誰でも見られるディレクトリとあって、 その両方で MediaWiki を使いたいのですが、 このような使い方の場合は MediaWiki をその数だけインストールしないといけないんでしょうか?
389 名前:388 [2007/12/28(金) 14:38:08 ID:MBh5CIXS] >388 ですが www.steverumberg.com/wiki/index.php/WikiHelp ここにありました、すみません。
390 名前:388 [2007/12/28(金) 17:02:15 ID:MBh5CIXS] 何回もすみません。 >389のサイトですが、Debian/EtchについてくるMediaWiki1.7.1だと うまくいかなかったです。 config/index.php内の/path/to/LocalSettings.phpの部分を ./LocalSettings.phpというふうに相対パスにする必要があります。
391 名前:nobodyさん mailto:sage [2007/12/28(金) 17:20:42 ID:???] >>389 できたら日本語で概要を簡単に説明してくれると助かる
392 名前:388 [2007/12/28(金) 17:38:30 ID:MBh5CIXS] >391 元々インストールされているMediaWikiが /home/yourdomain/www/wiki にインストールされていて /home/yourdomain/www/new/wiki にもインストールしたい場合、 わざわざファイルまるごとインストールせずに、 シンボリックリンクを作って データベース名を変えれば LocalSettings.php を作るだけでおkという話です。
393 名前:nobodyさん [2007/12/29(土) 00:25:24 ID: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などは使えないんですかね。 example.com/wiki/ 記事名 になるように.htaccessを編集したら500エラーがでます。
394 名前:353 mailto:sage [2007/12/29(土) 01:19:54 ID:???] >379 亀レススマソです。 一応、紹介してもらったhelpの通り、三つのphpをうpして、 LocalSettingを書き換えたら ttp://sakuratan.ddo.jp/uploader/source/date64676.bmp こんな感じになりました。 何が原因か自分では分からないのですが。 よろしくお願いします。
395 名前:353 mailto:sage [2007/12/29(土) 01:22:20 ID:???] ちなみに左が僕の設置したwikiで右がwikipediaのテンプレです。 自分方の内容はwikipediaのものをそのままコピーしてみました。
396 名前:nobodyさん mailto:sage [2007/12/29(土) 04:30:31 ID:???] >>394-395 「Template:Tnavbar」テンプレートが不足しています。ページで使われている テンプレートを調べるには編集画面の一番下の「このページで使われているテンプレート:」を見ます。 あと「Template:Infobox プログラミング言語/doc」テンプレート内の多言語間リンクを削除して記事をパージして下さい。 記事をパージするにはURLの一番の記事名の後ろに?action=purgeを追加してEnterキーを押します。
397 名前:nobodyさん mailto:sage [2007/12/29(土) 11:43:39 ID:???] 質問です。 SecureHTMLで<html>タグ内にphpをajaxで呼び出すjavascriptを書いています。URLを example.php?a=xxx&b=yyy と記述すると、&が&に変換されてしまうようで、($_GET['a']は問題ないのですが)、$_GET['b']に値を送れません。 どなたか解決法をご存知の方はいますか? (ver1.11)
398 名前:397 mailto:sage [2007/12/29(土) 11:45:04 ID:???] >>397 あらら。 「&が&amp;に変換されてしまう」 です。
399 名前:nobodyさん mailto:sage [2007/12/29(土) 17:29:33 ID:???] >>397-398 JavaScriptの方はよくわかりませんが、htmlタグは$wgRawHtmlで設定するものなので PHPコードは無効にされます。 wiki上でPHPコードを実行したいのであれば同じ作者のExtension:SecurePHP extensionがあります。
400 名前:nobodyさん mailto:sage [2007/12/29(土) 18:04:06 ID:???] >>393 記事をパージする、一時的ではない、どの記事でも、再インストール、 >>25 のsession save pathの設定をするといったことをやっても セッション切断が再現されるのであれば、ご自分でPHP5をコンパイルして 最新のMediaWikiを導入することもお考え下さい。 さくらインターネットのスレによれば最新のサーバーではPHP5が投入されているそうなので PHP5の利用を考える場合はPHPのバージョンの確認や公式マニュアルを参照して下さい。 mod_rewriteに関しては設定内容が書かれてないので何も申しようがありませんが、 「さくらインターネット mediawiki」で検索すればURLを短縮したwikiサイトが見つかるので できるのかという質問に対する回答はできるでしょう。