OSDN Git Service

d8cb70cba38cad3a99de5271e1325e3d76561ee3
[ethna/ethna.git] / class / Plugin / Smarty / function.message.php
1 <?php
2 /**
3  *  smarty function:指定されたフォーム項目に対応するエラーメッセージを出力する
4  *
5  *  sample:
6  *  <code>
7  *  <input type="text" name="foo">{message name="foo"}
8  *  </code>
9  *  <code>
10  *  <input type="text" name="foo">fooを入力してください
11  *  </code>
12  *
13  *  @param  string  $name   フォーム項目名
14  */
15 function smarty_function_message($params, &$smarty)
16 {
17     if (isset($params['name']) === false) {
18         return '';
19     }
20
21     $c =& Ethna_Controller::getInstance();
22     $action_error =& $c->getActionError();
23
24     $message = $action_error->getMessage($params['name']);
25     if ($message === null) {
26         return '';
27     }
28
29     $id = isset($params['id']) ? $params['id']
30         : str_replace("_", "-", "ethna-error-" . $params['name']);
31     $class = isset($params['class']) ? $params['class'] : "ethna-error";
32     return sprintf('<span class="%s" id="%s">%s</span>',
33         $class, $id, htmlspecialchars($message));
34 }
35