![見出し画像](https://assets.st-note.com/production/uploads/images/132775239/rectangle_large_type_2_6b2b35b419e84e98539525107794e2c5.png?width=1200)
PowerCMS X のコメント機能を実装する
PowerCMS X のコメント機能を利用するために必要な流れを書きます。
Members プラグインを有効にして必要な設定をする
環境変数を登録する
use_comment
true
真偽値
スペースの設定画面を開き設定をする
コメントを許可
匿名コメントを許可
Thanks メール
ステータス
コメント機能を利用したいモデルの設定画面を開き「コメントを許可」にチェックを入れて保存する
コメント機能を利用したいモデルのオブジェクトにアクセスすると「コメントを許可」のチェックボックスが作成されているので、チェックを入れて保存する。
以下のビューデータが存在しているか確認する
(Media) Comment Form
(Media) Comments
もしくは
(Website) Comment Form
(Website) Comments
※ 存在していない場合はスペースを作り「Website」もしくは「Media」のテーマを適用してビューデータをコピペで利用したいスペースに移してください。
利用したいビューに以下のコードを貼り込みます。必ず詳細ページを出力するビューに設定しましょう。
<mt:include module="(Media) Comment Form">
もしくは
<mt:include module="(Website) Comment Form">
URLマップのファイル出力はダイナミックに変更します。
対象のモデルを再構築します。
設定は以上です。会員ログイン(Members)すれば、ページにコメント欄が表示されると思いますのでお試しください。
注意点としては、コメント本文は文字数の制限が設定できません。comment モデルの text カラムで「テキスト長」を任意のサイズに変更しても反映されません。カラムタイプを「テキスト」から「テキスト(768)」にすると、大量の文字列を768文字でカットはされますが、コメント画面上でエラーは出ず、コメントの完了画面で初めてカットされたことにユーザは気付くことになります。これではユーザーフレンドリーではありません。
そのため HTML で、<textarea maxlength="768" を設定しつつ、バックエンドはカラムを「テキスト(768)」で設定して、768文字までしか受け付けない設定がベストだと思います。コメントで768文字は結構な分量ですので、かつテキストエリアの下部に「文字数は768文字まで入力可能です」と補足文を入れればよいでしょう。
ただし、コメント欄にプログラムコードを入れるとエスケープ処理がされるので、文字数が増加してしまいます。
例えば、
<mt:iflogin> なら、
<mt:iflogin> という感じに文字数が多くなります。
なかなか厄介な問題で、これはもう多少のバッファを見積もって、<textarea maxlength="500" 程度で設定するしかないかなと思います。
あと、情報分類モデルは何かと便利で使っていますが、情報分類モデルはコメント機能が利用できません。ただし、裏技的にモデルの設定画面で開発者ツールにより input type="hidden" を作り、name="allow_comment" value="1" にして保存すれば情報分類モデルのオブジェクト画面に「コメントを許可」のチェックボックスが作成されます。ただし製品サポート外になるのでご注意ください。