最近几天我一直在开发工具中添加表格功能。这打开了很多可能性,因为一旦你知道组件正在处理的数据,你就可以自动为该数据生成大量代码。


我编写了一个测试脚本来测试这个功能,展示了添加的功能

// 获取基本脚本
$script        = DevTools::script();

// 定义我们正在处理的组件
$component    = $script->component("Biographies","Samuel Jackson");

// 设置表格
$table    = $component->table("Bio")
        ->varchar("name",120)    // 添加一个名字字段
        ->text("story")            // 添加一个文本字段
        ->published()            // 添加一个发布字段
        ->order()                // 添加一个排序字段
        ->checked()                // 添加一个勾选字段
        ->modified();            // 添加一个修改字段

// 设置列表模型与表格
$list    = $component->model("list",$table)
        ->getList()                // 添加一个获取项目列表的函数
        ->publish()                // 添加一个发布项目的函数
        ->delete()                // 添加一个删除项目的函数
        ->order();                // 添加一个排序项目的函数
   
// 设置列表模型
$item    = $component->model("item",$table)
        ->getItem()                // 添加一个获取项目的函数
        ->store()                // 添加一个存储项目的函数
        ->checked()                // 添加一个用于检查进出项目的函数
        ->move();                // 添加一个用于移动项目的函数
       
// 设置控制器(方法的参数是模型)
$contr    = $component->controller()
        ->cancel('list')        // 添加取消功能
        ->move('item')            // 添加移动项目功能
        ->order('list')            // 添加移动一组项目的功能
        ->publish('list')        // 添加发布一组项目的功能
        ->remove('list')        // 添加删除一组项目的功能
        ->save('item');            // 添加保存项目的功能

// 设置视图
$component->view("item")->tmpl();

出于测试目的,这非常详细,但从这里开始,当添加一个表时,生成这段代码很简单。

脚本所做的就是在数据库中添加一个带有几个字段的表。我已经添加了一组最常用的数据库字段作为方法(如varchar,text,int等),以及一组经常与Joomla一起使用的字段。例如,Order会将字段'ordering'添加到数据库中,同时指示创建的组件包含可以排序的字段,这意味着我通过查看表可以自动向模型和控制器添加排序功能。'published','checked'和'modified'也是如此。

所以总结一下,devtools将会非常强大 :)