Могу ли я использовать список в качестве значения пользовательского свойства шаблона? - PullRequest
0 голосов
/ 06 января 2020

Я использую пользовательское свойство шаблона в определении шаблона моей страницы для отображения CSS классов в теге body в моем шаблонном скрипте. Например:

parameters:
  body:
    classes: example-body-class1
<body class="${def.parameters.body.classes!}"></body>

Рендеринг вывода:

<body class="example-body-class1"></body>

Однако, когда я добавляю несколько классов, я должен добавить пробелы между ними. Например:

parameters:
  body:
    classes: example-body-class1 example-body-class2

Визуализированный вывод:

<body class="example-body-class1 example-body-class2"></body>

Я хотел бы улучшить этот дизайн, используя список. Например:

parameters:
  body:
    classes:
      - example-body-class1
      - example-body-class2

Однако, когда я сбрасываю значение def.parameters.body.classes, возвращается ноль.

${cmsfn.dump(def.parameters.body.classes)}

[#-- Returns --]
null (Null)

Свойства пользовательского шаблона Magnolia Ссылки на примеры документации строковое значение.

Можно ли использовать список в качестве значения пользовательского свойства шаблона? Если да, то как бы я отобразил приведенный выше список в виде строки с каждым элементом, разделенным пробелом?

1 Ответ

1 голос
/ 07 января 2020

На самом деле они могут быть списками, но вам нужно определить их значениями (параметры обычно key:value пары.

определение:

title: "test"
renderType: freemarker
templateScript: /test.ftl
parameters:
  list:
    a: a
    b: b

шаблон:

${cmsfn.dump(def.parameters,3,true)}
[#list def.parameters.list as param, k]
    ${param!"nope"}
[/#list]

вывод:

Hash (1)
 list = Hash (2)
 a = "a" (String)
 b = "b" (String)
a b
...