tt_address: добавить категории адреса в шаблон

Можно ли как-то добавить подгруппу группы cetrain, адрес которой назначен для вывода html?

В шаблоне у меня есть ###MAINGROUP### а также ###GROUPLIST###, Я не могу использовать maingroup, потому что это не тот случай, когда мне нужна группа всегда maingroup. И с групповым списком я не могу сказать, какая группа является подгруппой одной группы.

У кого-нибудь есть идеи, как я могу это сделать?

И в дополнение к этому мне также нужно значение самостоятельно созданного поля в таблице tt_address.

Редактировать:

Я стараюсь, как @lorenz сказать. Что у меня так далеко:

ext_localconf.php:

<?php
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['tt_address']['extraItemMarkerHook'][] 
='EXT:txnextaddresssort/class.tx_next_address_sort_addmarkers.php:tx_next_address_sort_addmarkers';

class.tx_next_address_sort_addmarkers.php:

<?php
class tx_next_address_sort_addmarkers {
    function extraItemMarkerProcessor(&$markerArray, &$address, &$lConf, 
        &$pObj) { 

        $lcObj = t3lib_div::makeInstance('tslib_cObj'); 
        $lcObj->data = $address; 

        $markerArray['###SORTBEREICH###']   = 
        $lcObj->stdWrap($address['tx_nextaddresssort_sort_bereich'], 
        $lConf['tx_nextaddresssort_sort_bereich.']); 

    } 

}

Extentionkey: next_address_sort

Все, что я получаю, это пустой экран, но нет ошибок в журнале apache

1 ответ

Решение

Нет, нет возможности сделать это.

Тем не менее, вы можете написать собственное расширение, которое интегрирует extraItemMarkerProcessorhook в tt_address. В ext_localconf.php добавьте:

$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['tt_address']['extraItemMarkerHook'][]     ='EXT:myextension/class.tx_myextension_filename.php:tx_myextension_classname';

Затем добавьте файл class.tx_myextension_filename.php к вашему расширению.:

class tx_myextension_classname {

    public function extraItemMarkerProcessor(&$markerArray, &$address, &$lConf, &$pObj) {

      $lcObj = t3lib_div::makeInstance('tslib_cObj');
      $lcObj->data = $address;

      $markerArray['###MYFIELD###'] = $lcObj->stdWrap($address['myfieldlikeindatabase'], $lConf['myfieldlikeindatabase.']);

      return $markerArray;

    }

}

Это было бы примером для получения поля, которое находится в таблице tt_address, и добавления его к маркерам, чтобы их можно было использовать в шаблоне. Также включен stdWrap.

Теперь вместо получения поля вы должны заменить $address['myfieldlikeindatabase'] на переменную, которая содержит необходимую информацию. Для получения данных вы можете использовать функции API базы данных TYPO3 ($GLOBALS['TYPO3_DB']).

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