六月 2009

Drupal模块与主题的汉化方法小结

 Drupal的模块都是以英文来发布的,汉化文件主要由Drupal China来发布,但一些第三方的模块的汉化可能会比较慢,往往会延迟好几个月。如果要在汉化文件发布之前使用这些模块,就需要自己进行一些汉化工作。在汉化时有一个模块是很有用的,它叫POTX。

    点击下载http://ftp.drupal.org/files/projects/potx-6.x-2.2.tar.gz。它可以用来提取模块和主题的字符串,我们只需将提取的这些字符串进行翻译就可完成模块或主题的汉化。

 

  下载安装后它会在站点构建里,如下图


本文永久地址:http://drupalsh.cn/node/147 , 转载请注明出处.

excel_class导入excel出现中文乱码

excel_class是一款php导入excel的工具,它可以方便从excel导入数据到php,也可以方便用php把数据导入到excel.

今天在使用它的时候出现了中文乱码,从excel导入的数据print到浏览器上显示正常,查看源代码却是乱码。在网上查了半天终于找到解决办法了,方法如下:

修改excel_class.php类文件,查找$s = uc2html($exc->sst['data'][$ind]);替换 为 $s = iconv('utf-16le','utf-8',$exc->sst['data'][$ind]),这样编码就是utf-8了.

如果想把数据再导入mysql,而你的mysql编码是GB2312,那么你就需要再把数据从utf-8转到gb2312了,可以这样:$s=iconv("UTF-8","GB2312",$s)

还有一种方法是:打开excel_class.php,找到函数uc2html, 将函数中的代码注释掉,直接将参数返回, 即改函数不做任何操作。
function uc2html($str) {
return $str;
}

接下来使用PHP中提供的函数mb_convert_encoding来将UTF-16LE转换成UTF-8。


本文永久地址:http://drupalsh.cn/node/146 , 转载请注明出处.

一些常用drupal主题技巧

定制登陆界面:
http://drupal.org/node/19855

让某个条件下的节点使用新的page.tpl.php(条件自行判断)
http://drupal.org/node/46017

定制分类的界面

<?php
if ($terms[]->tid == '3') {include 'page-brochure.tpl.php'; /*load a custom page-brochure.tpl.php if the taxonomy term of the current node matches */
   
return; }
?>

定制用户信息界面
http://drupal.org/node/35728

定制搜索框
http://drupal.org/node/45295

让图片自动缩放的一段代码,也是经常用到的哦
img {max-width: 200px; width: 200px; WIDTH: expression(parseInt(this.width)>200?'200px': this.width); border:0px;}


本文永久地址:http://drupalsh.cn/node/145 , 转载请注明出处.

在Drupal 中连接多个数据库

数据库抽象层使得函数名更容易记忆,它同时还在查询中添加了内置的安全特性。有时,
我们需要连接到第3方或者遗留的数据库上,如果Drupal数据库API能满足这些需要并
同时提供安全特性的话,那该多好啊。幸好,我们可以!
在settings.php文件中,$db_url既可以是一个字符串(通常是这样的)也可以是包含
多个数据库连接字符串的数组。下面是默认的语法,声明了一个单独的连接字符串:
$db_url = 'mysql://username:password@localhost/databasename';

当使用一个数组时,它的键是一个在激活数据库连接时所引用的简洁名称,而它的值就是
连接字符串本身。下面是一个例子,在这里我们声明了两个连接字符串,默认的(default)
和遗留的(legacy):
$db_url['default'] = 'mysql://user:password@localhost/drupal5';
$db_url['legacy'] = 'mysql://user:password@localhost/legacydatabase';

注意 Drupal 本身使用的数据库一定要以default为键。
当你需要连接到Drupal 中其它的数据库上时,你首先使用它的键名激活该连接,当你使


本文永久地址:http://drupalsh.cn/node/144 , 转载请注明出处.

jquery插件与drupal模块的整合

Jquery,我想大多数程序员都听说过,并且在平时的项目开发中,也会经常用到。Jquery之所以如此流利,我想不仅仅是因为它的易用性,还在于它有庞大的用户社区的支持。jquery的插件多如牛毛。很幸运,drupal5中引入了jquery,之后,有许多优秀的jquery插件被引入到了drupal模块中,下面就介绍几个我用过并且认为不错的drupal-jquery插件:

