Twig Tweak模块

g089h515r806 的头像
Submitted by g089h515r806 on 星期二, 2025-09-09 03:12

我们在做Drupal项目的时候,特别时Drupal8版本以上的项目,我们经常使用Twig Tweak模块。这个模块小巧玲珑,方便易用。

模块地址:https://www.drupal.org/project/twig_tweak

它为Drupal核心的Twig模板,增加了扩展函数,方便可以在twig模板文件中嵌入区块、视图,等等。

在模板中嵌入区块:

{{ drupal_block('plugin_id') }}

{{ drupal_entity('block', 'block_id', check_access=false) }}

Drupal版本:

让Drupal兼容持久性应用服务器( ReactPHP, PHP-PM,Swoole)

g089h515r806 的头像
Submitted by g089h515r806 on 星期二, 2025-09-09 02:45

我们知道,Drupal是一个PHP版本的CMS系统,这个系统开始涉及,就是面向HTTP 请求的,底层逻辑就是一个请求,启动一次引导指令,请求结束后,进程结束。这种模式比较简单。

随着技术的进步,其它语言,都可以实现程序启动后,处理多个请求,比如Java,Nodejs,这种模式的优点是性能卓越。PHP里面也有类似的框架,比如Swoole,这个国产的框架,底层C++;以及 ReactPHP, PHP-PM等等,都可以实现启动后,处理多个请求。

受限于Drupal历史代码的负担,让Drupal兼容持久性应用服务器并不是一件容易的事情,Drupal社区有部分人士,多次呼吁,讨论的也很激烈,这里有一个专门的讨论帖子:

论坛:

Drupal版本:

Drupal AI模块

g089h515r806 的头像
Submitted by g089h515r806 on 星期四, 2025-09-04 05:35

最近几年,自然语言大模型的快速落地应用发展迅猛,呈现百花齐放的局面。作为内容管理系统里面的领头羊,Drupal社区也推出了AI的集成模块。模块地址:

https://www.drupal.org/project/ai

这个模块提供了一个框架,用于在Drupal站点集成AI功能,支持多种AI供应商。这个模块包含一些列模块,并提供了一个基础的API,用来生成文本内容,图片、内容分析,等等。

它吸取了Search API, Open AI等Drupal模块的成功经验,他提供了一个统一的抽象层,方便集成OpenAI (ChatGPT, DALL-E), Anthropic (Claude), Fireworks, Mistral 这些商用大模块,也可以集成开源的大模型,Olama, LMStudio and Hugginface,支持本地化部署。

Drupal版本:

Experience builder模块更名为Drupal Canvas

g089h515r806 的头像
Submitted by g089h515r806 on 星期四, 2025-09-04 05:10

近期2025年9月2日,Experience builder模块更名为Drupal Canvas,并发布了1.0.0-alpha1版本。更名的原因很简单,与别人的商标名称冲突了。

Canvas,前端web里面意思是画布,web特有的技术。Drupal Canvas模块使用到了web前端的画布功能,它的用途是让非技术人员,通过画布技术,拖拽的方式构建前端页面。易用性方面有了很大的提升。

如果说Panels模块,是面向Drupal程序员的,那么Drupal Canvas则是面向Drupal终端用户的,特别是内容管理人员。允许用户拖拽的内容,支持Drupal系统自带的区块、视图、等等,方便易用,并且内容可以复用。

Drupal Canvas除了Drupal端的代码以外,大量的使用React前端框架,整个预览的前端界面,都是基于React框架开发的,这是Drupal + React的一次非常好的实践。

论坛:

Drupal版本:

Drupal网站admin管理界面限制内部IP访问

g089h515r806 的头像
Submitted by g089h515r806 on 星期二, 2025-07-08 08:54

部分单位出于安全的考虑,管理页面只让内网访问,特别是护网阶段。我们的Drupal站点,通常使用Nginx,这里介绍一下通过nginx的配置文件,实现这个功能

       location /admin {

                     # 第一步:允许内网网段

                  allow 10.0.0.0/24;

论坛:

Drupal版本:

Nodejs 文本语种识别

g089h515r806 的头像
Submitted by g089h515r806 on 星期一, 2025-01-06 06:27

我们帮助客户搭建了一个信息采集系统,采集器用的nodejs,服务器端用的是我们熟悉的Drupal。我们采集的信息由于是各种语种都有的,我们系统有将其统一成英文的需求,所以我们就调用了百度的翻译API,统一翻译成为英文。

 

用了一段时间发现,百度翻译的接口有点小贵,考虑到大部分的文章都是英文,只需要把不是英文的翻译成英文即可。此时我们需要识别这些文本的语种,做一个判断。

 

我查了一下,NodeJS下面,文本的语种识别,主要有3个库可用tinyld、languagedetect、franc,下面是地址,还有最近更新时间,下载量的对比。

https://www.npmjs.com/package/tinyld    2 years ago   2.2

 

论坛:

Drupal 9 升级Drupal10

g089h515r806 的头像
Submitted by g089h515r806 on 星期二, 2024-08-06 07:37

现在Drupal11的正式版已经出来了,Drupal9也已经停止了维护,升级到Drupal10,是必然选择。最近尝试将10多个Drupal9站点,升级到Drupal10,总结一下经验:

1, 先升级到Drupal 9的最后一个版本,也就是Drupal9.5

2, 之后升级到Drupal10.0

3, 再后升级到Drupal10.2

 

全程做好备份,防止出错。注意模块的兼容性,首先先将模块升级,让它同时兼容Drupal9,Drupal10. 升级主题,也同时兼容Drupal9,Drupal10。自定义模块、主题,info文件修改:

论坛:

Drupal版本:

页面

Subscribe to Think in Drupal RSS