0

已搜索网络,但找不到任何修复/帮助。

我正在运行 TYPO3 v.6。Extbase/Fluid 我正在尝试做两件事。

  1. 包括一个php页面,并在页面上的一个内容元素中显示它。
  2. 试图从 MySQL 数据库中获取一些数据,并将其显示在内容元素中。

我在 TS 页面中包含了一个 php 页面,例如。

lib.timmers = USER_INT
lib.timmers {
includeLibs.time = fileadmin/templates/add/php/dates.php
    userFunc = custom_class->customfunction
}

然后安装了扩展 tscobj,它与 PHP 页面中的 Return 命令一起使用,但不适用于 Echo 和 Print。如果我将 includeLibs.time 放在 lib.timmer 之外,那么它会显示 php 内容,但在 HTML 标记之前。

所以我在页面上的内容元素中包含 php 内容时遇到了问题。

以及如何添加 MySQL 连接并制作一些 HTML 代码/布局,以便我可以从内容元素内的数据库中获取记录,我尝试了扩展 ViewHelper,但它不起作用。

有人能帮我吗。

编辑:

我试过这段代码,但我没有得到任何数据..

lib.GetMainCat = CONTENT
lib.GetMainCat {
wrap = <div class="p_filter"><div class="p_filter_container"><a class="p_cat_filter button" href="#" title="All Categories" data-filter="article.portfolio"><span>All Categories</span></a><ul class="p_filter"><li class="current"><a href="#" title="All Categories" data-filter="article.portfolio">All Categories</a></li>|</ul></div><div class="cl"></div></div>
table = tx_tbpdrills_domain_model_drillcategory

select {
    selectFields = *
            where = NOT deleted AND NOT hidden      
    orderBy = categorytitle ASC
}
renderObj >
renderObj = COA_INT
renderObj {     
    10 = TEXT       
    10.field = categorytitle
    10.wrap = <li><a href="#" title="###" data-filter="article.portfolio[data-category~='###']">|</a></li>
}   
}
4

2 回答 2

0

那么为什么要使用 print() 或 echo() 来返回您的内容呢?这些构造在运行时输出一些内容,因此输出将在整个 TYPO3 输出之前。

只需将您的内容放入 $content 之类的变量中,然后在您的用户函数中使用 return $content。

不知何故,我认为你最好启动一个自己的扩展,在那里你将拥有完整的 TYPO3 API。你想连接到你的 TYPO3 所在的同一个 MySQL 数据库吗?请澄清您希望做什么,然后我将编辑我的答案,为您指明正确的方向。

于 2013-10-07T09:10:56.070 回答
0

您不需要设置 selectFields = * 因为它是默认设置。您很可能忘记设置 pidInList,因为如果未设置,它会使用当前页面的 pid。

它可以这样工作:

lib.GetMainCat = CONTENT
lib.GetMainCat {
    wrap = <div class="p_filter"><div class="p_filter_container"><a class="p_cat_filter button" href="#" title="All Categories" data-filter="article.portfolio"><span>All Categories</span></a><ul class="p_filter"><li class="current"><a href="#" title="All Categories" data-filter="article.portfolio">All Categories</a></li>|</ul></div><div class="cl"></div></div>
    table = tx_tbpdrills_domain_model_drillcategory
    select {
        pidInList = 999 [page id where the records reside]
        where = NOT deleted AND NOT hidden      
        orderBy = categorytitle ASC
    }
    renderObj = COA_INT
    renderObj {     
        10 = TEXT       
        10.field = categorytitle
        10.wrap = <li><a href="#" title="###" data-filter="article.portfolio[data-category~='###']">|</a></li>
    }   
}

现在可以在 TypoScript 中访问此对象:

page.20 < lib.GetMainCat

或在流体模板中:

<f:cObject typoscriptObjectPath="lib.GetMainCat" />

核心不提供在内容元素中使用 TypoScript 对象的方法。如果您想像内容元素一样放置 TypoScript 对象,则需要使用http://typo3.org/extensions/repository/view/tscobj之类的扩展名 。它已经很老了,但它仍然可以工作。这是最快的,但可能不是最好的解决方案。

您可以编写一个基本上包含此 TypoScript 对象的自己的插件。或者您可以使用另一个 Fluid 部分或模板来包含它。

于 2013-10-07T22:20:43.140 回答