joomla 1.5并没有user profile功能,即用户的信息结构只能是系统提供的有限的field,如username, email等。如果要设计用于社交类型的网站用户信息肯定需要更丰富,如address, age, sex, state等。如果从joomla的系统上通过开发定制扩展出更丰富的profile field,至少需要改JTableUser类、JModelUser类和JViewUser类,可见操作相当麻烦,所以在1.5上,只能安装第三方组件,如Joomla上有名的CB。
到了joomla 2.5可以看到profile的页面,但就后台功能来看和1.5没什么分别,这或许一开始就让joomla的粉丝很失望,因为这样的功能已经很普遍了。但其实joomla 2.5已经内置了可定制的profile程序,可以自由添加field,只是不是在后台添加field而已。
了解joomla2.5的人应该都知道,2.5内核上最大的特色是JForm,一个可以让joomla读懂XML并能生成form的程序,让开发人员只需要修改XML文件,就可以对field进行变更修改。而user profile也是基于JForm的方式来实现,但与组件不同,user profile其实是个plugin,需要在后台开启它。而且当你开启它,你就马上发现user里多了很多field,不论是注册页面还是编辑页面都有。
通过以下XML,就可以编辑profile field,相当方便
plugins/user/profile/profiles/profile.xml
也许drupal用户会笑,因为这样的功能,drupal7已经有,而且还是在后台编辑profile field。drupal的profile的确很方便,做到后台的确也很直观,至少用户在使用drupal后台就会知道profile这个功能,不像我用了joomla2.5有半年了,都只是在阅读代码时发现。不过在使用中joomla的XML也是很方便的。而且因为joomla大量使用XML来描述结构,所以将来也可以通过第三方软件来读取Joomla的结构,至少magento也是这样做的。drupal的结构数据主要是用php数组,如果需要第三方软件读取,drupal至少需要把这些数据转变成JSON或者XML才能实现,这对于drupal未来的发展也许有一定的影响,必竟drupal本身就不存在什么通用标准。