Bug(バグ) #2659
完了コミュニティトピック詳細で退会メンバーのニックネームに「非SNSユーザー表示名設定」が反映されない
100%
説明
概要¶
トピック詳細 (/communityTopic/xxxx )にて、トピックを立てたメンバーが退会した場合、ニックネームに「非SNSユーザー表示名設定」が反映されず、ニックネームが空欄になる
再現手順¶
1. SNS設定(/pc_backend.php/sns/config )にて、「非SNSユーザー表示名設定」を「(退会したメンバー)」に設定する
2. メンバーAがトピックを作成する
3. メンバーAが退会する
4. 別のメンバーで手順2 でつくったトピック (/communityTopic/xxx )を確認する
5. メンバーAのニックネームが「(退会したメンバー)」ではなく、非表示になっている
発生バージョン¶
OpenPNE3.7.0
Yuma Sakata さんがほぼ13年前に更新
- 3.4 で発生するか を Yes (はい) から No (いいえ) に変更
再現確認できました。
Environment (再現バージョン)¶
OpenPNE3.6.1
Way to repro (再現手順)¶
1. 管理画面SNS設定ページ(/pc_backend.php/sns/config)にて、「非SNSユーザー表示名設定」を「-」に設定する
2. メンバーAでコミュニティトピックを作成する
3. メンバーAを退会させる
4. 別のメンバーで手順2 でつくったトピック(/communityTopic/xx)を確認する
5. メンバーAのニックネームが「-」ではなく、「/member/」と表示される
Way to fix (修正内容)¶
コミュニティトピック詳細で退会メンバー名に「非SNSユーザー表示名設定」が反映されるように修正お願いします。
備考¶
コミュニティイベントでも同様の現象が確認できましたので修正お願いします。
3.4系ではSNS設定ページにて非SNSユーザー表示名設定項目がないため、再現確認不可です。
Yuya Watanabe さんがほぼ13年前に更新
- 題名 を サークルトピック詳細で退会メンバーのニックネームに「非SNSユーザー表示名設定」が反映されない から コミュニティトピック詳細で退会メンバーのニックネームに「非SNSユーザー表示名設定」が反映されない に変更
- 説明 を更新 (差分)
Yuya Watanabe さんがほぼ13年前に更新
- プロジェクト を OpenPNE 3 から opCommunityTopicPlugin に変更
- 対象バージョン を削除 (
OpenPNE 3.7.0)
Yuya Watanabe さんがほぼ13年前に更新
- ステータス を New(新規) から Accepted(着手) に変更
- 担当者 を Yuya Watanabe にセット
Yuya Watanabe さんがほぼ13年前に更新
修正内容¶
PC版に関しては以下のように修正したが,携帯版の場合,そもそも退会者の部分が空白である状態であったため別の修正方針が必要であると思われる.
diff --git a/apps/pc_frontend/modules/communityEvent/templates/showSuccess.php b/apps/pc_frontend/modules/communityEvent/templates/showSuccess.php index c681251..367a736 100644 --- a/apps/pc_frontend/modules/communityEvent/templates/showSuccess.php +++ b/apps/pc_frontend/modules/communityEvent/templates/showSuccess.php @@ -16,7 +16,7 @@ if (count($images)) $body .= nl2br($communityEvent->getBody()); $list = array( - 'Writer' => link_to($communityEvent->getMember()->getName(), 'member/profile?id='.$communityEvent->getMember()->getId()), + 'Writer' => op_link_to_member($communityEvent->getMember()), 'Name' => $communityEvent->getName(), 'Open date' => op_format_date($communityEvent->getOpenDate(), 'D').($communityEvent->getOpenDate() ? ' '.$communityEvent->getOpenDateComment() : ''), 'Area' => op_url_cmd($communityEvent->getArea()), diff --git a/apps/pc_frontend/modules/communityEventComment/templates/_list.php b/apps/pc_frontend/modules/communityEventComment/templates/_list.php index a5c064f..8c37d61 100644 --- a/apps/pc_frontend/modules/communityEventComment/templates/_list.php +++ b/apps/pc_frontend/modules/communityEventComment/templates/_list.php @@ -15,7 +15,7 @@ <dd> <div class="title"> <p class="heading"><strong><?php echo $comment->getNumber() ?></strong>: -<?php if ($_member = $comment->getMember()) : ?> <?php echo link_to($_member->getName(), 'member/profile?id='.$_member->getId()) ?><?php endif; ?> +<?php if ($_member = $comment->getMember()) : ?> <?php echo op_link_to_member($_member) ?><?php endif; ?> <?php if ($comment->isDeletable($sf_user->getMemberId())): ?> <?php echo link_to(__('Delete'), '@communityEvent_comment_delete_confirm?id='.$comment->getId()) ?> <?php endif; ?> diff --git a/apps/pc_frontend/modules/communityTopic/templates/showSuccess.php b/apps/pc_frontend/modules/communityTopic/templates/showSuccess.php index 180be8a..9d8f00c 100644 --- a/apps/pc_frontend/modules/communityTopic/templates/showSuccess.php +++ b/apps/pc_frontend/modules/communityTopic/templates/showSuccess.php @@ -12,7 +12,7 @@ <p><?php echo $communityTopic->getName() ?></p> </div> <div class="name"> -<p><?php if ($_member = $communityTopic->getMember()) : ?><?php echo link_to($_member->getName(), 'member/profile?id='.$_member->getId()) ?><?php endif; ?></p> +<p><?php if ($_member = $communityTopic->getMember()) : ?><?php echo op_link_to_member($_member) ?><?php endif; ?></p>^M </div> <div class="body"> <?php if (count($images = $communityTopic->getImages()) != 0): ?> diff --git a/apps/pc_frontend/modules/communityTopicComment/templates/_list.php b/apps/pc_frontend/modules/communityTopicComment/templates/_list.php index f7a5ddf..e2a1f88 100644 --- a/apps/pc_frontend/modules/communityTopicComment/templates/_list.php +++ b/apps/pc_frontend/modules/communityTopicComment/templates/_list.php @@ -14,7 +14,7 @@ <dd> <div class="title"> <p class="heading"><strong><?php echo $comment->getNumber() ?></strong>: -<?php if ($_member = $comment->getMember()) : ?> <?php echo link_to($_member->getName(), 'member/profile?id='.$_member->getId()) ?><?php endif; ?> +<?php if ($_member = $comment->getMember()) : ?> <?php echo op_link_to_member($_member) ?><?php endif; ?>^M <?php if ($comment->isDeletable($sf_user->getMemberId())): ?> <?php echo link_to(__('Delete'), '@communityTopic_comment_delete_confirm?id='.$comment->getId()) ?> <?php endif; ?>
Yuya Watanabe さんがほぼ13年前に更新
携帯版で退会者の名前が表示されなかった問題の原因¶
携帯版では下記URL先のように修正され,表示しない実装になっていた.
https://trac.openpne.jp/ticket/4167 「携帯版のトピック・イベントの親記事、コメント一覧で退会したメンバーのニックネームがURLになっている」
今回の修正で用いている op_link_to_member() は #840 のチケットで実装されていて,これは 3.5.2 からとなっている.
そのため, 今回の対応として https://trac.openpne.jp/ticket/4167 の修正内容を削除することで解決できると思われる.
別の問題について¶
本チケットを修正していて気づいたが,携帯版でイベントとトピックでコメントのリンク削除の位置が違う.
Yuya Watanabe さんがほぼ13年前に更新
note-8 と note-9 の修正方法を用いると 対象バージョンが OpenPNE 3.6 以上でなければならなくなり, plugins.openpne.jp などでサポートとしている 3.4 が動かなくなるという点に注意しなければならないため,修正内容を検討する必要がある.
とりあえず下記に携帯版の修正内容を示す.
diff --git a/apps/mobile_frontend/modules/communityEvent/templates/showSuccess.php b/apps/mobile_frontend/modules/communityEvent/templates/showSuccess.php index d766776..e254170 100644 --- a/apps/mobile_frontend/modules/communityEvent/templates/showSuccess.php +++ b/apps/mobile_frontend/modules/communityEvent/templates/showSuccess.php @@ -3,18 +3,13 @@ <?php echo op_within_page_link() ?> <?php $list = array( - 'Writer' => link_to($communityEvent->getMember()->getName(), 'member/profile?id='.$communityEvent->getMember()->getId()), + 'Writer' => op_link_to_member($communityEvent->getMember()), 'Open date' => op_format_date($communityEvent->getOpenDate(), 'D').($communityEvent->getOpenDate() ? ' '.$communityEvent->getOpenDateComment() : ''), 'Area' => $communityEvent->getArea(), 'Capacity' => $communityEvent->getCapacity() ? $communityEvent->getCapacity() : __('Limitless'), 'Count of Member' => __('%1% persons', array('%1%' => $communityEvent->countCommunityEventMembers())), ); -if (!$communityEvent->getMember() || !$communityEvent->getMember()->getName()) -{ - $list['Writer'] = ''; -} - if ($communityEvent->countCommunityEventMembers()) { $list['Count of Member'] .= '<br>'.link_to(__('See Member List'), '@communityEvent_memberList?id='.$communityEvent->getId()); diff --git a/apps/mobile_frontend/modules/communityEventComment/templates/_comment.php b/apps/mobile_frontend/modules/communityEventComment/templates/_comment.php index fd01c4c..cca5798 100644 --- a/apps/mobile_frontend/modules/communityEventComment/templates/_comment.php +++ b/apps/mobile_frontend/modules/communityEventComment/templates/_comment.php @@ -1,9 +1,7 @@ <?php $comment->state(Doctrine_RECORD::STATE_CLEAN); ?> <?php echo op_within_page_link() ?> [<?php printf('%03d', $comment->getNumber()) ?>]<?php echo op_format_date($comment->getCreatedAt(), 'MM/dd HH:mm') ?><br> -<?php if ($comment->getMember() && $comment->getMember()->getName()): ?> -<?php echo link_to($comment->getMember()->getName(), 'member/profile?id='.$comment->getMemberId()) ?> -<?php endif; ?> +<?php echo op_link_to_member($comment->getMember()) ?> <?php if ($comment->isDeletable($sf_user->getMemberId())): ?> [<?php echo link_to(__('Delete'), '@communityEvent_comment_delete_confirm?id='.$comment->getId()) ?>] <?php endif; ?><br> diff --git a/apps/mobile_frontend/modules/communityTopic/templates/showSuccess.php b/apps/mobile_frontend/modules/communityTopic/templates/showSuccess.php index 2066c59..8bc3283 100644 --- a/apps/mobile_frontend/modules/communityTopic/templates/showSuccess.php +++ b/apps/mobile_frontend/modules/communityTopic/templates/showSuccess.php @@ -5,9 +5,7 @@ <?php echo op_format_date($communityTopic->getCreatedAt(), 'MM/dd HH:mm') ?> <?php if ($communityTopic->getMemberId() === $sf_user->getMemberId()): ?> <?php endif; ?><br> -<?php if ($communityTopic->getMember() && $communityTopic->getMember()->getName()): ?> -<?php echo link_to($communityTopic->getMember()->getName(), 'member/profile?id='.$communityTopic->getMember()->getId()) ?> -<?php endif; ?> +<?php echo op_link_to_member($communityTopic->getMember()) ?>^M <?php if ($communityTopic->isEditable($sf_user->getMemberId())): ?> [<?php echo link_to(__('Edit'), '@communityTopic_edit?id='.$communityTopic->getId()) ?>] <?php endif ?> diff --git a/apps/mobile_frontend/modules/communityTopicComment/templates/_comment.php b/apps/mobile_frontend/modules/communityTopicComment/templates/_comment.php index a6250a8..9822d12 100644 --- a/apps/mobile_frontend/modules/communityTopicComment/templates/_comment.php +++ b/apps/mobile_frontend/modules/communityTopicComment/templates/_comment.php @@ -4,9 +4,7 @@ <?php if ($comment->isDeletable($sf_user->getMemberId())): ?> [<?php echo link_to(__('Delete'), '@communityTopic_comment_delete_confirm?id='.$comment->getId()) ?>] <?php endif; ?><br> -<?php if ($comment->getMember() && $comment->getMember()->getName()): ?> -<?php echo link_to($comment->getMember()->getName(), 'member/profile?id='.$comment->getMemberId()) ?><br> -<?php endif; ?> +<?php echo op_link_to_member($comment->getMember()) ?><br>^M <?php echo nl2br($comment->getBody()) ?> <?php if (count($comment->getImages())): ?>
Yuya Watanabe さんがほぼ13年前に更新
- ステータス を Accepted(着手) から Pending Fixing(修正待ち) に変更
修正方法を検討するまでステータスを「Pending Fixing」にしておきます.
Minoru Takai さんがほぼ13年前に更新
note-10 の懸念について opMessagePlugin で対応しているので参考までに示しておきます。 https://redmine.openpne.jp/issues/2366
Yuya Watanabe さんがほぼ13年前に更新
- ステータス を Pending Fixing(修正待ち) から Accepted(着手) に変更
note-12 で提示された opMesssagePlugin と同様の対処を行います.
op_community_topic_link_to_member()ヘルパ を作成し,このヘルパの中で OpenPNE のバージョン差異を吸収する方針とします.
Yuya Watanabe さんがほぼ13年前に更新
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
下記コミット群で対応しました.
https://github.com/tejimaya/opCommunityTopicPlugin/commit/42dd9abeb7ec318d8cdcba5555682f61d62e687e
https://github.com/tejimaya/opCommunityTopicPlugin/commit/76eab76d692da8cd34220f7620f72c5875cebf30
https://github.com/tejimaya/opCommunityTopicPlugin/commit/df7b1ca3f77c19e8faba7bef532b8c2b1ddd16c2
Kousuke Ebihara さんがほぼ13年前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更