本人从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的朋友有所帮助。

我的这个博客基本都是中文写的,但也常遇到国外垃圾信息的骚扰,几乎每天都有英文的垃圾留言,带有一些Spam广告网址,我先是发现后手工删除,但太多了,每天都有上十条,远比正常留言多,后来用Drupal的Captcha插件,但Spammer似乎有技术手段跳过验证,依然不断地发,我被迫把留言添加人工审核、甚至关闭留言一段时间,但只要放开后马上又可以看到垃圾源源不断。😠
春节前同事们一起也谈工作总结、计划的时候,到说到几个开放提交信息、留言的网站存在大量垃圾,每天要花费好多时间去检查、删除。于是我尝试了Drupal的Mollom插件,这个有所谓智能反垃圾的功能,建立在对大量垃圾
最近我们在对一些网站添加多语言以及修改自定义模块的工作中,需要对Boost缓存进行清除操作,逐个网站在菜单中清除需要很长时间,想到用Drush来批量处理系列网站,但Drush本身只能清除系统缓存,并不能处理Boost缓存,在网上找了些资料,找到了boost.drush.inc这个补丁可以解决,只需要在drupal/sites/all/modules/boost目录下新建这个文件,复制这些代码就可以了。
为Drush添加了下面三个命令:
我们一些使用Drupal的网站中启用了系统自带的留言功能contact模块,用户使用的时候填入表单就可以反馈,不需要另外发送邮件,还是很方便的,但同事发现一些要求更改或者删除某个页面的留言中,用户并没有按照我们的提示填写需要更改或者删除的页面网址,导致需要反复联系多次,增加了工作量也不利于客户体验。
本来同事是想在contact表单中加入一栏让用户填写相关的网址,但默认的contact模块并无此功能,这几天在网上搜索了半天才找到办法,就是修改contact模块中的表单及发送php程序可以搞定。我先是尝试直接修改drupal/modules/contact中的两个文
在用Drupal 7搭建新网站时,根据具体情况可以添加多语言及手机版,我记录在博文《Drupal的多语言系列网站搭建和设置》中。
在对更早使用Drupal 6已经搭建起来的网站进行扩充添加多语言及手机版的时候,过程也类似,只是稍微有些不同,下面我也记录一下过程:
初期准备:
很长时间没有更新drupal 网站的sitemap了,近期用drush xmlsitemap-regenerate命令来批量更新,但在遇到数据量大的网站时,有时会遇到类似这样的报错:
Fatal error: Maximum execution time of 240 seconds exceeded in /mnt/gb2/htdocs/drupal.mingluji.com/includes/path.inc on line 115 Drush command terminated abnormally due to an unrecoverable
用Drupal搭建网站中,我们通常是初期导入大量数据,后来再反复修改分类、Views、显示模板、菜单等项目来改善用户体验,特别是显示模板可能会在几个月、几年后多次修改,甚至是重要的全面修改,显示内容已经面目全非了,但搜索引擎的快照中还是以前的内容,没有及时重新抓取、更新排名。
搜索引擎应该是基本参照网站的xmlsitemap中的页面最后修改时间lastmod、更新频率changefreq来决定是否回来抓取、多长时间回来抓取的,而Drupal生成的sitemap中某个页面的最后更改时间很可能就是当初创建的时间,但显示内容因为模板修改而早就不同了,造成修改后的内容无法
去年在用Drupal 7搭建PostCodeBase系列各国邮编多语言网站的时候,遇到上百个国家子网站每个都需要设置50种语言网站名称的问题,开始还逐个设置,后来实在受不了,改用Drush命令来设置:
drush --root=/usr/local/apache2/htdocs/drupal7.postcodebase.com --uri=http://bra.postcodebase.com variable-realm-set language af site_name "Brasi
还是在Business Profile Report这个网站的设置中,我们有些特别的需求,例如:批量设置产品初始价格、顺序添加SKU产品编码、产品页面更新日期等,都可以用PHP程序来实现,程序bulk_set.php记录如下:
<?php
$_SERVER['HTTP_HOST'] = 'report.bizdirlib.com';
$_SERVER['SCRIPT_NAME'] = '/bulk_set.php';
在用Drupal 7搭建Business Profile Report这个网站的过程中,遇到一个产品有多种不同License对应不同价格的情况,可以用Ubercart 3中的Attributes功能来实现。在modules中打开Ubercart的Attributes这个子模块,然后在Attributes中添加一个叫License的属性,并设置默认的Options选项。再在具体的页面中为Attributes选择License属性,并根据需要来设置Options和调整不同的SKU编码。
单个页面都可以像上面只有编辑,但我们已经有了数以十万记的产品页面,不可能逐一编辑,
Drupal系统本身支持多站点,默认情况下,这些系列网站都是用同一个robots.txt文件,这在多数情况下都很方便,但我们发现在robots.txt中添加过多的Sitemap:标签来提交站点地图的时候,Google Webmaster Tools会因为robots.txt文件过大而进行变换、截取,从而这些提交无效。
以前知道有个RobotsTxt的插件,但为了让系统保持精简就没有安装过,这两天尝试了安装这个模块,还是比较方便的,可以在菜单中编辑每个站点自己的robots.txt,而且会自动在底部添加一个sitemap提交。
我们的多语言网站可
2002-2023 v11.7 a-j-e-0