操作
Backport(バックポート) #4110
完了Bug(バグ) #4104: 管理画面 メール通知テンプレート設定 にてエラーメッセージが翻訳されない
管理画面 メール通知テンプレート設定 にてエラーメッセージが翻訳されない
開始日:
2017-01-06
期日:
進捗率:
100%
予定工数:
説明
Overview (現象)¶
#2909 にて、文字数チェックを追加したがエラーメッセージが日本語に翻訳されない。
Causes (原因)¶
$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') ?>">
操作