中文搜索问题解决办法
1. 把 search 模块修改一下。
drupal中不能搜索中文的原因是因为drupal不能判断中文的词语,所以中文字联在一起的时候就会看成是一个词,导致不能搜索。
解决的方法就是在搜索的词汇前后默认加上*号,让drupal搜索“含有”搜索汉字的词语,这样就可以了。
具体方法:
在search.modules里查找:
$keys = str_replace("*", "%", $keys);
把它变成
$keys = '%'.str_replace("*", "%", $keys).'%';
就可以了。
2. 修改各个模块的 do_search 函数
用下面的内容替代modules里的对应内容:
node.module:
$find = do_search(array("keys" => $keys, "type" => "node", "select" => "SELECT n.nid AS lno, n.title AS title, n.created AS created, u.uid AS uid, u.name AS name, 1 AS count FROM node n LEFT JOIN users u ON n.uid = u.uid WHERE ( n.title LIKE BINARY '%' OR n.teaser LIKE BINARY '%' OR n.body LIKE BINARY '%') AND n.status = 1"));
comment.module:
$find = do_search(array("keys" => $keys, "type" => "comment", "select" => "SELECT c.cid as lno, c.nid as nid, c.subject as title, c.timestamp AS created, u.uid AS uid, u.name AS name, 1 AS count FROM comments c LEFT JOIN users u ON c.uid = u.uid WHERE (c.comment LIKE BINARY '%') AND c.status = 0;"));
magic_quotes_gpc 错误解决办法
很多主机 PHP.ini 里的 magic_quotes_gpc 是关着的,magic_quotes_gpc的作用是在提交的表单中如果存在敏感符号如双引号、单引号、反斜杠,那么这些符号之前会被自动的加上一个反斜杠号,最笨也是最直接的办法是释掉index.php文件的“check_php_setting”这一行,但这样可能会出现安全问题,详细可以参考 http://www.phpe.net/articles/372.shtml
在windows下面无法使用diff文件
很多module里是diff文件,是linux特有的补丁格式,你可以在 Linux 下面把补丁打好,再拷贝到 Windows 中去,当然有时间的话可以自己分析diff文件,一行一行改。前面带“—”的是要删除的行,前面带“+”的是要添加的行。
