Joomla!-开源天空

2008-10-08
首页 专栏热点 Joomla! 源代码分析 [翻译]Joomla! UTF-8规范 (WIP) 四


[翻译]Joomla! UTF-8规范 (WIP) 四

E-mail

4 第三方组件的UTF-8导则

UTF-8是第三方组件的重要方面,以下是第三方组件的UTF-8规范。

4.1 对于现有组件的兼容性约束

如果mysql数据是UTF-8兼容的,采用utf8字符集和字典顺序,现有组件是安全的。组件安装过程总创建的表是utf字符集,除非创建表的语句指定了字符集。

不推荐在低于4.1.2版本的数据库安装现有的组件,因为这容易导致字符串截断。

现有组件的采用php字串函数可能导致字符串截断。
 

4.2 创建Joomla 1.5组件的导则

4.2.1 数据库表创建

为了兼容性,表创建过程不应该在xml文件中,而应该写两个sql脚本,一个是utf版本,一个是非utf-8版本,非utf-8版本中的varchar字段应该按前面所述规则进行长度扩展。

下面是就的安装xml文件:

<install>
    <queries>
        <query>
            ...query text...
        </query>
        <query>
            ...another query text...
        </query>
    </queries>
...
</install>

以上应该替换为如下部分

<install>
  <sql>
    <file driver="mysql" charset="utf8">install.utf.sql</file>
    <file driver="mysql">install.nonutf.sql</file>
  </sql>
</install>

以下是一个完整组件安装xml文件,注意其中的 两个安装sql脚本。

<?xml version="1.0" ?>
<install type="component">
<name>DailyMessage</name>
<creationDate>10/4/2005</creationDate>
<author>Joseph LeBlanc</author>
<copyright>This component in released under the GNU/GPL License</copyright>
<authorEmail> 为防备电子邮件地址收集器,这个 E-mail 地址被隐藏,你的浏览器必须支持 Javascript 才可看到这个邮件地址 </authorEmail>
<authorUrl>www.jlleblanc.com</authorUrl>
<version>1.0.3</version>
<files>
  <filename>dailymessage.php</filename>
  <filename>dailymessage.class.php</filename>
</files>
<install>
  <sql>
    <file driver="mysql" charset="utf8">install.utf.sql</file>
    <file driver="mysql">install.nonutf.sql</file>
  </sql>
</install>

<uninstall>
  <sql>
    <file driver="mysql" charset="utf8">uninstall.utf.sql</file>
    <file driver="mysql">uninstall.nonutf.sql</file>
  </sql>
</uninstall>

<installfile>
 <filename>install.dailymessage.php</filename>
</installfile>

<uninstallfile>
 <filename>uninstall.dailymessage.php</filename>
</uninstallfile>

<administration>
 <menu>Daily Message</menu>
 <submenu>
  <menu act="all">Edit Messages</menu>
  <menu act="configure">Configure</menu>
 </submenu>
  <files>
   <filename>admin.dailymessage.php</filename>
   <filename>admin.dailymessage.html.php</filename>
   <filename>toolbar.dailymessage.php</filename>
   <filename>toolbar.dailymessage.html.php</filename>
   <filename>install.utf.sql</filename>
   <filename>uninstall.utf.sql</filename>
   <filename>install.nonutf.sql</filename>
   <filename>uninstall.nonutf.sql</filename>
  </files>
</administration>
</install>

4.2.2 UTF-8 字符串处理

php字符串函数应该按照前述规则替换为相应的Jstring字符串函数。



收藏此文章:
Digg! Reddit! Del.icio.us! JoomlaVote! Google! Live! Facebook! StumbleUpon! Yahoo! Free social bookmarking plugins and extensions for Joomla! websites!

发表您的文章评论

您的姓名 (昵称)
标题:
评分: 很差一般较好很好
评论:
验证码:
请输入验证码