本人从2010年开始使用Drupal,比此前使用的MediaWiki更符合通用的建站要求,Drupal对多语言、多站点的支持也是我选择它的重要因素。从最开始的6.x到7.x再到8.x,我一直都在使用,在这过程中需要修改模板、自建模块,也学会了PHP以及其它一些技术。在本博客中我也记录了很多日常使用Drupal中遇到的问题、解决的办法,希望对其他使用Drupal的朋友有所帮助。

这是 Drupal 分类的页面,点击下面标题查看详细文章内容:
本人从2010年开始使用Drupal,比此前使用的MediaWiki更符合通用的建站要求,Drupal对多语言、多站点的支持也是我选择它的重要因素。从最开始的6.x到7.x再到8.x,我一直都在使用,在这过程中需要修改模板、自建模块,也学会了PHP以及其它一些技术。在本博客中我也记录了很多日常使用Drupal中遇到的问题、解决的办法,希望对其他使用Drupal的朋友有所帮助。


用Drupal搭建网站的时候,有时需要通过修改CSS来改变网站上的格式,以前我多是使用元素内嵌CSS属性或者在页面中直接写CSS代码的办法来实现,这样效果直接了当,但不是很规范和灵活,现在采用正规的办法,添加外部CSS文件来解决,记录如下:
以前就知道Drupal中有个Tagadelic模块比较流行,可以用于生成标签云,用不同的字体、字号来显示热门关键词,但一直没有实际安装使用。
今天同事再次提到这个事情,我就先用我这个个人网站来做实验,Tagadelic这个模块很容易安装,也基本上不用怎么设置,只要把包含标签云的Block放在希望的位置就可以。
我的博客中用了自由标签,自由标签中的热门关键词的block现在放置在首页的下方,更多链接到http://jamesqi.com/tagadelic/chunk/1。
从这个标签云看过去可以麻烦发现自己的关注点在哪些方面
前段时间安装Drupal 7的时候就遇到自动在MySQL中使用InnoDB的情况,而且好像是即使MySQL默认引擎为MyISAM也依旧使用InnoDB。虽然InnoDB有自己的特点,Drupal 7选用这个也正常,但对于我们来说,有多个子网站的时候,以前是将数据库分散到多块硬盘上的,就需要用MyISAM来让每个子网站有独立的目录比较方便,所以还是需要能使用MyISAM。
按照网上找到的一篇文章,修改includes/database/mysql/shema.inc这个文件可以解决,虽然修改drupal core文件不是一个很好的办法,先这样用。
Drupal的Views是个好东西,能做出各种查询列表,基本上是我们网站的必备模块。
在一些系列网站中,因为要在各个子网站都设置相同的Views,我们就用到Views的导出、导入功能,这样只需要在一个示范网站中设置好,然后export成代码的形式,再import到其它网站就可以,还是比较方便的。
虽然一次性设置的时候导出、导入不麻烦,但如果要修改Views就比较麻烦了,我们以前是逐个网站修改,或者只修改示范网站,再在其它网站中删除旧Views、导入成新Views,如果需要反复修改,也算是比较麻烦了。
Drupal 6中的Vi
以前做Drupal首页一般就是新建一个普通页面,让在Site information中设置为首页就可以。不过考虑到我们现在有些系列网站包含几十个子网站,首页的模式基本相同,如果有些地方需要修改,就需要修改几十个首页,有些麻烦。
这次在新建网站的时候,就考虑使用模板的办法来统一,Drupal 7中没有node--front.tpl.php,就用page--front.tpl.php来做。
修改的办法很简单,复制drupal_root/themes/bartik中的page.tpl.php到drupal_root/sites/all/themes/
去年初开始用Drupal的时候就找到contemplate模块,用于定制化输出页面,觉得这个模块很好用,既可以放在数据库中也可以放在磁盘上,可以实现对每个字段的精确控制,这个模块成了我们做各种导入数据库的Drupal网站的必配模块。
今年在使用Drupal 7的时候,我也准备继续用这个模块,但看到提示说这个模块可能会废弃,原因是Drupal 7有了一些与Drupal 6不同的机制。不过现在依然提供了可以在Drupal 7上运行的版本,我也试用了一下,有一些地方不是很方便,读取字段老是报错,breadcrumb也不能控制了。
这段时间摸索Drup
Drupal用了一年多的时间,但我们以前基本上都是简单应用,以菜单中的设置为主,添加了少数带有php代码的模板Template、区块Block、视图Views,还算不上进行开发。
随着网站的增多、功能需求的复杂,以后还需要进行一些开发的工作。这几天为了让很多个子网站共用相同的block,例如50个网站的block修改不用逐个网站打开进行菜单选择、复制暂贴代码,就需要编写一个简单的module,在这里面加入block,以后只需要修改这个module的代码,就可以实现block内容的统一修改。
具体过程暂时没空写,以后再补。
在Drupal 6网站搭建中,我一直用Node import来导入已有数据,感觉还不错。但近期在搭建Drupal 7网站的时候,发现Node import这个模块已经停止开发for Drupal 7的版本了,看到推荐的替代工具是Feeds,于是这几天摸索了一番,现在基本上可以正常使用了。有几个地方需要注意的记录下来:
去年在使用Drupal 6的时候,就发现用Pathauto自动生成的URL网站中,部分特殊字符会导致页面找不到,当时找到了解决办法,记录在这篇博文中《Drupal的Pathauto模块生成带有单引号、双引号、反斜杠URL问题及解决》。
最近在使用Drupal 7的时候又遇到类似问题,这次不是单引号、双引号或者反斜杠,而是+(加号)和&(and符号)出了问题,自动的编码变成了%2B和%26,在浏览器中无法找到。如果手工修改为%252B和%2526则可以访问。
我在网上搜索了很多资料,找到Drupal 6的includes/common.i
上周开始尝试Drupal网站的升级,先拿小数据量的网站做了实验,本个人网站也算是升级成功。然后想把一个大数据量的网站也升级看看,拿了“传真名录”这个站来做实验。
将其各个第三方模块升级到Drupal 6配套的最新版本都很顺利,我也就没有把Drupal 6.20先升级到6.24,而是直接升级的,这在以前其它小数据量网站试过,没有问题。
在Drupal 6.20中设置为“离线模式”,然后卸载所有第三方模块,再将文件夹都换为Drupal 7.12的内容,并复制一些配置文件,在Drupal 7下就可以运行updata.php了,但看到update taxono
2002-2023 v11.7 a-j-e-0