问题标签 [hubl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
992 浏览

hubl - 是否可以跨模块和模板共享 HubL 宏?

在 HubSpot CMS 中,您可以像这样创建宏:

是否可以在不同的模块和模板之间共享此宏?或者您是否必须在需要使用它的任何地方重复该宏?

0 投票
0 回答
298 浏览

html - Hubspot CMS 中的语言切换

为网站制作自定义语言切换器的最佳方法是什么。

我的问题是我有一个有两种语言版本的网站,我想说的是我的自定义语言切换器有点问题。由于某种原因,它并不适用于所有页面,在我看来,它是以非常复杂的方式编码的。在我们的网站中,语言版本是通过 url 更改的。例如,mycompany.fi/ 是主要语言版本,mycompany.fi/en/ 是网站的英文版本。这是我当前如何通过更改 url 来切换语言的代码。在代码中,它会检查 url 以及页面是否有 translate_content。之后,我将 site_language 和 other_language 放到链接中,因此通过按下链接它会更改语言。

我想知道有没有其他方法可以实现这一点,因为对我来说这似乎是非常复杂的解决方案。我想知道是否有一些全局变量或定义页面中当前使用的语言的东西。

0 投票
1 回答
149 浏览

javascript - 如何将唯一的 id 添加到 first of kind

好的。建立员工目录。目录的顶部是字母表,因此您可以单击一个字母并找到第一个将该字母作为姓氏首字母的人。我如何遍历所有员工并将字母的 id 添加到每个员工的第一个。我还没有建立标记,但现在它可能很简单

0 投票
2 回答
323 浏览

html - HTML & HUBL:如何添加页码

我正在开发一个博客,它几乎完成了。我想要每页上的页码,我已经有下一页和上一页的箭头。

它是在 Hubspot 中开发的自定义编码博客,因此使用了 HUBL,一种模板语言和 HTML。

谁能告诉我我需要添加哪一行代码才能获得页码?

我已将其分成文档:BlogList.html 和 Blogpost.html,并将向您展示我目前所拥有的。

任何建议都将受到欢迎。

谢谢你。

博客列表.html:

BlogPost.html:

0 投票
1 回答
747 浏览

for-loop - HuBL:在 for 循环外使用 for 循环变量

我创建了一个模板部分文件,我在其中定义了该文件中的所有变量。然后我想在custom modules. 但是,for loop循环在部分文件中关闭,因此当我在自定义模块的 HTML 中引用它时,它将超出范围。

有没有办法在循环外使用 for 循环变量?

演示:

这是我的模板部分文件:

这是我在标记中调用变量的方式:

0 投票
2 回答
521 浏览

html - HuBL / Twig:用于循环重复相同内容(替代需要中断)

我正在使用 a为系统中存在的每个博客文章for loop生成。cards

生成的卡片将具有不同的宽度。一张卡片可以是large或者small为了实现这一点,我正在使用 HubL 的cycle语法(此处的文档)。我试图实现的卡片宽度的视觉示例可以在这里看到:

在此处输入图像描述

现在,第一行中的第三张卡片将不再是 for 循环的一部分,例如,它将是一张图片。

在此处输入图像描述

我遇到的问题:

  • 卡片 1 和 2 显示最新帖子(如预期)
  • 然后,for 循环停止,所以我可以得到浅蓝色卡(因为Twig也不HubL支持break语法。
  • 在我已经说过之后,我开始了另一个循环{% if loop.index >=3 %}- 所以跳过循环中的前两个项目,因为最新的卡片显示在第一个循环中。但是,在cycle我已经定义的情况下,它会显示错误的卡片类。下面的代码示例:

在上面的最后一个循环中,由于我忽略了前两个帖子,因此它也忽略了cycle参数中的前两个项目。无论循环如何,卡片都应具有以下类:

  • 第一张卡片:卡片--小
  • 第二张牌:card--small
  • 第三张牌:card--large
  • 第四张牌:card--large
  • 第五张牌:卡片——小
  • 第六张卡片:卡片--小
  • 然后它将再次从顶部开始

但是,正在发生的事情是:

  • 第一张卡片:卡片--大
  • 第二张牌:card--large
  • 第三张卡片:卡片——小
  • 第四张卡片:卡片——小
  • ...

我也尝试过{% if not loop.second %}{% if loop.index >=3 %}但它只是再次获得相同的帖子,例如:

在此处输入图像描述

0 投票
1 回答
277 浏览

cookies - 获取 cookie 作为 HubL 变量

HubSpot我试图检查一个 cookie 是否存在,如果它确实存在,我希望通过一个if statement. 但是,我似乎无法使用他们的文档request.cookies中概述的 cookie 值。

执行以下操作:

返回所有 cookie。我正在寻找在变量中获取单个 cookie 值。

我试图在变量中获取的 cookie 名为__hssluid. 由于request.cookies是 type dict,我尝试了以下方法:

但它没有显示任何东西。如何使用 HuBL 获取单个 cookie 值?

还尝试了以下方法:

以上所有对我来说都没有打印。

0 投票
1 回答
321 浏览

twig - HuBL:如何通过联系人 ID 检查联系人属于哪些列表?

如果用户是 HubSpot 列表的一部分,我会尝试显示特定内容。

If contact_id is part_of_this_list then do this

目前正在从查询字符串中获取联系人 ID。我正在尝试检查用户是否在所述列表中,但它不起作用。

方法

0 投票
2 回答
379 浏览

javascript - 查找今天的日期和时间与另一个日期和时间之间的差异

我正在尝试查找两个日期(和时间)之间的日期和时间差。我正在尝试实现倒计时(到事件日期)功能,但遇到了我的方法的问题。

注意:下面定义的一些变量在,只要它们在同一个文件中HuBLHuBL就可以使用。Javascript

这是我目前的方法:

1. 我如何获取数据和时间

HubSpot,我有一个数据库表。在该表中,我有一列类型为date and time. 作为参考,该字段中的值如下:

在此处输入图像描述

我已经运行 afor loop来获取它的date time作为单独的变量(event_date是数据库表中的列名):

要查看datetimeformat我使用的参数 -请参阅此处的文档

打印{{ event_date }}2020 年 9 月 7 日
打印{{ event_time }}11 59

2. 现在我有了 vars 中的日期和时间,我是如何尝试找出差异的

在 hero.html 中

我的问题:

有了以上内容,我得到console.logNaN. 我试图在days, hours,中获得结果minutesseconds因为我将它划分为事件计时器的倒计时。

我完全不知道如何能够检查事件时间 - 试图让倒数计时器尽可能准确,倒数到事件开始,但不确定我该如何做到这一点

注意:标记twig也是语法类似于HubL

0 投票
0 回答
126 浏览

datetime - HubL / Twig:比较两个unix时间戳

我正在尝试查找两个 unix 值之间的日期和时间差。在 HuBL,我目前有:

table_data_dict.event_time是数据库中日期和时间字段的值。

运行以下:

产生以下结果:

测试场景:

测试1:

我在数据库中设置的日期和时间(是什么event_date_and_time)是10th August 2020 12pm.

echosif statement事件不是实时的- 这是正确的。

测试 2:

现在,数据库中的日期和时间设置为今天日期的前一天(即 2020 年 8 月 4 日下午 12:00)- 活动基本上是现场直播。

echos事件是实时if statement的- 这又是正确的。

测试 3:

现在,对我来说,现在是上午 11:00(2020 年 8 月 5 日)。如果在数据库中,我将日期和时间更改为 2020 年 8 月 5 日上午 11:10。它产生以下结果:

在上午 10 点 55 分,当我检查 if 语句时,它会说event is not live(正确,它在上午 11 点上线)。

现在,当我在上午 11 点(活动进行时)查看时,它显示event is not live

当我在上午 11:05 继续等待并再次检查时,它仍然显示event is not live

不确定为什么?我已经清除了缓存,这不是缓存问题,不确定为什么会这样?