0

ネットを検索しましたが、修正/ヘルプが見つかりません。

TYPO3 v.6を実行しています。Extbase/Fluid は 2 つのことをしようとしています。

  1. php ページを含めて、ページの content 要素に表示します。
  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 コード/レイアウトを作成し、コンテンツ要素内の DB からレコードを取得するにはどうすればよいですか? 拡張 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

デフォルトであるため、selectFields = * を設定する必要はありません。設定されていない場合、現在のページの pid が使用されるため、pidInList を設定するのを忘れている可能性があります。

それはそのように機能する可能性があります:

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

または Fluid テンプレートで:

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

コアは、コンテンツ要素で TypoScript オブジェクトを使用するメソッドを出荷していません。TypoScript オブジェクトをコンテンツ要素のように配置したい場合は、http://typo3.org/extensions/repository/view/tscobj のような拡張機能を使用する必要があります。これはかなり古いものですが、まだ機能するはずです。これは最速ですが、おそらく最善の解決策ではありません。

基本的にこの TypoScript オブジェクトを含む独自のプラグインを作成できます。または、別の Fluid パーシャルまたはテンプレートを使用して、それを含めることができます。

于 2013-10-07T22:20:43.140 に答える
0

では、なぜ print() や echo() を使用してコンテンツを返すのでしょうか? これらのコンストラクトは、実行時に一部のコンテンツを出力するため、出力は TYPO3 出力全体の前になります。

コンテンツを $content のような変数に投げてから、ユーザー関数で return $content を使用してください。

どういうわけか、完全な TYPO3 API を利用できる独自の拡張機能をキックスタートする方がよいと思います。TYPO3 があるのと同じ MySQL データベースに接続しますか? あなたが何をしたいのかを明確にしてください。その後、回答を編集して正しい方向に向けます。

于 2013-10-07T09:10:56.070 に答える