jCarousel Lite

 这是jquery插件  jCarousel plugin的一个轻量级的drupal模块.它可以创建一个来回滚动的播放列表。

jCarousel Lite


本文永久地址:http://drupalsh.cn/node/143 , 转载请注明出处.

[转载]优化MySQL数据库性能

本文从八个方面来讲解如何全新优化MySQL数据库性能。

  1、选取最适用的字段属性

  MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很好的完成任务了。同样的,如果可以的话,我们应该使用MEDIUMINT而不是BIGIN来定义整型字段。

  另外一个提高效率的方法是在可能的情况下,应该尽量把字段设置为NOT NULL,这样在将来执行查询的时候,数据库不用去比较NULL值。

  对于某些文本字段,例如“省份”或者“性别”,我们可以将它们定义为ENUM类型。因为在MySQL中,ENUM类型被当作数值型数据来处理,而数值型数据被处理起来的速度要比文本类型快得多。这样,我们又可以提高数据库的性能。

  2、使用连接(JOIN)来代替子查询(Sub-Queries)


本文永久地址:http://drupalsh.cn/node/139 , 转载请注明出处.

drupal留言本tMessage

简单功能如下:
在tmessage路径有留言的表单可以发表;
权限管理分为是否允许留言和管理留言;
管理留言目前就一个删除功能,可批量删除。

可在后台自定义设置留言时间间隔;
可以对留言进行分类,比如“问题反馈”,“好的建议”;
用户可留下联系方式,以方便问题解决;
留言分类在后台可管理;

tmessage.info文件
; $Id: tmessage.info,v 1.1.2.1 2008/09/04 23:06:42 terrysco Exp $
name = tMessage
description = Allows users to leave a message.
package = terrysco

tmessage.install文件
<?php
// $Id:

/**
* Implementation of hook_install().
*/
function tmessage_install() {
switch ($GLOBALS['db_type']) {
case 'mysql':
case 'mysqli':
// add favorite terms managment by terrysco 20080620.


本文永久地址:http://drupalsh.cn/node/142 , 转载请注明出处.

如何开发views插件

当你想让自已写的模块或是第三方模块中的字段在views中显示的时候,就要考虑到views插件的开发了。查遍了中文资料,没有找到关于views插件开发的介绍,大都停留在views的应用上。在drupal的高级帮助文档上获得了相关信息,不敢独占,特分享如下。

views模块中有二个关键术语,handlers和plugins,这里暂且译为控制器和插件。

关于handler.

所谓的handler,是views对象的一部分,它参与query也就是sql语句的生成。Handlers本身也是一个对象,它有二大独立的代码流:UI flow and view building flow.
query流中,主要有以下几个方法:

handler->construct(),初始化控制器.
handler->set_definition(),从hook_views_data()获取数据交给handler处理。
handler->init(),把handler交给view对象。
handler->pre_query(),运行早期的query(),此阶段会做一些query的初始化操作。
handler->query(),整合query。

大部分的handlers只是做一些基类的扩展,例如
<?php
/**


本文永久地址:http://drupalsh.cn/node/138 , 转载请注明出处.

网页设计技术文章汇总

网页新手30条进阶秘技

许许多多的网页新手正徘徊在专业编码的门槛前,而网上的教程参差不齐,鱼龙混杂,很容易让新手迷茫。这里总结了30条网页编码的“秘技”,只要在编码过程中牢记它们,灵活运用,你一定会写出一手漂亮的代码,早日迈入专业开发者的行列。

50个卓越的公司网站设计

网站设计无非就是将你的信息以最直接,干净,简单的方式传递给访问者。而公司网站的设计还需要抓住一个公司的感觉,同时,要给人以专业,稳健,持久的印象。在访问一个公司的网站时,网站的图形,布局,配色都会将这种感觉与印象传递给客人。本文精选了50个设计出众的公司网站或许能给你带来一些启迪。


本文永久地址:http://drupalsh.cn/node/137 , 转载请注明出处.

如何把在注册的时候把用户名的框去掉!!

如何把在注册的时候把用户名的框去掉!!


本文永久地址:http://drupalsh.cn/node/136 , 转载请注明出处.