小编Con*_*art的帖子

在Drupal 8中使用特定节点类型的预处理挂钩

我已成功使用预处理页面挂钩,例如:

function mytheme_preprocess_page__node_front(&$variables) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

function mytheme_preprocess_page__node_12(&$variables) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

它与分别名为page - front.html.twig和page - 12.html.twig的自定义模板相关联.

我正在尝试为名为Video的内容类型实现相同的挂钩和模板配对.我的理解是,我的示例是针对特定页面的自定义模板,而我的目标是整个内容类型的自定义模板,但我得到了一个名为node的自定义模板 - video.html.twig可用作所有视频页面的模板.但是,当我尝试根据此模板名称编写一个钩子时:

function mytheme_preprocess_node__video(&$variables) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

这不起作用.我认为我要么不能定义这样的钩子,要么我只是错误地命名它.我找到了一些与此相关的线程,例如似乎意味着我需要为所有节点定义一个钩子,然后编写一个if语句来分别处理每个类型.所以.......

最后的问题:我可以为整个内容类型定义一个钩子,如果是这样,我做错了什么?

drupal-templates drupal-hooks drupal-8

3
推荐指数
2
解决办法
9695
查看次数

替换空字符串

我正在尝试解析json文件并遇到了这个问题.我从查询中提取一些数据并将其转换为json,将其发送到另一个文件,然后解析它.但是有些数据是空字符串,当我尝试解析它时会破坏它们.

我正在生成json对象,如下所示:

<cfset person = '{
    "fname":"#ReReplace(firstName, '\t', '\\t', "all").trim()#",
    "lname":"#ReReplace(lastName, '\t', '\\t', "all").trim()#",
    "occupation":"ReReplace(lastName, '\t', '\\t', "all").trim()#"
}'>
Run Code Online (Sandbox Code Playgroud)

我目前已经在使用replace来处理值中的选项卡(不要问,人们做奇怪的事情)并且想使用replace来处理空字符串.我尝试过使用Replace(firstName, '', '""', "all")但是冷却并不喜欢那一点,原因很明显.一个选择是在我到达json世代之前使用if语句,但我想知道是否有人知道更快的方式使用Replace

coldfusion json

2
推荐指数
1
解决办法
170
查看次数

JSON似乎不喜欢'4D'

我在Coldfusion中使用serializeJSON和deserializeJSON函数遇到了一个奇怪的问题.当我执行以下操作时:

<cfdump var="#deserializeJSON(serializeJSON('4D '))#">
Run Code Online (Sandbox Code Playgroud)

并加载页面,我得到一个错误,上面写着'4D'中的JSON解析失败:'D'.当我更改D以使输入看起来像'4E'时,页面加载正常,但是当我更改数字以便输入读取类似'5D'的内容时,我得到相同的错误.我想我可能会意外地输入一个转义字符,但我对字符编码的了解不够充分.有没有人知道为什么会这样?

coldfusion json

1
推荐指数
1
解决办法
66
查看次数