#3709 closed enhancement (fixed)
日記コメント停止機能
Reported by: | toraneko | Owned by: | toraneko |
---|---|---|---|
Priority: | minor | Milestone: | OpenPNE2.13.7 |
Component: | 指定しない | Version: | |
Keywords: | Cc: |
Description (last modified by )
■概要
- 日記作成画面で[コメント可/コメント不可]にチェック、デフォルトはコメント可
- 日記編集画面で[コメント可/コメント不可]を変更できる。
- 管理画面でSNS毎にこの機能を[使用する/使用しない]を選択できる、デフォルトは使わない。
http://sns.openpne.jp/?m=pc&a=page_c_topic_detail&target_c_commu_topic_id=3937
■仕様
管理者画面のSNS設定によって日記のコメントが禁止できる運用を行えるようにする。 日記のコメントを禁止する運用で、日記作成時または編集時にコメントの禁止するか選択できるようにする。
(1)管理者がコメント禁止機能を無効に設定 ・従来通りの運用 (2)管理者がコメント禁止機能を有効に設定 ・日記作成・編集時にコメント許可「する/しない」のチェックボックス表示される ・新規日記作成時にコメント禁止設定が可能 ・コメント許可しないで作成した日記・・・コメント書き込み欄が表示されない ・コメント許可するで作成した日記 ・・・コメント書き込み欄が表示される ・日記編集時にコメント禁止設定が可能 ・コメント許可しないで作成した日記をコメント許可するに変更・・・コメント書き込み欄が表示される ・コメント許可するで作成した日記をコメント許可しないに変更・・・コメント書き込み欄が表示されない(変更前のコメントは表示される) (3)管理者がコメント禁止機能を有効から無効に設定 ・日記作成・編集時にコメント許可「する/しない」のチェックボックス表示されない(以前の日記も変更不可) ・コメント禁止機能有効時にコメント許可しないに設定した日記・・・コメント書き込み欄が表示されない ・コメント禁止機能有効時にコメント許可するに設定した日記 ・・・コメント書き込み欄が表示される(従来どおり) (4)管理者がコメント禁止機能を無効から有効に設定(以前有効にしていた場合) ・日記作成・編集時にコメント許可「する/しない」のチェックボックス表示される(以前の日記も変更可) ・以前のコメント禁止機能有効時にコメント許可しないに設定した日記・・・コメント書き込み欄が表示されない ・以前のコメント禁止機能有効時にコメント許可するに設定した日記 ・・・コメント書き込み欄が表示される(従来どおり) (補足) コメント許可しないに設定した日記は、コメントメール投稿も不可にする。
■修正内容
(1) SNS設定の定義 以下の定義を追加 定義名: USE_DIARY_COMMENT デフォルト: false (2) DB修正内容 日記テーブル[c_diary]に、以下のフィールドを追加する is_comment_input = 0 : コメントを許可しない 1 : コメントを許可する デフォルト ・・・ 1:コメントを許可する (3) SQL文 // update ALTER TABLE c_diary ADD COLUMN is_comment_input tinyint(1) NOT NULL default 1; (4) 管理画面 ・SNS設定ページに、「日記コメント禁止機能使用設定」の「使用する/使用しない」の項目追加 (5) PC・携帯画面 ・コメント禁止機能が有効な場合、日記作成または編集ページでコメント許可「する/しない」のチェックボックスを表示する ・コメント「許可しない」にチェックして日記作成または編集した場合、日記詳細ページのコメント書き込み欄を表示しない ・コメントありの日記をコメント「許可しない」に設定した場合は、設定前のコメントは表示し、以降のコメント書き込み不可にする ・管理者がコメント禁止機能を有効から無効にした場合は、変更以前のコメント許可「する/しない」設定は有効で 以降のコメント許可「する/しない」設定の変更を不可にする (6) コメントメール投稿 ・コメント「許可しない」にチェックして日記作成または編集した日記にコメントメール投稿した場合、 エラーにし、エラーメールを返信する。 (7) 備考 今回追加したフラグ、"is_comment_input"はコメント「許可する/許可しない」の設定のみに使用されます。 コメント数1000件超えの時に使用される既存のフラグ、"is_writable_comment"の値は今回の修正では影響されません。 ただし、フラグのチェックは"is_comment_input"の設定が優先されます。 そのため、コメント数1000件超えた日記のメッセージは下記のようになります。 ・コメント許可しないに設定した場合: コメント許可しない時のメッセージが表示されます。 ・コメント許可するに設定した場合 : コメント数1000件超えのメッセージが表示されます。 (8) ソース OpenPNE2.13.6ベースで作成
■関連情報
- #3826:日記コメント停止機能のコード改善
Change History (23)
comment:1 Changed 14 years ago by
comment:2 Changed 14 years ago by
Description: | modified (diff) |
---|
comment:3 Changed 14 years ago by
Description: | modified (diff) |
---|
comment:4 Changed 14 years ago by
Description: | modified (diff) |
---|
comment:5 Changed 14 years ago by
Description: | modified (diff) |
---|
comment:9 Changed 14 years ago by
Keywords: | 差し戻し added; 確認中 removed |
---|
バグ報告
「日記コメント禁止機能使用設定」を「使用しない」にした状態で日記を作成するとコメントできない日記になります
仕様指摘
admin_page_edit_c_admin_configの「日記コメント禁止機能使用設定」にある説明文の「※」は不要ではないでしょうか?
「日記カテゴリ機能使用設定」に合わせたのかもしれないですが、「日記カテゴリ機能使用設定」の「※」も同様に不要だと思います。「日記カテゴリ機能使用設定」の「※」については対応するとしたら別チケットで行いましょう。
comment:12 Changed 14 years ago by
Keywords: | 差し戻し added; 確認中 removed |
---|
- ポスグレにはupdate文が必要。データがないので3番目のSQLでエラーが起こる
setup/sql/postgres74/update/update09-for2.13.7-alter-c_diary-add-column-is_comment.sql
comment:13 Changed 14 years ago by
」で記述していることが多い |
- 今回追加した定数「USE_DIARY_COMMENT」に「OPENPNE_」をつけてください
- デフォルトは「true」です。管理画面設定では「0」・「1」を設定してください
169 'USE_DIARY_COMMENT' => false,
- 以下のように修正してください
- 「$is_comment_input = "1"」を「$is_comment_input = 1」にする
- 「intval($is_comment_input),」をboolキャストに変更
- 引数指定の記述の折り返しを無くす(1行が長くなりますが前後にある関数を見たところ許容範囲内だと思われます)
983 function db_diary_insert_c_diary($c_member_id, $subject, $body, $public_flag, 984 $is_comment_input = "1") 985 { 986 //function cacheの削除 987 pne_cache_drop('db_diary_get_c_diary_list4c_member_id', $c_member_id, 5); 988 989 $data = array( 990 'c_member_id' => intval($c_member_id), 991 'subject' => $subject, 992 'body' => $body, 993 'public_flag' => util_cast_public_flag_diary($public_flag), 994 'r_datetime' => db_now(), 995 'r_date' => db_now(), 996 'u_datetime' => db_now(), 997 'is_checked' => 1, 998 'image_filename_1' => '', 999 'image_filename_2' => '', 1000 'image_filename_3' => '', 1001 'is_comment_input' => intval($is_comment_input), 1002 ); 1003 return db_insert('c_diary', $data); 1004 }
- boolキャストの方がいいと思います
webapp/lib/db/diary.php 1021 'is_comment_input' => intval($is_comment_input),
- シンプルに「!$c_diaryis_comment_input?」としてもかまいません
webapp/lib/mail/sns.php 518 if ($c_diary['is_comment_input'] == "0") {
- 「この」の後の「、」が不要。「現在、」も必要かどうか要検討。
webapp/lib/mail/sns.php 519 $this->error_mail('現在、この、' . WORD_DIARY . 'にはコメントできません。');
- ここで設定するといきなり日記全体のコメント書込みが禁止されると誤解される可能性があります。何らかの補足説明があっても良いのではないでしょうか?
m=admin&a=page_edit_c_admin_config ※日記のコメント禁止機能を有効にするかどうかを設定します
comment:14 Changed 14 years ago by
- 日記新規登録時、エラーを出した時に値が保持されない(携帯・PC共に)
- シンプルに「({if $target_c_diary.is_comment_input})」としても良い(PC版も同様)
webapp/modules/ktai/templates/h_diary_edit.tpl 48 <input type="checkbox" name="is_comment_input" value="1"({if $target_c_diary.is_comment_input == "1"}) checked="checked"({/if})>許可する<br>
- webapp/modules/pc/templates/fh_diary.tpl
- ページャの「<<」・「>>」が全角になっています
- 他のテンプレートにも同様の誤表記があるようです
- コメント書込み不可の時に以下の表示は必要でしょうか?
<p>現在、この({$WORD_DIARY_HALF})にはコメントできません。</p>
- シンプルに「({if $form_val.is_comment_input})」としても良い
webapp/modules/pc/templates/h_diary_add_confirm.tpl 59 ({if $form_val.is_comment_input == "1"})
- webapp/modules/pc/templates/h_diary_edit_confirm.tpl も同様
- 確認ページのヴァリデーションで「is_comment_input」を「default = "0"」にしています。「default = "1"」で統一しない意図が良くわかりません。
- 下記ファイルのみ [is_comment_input] にデフォルト値を設定していません。何故でしょう?
webapp/modules/pc/validate/page/h_diary_edit.ini
comment:15 Changed 14 years ago by
ポスグレにはupdate文が必要。データがないので3番目のSQLでエラーが起こる
修正してください。
今回追加した定数「USE_DIARY_COMMENT」に「OPENPNE_」をつけてください
修正してください。
デフォルトは「true」です。管理画面設定では「0」・「1」を設定してください
修正してください。
日記新規登録時、エラーを出した時に値が保持されない(携帯・PC共に)
2.12でも起こりうる現象なので別チケットで対応します。
#3784:携帯版でフォームの内容に不備がありリダイレクトされた場合、フォームに編集内容が保持されない場所がある
その他の指摘
致命的なものではないので次バージョンで対応しましょう。
#3826:日記コメント停止機能のコード改善
comment:16 Changed 14 years ago by
Owner: | changed from nobody to kiwa |
---|---|
Status: | new → assigned |
修正やります。
comment:17 Changed 14 years ago by
ポスグレにはupdate文が必要。データがないので3番目のSQLでエラーが起こる
r11312にてupdate文を追加しました。
今回追加した定数「USE_DIARY_COMMENT」に「OPENPNE_」をつけてください
r11311にて対応しました。
デフォルトは「true」です。管理画面設定では「0」・「1」を設定してください
未対応です。
comment:18 Changed 14 years ago by
Keywords: | 確認中 added; 差し戻し removed |
---|
デフォルトは「true」です。管理画面設定では「0」・「1」を設定してください
r11313でfalse→0にしました。
OPENPNE_USE_DIARY_COMMENTは「日記コメント使用するか否か」の項目ではなく「日記コメント停止機能を使用するか否か」の設定なので、デフォルトはfalseでOKです。定数名をわかりやすく改善するのは他のチケットで行いましょう。
- #3827:日記コメント停止機能の設定に使用している定数名をわかりやすくする
comment:19 Changed 14 years ago by
Keywords: | テスト待ち added; 確認中 removed |
---|
comment:20 Changed 14 years ago by
Keywords: | テスト待ち removed |
---|---|
Owner: | changed from kiwa to toraneko |
Status: | assigned → new |
テスト完了。 問題なし。
comment:21 Changed 14 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:23 Changed 14 years ago by
Description: | modified (diff) |
---|
r10959で一旦コミットしました。 当初、追加カラムを"is_write_comment"としていたのですが、コメント数1000件越えのケースで似たような変数"is_writable_comment"があり、混乱するので別の名前にしましたが、いまいちピンと来ていません。 アドバイスお願いします。