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']).