Uwaga! Od sierpnia 2017 forum jest w trybie tylko do odczytu.

Dlaczego? Dlatego, że społeczność TYPO3 przeniosła się na slack'a i stackoverflow:
  • Przeczytaj artykuł wprowadzający do slacka, w którym dowiesz gdzie i jak się zarejestrować.
  • Jeżeli masz pytania odnośnie Polskiej Społeczności TYPO3 zapraszamy na kanał slack'a #community-pl. Rozmawiamy tam w języku polskim.
  • Pytania dotyczące samego TYPO3 zadawaj po angielsku na stackoverflow oznaczając je tagiem "typo3". Następnie posługując się linkiem do tego pytania postaraj się zachęcić ludzi z kanału slack'a #typo3-cms lub bardziej pasujących kanałów tematycznych, żeby na nie odpowiedzieli.
  • Możesz też oczywiście zadawać pytania na slacku bez zakładania wątków na stackoverflow, ale wówczas wiedza ta nie jest indeksowana przez googla i część osób nie będzie chciała Ci z tego powodu pomagać.
  • Dla części osób dzielących się wiedzą ważne jest też budowanie reputacji na stackoverflow. Jest to kolejny powód dla którego powinieneś zadawać pytania na stackoverflow by zwiększyć swoje szanse na znalezienie odpowiedzi. Pamiętaj, żeby oceniać odpowiedzi!
Tematy bez nowych odpowiedzi

TCA + foreign_table_where + pidList w suggest


Autor Wiadomość
Napisane: 12.04.2012 [10:24]
sim_co
Twórca tematu
zarejestrowany: 18.02.2010
Posty: 168
Witam,

Mam taki problem. Mam rekordy jakiegoś tam typu, do których dopisuje jakieś 'kategorie' i w związku z tym mam w TCA mam jakiegoś selecta, w którym wybieram te 'kategorie', które mają być dopisane do aktualnie edytowanego rekordu, czyli:

PHP
...
 
			'config' => array(
				'type' => 'select',
				'foreign_table' => 'tx_my_ext_cat',
				'foreign_table_where' => ' ORDER BY title',
				'MM' => 'tx_my_ext_cat_mm',
 
...
 
				'wizards' => array(
					'_POSITION' => 'top',
					'_PADDING' => 4,					
					'suggest' => array(
						'type' => 'suggest',


Do tego jak widać mam wizarda podpowiadającego i wszystko śmiga.
Problem pojawił się, gdy w zależności od pida edytowanego rekordu, chcę wybrać inny zestaw kategorii, przy czym rekordy i kategorie znajdują się w zupełnie innych storage folderach.

Zrobiłem tak:

* Wyjaśnienie - kategorie podstawowe z pida 35, kategorie inne z pida 109 - podstrona 109 jest dzieckiem 35 w strukturze. $current_id wyciągnięte z t3lib_div::_GP('returnUrl') regexpem

PHP
if(in_array($current_id, array(jakies_id))) {
	unset($TCA...['foreign_table_where']);
	$TCA...['foreign_table_where'] = ' and tx_my_ext_cat.pid=109 ORDER BY title';
	$TCA...['wizards']['suggest']['pidList'] = '109';
	$TCA...['wizards']['suggest']['default']['pidList'] = '109';
} else {
	unset($TCA...['foreign_table_where']);
	$TCA...['foreign_table_where'] = ' and tx_my_ext_cat.pid=35 ORDER BY title';
	$TCA...['wizards']['suggest']['pidList'] = '35';
	$TCA...['wizards']['suggest']['default']['pidList'] = '35';
}


I jest ok - w sensie zestaw kategorii w selekcie jest taki jaki chciałbym, ale jest problem z wizardem suggest - daje tylko zestaw kategorii z pidem 35 - dziwne.

Czyściłem oczywiście cache konfiguracji i cały.

Ps Jak wyciągnąć id danej podstrony w BE? Wcześniej brałem z $GLOBALS["SOBE"]->viewId, ale po akcji 'zapisz' ma wartość 0




[Ten temat był edytowany 1 razy. Ostatnio 12.04.2012 o 10:28.]

simcode.pl
Napisane: 13.04.2012 [08:56]
sim_co
Twórca tematu
zarejestrowany: 18.02.2010
Posty: 168
Ok, suggest w wywołaniu ajaxowym daje parametr pid
W takim układzie wystarczy dopisać pida:

PHP
if(in_array($current_id, array(104,106,107,108,105,114,113,112,111,110))|| in_array(t3lib_div::_GP('pid'), array(104,106,107,108,105,114,113,112,111,110))) {
	$TCA...['config']['foreign_table_where'] = ' and tx_my_ext_cat.pid=109 ORDER BY title';
}


simcode.pl
Napisane: 13.04.2012 [14:41]
kss
zarejestrowany: 19.07.2007
Posty: 1341
W TCA możesz stosować pewne markery, które są przez TYPO3 podmieniane. Np. marker ###STORAGE_PID###
Marker ten podaje uid strony ustawionej we właściowściach strony jako GRSP - czyli strona przechowująca rekordy.

Możesz więc we właściwościach sysfodlera X ustawić jego GRSP na sysfolder z kategoriami z sysfoldera Y i potem w TCA użyć ###STORAGE_PID###

=======================================
t33k
Napisane: 13.04.2012 [14:47]
sim_co
Twórca tematu
zarejestrowany: 18.02.2010
Posty: 168
Dzięki - na około - ale najważniejsze, że śmiga icon_wink.gif

simcode.pl