プロジェクト

全般

プロフィール

Bug(バグ) #2467

携帯版プロフィール確認画面からプロフィール編集へ飛ぶリンクが表示されない

Kiwa Sakai12年以上前に追加. ほぼ7年前に更新.

ステータス:
Won't fix(対応せず)
優先度:
Normal(通常)
担当者:
対象バージョン:
開始日:
2011-10-04
期日:
進捗率:

0%

3.6 で発生するか:
Unknown (未調査)
3.8 で発生するか:
Unknown (未調査)

説明

Overview (現象)

携帯版プロフィール確認画面(/member/profile)にて、ページ上部に表示されるプロフィール変更へのメッセージが表示されない

表示されるべきメッセージ
他のメンバーから見たあなたのページはこのようになります。
プロフィールを変更する場合は「プロフィール変更」よりおこなえます。
現象確認バージョン

OpenPNE 3.6RC2
OpenPNE 3.7.0-dev (master)

Causes (原因)

下記部分4行目で同じメンバであってもオブジェクトが違うため等しいとならない.

apps/mobile_frontend/modules/member/templates/profileSuccess.php

  1 <?php op_mobile_page_title($member->getName()) ?>
  2 <?php $culture = sfCultureInfo::getInstance($sf_user->getCulture()); ?>
  3 
  4 <?php if ($member == $sf_user->getMember()) : ?>
  5 <font color="<?php echo $op_color["core_color_22"] ?>">
  6 <?php echo __('This is your page other member see.') ?><br>
  7 <?php echo __('If you edit profile, access %1%.', array('%1%' => link_to('「'. __('Edit profile') .'」', '@member_editProfile'))) ?>
  8 </font>
  9 <?php endif; ?>
 10 

Way to fix (修正内容)

$memberオブジェクトごとの比較ではなくidを用いて比較を行う.

mobile_frontend-member-profile02.png 表示 (19.8 KB) Kiwa Sakai, 2011-10-04 19:11


関連するチケット

関連している OpenPNE 3 - Backport(バックポート) #3228: 携帯版プロフィール確認画面からプロフィール編集へ飛ぶリンクが表示されない Fixed(完了) 2011-10-04
関連している OpenPNE 3 - Backport(バックポート) #3229: 携帯版プロフィール確認画面からプロフィール編集へ飛ぶリンクが表示されない Fixed(完了) 2011-10-04

関係しているリビジョン

リビジョン 8d1b9dc6 (差分)
Yuya Watanabe12年以上前に追加

