top

コメント記入時に「名前のみ必須」にする

MTでは何故か、コメント記入時に「名前とメールアドレスは必須」に出来ても、「名前のみ必須」には出来ません。そのため、メールアドレスを任意にしたい場合は名前も任意状態になってしまい、時として「名前の書き忘れ」をしてしまう人が出てきてしまいます。過去、そういうことがあまりにも頻繁にあったので、とうとうコメントに名前を記入し忘れた時に「名無しさん」を設定するというカスタマイズまでしてお茶を濁していたほどです(笑)。

ところが、システムファイルを少しいじくるだけで「名前のみ必須」に出来ることが分かりました。

KAZMA's WEB SITE++  MT3.2 名前のみ必須にする

ありがとうございます~、おかげで長年の悩みの種が解決しました。
システムを直接いじるのは本当ならできるだけしたくないのですが、こればっかりは切実に欲しい機能なので、カスタマイズ実行。その代わり、バージョンアップ時に忘れず対応できるように自分のための覚え書きを残しておきます。

1.Comments.pmの変更
MTをインストールしたディレクトリ/lib/MT/App/の中にあるComments.pmの[3.2は267~273行目、3.3は280~286行目]をコメントアウトし、その下に以下の赤字の部分を追加します。

変更前

if ($blog->require_comment_emails() &&
 !($comment->author && $comment->email &&
 is_valid_email($comment->email)))
{
 return $app->handle_error($app->translate(
 "Name and email address are required."));
}

   ↓

変更後(赤字の部分が追加した部分)

#if ($blog->require_comment_emails() &&
# !($comment->author && $comment->email &&
# is_valid_email($comment->email)))
#{
# return $app->handle_error($app->translate(
# "Name and email address are required."));
#}

if ($blog->require_comment_emails() && !($comment->author))
{
return $app->handle_error($app->translate(
"Name is required."));
}

2.ja.pmの変更
MTをインストールしたディレクトリ/lib/MT/L10N/の中にあるja.pmの[3.2は871行目、3.3は872行目]の下に以下の赤字の一文を追加します(上の赤字でない一行が871行目の文字列です)。

'Name and email address are required.' => '名前とメールアドレスの入力は必須です。',
'Name is required.' => '名前の入力は必須です。',

3.管理画面から「メールアドレスの要求」をチェック
設定→「コメント/トラックバック」で「メールアドレスの要求」にチェックを入れます。これで「名前のみ必須」になります。試してみたところ、問題なく動作したのでOK!みたいです。

<2006.8.3追記>
3.3用の記述を追加しました。