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);
1.您是否希望用戶能夠鏈接到**只有一個**頁面或多個頁面? 2.你會不會需要做一個反向查詢=鏈接到特定頁面的查找新聞? – tmt 2012-01-11 09:10:31
首先,我認爲只有一個就足夠了。因爲我創建了其他相關字段,可以存儲多個值,所以這個字段也應該這樣做。所以:1.不止一個。 2.不需要反向查詢。我已經設法得到這項工作。只有一小部分不見了(見我問題中的最後一句)。 – testing 2012-01-11 10:14:00
在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