2014-02-12 48 views
0

如果當前頁面上沒有內容,我想從固定頁面顯示內容。TYPO3:如果當前頁面上沒有內容,則顯示來自固定頁面的內容

一個例子:在主頁上(pid = 58)在右欄(colPos = 31)中我有一個帶有最新項目的新聞插件。在子頁面上,可以在右欄中插入內容(colPos = 31)。它可以是圖像,文字等。但是,如果右側欄是空的,我想從主頁顯示新聞插件作爲後備選項。

這是我的TypoScript,但它不起作用。如果沒有來自當前頁面的內容,則不會顯示來自主頁面的默認內容。

lib.rightCol-1 = COA 
lib.rightCol-1 { 
    10 = COA 
    10 { 
     ## Get content from current page. 
     10 = COA 
     10 < styles.content.get 
     ## Get content from colPos 31 
     10.select.where = colPos=31 
     if.isTrue.current = 1 

     20 = CONTENT 
     20 { 
      ## IF no content on current page show content from mainpage 
      stdWrap.if.isTrue.current = 1 
      stdWrap.if.negate = 1 
      table = tt_content 
      select { 
       ## Get content from mainpage 
       pidInList = 58 
       where = colPos=31 
       orderBy = sorting 
       languageField = sys_language_uid 
      } 
     } 
    } 
} 

回答

0

感謝您的回答,但我無法得到它的工作。相反,這工作:

lib.rightCol-1 = CONTENT 
lib.rightCol-1 < styles.content.get 
lib.rightCol-1.select.where = colPos=31 
lib.rightCol-1 { 
    stdWrap.ifEmpty.cObject = CONTENT 
    stdWrap.ifEmpty.cObject { 
    table = tt_content 
    select { 
     pidInList = 58 
     orderBy = sorting 
     where = colPos = 31 
     languageField = sys_language_uid 
     } 
    } 
} 
1

這可以使用stdWrap.override完成。如果stdWrap.override返回非空的內容,則此值會替換stdWrap將返回的正常值。在你的情況,這可能是這樣的:

# Fetch the default content from the mainpage with id 58 
lib.rightCol-1 = CONTENT 
lib.rightCol-1 { 
    table = tt_content 
    select { 
     pidInList = 58 
     where = colPos=31 
     orderBy = sorting 
     languageField = sys_language_uid 
    } 

    # override the content from page 58 with content from the current page, 
    # but only if there is content on this page 
    stdWrap.override.cObject = CONTENT 
    stdWrap.override.cObject { 
     table = tt_content 
     select { 
      pidInList = this 
      where = colPos=31 
      orderBy = sorting 
      languageField = sys_language_uid 
     } 
    } 
} 

您還可以創建以下行爲:

  1. 如果當前頁面上的內容,顯示它。
  2. 否則,請走根路線,並從列中包含內容的第一頁獲取內容。
  3. 如果沒有這樣的頁面,請從「主頁」獲取內容。

這可以通過簡單地將slide = -1設置爲第二個CONTENT-Object來完成。

+0

我無法讓你的exampel工作。相反,這工作: – stig

+0

是的,我想這是因爲我忘了兩個CONTENT對象中的'table = tt_content'。編輯答案。 – Jost