CMSのポテンシャルを引き出す─MODxで作る商用サイト

第18回 MODxとコメント投稿機能

この記事を読むのに必要な時間:およそ 10 分

英語表示を日本語表示にする

Quipスニペットには残念ながら日本語対応のLexicon,つまり語彙ファイル(馴染みが薄いので,以後「翻訳ファイル」とします)が含まれていません。MODxの一ユーザである筆者としても,この辺りの国際化対応にはぜひ貢献したいところではあるのですが,継続的なメンテナンスを考えると,なかなかコミュニティに貢献できないのが現状です。

今回は,翻訳ファイル全体を日本語化するのは大変ですので,⁠ユーザの目に見える部分」のみを日本語表示にしてみます。翻訳ファイルは/var/www/html/core/components/quip/lexicon以下に保存されていますので,enディレクトリをjaという名前にコピーして,各ファイルの修正を行っていきましょう。

英語の翻訳ファイルをベースに編集を行う

% cd /var/www/html/core/components/quip/lexicon
% cp -r en ja
% cd ja

ここで,翻訳したいキーワードを検索し,文字列を置き換えていきます。たとえば,現在ブラウザで表示されている「Add a new comment」という文字列を次のようにgrepしてみると,default.inc.phpというファイルを修正すれば良いことがわかります。

英語の文字列をgrepして翻訳箇所を探していく

% grep 'Add a new comment' * 
default.inc.php:$_lang['quip.comment_add_new'] = 'Add a new comment:';

結果的に,筆者の環境では次のような修正を行ってみました。ファイルを修正した後は,管理画面からキャッシュをクリアすることを忘れないでください。

リスト2 default.inc.php内での変更箇所

$_lang['quip.allowed_tags'] = '使用可能なタグ: [[+tags]]'; 
$_lang['quip.comment_add_new'] = '新規コメントを追加:'; 
$_lang['quip.comments'] = 'コメント'; 
$_lang['quip.email'] = 'メールアドレス'; 
$_lang['quip.email_err_ns'] = 'メールアドレスを入力してください。'; 
$_lang['quip.message_err_ns'] = 'メッセージを入力してください。'; 
$_lang['quip.name'] = 'お名前'; 
$_lang['quip.name_err_ns'] = '名前を入力してください。'; 
$_lang['quip.notify_me'] = '新規リプライを通知する'; 
$_lang['quip.post'] = '投稿'; 
$_lang['quip.preview'] = 'プレビュー'; 
$_lang['quip.website'] = 'ウェブサイト';

以上の修正により,コメント画面がずいぶん自然な感じになるのですが,これだけだと日付の表示が

  • 「Oct 12, 2011 at 06:30 PM」

のように,日本人には不自然なフォーマットのままですので,見慣れたYYYY/MM/DD hh:mm:ssのようなフォーマットに修正してみます。こちらはスニペットコール時に指定することが可能です。

リスト3 日時のフォーマットを変更

[[!Quip? &thread=`[[*alias]]` &threading=`0` &dateFormat=`%Y/%m/%d %H:%M:%S`]] 
[[!QuipReply? &thread=`[[*alias]]`]]

日本語表示が可能になったところで,それ以外の設定を見ていきましょう。

モデレート機能

モデレート,またはモデレーション機能とは,コメント投稿者がコメントをポストした後,管理者が内容をチェックして投稿の可否を決定できる機能です。当然コメントの表示はリアルタイムではなくなりますが,いたずらなど不必要なコメントをフィルタするのに役立ちます。

Quipスニペットでモデレート機能を有効にするためには,投稿用である QuipReplyスニペット側で次のようにパラメータを設定します。

[[!QuipReply? &thread=`[[*alias]]` &moderate=`1`]]

この設定により,投稿後の画面は次のようになり,管理者には投稿内容がメールで通知され,コメントは「コンポーネント」⁠⁠Quip」より管理することができるようになります。

図3 モデレート機能が有効な場合の投稿

図3 モデレート機能が有効な場合の投稿

図4 管理画面でコメントを管理

図4 管理画面でコメントを管理

おっと,機能を有効にしたことで,新たな英語メッセージが表示されるようになってしまいました。さらには,モデレート機能を用いることで,管理者や投稿者にメール送信が行われるようになるのですが,当然それらの内容も英語の状態になってしまいますので,必要に応じて以後紹介する翻訳ファイルを用いてください。

スレッド表示

スレッド機能を有効にすれば,特定のコメントに対してコメントができるようになります。商用サイトでの用途としては,顧客からの質問に対して個別に回答を付与できるのがメリットでしょうか。

この機能を有効にするためには,これまでと異なり「スレッドに返信する」ための新規リソースが必要になります。

表1 スレッド返信用リソースの作成

タイトルスレッドに返信
公開するチェック
エイリアスreply-to-thread
メニューに表示しないチェック
コンテンツ<h2>スレッドに返信する</h2>
[[!Quip? &dateFormat=`%Y/%m/%d %H:%M:%S`]]
<br />
[[!QuipReply]]

次に,各商品ページなどに設置するスニペットの定義は次のようにします。&replyResourceIdというパラメータでは,先ほどの返信用リソースIDを指定してください。

<p>[[!Quip? &thread=`[[*alias]]` &threading=`0` &dateFormat=`%Y/%m/%d %H:%M:%S` &replyResourceId=`18`]] </p>
<p>[[!QuipReply? &thread=`[[*alias]]` &moderate=`1`]]</p>

なお,スレッド機能を有効にすることで,⁠Reply」という新たな英語の表示が行われてしまいますので,以下略…(笑)⁠

著者プロフィール

中満英生(なかみつひでお)

大学時代に出会ったSolarisがきっかけでUNIXの世界へ。その後ホスティングプロバイダ,データセンターで実務経験を積む傍ら,雑誌記事の執筆や技術セミナーの講師を務める。サーバ設定の他,セキュリティに関する著作や技術者エッセイも執筆経験あり。

コメント

コメントの記入