Wikiの各ページのトップに行くと,タブがあって,
「表示」「編集」「リンク」「情報」とか書いてますが,
これらのタブのリンク先(マウスを上に置いてみると,あるいはソースの表示で分かる)は,
http://foo.bar/mod/wiki/view.php?id=61&page=edit/2005後学期TA
の様に,URI に2バイト文字がそのまま含まれています。
# ちなみに 2005後学期TA は「ページ名」です。
これを IE (私の使っているのはver.6) でクリックすると2バイト文字をそのままサーバに送るらしく,その結果表示されるページでは,ページ名の表示が 2005後学'・A のように化けてしまい,それ以降の編集がおかしくなってしまいます。
# つまり, 2005後学'・A という名前の別のページに移ってしまう。
# したがって,「編集」を押しても,(新しいページであるので) 中身は空っぽ。
firefox 等では,サーバに GETを送る際に,気を利かせてURIエンコードしてくれるらしく,
http://foo.bar/mod/wiki/view.php?id=61&page=edit/2005%B8%E5%B3%D8%B4%FCTA
となるので,そういう問題はありません。
まあ,基本的には Moodle側で,
<a href= を出して来る時に, urlencode() した URI を挿入すべきかと思うんですが,さすがに mod/wiki/* あたりをちょっと見ただけでは分かりませんでした。
1.5.2+ や 1.6 では fix されてたら嬉しいんですが.... ?
なお,右上の「--管理--」の dropdown でのリンクも2バイト文字が入っているようです。
武本先生も議論に入っていらっしゃいますが、Using Moodleで 「 Wiki or dfWiki 」 という投稿がありますね。
http://moodle.org/mod/forum/discuss.php?d=30921
http://moodle.org/mod/forum/discuss.php?d=30921
下記の理由で、私はDFWikiに期待しています。現在もダウンロードできますので、ぜひお試しください。
現行のMoodleWIKIの開発者が行方不明になっている。
DFWIKIは複数のプログラマーで活発的に開発されている。
DFWIKIは(wikipediaのおかげで)もっとも普及しているMediaWikiに基づいている。
DFWIKIはMoodleのHTMLAreaWYSIWYGエディタもMediaWikiと同様のより軽いエディタも使える。
DFWikiはMediawikiにもないページごとの権利管理などの機能がある。
DFWikiはブロックとタイアップして、ブロック内で目次を表示できる。
DFWikiのチームは現行のWikiからのアップグレードやバックアップというマーティンが課している最後の「Moodleの正式Wikiになるための条件」の「クリスマスの前に達成する」
最近MediaWikiをHP代わりに使っている(Flickrのダブルクリックして編集できるという機能が大好きだったのがきっかけ)。
教科書をMoodle内のDFWikiでオープンソースにするつもりでいる。
現行のMoodleWIKIの開発者が行方不明になっている。
DFWIKIは複数のプログラマーで活発的に開発されている。
DFWIKIは(wikipediaのおかげで)もっとも普及しているMediaWikiに基づいている。
DFWIKIはMoodleのHTMLAreaWYSIWYGエディタもMediaWikiと同様のより軽いエディタも使える。
DFWikiはMediawikiにもないページごとの権利管理などの機能がある。
DFWikiはブロックとタイアップして、ブロック内で目次を表示できる。
DFWikiのチームは現行のWikiからのアップグレードやバックアップというマーティンが課している最後の「Moodleの正式Wikiになるための条件」の「クリスマスの前に達成する」
最近MediaWikiをHP代わりに使っている(Flickrのダブルクリックして編集できるという機能が大好きだったのがきっかけ)。
教科書をMoodle内のDFWikiでオープンソースにするつもりでいる。
喜多先生
moodle/mod/wiki/view.phpの336行目あたりを下記のように変更したらIEでもOKでした。
if (!empty($canedit)) { /// Print tabs with commands for this page
$tabs = array('view', 'edit','links','info');
if ($wiki->ewikiacceptbinary) {
$tabs[] = 'attachments';
}
$tabrows = array();
$row = array();
$currenttab = '';
foreach ($tabs as $tab) {
$tabname = get_string("tab$tab", 'wiki');
$row[] = new tabobject($tabname, $ewbase.'&page='.$tab.'/'.urlencode($ewiki_id), $tabname);
if ($ewiki_action == "$tab" or in_array($page, $specialpages)) {
$currenttab = $tabname;
}
}
$tabrows[] = $row;
print_tabs($tabrows, $currenttab);
}
moodle/mod/wiki/view.phpの336行目あたりを下記のように変更したらIEでもOKでした。
if (!empty($canedit)) { /// Print tabs with commands for this page
$tabs = array('view', 'edit','links','info');
if ($wiki->ewikiacceptbinary) {
$tabs[] = 'attachments';
}
$tabrows = array();
$row = array();
$currenttab = '';
foreach ($tabs as $tab) {
$tabname = get_string("tab$tab", 'wiki');
$row[] = new tabobject($tabname, $ewbase.'&page='.$tab.'/'.urlencode($ewiki_id), $tabname);
if ($ewiki_action == "$tab" or in_array($page, $specialpages)) {
$currenttab = $tabname;
}
}
$tabrows[] = $row;
print_tabs($tabrows, $currenttab);
}
> 「--管理--」の方は,firefox を使ってやってください,ということでいいでしょう。
恐らくこの修正で大丈夫と思います。
もしかしたら、Moodle 1.6に合わせてDFWikiに移行するかもしれませんね。
修正対象: mod/wiki/lib.php
修正箇所: 1050行目
[変更後]
function wiki_print_administration_actions($wiki, $cmid, $userid, $groupid, $page, $noeditor, $course) {
/// Displays actions which can be performed on the page
/// Create the URL
$ewscript = 'admin.php?id='.$cmid;
if (isset($userid) && $userid!=0) $ewscript .= '&userid='.$userid;
if (isset($groupid) && $groupid!=0) $ewscript .= '&groupid='.$groupid;
if (isset($page)) $ewscript .= '&page='.urlencode($page);
$ewscript.="&action=";
[変更前]
function wiki_print_administration_actions($wiki, $cmid, $userid, $groupid, $page, $noeditor, $course) {
/// Displays actions which can be performed on the page
/// Create the URL
$ewscript = 'admin.php?id='.$cmid;
if (isset($userid) && $userid!=0) $ewscript .= '&userid='.$userid;
if (isset($groupid) && $groupid!=0) $ewscript .= '&groupid='.$groupid;
if (isset($page)) $ewscript .= '&page='.$page;
$ewscript.="&action=";
修正対象: mod/wiki/lib.php
修正箇所: 1106行目
[変更後]
$cell_pagename .= '<A HREF="' . EWIKI_SCRIPT . urlencode($id) . '">';
[変更前]
$cell_pagename .= '<A HREF="' . EWIKI_SCRIPT . $id . '">';