2012-01-10 70 views
0

我希望用戶可以指定到頁面的鏈接。因此使用一個組。該示例基於「相關」字段。由於其餘的結構不僅限於輸入,用戶也應該能夠設置多個鏈接。反向查詢不是必需的。將標記添加到tt_news,將鏈接保存到另一個頁面

這是我要做的事:

這裏我加載輸入字段 「鏈接」:我用

$TCA['tt_news'] = Array (
    'ctrl' => $TCA['tt_news']['ctrl'], 
    'interface' => Array (
     'showRecordFieldList' => 'title,hidden,datetime,starttime,archivedate,category,author,author_email,short,image,imagecaption,links,related,news_files,link' 
    ), 

在這裏,我定義字段 「鏈接」

'link' => Array (
     'label' => 'Link to another page', 
     'config' => Array (
      'type' => 'group', 
      'internal_type' => 'db', 
       'allowed' => 'tt_news,pages', 
       'MM' => 'tt_news_link_mm', 
      'size' => '3', 
      'autoSizeMax' => 10, 
      'maxitems' => '200', 
      'minitems' => '0', 
      'show_thumbs' => '1', 
      'wizards' => array(
       'suggest' => array(
        'type' => 'suggest' 
       ) 
      ) 
     ) 
    ), 

字段「相關」作爲示例。

在這裏,我限定的位置在後端:

'types' => Array (
    '0' => Array('showitem' => 
     'hidden, type;;;;1-1-1,title;;;;2-2-2,short,bodytext;;2;richtext:rte_transform[flag=rte_enabled|mode=ts];4-4-4, 
     --div--;LLL:EXT:tt_news/locallang_tca.xml:tt_news.tabs.special, datetime;;;;2-2-2,archivedate,author;;3;; ;;;;2-2-2, 
      keywords;;;;2-2-2,sys_language_uid;;1;;3-3-3, 
     --div--;LLL:EXT:tt_news/locallang_tca.xml:tt_news.tabs.media, image;;;;1-1-1,imagecaption;;5;;,links;;;;2-2-2,news_files;;;;4-4-4,link;;;;3-3-3, 
     --div--;LLL:EXT:tt_news/locallang_tca.xml:tt_news.tabs.catAndRels, category;;;;3-3-3,related;;;;3-3-3, 
     --div--;LLL:EXT:tt_news/locallang_tca.xml:tt_news.tabs.access, starttime,endtime,fe_group,editlock, 
     --div--;LLL:EXT:tt_news/locallang_tca.xml:tt_news.tabs.extended, 
     '), 

現在按預期的方式字段被示出。我可以選擇一個頁面並出現在選擇列表中。在表tt_news的字段中,值僅從0變爲1.同樣在表tt_news_related_mm中,現在有一個條目。我已經通過使用單獨的表達到了這一點。

CREATE TABLE `tt_news_link_mm` (
    `uid_local` int(11) NOT NULL default '0', 
    `uid_foreign` int(11) NOT NULL default '0', 
    `sorting` int(11) NOT NULL default '0', 
    `tablenames` varchar(255) NOT NULL default '', 
    KEY `uid_local` (`uid_local`), 
    KEY `uid_foreign` (`uid_foreign`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8; 

只有一樣東西丟失了:如何將頁面ID翻譯成發言URL?

現在我從cascaval幫助管理它:

  $typolink_conf = array(
       "title" => $title, 
       "ATagParams" =>'', 
       "no_cache" => 0, 
       "parameter" => $data['uid'], 
       "useCacheHash" => 1 
      ); 

      $link = $this->cObj->typolink('linkname', $typolink_conf); 
+0

1.您是否希望用戶能夠鏈接到**只有一個**頁面或多個頁面? 2.你會不會需要做一個反向查詢=鏈接到特定頁面的查找新聞? – tmt 2012-01-11 09:10:31

+0

首先,我認爲只有一個就足夠了。因爲我創建了其他相關字段,可以存儲多個值,所以這個字段也應該這樣做。所以:1.不止一個。 2.不需要反向查詢。我已經設法得到這項工作。只有一小部分不見了(見我問題中的最後一句)。 – testing 2012-01-11 10:14:00

+2

在Typoscript中,您必須使用typolink函數(http://typo3.org/documentation/document-library/references/doc_core_tsref/4.5.1/view/1/5/#id2621840)。在擴展中,你必須調用'tslib_pibase'類的'typolink'方法。 – tmt 2012-01-11 10:54:30

回答