DokuWikiのDiscussion Pluginのコメント入力欄のカスタマイズ方法
doudonn 更新日:
DokuWikiのDiscussion Pluginをカスタマイズ!
デフォルト状態だと使いにくいので、カスタマイズは必須です。
なんでこんなに不親切…と思わず頑張りたい。
サンプルは「東方ダンマクカグラ ファンタジア・ロスト有志攻略Wiki」を見てください。
※「2021-12-31」版での解説です。
1、やりたいこと
次の仕様に変更したい。
・メールアドレス入力欄を削除&入力必須にしない
・「フルネーム」を「名前」にして、「名無し」を初期状態にする
<こんな感じ>
詳しくは上記のサンプルを見てみてください。
2、カスタマイズ手順
「/lib/plugins/discussion/action.php」を修正します。
※見やすくするためインデントは削除しています。
260行目
<変更箇所>
//if (empty($INPUT->str('name')) or empty($INPUT->str('mail'))) {
// return;
//}
//if (!mail_isvalid($INPUT->str('mail'))) {
// msg($lang['regbadmail'], -1);
// return;
//} else {
$comment['user']['id'] = ''; //prevent overlap with loggedin users, before: 'test<ipadress>'
$comment['user']['name'] = hsc($INPUT->str('name'));
$comment['user']['mail'] = hsc($INPUT->str('mail'));
//}
このようにコメントアウトしてください。
1059行目
<変更前>
<span><?php echo $lang['fullname'] ?>:</span>
<input type="text"
class="edit<?php if ($INPUT->str('comment') == 'add' && empty($INPUT->str('name'))) echo ' error' ?>"
name="name" id="discussion__comment_name" size="50" tabindex="1"
value="<?php echo hsc($INPUT->str('name')) ?>"/>
<変更後>
<span>名前:</span>
<input type="text"
class="edit<?php if ($INPUT->str('comment') == 'add' && empty($INPUT->str('name'))) echo ' error' ?>"
name="name" id="discussion__comment_name" size="50" tabindex="1"
value="<?php echo (!empty($_REQUEST['name'])? : "名無し")?>"/>
ここの名称は自由に設定ください。
1066~1074行目
<div class="comment_mail">
<label class="block" for="discussion__comment_mail">
<span><?php echo $lang['email'] ?>:</span>
<input type="text"
class="edit<?php if ($INPUT->str('comment') == 'add' && empty($INPUT->str('mail'))) echo ' error' ?>"
name="mail" id="discussion__comment_mail" size="50" tabindex="2"
value="<?php echo hsc($INPUT->str('mail')) ?>"/>
</label>
</div>
この部分は丸ごと削除してください。
(<?php ?>で囲んで「/**/」でコメントアウトしても良い)
以上で完了です。
2、合わせてやりたいカスタマイズ
「最近のコメント」も表示しよう。
こちらの記事に書いているので是非挑戦してみてください。