操作
Bug(バグ) #4431
完了pc_backend.php/member/invite にてサーバエラーが発生する
開始日:
2020-04-02
期日:
進捗率:
100%
予定工数:
(合計: 0:00時間)
3.6 で発生するか:
Unknown (未調査)
3.8 で発生するか:
No (いいえ)
説明
Overview (現象)¶
pc_backend.php/member/invite にアクセスすると以下のエラーが発生する。
Fatal error: Uncaught Error: Call to a member function pluralize() on null in (snip)/lib/form/doctrine/MemberConfigForm.class.php:106 Stack trace: #0 (snip)/lib/form/doctrine/MemberConfigForm.class.php(28): MemberConfigForm->setMemberConfigSettings() #1 (snip)/lib/form/MemberConfigForm/MemberConfigPcAddressForm.class.php(24): MemberConfigForm->__construct(NULL, Array, NULL) #2 (snip)/apps/pc_backend/modules/member/actions/actions.class.php(101): MemberConfigPcAddressForm->__construct(NULL, Array) #3 (snip)/lib/vendor/symfony/lib/action/sfActions.class.php(60): memberActions->executeInvite(Object(opWebRequest)) #4 (snip)/lib/vendor/symfony/lib/filter/sfExecutionFilter.class.php(92): sfActions->execute(Object(opWebRequest)) #5 (snip)/l in (snip)/lib/form/doctrine/MemberConfigForm.class.php on line 106
Causes (原因)¶
$termMyFriend = Doctrine::getTable('SnsTerm')->get('my_friend');
にて、sns_term.application = 'pc_backend' & sns_term.name = 'my_friend' のレコードが存在しないため。
Way to fix (修正内容)¶
https://github.com/nishizoe/OpenPNE3/blob/OpenPNE-3.8.10/lib/i18n/opI18N.class.php#L23-L30
$this->terms = Doctrine::getTable('SnsTerm');
$application = sfConfig::get('sf_app');
if ('pc_backend' == $application)
{
$application = 'pc_frontend';
}
$this->terms = Doctrine::getTable('SnsTerm');
$this->terms->configure($this->culture, $application);
と同様に、configure を行う
kaoru n さんが4年以上前に更新
- ステータス を New(新規) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
https://github.com/openpne/OpenPNE3/pull/601
にてプルリクエストしました
Rimpei Ogawa さんが4年以上前に更新
- ステータス を Pending Review(レビュー待ち) から Rejected(差し戻し) に変更
$i18n は opI18N のインスタンスだと思いますので、$terms を作成する処理自体が不要ではないかと思いました。
--- a/lib/form/doctrine/MemberConfigForm.class.php +++ b/lib/form/doctrine/MemberConfigForm.class.php @@ -102,14 +102,12 @@ class MemberConfigForm extends BaseForm } $i18n = sfContext::getInstance()->getI18N(); - $termMyFriend = Doctrine::getTable('SnsTerm')->get('my_friend'); - $terms = array('%my_friend%' => $termMyFriend->pluralize()->titleize()); $publicFlagChoiceNames = ['age_public_flag', 'profile_page_public_flag']; foreach ($publicFlagChoiceNames as $name) { foreach ($configs[$name]['Choices'] as $key => $publicFlag) { - $configs[$name]['Choices'][$key] = $i18n->__($publicFlag, $terms, 'publicFlags'); + $configs[$name]['Choices'][$key] = $i18n->__($publicFlag, array(), 'publicFlags'); } }
Rimpei Ogawa さんが4年以上前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
操作