我接触Drupal 10和Twig不久,需要在Twig模块中添加某个Views的内容,询问ChatGPT给我了两种方案:一是自定义模块中用代码来实现,另一个是采用Twig Tweak这个模块,我查看了这个模块,有10多万的网站在使用
模块
这是 模块 分类的页面,点击下面标题查看详细文章内容:
我们自己运营的网站对于界面的要求不是太苛刻,一般都是一个Drupal网站使用同一个主题皮肤,最近在为用户开发一个项目的时候用到Drupal,希望不同的内容对应不同的显示界面,我先是建议同事可以在page.tpl.php中添加一些判断来实现,但要动代码比较麻烦,后来找了一个现成的Drupal模块:Content Theme,可以实现一下功能:
- 分配一个主题给所有内容类型(覆盖系统默认主题)
- 分配一个主题给指定的内容类型(覆盖给所有内容类型指定的主题以及系统默认主题)
- 分类一个主题给指定的内容节点(覆盖内容类
前段时间做了“一个独立可用的中文简体繁体转换PHP程序”,尝试“Drupal中文网站简体版本自动生成一个对应的繁体版本”,并在包括我的博客在内的几个网站上实施,观察没有什么大的问题,现在准备实施到更多的网站中,就干脆把PHP程序扩展一下做成一个Drupal模块,这个模块就只有2个文件:
- zh_convert.info :模块定义文件
- zh_convert.module :模块函数文件
其中zh_convert.info内容如下:
一直以来我们放在国外服务器上的网站在国内访问都很慢,当网站中包含有Google地图等内容的时候,更是在国内访问会被卡住,等待几十秒后才打开页面剩余部分,而地图部分也是空白。
去年在做ipshu.com网站的时候也是遇到这个问题,因为这个站本身就是判断IP地址的,所以也方便解决,当时记录了一篇博客《让国内国外都可以调用Google地图API》,采用的其中第二种办法。
但其它放在国外的网站依然没有解决,昨天干脆去编写了一个简单的Drupal模块in_china(放在本文的附件中),主要作用就是定义一个PHP函数in_china(),用于判断
我们以前在使用MediaWiki的时候注意到系统提供的搜索框功能很强大,每输入一个字母或者数字、汉字的时候都会出现一个下拉列表显示出包含已经输入内容的文章标题,点击即可进入,和Google、百度这样的搜索引擎的搜索框很相似。如下图:
而Drupal的内置搜索功能就没有这样的功能:不能随着输入出现下拉提示、没
以前Drupal网站中遇到需要对Views的输出进行一些变换的时候,一般是通过安装Views PHP这个模块,在Views中添加Global PHP字段,在其中设置读取什么值、进行什么变换、输出什么内容,这个方式很早就开始用了,Drupal 6和Drupal 7都用过。但缺点是设置麻烦,还可能会引起负载的升高。
最近在调试一个新的网站中就遇到数据量大的时候,服务器报500错误,甚至导致阿里云服务器死机的情况。检查后发现都是与Views相关,先安装了Views PagerLite来减少MySQL的Count指令,但依然有不少内存不足的报错。
以前托管服务器或者租用的服务器一般都是100M共享的带宽,很少出现机器带宽被占满的情况,去年开始采用阿里云平台后,带宽就是一个不得不考虑的成本因素,我们一般都是每台ECS购买的10M左右带宽,每年费用已经不少了,而投入使用后很轻易就会被占满,关键是网站的流量并没有特别提升,广告收入没有增加,成本却在大幅提高,还导致正常用户访问变慢、困难。
同事在Linux服务器上安装了一个iftop来查看带宽占用情况,很容易就发现了是搜索引擎的爬虫抓取sitemap.xml这样的网址占用了很大带宽,我们网站系列多、页面多、还有多语言或者手机版,网站地图就特别的多,如果爬虫来得
所谓蜜罐技术是指的引诱垃圾发帖的机器人进入我们设置的陷阱,正常的人类发帖者是不会受到影响的,而机器人不能分辨、进行了上当的操作,从而被我们识别、屏蔽。
Drupal中有一大类反垃圾模块都是用的这种技术,其中有honeypot, botcha, hidden captcha, spamicide等,我看hoeypot的安装量最大、drupal 6/7/8都支持,就选用了这个。
安装很简单,设置也只有一个页面,如果需要批量安装也可以用命令drush dl honeypot, drush en honeypot来执行,站内模块设置的话,我去在
网站只要是打开了用户反馈信息、留言评论的功能就避免不了被垃圾骚扰,无论是以前用过的MediaWiki还是现在主要用的Drupal都是这样,其它各自现成的网站软件或者自己编写的软件都会遇到这种讨厌的问题。
最常见的就是安装验证码模块,不过从我们实用中发现还是有不少垃圾发送者可以破解验证码而继续发送垃圾,后来我又尝试了Mollom这个“智能”反垃圾模块,使用了综合的办法来防范,确实很有效,不过去年开始随着中国大陆与国外网络之间的连接越来越受GFW的影响,总是看到无法连接web service的报错,被迫去掉了这个模块(这个模块还有一个缺点就
在升级Drupal网站时需要特别注意曾经对哪些模块进行过更改,我们这里主要修改过的记录一下:
- xmlsitemap:修改了xmlsitemap.page.inc来适合多语言、手机版的xmlsitemap;
- transliteration:子目录data下纠正了一些错误的拼音;
- languageicons:子目录flags下添加了更多语言国家国旗。