mechanicious/tableman

轻松制作表格

dev-master 2014-08-24 15:35 UTC

README

内容

Tableman

表格是表示数据的好方法。几乎每种类型的数据都可以表示为表格。然而,并非每个表格都能表示所有类型的数据。Tableman 的创建是为了完全释放表格的潜力。强大的 API 使 Tableman 能够轻松地适应任何类型的数据和任何类型的需要。

Tableman 模块化

Tableman 由四个主要模块组成,分别是:Tableman、Columnizer、Collection 和 TablemanExtension。Tableman 模块负责处理数据的 API。Columnizer 负责将多种类型和格式的数据转换为 Tableman 能够处理的形式。Collection(从 Laravel 4 中借用)负责丰富 API,Collection 中包含了许多通用的方法,这些方法工作得很好。TablemanExtension 是一个模块,负责为 Tableman 扩展开发者提供一个 API,使得通过自己的功能扩展 Tableman 更容易。

包含内容

这些是您可能希望从您的包中排除的内容,如果您已经有了它们。

注意:对于外部的库,默认映射被使用,例如 Laravel 4 Collection 将映射到 Illuminate\Support\Collection

  • Laravel 4 Collection
  • Laravel 4 辅助方法
  • 测试

Tableman 应用场景

  • 根据单元格内容应用过滤器
  • 首字母大写名称
  • 将图像链接转换为图像元素
  • 转义 HTML 实体
  • 保持您的模板清洁
  • 删除您想要隐藏的列
  • 翻译列标题
  • 将某些行包装在 HTML 包装器中,这些行是某些列的成员
  • 排序列
  • 排序行
  • 将您的表的外键转换为人类友好的数据
  • 添加一个包含链接的“操作”列,这些链接将映射到您的更新或删除路由
  • 将表格分割成几个部分,您可以分布在页面上
  • 使用相同的模板显示不同的表格
  • 以及所有其他数据操作!

转换

Tableman 允许您将 Tableman 支持的数据类型 之一转换为 Tableman 支持的转换类型。在完成转换后,您可以再次将表格重新转换为开始时的数据类型。

Tableman 支持的数据类型

  • 数组
  • JSON

Tableman 支持的转换类型

  • 数组
  • JSON
  • HTML
  • HTML Bootstrap 3 表格

示例

$data = array(
    array(
        'id'    => 1,
        'name'  => 'Joe',
        'age'   => 25
    ),
    array(
        'id'    => 2,
        'name'  => 'Tony',
        'age'   => 27
    ),
);
$columnizer = new Columnizer($data); // Data conversion
$tableman   = new Tableman($columnizer->columnizeRowArray()); // Data modeling

// Custom filters
$tableman->eachRow(function(&$_this, &$row, $index) { 
    if($row['id'] === 1) unset($row);
})

// Custom extensions
$tableman->Bs3Table(new Config(array(
 // Plugin-like configuration
 'config'=>array(), 
 'header'=> array(), 
 'extra_classes'=>array()
));