(fixes #2467) modified member object comparison

リビジョン 7bb202e9 (差分)
Yuya Watanabe12年以上前に追加

(fixes #2467) fixed to use MemberRelationship method for member object comparison

履歴

#1 Yuya Watanabe12年以上前に更新

メモ

apps/mobile_frontend/modules/member/templates/profileSuccess.phpには3.4,3.6で違いは無し.

  1 <?php op_mobile_page_title($member->getName()) ?>
  2 <?php $culture = sfCultureInfo::getInstance($sf_user->getCulture()); ?>
  3 
  4 <?php if ($member == $sf_user->getMember()) : ?>
  5 <font color="<?php echo $op_color["core_color_22"] ?>">
  6 <?php echo __('This is your page other member see.') ?><br>
  7 <?php echo __('If you edit profile, access %1%.', array('%1%' => link_to('「'. __('Edit profile') .'」', '@member_editProfile'))) ?>
  8 </font>
  9 <?php endif; ?>
 10 

apps/mobile_frontend/modules/member/actions/actions.class.phpのexecuteProfile()でも3.4と3.6では違いは無し.

 56   public function executeProfile($request)
 57   {
 58     $this->friendsSize = 5;
 59     $this->communitiesSize = 5;
 60 
 61     $gadgets = Doctrine::getTable('Gadget')->retrieveGadgetsByTypesName('mobileProfile');
 62     $this->mobileTopGadgets = $gadgets['mobileProfileTop'];
 63     $this->mobileContentsGadgets = $gadgets['mobileProfileContents'];
 64     $this->mobileBottomGadgets = $gadgets['mobileProfileBottom'];
 65 
 66     return parent::executeProfile($request);
 67   }

以下違いが発生している部分.

3.4のapps/mobile_frontend/modules/member/actions/actions.class.phpが継承しているlib/action/sfOpenPNEMemberAction.class.php

107  /**
108   * Executes profile action
109   *
110   * @param sfRequest $request A request object                                                                    
111   */
112   public function executeProfile($request)                                                                        
113   { 
114     $this->redirectIf($this->relation->isAccessBlocked(), '@error');                                              
115       
116     $id = $this->getRequestParameter('id', $this->getUser()->getMemberId());                                      
117     $this->member = Doctrine::getTable('Member')->find($id);
118                                                                                                                   
119     $this->forward404Unless($this->member, 'Undefined member.');                                                  
120     
121     if (!$this->friendsSize) 
122     {                                                                                                             
123       $this->friendsSize = 9;
124     }
125     $this->friends = $this->member->getFriends($this->friendsSize, true);                                         
126     
127     if (!$this->communitiesSize)                                                                                  
128     {                                                                                                             
129       $this->communitiesSize = 9;                                                                                 
130     }
131     $this->communities = $this->member->getJoinCommunities($this->communitiesSize, true);                         
132     $this->crownIds = Doctrine::getTable('CommunityMember')->getCommunityIdsOfAdminByMemberId($id);               
133 
134     return sfView::SUCCESS;
135   }                                                             

3.6のapps/mobile_frontend/modules/member/actions/actions.class.phpが継承しているlib/action/opMemberAction.class.php

180   public function executeProfile($request)
181   {
182     $id = $this->getRequestParameter('id', $this->getUser()->getMemberId());
183     if ('member_profile_mine' === sfContext::getInstance()->getRouting()->getCurrentRouteName())
184     {
185       $this->forward404Unless($id);
186       $this->member = $this->getUser()->getMember();
187     }
188     else
189     {
190       $this->member = $this->getRoute()->getObject();
191     }
192 
193     if (!$this->friendsSize)
194     {
195       $this->friendsSize = 9;
196     }
197     $this->friends = $this->member->getFriends($this->friendsSize, true);
198 
199     if (!$this->communitiesSize)
200     {
201       $this->communitiesSize = 9;
202     }
203     $this->communities = $this->member->getJoinCommunities($this->communitiesSize, true);
204     $this->crownIds = Doctrine::getTable('CommunityMember')->getCommunityIdsOfAdminByMemberId($id);
205 
206     return sfView::SUCCESS;
207   }

アクションで与えられる$memberの取得方法が違うためprofileSuccess.phpの4行目の$member == $sf_user->gerMember()で違いが発生しているのではないか.

#2 Yuya Watanabe12年以上前に更新

  • 説明 を更新 (diff)
  • ステータスNew(新規) から Accepted(着手) に変更
  • 担当者Yuya Watanabe にセット
  • 対象バージョンOpenPNE 3.7.0 にセット

#3 wa ta12年以上前に更新

  • ステータスAccepted(着手) から Pending Review(レビュー待ち) に変更
  • 進捗率0 から 50 に変更

更新履歴 8d1b9dc64eb6396521b707ee4457274ece2f32d3 で適用されました。

#4 Kousuke Ebihara12年以上前に更新

  • ステータスPending Review(レビュー待ち) から Rejected(差し戻し) に変更

id 同士の比較でも特に問題ありませんが、 PC 版テンプレートでおこなわれているように、 MemberRelationship を利用した判定処理に変更した方がよいと思います。

41 <?php slot('op_top'); ?>
42 <?php if ($relation->isSelf()): ?>
43 <?php ob_start() ?>
44 <p><?php echo __('Other members look your page like this.') ?></p>

#5 wa ta12年以上前に更新

  • ステータスRejected(差し戻し) から Pending Review(レビュー待ち) に変更

更新履歴 7bb202e97721598e443b882aab709575cfe046c5 で適用されました。

#6 Shouta Kashiwagi約12年前に更新

  • 対象バージョンOpenPNE 3.7.0 から 252 に変更

#7 Shouta Kashiwagiほぼ12年前に更新

  • 対象バージョン252 から OpenPNE 3.8.x に変更

#8 Yuma Sakata11年以上前に更新

  • 対象バージョンOpenPNE 3.8.x から OpenPNE 3.9.0-old に変更
  • 3.6 で発生するかUnknown (未調査) にセット
  • 3.8 で発生するかUnknown (未調査) にセット

#9 Kousuke Ebihara11年以上前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

#11 isao sanoほぼ7年前に更新

  • ステータスPending Testing(テスト待ち) から Won't fix(対応せず) に変更
  • 進捗率70 から 0 に変更

OpenPNE 3.8.3 にて対応済みであったため、対応せずとします。

他の形式にエクスポート: Atom PDF