标签是SQRT框架的一部分

dev-master / 0.1.x-dev 2015-04-07 20:51 UTC

This package is not auto-updated.

Last update: 2024-09-24 02:29:02 UTC


README

Build Status Coverage Status Latest Stable Version License

Tag 类允许生成HTML标签并设置它们的属性。除了直接使用 Tag 类外,还有一系列继承自 Tag 的类,用于快速创建常用的标签 <a><img><input><select><textarea><form>

use SQRT\Tag;

echo new Tag\A('#', 'hello');
// <a href="#">hello</a>

echo new Tag\A('/one/', 'Hello', 'two', '_blank'); 
// <a class="two" href="/one/" target="_blank">Hello</a>

echo new Tag('b', 'hello', array('style' => array('width' => '15px;', 'height' => '200px'))); 
// <b style="width: 15px; height: 200px;">hello</b>

echo new Tag\Input('two', 123, 'one', 'email');
// <input class="one" name="two" type="email" value="123" />

$t = new Tag('input', '123', array('type' => 'text'), true);
$t->setId('one');
$t->setClass('two');
$t->setName('one[two]');
$t->setStyle('width: 100px;');
echo $t->toHTML();
// <input class="two" id="one" name="one[two]" style="width: 100px;" type="text" value="123" />

为了生成 input[type=checkbox]input[type=radio] 的选项列表,提供了 CheckboxListingRadioListing 类。

$t = new Tag\CheckboxListing('age', array(10 => '10 лет', 20 => '20 лет', 30 => '30 лет'));
$t->setSelected(array(10, 20));

// <label><input checked="checked" name="age" type="checkbox" value="10" /> 10 лет</label>
// <label><input checked="checked" name="age" type="checkbox" value="20" /> 20 лет</label>
// <label><input name="age" type="checkbox" value="30" /> 30 лет</label>

完整的示例集合可以在测试中找到。

属性合并

提供了 Tag::MergeAttr($attr, $_ = null) 方法,允许将多个属性组合并为一个。数组按键合并,值以空格分隔。

Tag::MergeAttr('one', array('id' => 'two')); // array('class' => 'one', 'id' => 'two');

Tag::MergeAttr('one', 'two'); // array('class' => 'one two');

Tag::MergeAttr(array('style' => 'border: red;'), array('class' => 'red', 'style' => 'color: green;'));
// array('style' => 'border: red; color: green;', 'class' => 'red');