2011-06-03 69 views
3

這是我想要做的:在給定頁面上,我想顯示給定頁面的第一個子頁面的所有內容元素。我不能簡單地使用快捷頁面,因爲我需要在子頁面之後顯示其他內容元素。我怎樣才能做到這一點?Typo3:使用錯別字顯示來自第一個子頁面的內容

下面是我認爲我可以做到這一點的片段,但我不知道如何構建選擇。有沒有更好的辦法?

# save current content 
tmp.pagecontent < page.10.subparts.main-content 

# clear the content of the main column 
page.10.subparts.main-content > 

# build a new object for this column as content-object-array 
page.10.subparts.main-content = COA 
page.10.subparts.main-content { 
    10 = CONTENT 
    10.table = tt_content 
    10.select { 
    # what should I put here? 
    } 
# re-insert the normal pagecontent to the page 
20 < tmp.pagecontent 
+0

正在使用Templavoila?你可以參考這些項目。 – konsolenfreddy 2011-06-06 05:57:42

+0

不,我使用模板自動分析器。我不能簡單地引用這些項目,因爲我想要的是第一個子頁面的內容,並且當我添加新頁面時,第一個子頁面可以及時更改。所以並不總是我想要展示的相同物品。 – 2011-06-06 14:53:03

+0

「select」的行爲類似於SQL查詢。看看pidInList的最後一個例子http://wiki.typo3.org/TSref/CONTENT 使用RECORDS而不是CONTENT可能更適合你的情況。 http://wiki.typo3.org/TSref/RECORDS – Rito 2011-06-07 14:12:17

回答

-1

我終於成功了!不知道這是否是最好的方法。你怎麼看待這件事?我應該把第二個選擇到userFunc嗎?

fileadmin/userfunc/mailArchive.php

<?php 
class user_mailArchive { 
    function getFirstChild($content, $conf) { 
     $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
       'uid',       // SELECT ... 
       'pages',      // FROM ... 
       'pid='.intval($conf['pid']), // WHERE... 
       '',       // GROUP BY... 
       'sorting',      // ORDER BY... 
       '1'       // LIMIT ... 
      ); 
     $row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res); 
     if ($row) { 
      return $row['uid']; 
     } 
     else { 
      return ''; 
     } 
    } 
} 

TS模板

# fill the content of the main-column to a tmp.object 
tmp.pagecontent < page.10.subparts.main-content 

# clear the content of the main column 
page.10.subparts.main-content > 

includeLibs.mailArchive= fileadmin/userfunc/mailArchive.php 

# build a new object for this column as content-object-array 
page.10.subparts.main-content = COA 
page.10.subparts.main-content { 
    10 = CONTENT 
    10 { 
    table = tt_content 
    select { 
     pidInList.cObject = USER 
     pidInList.cObject { 
     userFunc = user_mailArchive->getFirstChild 
     # parent page ID 
     pid = 139 
     } 
     orderBy = sorting 
    } 
    } 

# re-insert the normal pagecontent to the page 
    20 < tmp.pagecontent 
} 
3

只是爲了其他人添加的答案。 首先:指定當前頁面的第一個子頁面。其次:獲取你想要的那個子頁面的內容元素。

temp.content = COA 
temp.content { 
    10 = CONTENT 
    10 { 
    table = pages 
    select { 
     pidInList.field = uid 
     orderBy = sorting ASC 
     max = 1 
     begin = 0 
    } 
    renderObj = COA 
    renderObj { 
     10 = CONTENT 
     10 { 
     table = tt_content 
     select { 
      languageField = sys_language_uid 
      pidInList.field = uid 
      orderBy = sorting 
      #where = colPos = 10 
     } 
     stdWrap.wrap = | 
     } 
    } 
    } 
} 
相關問題