Показать сообщение отдельно
Старый 27.04.2006, 02:25   #6
Boris
Продвинутый
 
Регистрация: 15.02.2005
Сообщений: 50
По умолчанию

Цитата:
Скорее всего так нельзя делать - ведь хук будет использоваться другими экстеншинами. Другое дело что этот хук "молодой" - и его еще никто не успел использовать.
Полностю с вами согласен.

Сам 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!)

Последний раз редактировалось Boris; 27.04.2006 в 02:42
Boris вне форума   Ответить с цитированием