Добавить маркер в 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;

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

Теперь мне это удалось с помощью cascaval:

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

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

1 ответ

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

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

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

Другие вопросы по тегам