【问题标题】:Access the content of a DCE field outside of that DCE访问该 DCE 之外的 DCE 字段的内容
【发布时间】:2018-11-27 09:20:27
【问题描述】:

我使用 Fluid 和 Typo3 博客扩展(T3G)。 我创建了一个 DCE,并在博客文章页面中使用它

博客主页中显示的文章列表显示了博客文章页面的标题、元数据和摘要(默认情况下)

我想将我的 DCE (在我的页面中) 中的字段内容添加到该预览中。没有 PHP 是否可以做到这一点?

这是来自博客扩展的预览部分的默认内容:Resources\Private\Partials\List\Post.html

我想在默认部分中添加类似 {field.mydcefield} 的内容。

我已经找了两天了,但我在 DCE、Fluid、TCA、viewhelpers 和那个博客扩展上苦苦挣扎……


编辑:

that thread 上,据说可以使用{post.content} 显示博客文章页面的内容,不幸的是,它似乎不起作用……

我也看过this threadthis one,但没有成功……但也许我做错了……

如果我能显示所有内容就好了,我想我会尝试截断它。

【问题讨论】:

    标签: typo3 blogs fluid typo3-7.6.x


    【解决方案1】:

    像往常一样,这是可能的,但可能有点复杂。

    您的部分工作在页面上下文中 (post):所有变量都是该页面的元素。
    您需要来自此页面上的内容元素 (CE) 的数据。
    所以你必须从那个页面到那个页面中的 CE。

    标准流体无法做到这一点。但是我们有两种解决方案:

    1. 使用额外的 PHP-viewhelper,例如来自EXT:vhscontent.get()
    2. cObject viewhelper 中使用打字稿

    对于解决方案 2,您需要进一步的排版来获取您想要的数据,但您可能不会在单个流体变量中获得它,而只能是渲染结果。 (因此您可以使用(其他)流体进行渲染。)
    这样可以避免使用 PHP,但打字稿可能会更复杂。

    您将使用 CONTENT 对象,从页面中选择所有 tt_content 记录(您需要使用页面 uid 作为 cObject VH 的参数),然后在 renderObj 中构建您自己的渲染(在这里您可以使用fluidTemplate)

    如果您发现来自 ext:VHS 的 VH 正在执行您想要的操作,但您不想使用整个扩展程序,您可以将这个 VH 复制到您自己的(站点)扩展程序中。

    【讨论】:

    • 我已尝试添加<v:content.render column="0"></v:content.render><v:content.random.get column="0"></v:content.random.get><v:content.get column="0"></v:content.get>。在最好的情况下,我只会在前端呈现“数组”……
    • 我还用简单的<f:cObject typoscriptObjectPath="lib.fluidText" /> 和 TS: lib.fluidText = CONTENT lib.fluidText { table = tt_content select.pidInList = this renderObj = < tt_content } 尝试了第二种解决方案,但它没有给我任何东西......
    • renderObj = < tt_content 不是必需的,因为如果没有明确定义,则使用记录的默认呈现。更有问题的是选择,它非常笼统(“当前页面中的所有 CE”?但可能有一些自动限制干扰(sys_language,col_pos,...)
    • 我还在that thread 上发现,您应该能够使用{post.content} 显示内容。但不幸的是,它不起作用,并且没有显示博客文章页面的内容。
    • 你做过<f:debug>吗?该线程很旧,软件可能同时发生了变化。您只能使用您拥有的数据。
    猜你喜欢
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多