プロジェクト

全般

プロフィール

Backport(バックポート) #4111

完了

Bug(バグ) #4104: 管理画面 メール通知テンプレート設定 にてエラーメッセージが翻訳されない

管理画面 メール通知テンプレート設定 にてエラーメッセージが翻訳されない

kaoru n さんがほぼ8年前に追加. 約7年前に更新.

ステータス:
Fixed(完了)
優先度:
Normal(通常)
担当者:
対象バージョン:
開始日:
2017-01-06
期日:
進捗率:

100%

予定工数:

説明

Overview (現象)

#2909 にて、文字数チェックを追加したがエラーメッセージが日本語に翻訳されない。

Causes (原因)

https://github.com/openpne/OpenPNE3/blob/master/apps/pc_backend/modules/mail/actions/actions.class.php#L69

$this->getUser()->setFlash('error', (string)$this->form->getErrorSchema(), false);

https://github.com/openpne/OpenPNE3/blob/master/apps/pc_backend/templates/layout.php#L44
<p id="flashError" class="flash"><?php echo __($sf_user->getFlash('error')) ?></p>

のようにフラッシュメッセージにてエラーメッセージを表示しようとしていた。
フラッシュメッセージにて表示する際に翻訳を試みているが、既に編集された文字列であるため翻訳されない。

Way to fix (修正内容)

下記のように renderGlobalErrors() または renderError() を使用して表示するように変更する。

--- a/apps/pc_backend/modules/mail/actions/actions.class.php
+++ b/apps/pc_backend/modules/mail/actions/actions.class.php
@@ -66,7 +66,6 @@ class mailActions extends sfActions
         $this->getUser()->setFlash('notice', 'Saved.');
         $this->redirect('@mail_template_specified?name='.$this->name);
       }
-      $this->getUser()->setFlash('error', (string)$this->form->getErrorSchema(), false);
     }
   }

--- a/apps/pc_backend/modules/mail/templates/templateSuccess.php
+++ b/apps/pc_backend/modules/mail/templates/templateSuccess.php
@@ -70,10 +70,14 @@
 <h3><?php echo __($rawConfig[$_currentTarget][$_currentKey]['caption']) ?></h3>

 <?php echo $form->renderFormTag(url_for('@mail_template_specified?name='.$name), array('method' => 'post')); ?>
+<?php echo $form->renderGlobalErrors() ?>
 <?php echo $form->renderHiddenFields(); ?>
 <?php if (isset($form['title'])): ?>
-<?php echo $form['title']->renderLabel() ?> <?php echo $form['title']->render(array('class' => 'title')) ?>
+<?php echo $form['title']->renderLabel() ?>
+<?php echo $form['title']->renderError() ?>
+<?php echo $form['title']->render(array('class' => 'title')) ?>
 <?php endif; ?>
+<?php echo $form['template']->renderError() ?>
 <?php echo $form['template']->render(array('rows' => 30, 'cols' => 72)) ?>

 <input type="submit" value="<?php echo __('Save') ?>">

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