Цитата:
Скорее всего так нельзя делать - ведь хук будет использоваться другими экстеншинами. Другое дело что этот хук "молодой" - и его еще никто не успел использовать.
|
Полностю с вами согласен.
Сам bidirectional работает без проблем. только в WEB->Listview выводится N/A(в поле 'связанных данных').
Цитата:
Values from bidirectional fields may not display correctly in the List module's “extended mode”.
|
http://typo3.org/documentation/docum....1.0/view/1/4/
Потому-что для bidirectional прописывается в TCA:
Код:
'MM' => 'tx_myext_table1_table2_mm | foreign'
'| foreign' мешает для правильного отбражения в Listview
В $theColConf['MM'] ожидается только название таблици связей.
Вносил я изменения в сам bidirectional (в принципе разницы нет)
В ext_localconf.php добавил:
Код:
$GLOBALS ['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_befunc.php']['preProcessValue'][] = 'tx_t3lib_befunc->preProcessValue';
В ext_tables.php :
Код:
require_once(t3lib_extMgm::extPath('bidirectional').'class.user_t3lib_befunc.php');
Хотя можно и без етого, только в ext_localconf.php:
Код:
$GLOBALS ['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_befunc.php']['preProcessValue'][] = 'EXT:bidirectional/class.ux_t3lib_befunc.php:tx_t3lib_befunc->preProcessValue';
И соответственно добавил файл class.ux_t3lib_befunc.php с :
Код:
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];
}
//debug($theColConf);
//return $theColConf;
}
}
Смысл всего хоока обрубить всё лишнее, оставить только tx_myext_table1_table2_mm
Внутри моей методы проверяю(Debug), что содержимое $theColConf меняетя так как мне надо, а с 'наружи' нет.
Проблема с референц! Почему правильно не отрабатывается не пойму.
Хотя в доке написано:
Цитата:
function callUserFunction($funcName,&$params,&$ref,$checkPr efix='user_',$silent=0)
Such a function/method should look like this: "function proc(&$params, &$ref) {...}"
&$params - Parameters to be pass along (typically an array) (REFERENCE!)
|