Доступ к содержимому поля DCE за пределами этого DCE - PullRequest
0 голосов
/ 27 ноября 2018

Я использую Fluid и расширение блога Typo3 (T3G) .Я создал DCE и использовал его на странице поста блога .

В списке постов, отображаемых на главной странице блога, отображаются заголовок, мета и реферат страницы поста блога . (по умолчанию) .

Я хотел бы добавить содержимое поля из моей DCE (которая есть на моей странице) к этому предварительному просмотру.Можно ли сделать это без PHP?

Вот содержимое по умолчанию этого частичного предварительного просмотра из расширения блога: Resources \ Private \ Partials \ List \ Post.html

Я хотел бы добавить что-то вроде {field.mydcefield} в этот частичный по умолчанию.

Я искалдва дня, но я борюсь с DCE, Fluid, TCA, viewhelpers и расширением блога ...


РЕДАКТИРОВАТЬ:

На , чтотема , говорят, что можно использовать {post.content} для отображения контента со страницы поста в блоге, к сожалению, он не работает ...

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

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

1 Ответ

0 голосов
/ 28 ноября 2018

Как обычно, это возможно, но это может быть немного сложно.

ваши частичные работы в контексте страницы (post): все переменные являются элементами этой страницы.
Вам нужны данные от элемента содержимого (CE) на этой странице.
Таким образом, вам необходимо перейти от страницы к CE на этой странице.

Это невозможно сделать со стандартной жидкостью.Но у нас есть два решения:

  1. использовать дополнительный PHP-viewhelper, например, из EXT:vhs: content.get()
  2. использовать typoscript с cObjectviewhelper

Для решения 2 вам потребуется дополнительный опечатка, которая получает нужные вам данные, но вы, вероятно, не получите их в виде единичных переменных, а только в визуализированном результате.(так что вы можете выполнять рендеринг с (другим) флюидом.)
Таким образом вы избегаете PHP, но опечатка может быть более сложной.

Вы должны использовать объект CONTENT, выбрать все записи tt_content со страницы (вам необходимо использовать идентификатор страницы в качестве аргумента для cObject VH), а затем создать свой собственный рендеринг в renderObj (здесь вы можете использовать fluidTemplate)

Если вы обнаружите, что VH из ext:VHS делает то, что вы хотите, но вы не хотите использовать все расширение, вы можете скопировать этот единственный VH вваше собственное (site-) расширение.

...