Project

General

Profile

Bug(バグ) #2467

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

Added by Kiwa Sakai over 8 years ago. Updated about 3 years ago.

Status:
Won't fix(対応せず)
Priority:
Normal(通常)
Assignee:
Target version:
Start date:
2011-10-04
Due date:
% Done:

0%

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

Description

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 View (19.8 KB) Kiwa Sakai, 2011-10-04 19:11


Related issues

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

Associated revisions

Revision 8d1b9dc6 (diff)
Added by Yuya Watanabe over 8 years ago

(fixes #2467) modified member object comparison

Revision 7bb202e9 (diff)
Added by Yuya Watanabe over 8 years ago

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

History

#1 Updated by Yuya Watanabe over 8 years ago

メモ

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 Updated by Yuya Watanabe over 8 years ago

  • Description updated (diff)
  • Status changed from New(新規) to Accepted(着手)
  • Assignee set to Yuya Watanabe
  • Target version set to OpenPNE 3.7.0

#3 Updated by wa ta over 8 years ago

  • Status changed from Accepted(着手) to Pending Review(レビュー待ち)
  • % Done changed from 0 to 50

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

#4 Updated by Kousuke Ebihara over 8 years ago

  • Status changed from Pending Review(レビュー待ち) to 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 Updated by wa ta over 8 years ago

  • Status changed from Rejected(差し戻し) to Pending Review(レビュー待ち)

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

#6 Updated by Shouta Kashiwagi about 8 years ago

  • Target version changed from OpenPNE 3.7.0 to 252

#7 Updated by Shouta Kashiwagi about 8 years ago

  • Target version changed from 252 to OpenPNE 3.8.x

#8 Updated by Yuma Sakata over 7 years ago

  • Target version changed from OpenPNE 3.8.x to OpenPNE 3.9.0-old
  • 3.6 で発生するか set to Unknown (未調査)
  • 3.8 で発生するか set to Unknown (未調査)

#9 Updated by Kousuke Ebihara over 7 years ago

  • Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
  • % Done changed from 50 to 70

#11 Updated by isao sano about 3 years ago

  • Status changed from Pending Testing(テスト待ち) to Won't fix(対応せず)
  • % Done changed from 70 to 0

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

Also available in: Atom PDF