Показать сообщение отдельно
Старый 22.04.2006, 00:56   #3
Boris
Продвинутый
 
Регистрация: 15.02.2005
Сообщений: 50
Question

Надо было изменить в 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);
Тогда заработало.

Но мне не нравится, что я сделал изменения прямо в ядре
Может кто-нибудь подскажет, где была ошибка.

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