你在这里


Drupal

Drupal网站改http为https访问

James Qi 2016年11月29日 - 13:47 发布

  前面写了两篇SSL认证方面的博文:《申请免费的SSL证书,开通https网站》、《https多网站1个IP多个SSL证书的Apache设置办法》,看上去也不是那么复杂,但实际在做http到https站点迁移的过程中还是有一些细节需要注意,这里把Drupal网站中遇到的一些问题记录下来。

Drupal网站中显示留言者的IP地址

James Qi 2016年11月22日 - 17:08 发布

  以前在Wiki网站中文章或者讨论的匿名发布者都是显示出IP地址来(例如这个“周公解夢”页面下方的用户留言),这样方便管理员或者其他用户了解内容发布者的来源,也便于监控防范垃圾内容。而Drupal网站中留言的匿名发布者都是显示“匿名”或者用户自己留下的名称和链接。

  今天尝试了一下Drupal中修改模板文件comment.tpl.php,是可以实现显示留言者IP相关信息的,可以让注册用户和匿名用户的IP地址都显示出来,具体代码如下:

自由标签:

升级Drupal到7.52,删除不存在模块的报错

James Qi 2016年11月21日 - 14:29 发布

  虽然Drupal 8出来大半年了,但我们依然以Drupal 7为主,先前用的7.43已经好几个月了,现在出了安全更新Drupal 7.52,就照例进行了更新,有几点稍微不同的地方记录一下:

  部分网站升级后用户浏览没有问题,但管理员界面发现大量的报错:

自由标签:

Drupal网站用Views模板来替代Views PHP修改字段内容

James Qi 2016年10月20日 - 18:21 发布

  以前Drupal网站中遇到需要对Views的输出进行一些变换的时候,一般是通过安装Views PHP这个模块,在Views中添加Global PHP字段,在其中设置读取什么值、进行什么变换、输出什么内容,这个方式很早就开始用了,Drupal 6和Drupal 7都用过。但缺点是设置麻烦,还可能会引起负载的升高。

  最近在调试一个新的网站中就遇到数据量大的时候,服务器报500错误,甚至导致阿里云服务器死机的情况。检查后发现都是与Views相关,先安装了Views PagerLite来减少MySQL的Count指令,但依然有不少内存不足的报错。

  后来在Drupal官方网站上找到views-view-field.tpl.php的说明,按照这个来进行配置、修改,可以达到与Views PHP一样的效果,但不会一起负载增高,真是一个好办法!

  详细说明请看:views-view-field.tpl.php


  2016年11月11日补充原始模板代码为:

替换Drupal系统提供的搜索框和结果

James Qi 2016年9月29日 - 16:17 发布

  使用Drupal很多年了,在站内搜索上基本上都是采用了系统自带的搜索功能,搜索框基本没变,只是搜索结果页通过search-results.tpl.php和search-result.tpl.php进行过一些小的修改。但遇到了数据量巨大、汉字编码等问题的时候,也在某些情况下采用过其它方式:

  • Google Custom Search Engine,这个在国外还可以用,在国内无法使用;
  • Apache Solr,需要自建一套搜索功能,比较复杂;
  • Drupal Views,可以实现一些组合条件搜索查询功能。

  最近在新建已经完善以前网站的时候,遇到用户搜索目标比较清晰,我们网站中不一定有正好用户需要的关键词但有其中截取的一部分的信息,例如电话号码、IP地址等,如果能用程序做一些判断就可以让用户避免“搜索无结果”的答复,后来试了几种办法,可以用程序与Drupal本身的搜索功能结合起来用,给用户更好的体验:

自由标签:

在Drupal中直接导入、使用数据库

