本人从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多语言网站的时候,使用.po文件来进行翻译,这个翻译的过程一般是通过Google翻译加人工纠正,然后复制到.po文件中,再导入到Drupal网站中。
从Google翻译的界面复制翻译结果到.po文件来比较麻烦,以前是需要逐条复制粘贴,很花费时间,现在想到搞个小工具来合并From和To,并加上msgid与msgstr到一起,方便整体复制粘贴。
使用步骤:
最近在向一个Drupal网站report.bizdirlib.com中导入更多内容时,初期选择了一种新的内容类型company_chinese来导入,但导入完成后发现不妥,需要修改为另外一种已经存在的类型product,以便使用购物车的各种功能。
如果在MySQL中操作来修改估计是可以实现的,但需要了解各种结构、反复测试,后来找到了一个现成的插件node convert,可以比较方便地实现。
步骤如下:
Drupal网站中用Views可以显示需要的各种列表,有时希望把列表的结果保存为另外的文件,当结果数量很大(超过几十、几百)时,用人工复制粘贴的办法就不合适了,需要有自动批量处理的办法。尝试了2种办法可用:
昨天尝试了一个办法:在Views的设置中打开SQL语句显示,将语句复制出来,根据需要进行修改,然后再放到PHPMyAdmin中对应的数据库中运行,将得到的结果(也类似Views的结果)导出成CSV文件。这个过程有点麻烦,特别是需要对复制的SQL语句进行一些修改,最好能懂得一些SQL才好操作。优点是运行速
Drupal网站搭建好、数据导入或者编辑完成后,如果需要大批量修改内容,可以有多种办法:
找到MySQL数据库中需要修改的内容放置的字段,用MySQL UPDATE语句来直接替换,其运行效率最高,但实现不方便、出错后无法挽回、页面时间没有变化;
今天找到一个用于search和replace的模块Scanner,安装试了一下,很容易使用,替换后是生成一个新的版本,如果有问题可以批量还原,选项也很丰富:大小写敏感查找、全词查询、加前后缀设
以前的Drupal 6版本中使用函数drupal_set_title来修改页面Title是页面的HTML标题和页面显示<h1></h1>中的标题都一起变化,但Drupal 7版本中再调用这个函数的时候发现只是页面HTML标题变更了,但页面显示在<h1></h1>中间的标题却没有变,这在有些情况下其实更好,但在确实需要页面显示标题也变化的时候就不行了,还得想另外的办法。
下面一段代码放在my_module.module中就可以实现对原来的title进行翻译然后显示在页面中:
/* *
Drupal网站在Site information的设置中有一个404错误页面可以定制到自己希望的网址,如果你在日志中发现大量404错误,而其中很多都是同一个类型可以引导到对用户更有帮助的内容页面,那么就可以在这个定制的404错误网址中进行判断、导向。
我做的例子是http://ak.postcodebase.com/not_found ,因为来自外部网站的链接中,有一部分是这个站内找不到或者错误的邮编,就可以根据URI进行判断:
在《Drupal的MySQL过度膨胀,清理缓存、翻译表》这篇2012年8月的博文中,提到有些非英文网站的locales_source表不断变大的问题,当时在网上找了一些资料,临时先用删除表中某些特征的数据来解决,半年后再次逐步变大导致网站访问困难,又编写了一个自动删除表中记录的脚本来解决,但始终是治标不治本。
这些天在对其它网站进行多语言扩充的时候,发现有些网站也有类似问题,都是locales_source中包含大量不需要进行翻译的内容,再次查找资料并逐步调试,终于是找到问题的根源并可以解决了,有两种情况:
各国邮编的系列网站是用Drupal 6搭建的,当初都开启了Pathauto, Boost等模块,使用起来也都还正常,后来将一部分网站进行了50种多语言和手机版的扩充,访问速度就感觉要慢一些,最近一两个月来扩充得越多就感觉网站访问越慢,而且后来取消了Boost缓存(因为没有那么大的硬盘来缓存100倍的文件,即使可以放得下,文件数量太多访问也慢)后感觉更慢了一些。
这个问题先在google webmaster tools中有所发现,但直到最近操作越来越慢才引起重视,监控软件的报错也开始频繁,昨天再一查监控软件的记录,这个系列的子网站打开首页都需要20秒以上,基本上没有
这些天在做系列网站的时候,遇到多个子网站、每个子网站都有多个内容类型,希望在首页展示内容类型、包含的字段名称以及页面数量,以前是人工来读取的,但网站多了就很麻烦,而且以后不便更新,这次用Drupal的API调用及SQL语句来实现了。
站内读取的例子:http://hangye.mingluji.com/it/,源代码:
<?php $node_types=node_type_get_names(); print '<ul>'; f
Drupal中的Views是一个非常有用的工具,不需要编程就可以生成各种列表,我们一直在各个网站中使用。但也存在一个问题,举例如下:
2002-2023 v11.7 a-j-e-0