Надо было изменить в t3lib_befunc::getProcessedValue значение $theColConf['MM'].
Так как использую ext:bidirectional, например для того что-бы в категориях можно было присваивать новости.
Но тогда в WEB->Listview вместо категорий выводится N/A.
Проапдейтил вчера на 4.0 и увидел, что в етой методе добавлен НООК
Код:
if (is_array ($TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_befunc.php']['preProcessValue'])) {
foreach ($TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_befunc.php']['preProcessValue'] as $_funcRef) {
t3lib_div::callUserFunction($_funcRef,$theColConf,$this);
}
}
В описании callUserFunction написано, что $theColConf передаётся как референц.
В своей функции меняю значение $theColConf['MM']
Код:
class tx_t3lib_befunc {
function preProcessValue(&$theColConf,&$ref) {
$MM_Table =$theColConf['MM'];
if(strstr($MM_Table,"|")){
$parts = t3lib_div::trimExplode("|",$MM_Table,1);
$theColConf['MM'] = $parts[0];
}
//return $theColConf;
}
}
Но когда вывожу в t3lib_befunc::getProcessedValue значение $theColConf после HOOK, то вижу что ничего не изменилось(хотя етот array передовался как референц)
Может обьясните почему?
Пришлось возвращать в моей функции $theColConf ( return $theColConf )
А в t3lib_befunc править на:
Код:
$theColConf =& t3lib_div::callUserFunction($_funcRef,$theColConf,$this);
Тогда заработало.
Но мне не нравится, что я сделал изменения прямо в ядре
Может кто-нибудь подскажет, где была ошибка.