James Qi 2016年9月27日 - 15:15 发布

  我们这边从一开始使用Drupal就是利用的其本身的数据库结构,page, node, taxonomy, term等等都是使用Drupal本身的概念,很少直接操作数据,需要大量已有数据(一般是csv格式文件)导入网站的时候,就用第三方模块node_import (Drupal 6)或者feeds (Drupal 7)来设置和进行导入,形成页面以及分类,再辅助设置Views进行需要的列表。

  以上的办法相对来说简单易行,特别是在使用Drupal初期,我们对PHP程序和MySQL数据库不很熟悉的情况下。但在一些需要实现复杂一些功能的时候,这样的办法就有局限性,不方便实现数据库关联(虽然views也有关联功能,但内容类型、分类等牵扯起来搞得很复杂)、不利于用户浏览性能提升(数据量可能增大了很多倍,访问效率低下),数据量庞大的时候,更新也不便(曾经为更新一个系列网站重新导入花几个月)。

  后来也曾经在部分网站中直接添加数据库表,然后编写PHP程序对表进行查询,这样可以实现比较灵活的设置,但对数据库技术的要求高一些,修改起来比较麻烦。

自由标签:

再自学JavaScript来以Drupal网站为基础开发App

James Qi 2016年6月30日 - 18:29 发布

  2011年初刚用Drupal不久的时候写了一篇博客《被迫自学PHP来构建Drupal网站》,这几年来一直用Drupal搭建和运营网站,PHP的基础用法算是比较熟悉了(高级用法没有接触)。2016年5月开始摸索《以Drupal网站为基础创建App》,接触到JavaScript、PhoneGap等,而且DrupalGap这个中间桥梁模块及开发工具的使用中,也必须对JavaScript了解以便读懂开源JS程序以及进行必要的修改。

Drupal 7中让页面归类的PHP程序

James Qi 2016年6月14日 - 09:38 发布

  最近需要编写一段程序来读取Drupal网站中页面Node的某个文本字段,进行处理、判断、匹配后,将这个页面归类Taxonomy到某个术语表Vocabulary的术语Term中。在刚开始用Drupal 6的时候就曾经编写过类似程序来分类,见博文《Drupal中让Node归类的PHP程序》,在后来使用Drupal 7的过程中,绝大多数分类都是在创建网站、导入数据的时候就自动进行了,使用了术语来源Term reference字段和自动完成术语挂件(标签)Autocomplete term widget (tagging)控件,但也有把数据作为文本导入字段,然后再运行php程序进行分类的情况,不过Drupal 7中的程序与Drupal 6的有些不同,当时没有记录博客,后来再找以前的程序很费劲,现在补记一下,示范程序如下:

自由标签:

以Drupal网站为基础创建App

James Qi 2016年5月26日 - 18:32 发布

  2010年刚开始用Drupal还是Drupal 6,移动大潮未到来,后来随着智能手机的普及,我们在Drupal 6、Drupal 7上都设置了对应的手机版网站,现在又都合并到响应式设计网站中。但以Drupal网站为基础开发App我们还没有做过,只是以前听说是可行的,在前年北京亚艾元公司在武汉大学图书馆的培训时,他们也讲过一点点cordova,但实践的时间很短,只留下一点印象。虽然现在再开发App看上去已经晚了,难以让用户接受在手机上安装更多App,但我还是想尝试一下。今年初用Drupal与微信结合的模块做了一点微信公众号的开发可以有基本的效果,现在再来做App端的结合,下面把尝试的步骤、情况作记录:

  一、需要安装的程序:

自由标签:

MediaWiki网站内容迁移到Drupal平台

James Qi 2016年4月8日 - 11:02 发布

  2010年前我们主要使用MediaWiki平台来建网站,2011年后改用更为通用的Drupal内容管理系统,新网站就用Drupal搭建,而老的Wiki网站就维持运行、管理留言等,两个系统中可能有一部分相同的内容,都是独立导入添加的。现在想把一个MediaWiki中用户创建的页面内容迁移到Drupal网站中,思路是从MediaWiki导出XML文件,变换为CSV格式,然后导入Drupal站,具体记录如下:

页面

订阅 RSS - Drupal