Добавить маркер в tt_news, который сохраняет ссылку на другую страницу - PullRequest
0 голосов
/ 10 января 2012

Я хочу, чтобы пользователь мог указать ссылку на страницу.Поэтому группа используется.Пример основан на поле «связанные».Поскольку остальное структурировано для более чем записи, также пользователь должен иметь возможность установить более одной ссылки.Обратный запрос не требуется.

Вот как я это делаю:

Здесь я загружаю поле ввода "ссылка":

$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»

    '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'
                )
            )
        )
    ),

Я использовал поле «related» в качестве образца.

Здесь я определяю позицию в бэкэнде:

'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;

Не хватает только одного: как я могу перевести идентификатор страницы в говорящий URL?

Теперь я справился с этим с помощьюиз каскава:

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

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

1 Ответ

0 голосов
/ 05 мая 2014

Вы можете создать общий маркер в TYPO3, как показано ниже:

http://typo3techie.blogspot.in/2014/04/how-to-create-own-market-in-ttnews.html

Перейдите по ссылке выше.

...