Zum Inhalt springen

ext_tables.php - 'label'

Erstellt am 24. September 2007 · 9 Antworten · letzte Antwort am 14. August 2008

Tags: Frage

mve2602 ·

Hallo liebe Typo3-Anhänger,

ich habe eine kleine Frage zur Umsetzung einer eigenen Erweiterung. In der ext_tables.php definiere ich ja für jede einzelne Table ein Label - Field, das mir dann im Backend in der Listenansicht angezeigt wird. Ich benötige nun ein Datumsfeld als Label, welches mir aber nicht im Unix-Format ausgegeben werden sollte, sondern in einem gängigeren Datumsformat. Meine Frage ist, kann ich den Wert 'label' beliebig verändern und wenn ja, wie?

$TCA["meine_erweiterung"] = array (
	"ctrl" => array (
		'title'     => 'LLL:EXT: meine_erweiterung /locallang_db.xml: meine_erweiterung_table',		
		'label'     => 'date',

Auch wird in einer weiteren Tabelle das label aus einem Feld einer externen Tabelle gebildet. Hier steht dann in der Übersicht nur die UID des entsprechenden Eintrags. dort würde ich auch gerne ein eigenes Feld (irgendwas aussagekräftigeres) definieren und nach bestimmten Vorstellungen formatieren.

Ich danke für eure Hilfe und freue mich über eine Antwort auf die 2 Fragen.

LG Marcel

Winddancer ·

ich wüsste jetzt ad hoc keine einfachere Lösung, aber wenn Du die label_userFunc zur Hilfe ziehst, kannst Du Dein Datum mittels date formatieren wie immer Du möchstest.

Schau mal hier: #67031

mve2602 ·

Vielen Dank für die Info. Das wäre schon fast genau das Richtige. Wenn es denn funktionieren würde. Habe alle Anweisungen aus dem Thread übernommen und nach dem Speichern & Cache leeren kommt folgende Fehlermeldung:

Warning: Cannot modify header information - headers already sent by (output started at ...
...class.userLabelClass.php:10) in /srv/www/vhosts/typo3_src/t3lib/class.t3lib_userauth.php on line 311

Warning: Cannot modify header information - headers already sent by (output started at ...
...class.userLabelClass.php:10) in /srv/www/vhosts/typo3_src/t3lib/class.t3lib_userauth.php on line 312

Warning: Cannot modify header information - headers already sent by (output started at ...
...class.userLabelClass.php:10) in /srv/www/vhosts/typo3_src/t3lib/class.t3lib_userauth.php on line 313

Warning: Cannot modify header information - headers already sent by (output started at ...
...class.userLabelClass.php:10) in /srv/www/vhosts/typo3_src/t3lib/class.t3lib_userauth.php on line 314

Warning: Cannot modify header information - headers already sent by (output started at ...
...class.userLabelClass.php:10) in /srv/www/vhosts/typo3_src/t3lib/class.t3lib_userauth.php on line 613

#paralyzed#

mve2602 ·

Hier der Part aus der ext_tables.php:

//Custom Labels
    require_once(t3lib_extMgm::extPath($_EXTKEY).'class.userLabelClass.php');
    $TCA['tx_references_vortraege']['ctrl']['label_userFunc'] = "user_LabelClass->getUserLabel";

Hier die class.userLabelClass.php:

<?php

  require_once(PATH_t3lib.'class.t3lib_befunc.php');
  class user_LabelClass {

      function getUserLabel(&$params, &$pObj) {
          $id = $params['row']['uid']; //aktuelle uid
          $mylabel = $params['row']['buch']; //wie oben holen wir uns den ersten Label
    	   // die($id);
	   //zur Sicherheit...
          if ($id) { 
          $item = t3lib_BEfunc::getRecord('tx_references_books', $id); //uid aus Tabelle holen
          $params['title'] = "Buchtitel: ".$item['title'];
          } else {
          $label = "Fehler";
          $params['title'] = $mylabel.', '.$label;
          }
      }
  }
?>

Und hier die aktuellen Fehlermeldungen:

Warning: Cannot modify header information - headers already sent by (output started at /srv/www/vhosts/referenten/httpdocs/typo3conf/ext/references/class.userLabelClass.php:21) in /srv/www/vhosts/typo3_src/t3lib/class.t3lib_userauth.php on line 311

Warning: Cannot modify header information - headers already sent by (output started at /srv/www/vhosts/referenten/httpdocs/typo3conf/ext/references/class.userLabelClass.php:21) in /srv/www/vhosts/typo3_src/t3lib/class.t3lib_userauth.php on line 312

Warning: Cannot modify header information - headers already sent by (output started at /srv/www/vhosts/referenten/httpdocs/typo3conf/ext/references/class.userLabelClass.php:21) in /srv/www/vhosts/typo3_src/t3lib/class.t3lib_userauth.php on line 313

Warning: Cannot modify header information - headers already sent by (output started at /srv/www/vhosts/referenten/httpdocs/typo3conf/ext/references/class.userLabelClass.php:21) in /srv/www/vhosts/typo3_src/t3lib/class.t3lib_userauth.php on line 314

Warning: Cannot modify header information - headers already sent by (output started at /srv/www/vhosts/referenten/httpdocs/typo3conf/ext/references/class.userLabelClass.php:21) in /srv/www/vhosts/typo3_src/typo3/template.php on line 613

Das "schlimme" daran, er setzt die USER_LABELS schon um, nur die Fehlermeldung nervt tierisch! :-(
Freue mich, wenn Du mir ja aus der Patsche helfen kannst.
Denn nach dem weiteren Cache leeren geht nix mehr.

Vielen Dank!

Endolino ·

Hast Du ne Lösung gefunden!! Habe gerade das gleiche Problem und muss in 3 Tagen mein Diplom abgeben.... ollegg wenn jetzt alles kaputt ist.... Bitte unm echt ganz dringend Hilfe....

Endolino ·

Sorry leider kann ich mit deiner Aussage nix anfangen. Habe eben auch bemerkt das ich den Code:

//Custom Labels

      require_once(t3lib_extMgm::extPath($_EXTKEY).'class.userLabelClass.php');
      // enable label_userFunc only for TYPO3 v 4.1 and higher
      if (t3lib_div::int_from_ver(TYPO3_version) >= 4001000) {
              $TCA['tx_opus_archiv']['ctrl']['label_userFunc'] = "user_LabelClass->getUserLabel";
      }

bei einer anderen Extension eingefügt habe.

Oh Mann Mist gleich klappt gar nix mehr. Ich dreh durch. Ich kann mich nicht mal mehr im Backend einloggen.... oh nein!

Endolino ·

Oleggg, Schock lass nach..... hatte ne temporäre Datei temp_CACHED_ps862d_ext_tables.php

Da stand der Mist noch drin. Einfach gelöscht und schon ging es wieder... Trotzdem Danke an alle die hier draufgeguggt haben.