2

次の Web ページを含むプロジェクトがあると仮定します (スクリーン ショットを参照してください)。

ここに画像の説明を入力

赤、青、投稿、およびブログ ページの uid は、それぞれ 1、2、3、および 4 です。

ここで、すべてのルート Web ページのタイトルを含む配列またはある種のリストを Typoscript で定義したいと思います。この配列を FLUID テンプレートで使用して、すべてのタイトルを表示できます。

例:

  • タイポスクリプトで

    arrayOfTitles= # uid 1、2、3、4 のページのタイトル

  • FLUIDページで

    <f:for each="{arrayOfTitles}" as="foo">
    <h1> {foo} </h1>
    </f:for>
    

これは可能ですか

4

1 に答える 1

5

自然界の TypoScript は配列であるため、必要なことを行う最も簡単な方法は、テンプレートに次のようなコレクションを追加することです。

plugin.tx_yourext {
  settings {
    domains {
      10 = one
      20 = two
      30 = three
      40 = four
    }
  }
}

ビューで直接使用できるようにします

<f:for each="{settings.domains}" as="title">
    <h1>{title}</h1>
</f:for>

一方、単純な DB クエリを実行してデータベースからこれらのページを取得し、単純な配列を作成して、それをビューにパラメーターとして割り当てる方がよい場合があります。その場合、タイトル変更の際に TS を変更する必要はありません。

SQL 疑似コード:

SELECT title FROM pages WHERE is_siteroot = 1 AND deleted = 0 AND hidden = 0 ORDER BY sorting ASC

編集:

TypoScript の一般的な HMENU (ビューの使用を避ける) でそれを行うこともできますspecial=list(もちろん代わりに 35、56 でメニュー オブジェクトを作成し、そこにルート ページの uid を与える必要があります)。

最後に各アイテムをラップして<h1>|</h1>option: を追加します。doNotLinkIt=1ほとんどの場合、このスニペットが機能します (頭のてっぺんから書いたので、確認する必要があります):

lib.myTitles = HMENU
lib.myTitles {
  special = list
  special.value = 1,2,3,4

  1 = TMENU
  1.NO.wrapItemAndSub = <h1>|</h1>
  1.NO.ATagTitle.field =  title
  1.NO.doNotLinkIt = 1
}
于 2013-05-06T08:49:26.393 に答える