QuickForm2/Element/InputTel.php として保存。
/** * Base class for <input> elements */ require_once 'HTML/QuickForm2/Element/Input.php'; /** * Class for <input type="tel" /> elements * * @category HTML * @package HTML_QuickForm2 * @author ushi * @license http://opensource.org/licenses/bsd-license.php New BSD License * @version Release: 1.0.0 * @link http://pear.php.net/package/HTML_QuickForm2 */ class HTML_QuickForm2_Element_InputTel extends HTML_QuickForm2_Element_Input { protected $persistent = true; protected $attributes = array('type' => 'tel'); } ?>
QuickForm2/Element/InputEmail.php として保存。
/** * Base class for <input> elements */ require_once 'HTML/QuickForm2/Element/Input.php'; /** * Class for <input type="tel" /> elements * * @category HTML * @package HTML_QuickForm2 * @author ushi * @license http://opensource.org/licenses/bsd-license.php New BSD License * @version Release: 1.0.0 * @link http://pear.php.net/package/HTML_QuickForm2 */ class HTML_QuickForm2_Element_InputEmail extends HTML_QuickForm2_Element_Input { protected $persistent = true; protected $attributes = array('type' => 'email'); } ?>
QuickForm2/Factory.php に追記。
protected static $elementTypes = array( 'button' => array('HTML_QuickForm2_Element_Button', null), 'checkbox' => array('HTML_QuickForm2_Element_InputCheckbox', null), //中略 'tel' => array('HTML_QuickForm2_Element_InputTel', null), 'email' => array('HTML_QuickForm2_Element_InputEmail', null) );
PGでの使い方
//電話番号(オリジナルtype) $in_o_tel = $form->addElement('tel', 'o_tel', array('id' => 'tel', 'autocomplete'=>"tel", 'placeholder'=>"000-0000-0000")); //email(オリジナルtype) $in_o_email = $form->addElement('email', 'o_email', array('id' => 'email', 'autocomplete'=>"email", 'placeholder'=>"hoge@hoge.com", 'maxlength'=>"100"));
Smarty template
<p><label for="tel"> 電話番号</label> {$form.o_tel.html}</p> {if isset($errors['o_tel'])}<p class="error">{$errors['o_tel']}</p>{/if} <p><label for="email"> メールアドレス</label> {$form.o_email.html}</p> {if isset($errors['o_email'])}<p class="error">{$errors['o_email']}</p>{/if}
生成htmlソース
<p><label for="tel"> 電話番号</label> <input type="tel" id="tel" autocomplete="tel" placeholder="000-0000-0000" name="o_tel" /></p> <p><label for="email"> メールアドレス</label> <input type="email" id="email" autocomplete="email" placeholder="hoge@hoge.com" maxlength="100" name="o_email" /></p>