Создавайте ссылки на новостные теги с реальным URL-адресом

Я хотел бы создать список всех тегов для tx_news с URL-адресом из realurl.

Конфигурация RealURL для тегов:

'tag' => array(
                array(
                    'GETvar' => 'tx_news_pi1[overwriteDemand][tags]',
                    'lookUpTable' => array(
                            'table' => 'tx_news_domain_model_tag',
                            'id_field' => 'uid',
                            'alias_field' => 'CONCAT(title, "-", uid)',
                            'addWhereClause' => ' AND NOT deleted',
                            'useUniqueCache' => 1,
                            'useUniqueCache_conf' => array(
                                    'strtolower' => 1,
                                    'spaceCharacter' => '-'
                            )
                    )
                )
            ),

Прямо сейчас список создается таким образом:

newsTags = CONTENT
    newsTags {
      table = tx_news_domain_model_tag
      select {
        pidInList = 1,298
        hidden = 0
        deleted = 0
        orderBy = title
      }
      orderBy = title
      renderObj = COA
      renderObj {
        wrap = |
        1 = LOAD_REGISTER
        1 {
            Counter.cObject = TEXT
            Counter.cObject.data = register:Counter
            Counter.cObject.wrap = |+1
            Counter.prioriCalc = intval
        }
        2 = TEXT
        2.insertData = 1
        2.field = title
        2.wrap = <li data-index="{register:Counter}"><a href="/labels/tag/|-
        3 = TEXT
        3.field = uid
        3.wrap = |">

        5 = TEXT
        5.field = title
        5.wrap = |</a></li>

      }
      wrap = <ul>|</ul>
    }

игнорировать регистрацию пока. URL-адрес просто генерируется с помощью Title-UID. А иногда в заголовке есть точка, и тогда URL-адрес не работает. Поэтому я хотел бы использовать URL-адрес, который создает realurl. Это возможно?


person nbar    schedule 02.12.2014    source источник


Ответы (1)


В вашем решении вы пытаетесь создать ссылку вручную. Я настоятельно рекомендую использовать typolink для генерации ссылок. Если RealURL доступен и соответствующие параметры GET настроены в конфигурации RealURL, Typolink генерирует говорящие URL. Вам просто нужно установить additionalParams для UID тега:

newsTags = CONTENT
newsTags {
    table = tx_news_domain_model_tag
    select {
        pidInList = 1,298
        hidden = 0
        deleted = 0
        orderBy = title
    }
    orderBy = title
    renderObj = COA
    renderObj {
        1 = LOAD_REGISTER
        1 {
            Counter.cObject = TEXT
            Counter.cObject.data = register:Counter
            Counter.cObject.wrap = |+1
            Counter.prioriCalc = intval
        }
        2 = TEXT
        2.field = title
        2.insertData = 1
        2.typolink {
            # link to current page
            parameter.current = 1
            # the current tag
            additionalParams = &tx_news_pi1[overwriteDemand][tags]={field:uid}
            additionalParams.insertData = 1
        }
        2.wrap = <li data-index="{register:Counter}">|</li>

    }
    wrap = <ul>|</ul>
}

Конечно, вы можете установить целевую страницу по-другому, просто используя parameter = 999.

person lorenz    schedule 02.12.2014
comment
О, это хорошо, я не знал, что typolink дает говорящие URL-адреса, если они настроены с помощью RealURL. Одно дополнение: с этим кодом текст ссылки является заголовком страницы, а не новостного тега. Для этого просто добавьте 2.insertData = 1 2.field = title - person nbar; 03.12.2014
comment
Я только что добавил последний в пост. Спасибо за завершение. TypoScript все понял :-). - person lorenz; 03.12.2014