Joomla SobiPro的使用体验
周末抽了一天的时间去研究Joomla的目录组件SobiPro,写一下使用它的体会。
SobiPro是个相当强大的目录组件,相比于同类的mtree(Mosets Tree的简称),更比mtree有优胜的地方。
SobiPro优势如下:
1. field管理
mtree与sobi都有管理field的功能,而且都有强大的扩展能力,但mtree的field是全局性的,也就是不可以做几个不同类的list,例如一个list是通讯录,另一个list是产品,两个List都需要使用完全不同的fields,mtree就难以实现。
2. field扩展类的存储方式
mtree可以添加修改field的类来调整field的呈现效果,这个非常灵活。但它其实是把整个类以字串的方式保存在数据库中,基本上只有通过后台来修改类,管理较为麻烦,而且代码存于数据库有安全隐患。sobi则是文件形容,并且也支持安装包扩展。
3. 付费方式
mtree组件是需要收费的,而且价格还比较高,使用条款还是以域名为基准,即每个域名使用都需要付费。而sobi组件是免费的,只是扩展包需要收费,而且是购买帐户来下载,可以永久使用。
PS:总的来说,sobi和mtree其实不相上下,但sobi的使用成本较低。
以下说一下SobiPro的开发体验:
SobiPro比较特别的一点是使用了XSLT作为模板,XSLT其实很久以前就有,但使用并不广,因为它使用起来比较麻烦,但对于有经验的开发人员,只要多参考下默认模板,要对模板做调整也是没什么问题的。但要注意的是,使用它必须开启XSLT库,这在迁移的时候就要小心了。试过把别人的sobi迁移过来,发现前台打开空白,后台用check system的功能查了一下,才知道是XSLT库没有开启,把它开启后前台才能正常打开。
源数据调试
sobipro的模板结构基于XSLT,也就是源数据是XML,经过XSLT加工后会转换为HTML,即PHP -> XML -> XSLT -> HTML,所以修改模板也就是修改XSLT文件。如果要深度修改模板,有时候需要修改源数据,修改XML输出,所以查看输出XML成为了模板调试的关键。后台设置Allow Raw XML Output为YES,前台在URL后面添加&xml=1,就会输出XML源数据。
XSLT编辑器
XSLT是标准格式文档,所以多数编辑器都会支持,而如果有条件,可以使用微软的visual studio 2012,会提供很好的语法提示。
目录结构
控制器 : components/com_sobipro/lib/ctrl/*
数据模型 : components/com_sobipro/lib/models/*
视图 : components/com_sobipro/lib/views/*
默认模板 : components/com_sobipro/usr/templates/default/*
模块模板 : components/com_sobipro/usr/templates/front/modules/*