Heute Nacht fiel mir ein, was ich überlesen hatte, wohl in der Hoffnung, es ginge einfacher. Hier jetzt die Lösung für die Bearbeitung der Tabelle im Backend:
"country" => Array (
"exclude" => 0,
"label" => "LLL:EXT:user_stories/locallang_db.xml:user_stories.country",
"config" => Array (
"type" => "select",
"items" => Array (
Array("",0),
),
'itemsProcFunc' => 'user_stories_select->select',
'itemsProcFunc_config' => array(
'table' => 'static_countries',
'sortField' => 'cn_short_en',
'indexField' => 'cn_iso_3',
),
"allowNonIdValues" => 1,
"size" => 1,
"minitems" => 0,
"maxitems" => 1,
)
),
entsprechend für das neue Feld im tt_content:
"user_stories_storycountry" => Array (
"exclude" => 0,
"label" => "LLL:EXT:user_stories/locallang_db.xml:tt_content.user_stories_storycountry",
"config" => Array (
"type" => "select",
"items" => Array (
Array('',0),
),
'itemsProcFunc' => 'user_stories_select->select',
'itemsProcFunc_config' => array(
'table' => 'static_countries',
'sortField' => 'cn_short_en',
'indexField' => 'cn_iso_3',
),
"allowNonIdValues" => 1,
"size" => 1,
"minitems" => 0,
"maxitems" => 1,
)
),
Die angegebene Klasse/Funktion 'user_stories_select->select' erstellt --> funktioniert.
Da der Kickstarter ja kein Form für die Eingabe erstellt und man das sowieso selbst machen muss, habe ich dort für die Selektion des Landes auf die Funktion buildStaticInfoSelector aus der tx_staticinfotables_pi1 zurückgegriffen. Diese liefert den entsprechenden code 'cn_short_en' oder einen anderen, falls gewünscht.
Das war dann der Punkt, an dem mir erst auffiel, dass der Kickstarter das Feld 'country' auf int(11) umgesetzt hat, statt char(3) verwendet hat, wie ich angegeben hatte.
Jetzt ergibt sich aber ein anderer Punkt:
Sowohl der Database Analyzer als auch der Extension Manager behaupten, dass
die Felder country in meiner tabelle und im tt_content eines Updates bedürften.
Das ist aber gar nicht wahr. Sie haben bereits das Format, auf das sie upgedatet werden sollen.
Unter 'Compare with $TCA' im Database Analyzer ist unter 'Suggested value from $TCA:' "int(11) NOT NULL default '0'" zu finden.
Ich vermute mal, das steht dort, weil das ein Feld vom Typ database-relation ist und man könnte das als Schönheitsfehler übersehen. Es stört mich aber einfach.
Kann man da was dagegen tun?