![]()  | 
	Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community | 
| 
			
			 | 
		#1 | 
| 
			
			 Продвинутый 
			
			
			
			Регистрация: 15.02.2005 
				
				
				
					Сообщений: 50
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 
			
			Надо переписать одн из методов в классе t3lib_befunc, но не могу понять как  
		
		
		
		
		
		
		
		
			  Думал , при помощи 'XCLASS', но для данного класса не подходит Зарание благодарен за помощь Последний раз редактировалось Boris; 20.04.2006 в 01:17  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#2 | 
| 
			
			 Senior Member 
			
			
			
			
	 | 
	
	
	
		
		
			
			 
			
			а что за метода? создавать extended t3lib_befunc наверняка невозможно. может просто переписать все методы по цепочке?
		 
		
		
		
		
		
		
		
		
			Последний раз редактировалось Дылгеров Ц.В.; 20.04.2006 в 13:00  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#3 | 
| 
			
			 Продвинутый 
			
			
			
			Регистрация: 15.02.2005 
				
				
				
					Сообщений: 50
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 
			
			Надо было изменить в 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);
 
    }
   }
В своей функции меняю значение $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;
 
 }
}
Может обьясните почему? Пришлось возвращать в моей функции $theColConf ( return $theColConf ) А в t3lib_befunc править на: Код: 
	$theColConf =& t3lib_div::callUserFunction($_funcRef,$theColConf,$this); Но мне не нравится, что я сделал изменения прямо в ядре Может кто-нибудь подскажет, где была ошибка. Последний раз редактировалось Boris; 22.04.2006 в 13:15  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#4 | |
| 
			
			 Senior Member 
			
			
			
			
	 | 
	
	
	
		
		
			
			 
			
			Очень интересная тема 
		
		
		
		
		
		
		
		
			Цитата: 
	
 Можно разобраться с передачей в ваш хук theColConf['MM'] - а это код двух функций - самой callUserFunction и с похожим названием, вызываемой из нее. А что в bidirectional не работает? у меня вроде работает. А куда вы вносите изменения - в сам bidirectional или создаете расширение только из-за хука? Последний раз редактировалось Дылгеров Ц.В.; 25.04.2006 в 06:30  | 
|
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#5 | |
| 
			
			 Senior Member 
			
			
			
			Регистрация: 05.04.2006 
				
				
				
					Сообщений: 105
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 Цитата: 
	
  | 
|
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#6 | |||
| 
			
			 Продвинутый 
			
			
			
			Регистрация: 15.02.2005 
				
				
				
					Сообщений: 50
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 Цитата: 
	
 Сам bidirectional работает без проблем. только в WEB->Listview выводится N/A(в поле 'связанных данных'). Цитата: 
	
 Потому-что для bidirectional прописывается в TCA: Код: 
	'MM' => 'tx_myext_table1_table2_mm | foreign' В $theColConf['MM'] ожидается только название таблици связей. Вносил я изменения в сам bidirectional (в принципе разницы нет) В ext_localconf.php добавил: Код: 
	$GLOBALS ['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_befunc.php']['preProcessValue'][] = 'tx_t3lib_befunc->preProcessValue'; Код: 
	require_once(t3lib_extMgm::extPath('bidirectional').'class.user_t3lib_befunc.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 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;
 
}
}
Внутри моей методы проверяю(Debug), что содержимое $theColConf меняетя так как мне надо, а с 'наружи' нет. Проблема с референц! Почему правильно не отрабатывается не пойму. Хотя в доке написано: Цитата: 
	
 Последний раз редактировалось Boris; 27.04.2006 в 02:42  | 
|||
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 |