Hallo zusammen,
ich versuche gerade, die label_userFunc zu benutzen, um die Bezeichnung anhand von anderen Feldwerten zu beeinflussen. Leider bekomme ich es nicht hin. :o
Das ist mein Stand:
In "tca.php" oben diese Zeile ergänzt:
include_once(t3lib_extMgm::extPath('dg_simmo').'class.user_LabelClass.php');
dann beim entsprechenden Feld:
"kurzbez" => Array (
"exclude" => 1,
"label" => "LLL:EXT:dg_simmo/locallang_db.xml:tx_dgsimmo_obj.kurzbez",
"label_userFunc" => "user_LabelClass->getUserLabel",
"config" => Array (
"type" => "input",
"size" => "48",
"max" => "200",
"eval" => "required",
)
),
Die Datei "class.user_LabelClass.php" im root der EXT angelegt, mit diesem Inhalt (erst einmal zum Testen):
<?
require_once(PATH_t3lib.'class.t3lib_befunc.php');
class user_LabelClass {
function getUserLabel(&$params, &$pObj) {
$params['title'] = "kurzbez2";
}
}
?>
In der locallang.xml und locallang_db.xml die Texte für kurzbez und kurzbez2 angelegt.
Und es passiert: nix o.O
Also genauer gesagt, es wird "kurzbez" verwendet und nicht "kurzbez2".
Wenn ich
"label" => "LLL:EXT:dg_simmo/locallang_db.xml:tx_dgsimmo_obj.kurzbez",
heraus nehme, wir gar kein Label mehr angezeigt...
Kann mir jemand sagen, was ich hier falsch mache?
Okay, ich scheine da wohl ein grundsätzliches Verständnisproblem zu haben...
Ich habe mich jetzt an diesem Beitrag orientiert:
#67031
Das habe ich daraufhin gemacht:
In der tca.php alles von unten erst einmal wieder heraus genommen.
In der ext_tables.php dieses am Anfang einegfügt:
require_once(t3lib_extMgm::extPath($_EXTKEY).'class.userLabelClass.php');
$TCA['tx_dgsimmo']['ctrl']['label_userFunc'] = "user_LabelClass->getUserLabel";
Die Datei "class.userLabelClass.php" im gleichen Verzeichnis wie ext_tables.php" angelegt mit folgendem Inhalt:
<?php
require_once(PATH_t3lib.'class.t3lib_befunc.php');
class user_LabelClass {
function getUserLabel(&$params, &$pObj) {
//Aus Kopiervorlage --START--
$id = $params['row']['uid']; //aktuelle uid
$mylabel = $params['row']['datum']; //wie oben holen wir uns den ersten Label
// die($id);
if ($id) { //zur Sicherheit...
$item = t3lib_BEfunc::getRecord('tx_meineextension_tabelle2', $id); //uid aus Tabelle holen
$params['title'] = date("d.m.Y H:i", $item['datum']).", ".$item['titel'];
} else {
$label = "Fehler";
$params['title'] = $mylabel.', '.$label;
}
//Aus Kopiervorlage --ENDE--
// für Test
$params['title'] = "Mein Label";
}
}
?>
Es passiert: Wieder nix.
Kann mir bitte mal jemand erklären, wieso da auch was passieren sollte? Ich definiere in der tca.php ja für die Felder ein Label aus der locallang. Das klappt auch.
In der ext_tables.php wird jetzt ja die Fuction für label_userFunc definiert, aber ich rufe sie ja nirgens explizit auf. Muss ich das auch nicht? Sprich, wird das dann vom System erledigt, wenn ein Label erstellt wird?
Irgendwie bin ich total verwirrt. Ich hoffe, es kann mir jemand helfen...