Neos CMS NodeTypes: как сделать ссылку href редактируемой в пользовательском интерфейсе

Я хотел бы сделать элемент контента в Neos для тизера. Вся тизерная коробка должна быть связана с существующей страницей внутри Neos или внешней. Как определить ссылку href на правой панели в бэкенде пользовательского интерфейса Neos?

Кроме того, если я нажму на элемент внутри поля тизера для встроенного редактирования в бэкэнде Neos, он не должен переходить по ссылке.

Вот что у меня есть до сих пор:

Teaserbox.html:

{namespace neos=Neos\Neos\ViewHelpers}
<a href="#" {attributes -> f:format.raw()}>
    <neos:contentElement.editable property="title" tag="p" class="medium" />
    <neos:contentElement.editable property="text" tag="p" />
    <p class="link">
        <neos:contentElement.editable property="link" tag="span" />
    </p>
</a>

NodeTypes.Teaserbox.yaml:

'Test.Package:Teaserbox':
  superTypes:
    'Neos.Neos:Content': true
  ui:
    label: Teaser Box
    icon: icon-newspaper
    inspector:
      groups:
        teaser:
          label: Teaser Box
  properties:
    title:
      type: string
      ui:
        label: 'Title Label'
        inlineEditable: true
        aloha:
          placeholder: 'Title'
    text:
      type: string
      ui:
        label: 'Text Label'
        inlineEditable: true
        aloha:
          placeholder: 'Text'
    link:
      type: string
      ui:
        label: 'Link Label'
        inlineEditable: true
        aloha:
          placeholder: 'Link'

person highliner    schedule 27.02.2018    source источник


Ответы (2)


Вам необходимо включить ссылку в настройках aloha, добавив следующую строку в свойство link:

'Test.Package:Teaserbox':
  ...
  properties:
    ...
    link:
      type: string
      ui:
        label: 'Link Label'
        inlineEditable: true
        aloha:
          placeholder: 'Link'
          link:
            'a': true
person marian0    schedule 28.02.2018
comment
Спасибо за ответ! Я попробовал это, но я не мог заставить это работать. Поведение остается прежним. В пользовательском интерфейсе нет возможности определить URL-адрес ссылки href. Моя цель состоит в том, чтобы я мог щелкнуть элемент контента и выбрать ссылку на правой панели. - person highliner; 06.03.2018
comment
При таком подходе вы должны увидеть возможность установить ссылку в левом верхнем углу страницы, где вы также можете установить полужирный шрифт, курсив, подчеркивание и т. д. (cmscritic.com/site/assets/files/5185/ рядом с раскрывающимся списком «Абзац»). Если это вас не удовлетворит, второй ответ напишу позже для возможности установить ссылку из правой панели. - person marian0; 06.03.2018
comment
Наконец-то я смог его найти. Благодарю вас! Я не ожидал, что он появится там, извините. Я думал, что он будет прямо над элементом или на правой панели. То, что я хотел бы иметь в конце, — это не ссылка на один мир, а ссылка на весь элемент (где у меня есть href=# в шаблоне HTML на данный момент). Было бы идеально, если бы я мог изменить ссылку на весь элемент с правой панели. - person highliner; 06.03.2018

Видимо, я был на ложном пути. Тем временем я обнаружил, что мой запрос можно легко решить с помощью условий рендеринга Neos. Теперь у меня есть другая часть кода для представления бэкэнда и внешнего интерфейса. В режиме предварительного просмотра моя кнопка не имеет тега href, поэтому я могу использовать встроенное редактирование.

Teaserbox.html

{namespace neos=Neos\Neos\ViewHelpers}
<f:if condition="{neos:rendering.inPreviewMode()}">
    <f:then>
        <a class="teaser">
    </f:then>
    <f:else>
        <a class="teaser" href="{linkUrl}">
    </f:else>
</f:if>

NodeTypes.Teaserbox.yaml:

'Test.Package:Teaserbox':
  superTypes:
    'Neos.Neos:Content': true
  ui:
    label: Teaser Box
    icon: icon-newspaper
    inspector:
      groups:
        teaser:
          label: Teaser Box
  properties:
    linkUrl:
      type: string
      defaultValue: '#'
      ui:
        label: 'URL'
        reloadIfChanged: true
        inspector:
          group: ziehli
          editor: 'Neos.Neos/Inspector/Editors/LinkEditor'

Вот документация об этом: http://neos.readthedocs.io/en/stable/References/ViewHelpers/Neos.html

person highliner    schedule 14.03.2018