我们的团队目前正在为 Joomla! 1.6 开发一个项目管理工具扩展。简而言之,我们的扩展目标是为大家提供一个用户友好的工具来管理他们的项目在整个生产周期。
在过去的几周里,我们一直在实现嵌套表格和其他许多酷炫功能。如果你想知道更多关于我们的进展以及我们为了使嵌套表格正常工作而需要克服的障碍,请继续阅读。
自上次帖子以来都完成了哪些工作?
我会说很多,但你可能想听到更多细节。正如我在我之前的帖子中所说,我们一直在管理文档和任务,并且稍微调整了一下我们视图的设计。目前,我们对项目的当前状态相当满意。
让我们从文档开始
这一部分的框架已经完成。然而,我们需要在这一部分的访问控制级别(ACL)上做一些工作。现在,用户可以创建一个由文章表示的文档,并将其分配给一个项目。此外,用户还能够对这些文档进行分类(尽管他还不能根据它们的类别进行筛选)。在未来,我们希望也能实现上传文件的功能,这样用户甚至可以将文件分配给他们的项目。
接着是任务
老实说,这部分让我们真的很头疼。正如我在我之前的帖子中指出的,我们想要有嵌套任务。因此,我们想要利用嵌套表格,但结果比我们最初想象的要难。别误会,使用 Joomla! 1.6 中的嵌套表格真的很简单,但你知道你在做什么。
你需要什么才能让嵌套表格工作?
Joomla! API 为您完成了大部分工作。我们知道这一点,但在保存数据时我们不断接收到错误信息,却不知道原因。经过一番调查,我们发现 Joomla! 不能为我们的数据分配任何 parent_id。当我们意识到一棵树比森林要慢,并在我们的表中添加了一个根行时,我们才意识到这一点:)。突然间,它开始工作了。因此,为了使嵌套表正常工作,您只需满足以下要求即可顺利使用
- 创建一个包含以下字段的表
- parent_id
- level
- lft
- rgt
- alias
- 在该表中手动创建一个 parent_id = 0 的行
- 这是非常重要的一步,因为没有它,嵌套表看起来会像森林而不是树
- 保存功能 => 我建议您查看 "administrator/components/com_categories/models/category.php" 文件,您可以看到四行有趣的代码,它们设置了插入项的父 id
// 设置新的父 id(如果已设置)。
if ($table->parent_id != $data['parent_id']) {
$table->setLocation($data['parent_id'], 'last-child');
}
最后但同样重要的是 - 设计
我们开始审查我们的视图,并对它们的设计进行了一些改进。在重用模板的 CSS 和编写我们自己的 CSS 之间找到正确的平衡是非常困难的。不幸的是,我无法告诉您更多关于这部分的信息,因为它仍处于开发的早期阶段。
就这些吗?
不!除了这些,我们还致力于优化我们的代码。首先,我们深入研究了我们的语言文件,并稍微清理了一下。通过清理,我的意思是将翻译字符串组织成逻辑组,并给它们统一的名称。此外,我们还致力于利用 Itemid 变量,以便在浏览我们的组件时,网站的任何模块都不会消失。
我们的未来计划?
总结一下,我们希望专注于我们已经工作的所有部分的优化,并完成任务管理器。同时,我们希望在我们的组件中实现更复杂的 ACL,因为我们观看了 Louis Landry 的两次网络研讨会(研讨会 1 和 研讨会 2),并最终理解了新的 ACL 系统。目前,我们有一个非常简单的 ACL 系统,只使用几个简单的权限。
所以这就是现在的情况。这次我尽量简洁、比上次更详细地介绍我们的项目和进度,希望您喜欢。
很快就会带来关于我们进度的更多信息,再见。
附言:我差点忘了。如果您对这个组件应该包含哪些功能的请求,请在下面留言或发送到我的.
更新(2010年8月23日 - 更改了关于处理嵌套表的最后一点)