Hallo alle!
Ich muss eine Extension schreiben, mit der ich regionale Sachen verwalten kann. Hierzu soll zum einen das Land ausgewählt werden können (Tabelle static_countries) und dann dazu ein Bundesland des gewählten Landes (Tabelle static_country_zones).
Leider bekomme ich es nicht hin - das Feld "Land" muss wahrscheinlich "type" sein, nicht wahr? Ich habe im Netz nur Beispiele mit "foreign_table_where" und "ORDER BY ..." gefunden! Ich brauche eine SQL-Abfrage, die mir die Bundesländer aus der Tabelle static_country_zones holt. So ähnlich habe ich es versucht:
"foreign_table" => "static_countries",
"foreign_table_where" => "AND static_countries.cn_iso_2 = static_country_zones.zn_country_iso_2",
... aber das geht so nicht. Habe gelesen, dass die in foreign_table-angegebene Tabelle immer mit der pages-Tabelle verknüpft wird. Ich brauche aber auch kein "###CURRENT_PID###".
Habt ihr hier ein paar Ideen??? 😉
THX, Manuel
Hallo Manuel,
ManuelDziuba schriebHabt ihr hier ein paar Ideen???
in die Dokumentation schauen!
https://docs.typo3.org/m/typo3/reference-tca/main/en-us/Index.html
=> ['columns'][fieldname]['config'] / TYPE: "select"
Da ist dieses Bsp drinnen
'static_lang_isocode' => Array (
'exclude' => 1,
'label' => 'LLL:EXT:cms/locallang_tca.php:sys_language.isocode',
'displayCond' => 'EXT:static_info_tables:LOADED:true',
'config' => Array (
'type' => 'select',
'items' => Array (
Array('',0),
),
'foreign_table' => 'static_languages',
'foreign_table_where' => 'AND static_languages.pid=0 ORDER BY static_languages.lg_name_en',
'size' => 1,
'minitems' => 0,
'maxitems' => 1,
)
),
lg georg
Vielen Dank, just2b, für Deine schnelle Antwort!
Aber das ist genau das, was ich nicht meinte! Soweit war ich bereits und ist für ein einzelnes Auswahlfeld auch genau richtig. Ich brauche aber ein solches und ein zweites, welches Daten der Tabelle static_country_zones läd, wo mit einer Relation (habe gerade die Feldnamen nicht beisammen) nur die Bundesländer angezeigt werden, die vom Land kommen, welches vorher im 1. Feld ausgewählt wurde.
Beispiel:
Ausgewähltes Land: Deutschland (Tabelle static_countries)
2. Feld Bundesländer enthält eine Liste der Bundesländer von Deutschland (Tabelle static_country_zones)
Ich brauche also daher nicht wie im Beispiel angegeben ein "...pid=0" oder so (die Datensätze sind mir egal, ich brauche die Country_Code-Nummer vom vorher ausgewählten Feld... ###REC_FIELD_{Feldname}### IST SOWAS VIELLEICHT, finde aber keine näheren Erklärungen dazu (auch nicht in der Doku!)
Gruß, Manuel
das wirst Du so in einem Formular kaum lösen können.
Da Du ja auf die Angabe im ersten Feld erst das 2. Ausgabefeld erzeugen willst, müsstest Du das ja per Ajax befüllen.
Hier kommst Du wohl um eigene Programmierung nicht drumrum, die sr_static_info bietet Dir mit der Funktion initCountrySubdivisions eine Möglichkeit, die Bundesländer in einem Array zurückzuliefern.
Diese Funktionen stellt sr_static_info zur Verfügung.
include_once(t3lib_extMgm::extPath('sr_static_info').'pi1/class.tx_srstaticinfo_pi1.php');
// Initialise static info library
$this->staticInfo = t3lib_div::makeInstance('tx_srstaticinfo_pi1');
$this->staticInfo->init();
$markerArray['###PERSON_COUNTRY_CODE###'] =
$this->staticInfo->buildStaticInfoSelector('COUNTRIES', 'recs[personinfo][country_code]', '', $this->personInfo['country_code'], '');
$markerArray['###PERSON_COUNTRY###'] =
$this->staticInfo->getStaticInfoName('COUNTRIES', $this->personInfo['country_code'],'','');
Hallo zusammen,
ich stehe vor der gleichen aufgabe, und wollte wissen, ob jemand für dieses problem bereits eine lösung gefunden hat und mir evtl. weiterhelfen könnte.
ich möchte eine extension für ferienwohnungen in kroatien und spanien schreiben. d.h. im backend und frontend sollte es zum einen möglich sein, im selectfeld für länder nur kroatien und spanien angezeigt zu bekommen, zum anderen sollte in abhängigkeit der länderwahl die entsprechenden regionen im zweiten selectfeld angezeigt werden.
bevor ich mich nun aufmache, um das ganze selbst zu programmieren, wäre ich über evtl. tipps dankbar, die mir vielleicht einen eleganten lösungsweg aufzeigen.
vielen dank im voraus
pehape
Hallo nocheinmal,
falls niemand eine antwort auf meine erste frage kennt, kann mir vielleicht jemand an einer anderen stelle auf die sprünge helfen, und mir meinen eventuellen denkfehler aufzeigen.
die eintragung im tca:
'foreign_table' => 'static_countries',
'foreign_table_where' => 'AND static_countries.pid=0 ORDER BY static_countries.cn_official_name_en',
funktioniert wunderbar. warum aber funktioniert dies nicht für andere tabellenfelder genauso? als beispiel z.B. folgendes:
'foreign_table' => 'static_countries',
'foreign_table_where' => 'AND static_countries.cn_official_name_en= Kingdom of Spain ORDER BY static_countries.cn_official_name_en',
und müsste es nicht möglich sein, das zweite selectfeld in abhängigkeit der einstellungen aus selectfeld 1 zu erzeugen indem ich für selectfeld 1 die eigenschaft "update requested" einstelle?
für jeden tipp bin ich, wie immer sehr dankbar.
grüße
pehape