[TYPO3-german] Problem mit label_userFunc in ext_tables.php

Stephan Schuler Stephan.Schuler at netlogix.de
Wed Nov 18 17:20:10 CET 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Hallo Marko.


Versuch mal folgendes in der ext_tables.php:
$TCA['tx_ddfstandard']['ctrl']['label_userFunc'] = 'EXT:ddfstandard/class.userLabelClass.php:user_LabelClass->getUserLabel';

Dadurch würd *bei Bedarf* die Datei "EXT:ddfstandard/class.userLabelClass.php" nachgeladen und darin (bzw. genauer gesagt mindestens zeitlich nachdem die Datei geladen wurde) die Klasse "labelClass" erwartet, die eine Public-Methode "getUserLabel" hat.

Dadurch kannst du dir natürlich das require_once sparen, das macht TYPO automatisch wenn es die Label-Funktion aufrufen möchte.


Wenn dein Label btw. auf weitere spalten aus der Tabelle zugreifen soll, schreibst du die Spaltennamen bitte kommagetrennt nach $TCA['tx_ddfstandard']['ctrl']['label_alt '], dann werden die nämlich mit geladen, deine User-Func bekommt sie in der Row mit als Parameter und du musst nicht nochmal einen extra SQL-Query absetzen.


Ich könnte mir übrigens vorstellen, dass deine Tabelle "tx_ddfstandard_items" heißt, nicht "tx_ddfstandard_items". Dann musst du natürlich auch in $TCA['tx_ddfstandard_items'] arbeiten, nicht in $TCA['tx_ddfstandard'].


Wobei ich erstens in der Datei class.userLabelClass.php nicht die Klasse user_LabelClass sondern die Klasse userLabelClass erwarten würde und zweitens an sich den Klassennamen für nicht so optimal halte. Solche nichtssagenden Klassennamen (der TYPO3-4-Zweig kennt ja keine Namespaces) sind prädestiniert, dir um die Ohren zu fliegen.
Sofern Datei- und Klassennamen nur zur Demonstration hier in der Liste waren: Vergiss den Kommentar :).


Gruß,




Stephan Schuler
TYPO3 Entwickler

Telefon: +49 (911) 539909 - 0
E-Mail: Stephan.Schuler at netlogix.de

- --
netlogix GmbH & Co. KG
Systemhaus | Trainingscenter | Medienagentur
Andernacher Straße 53 | 90411 Nürnberg
Telefon: +49 (911) 539909 - 0 | Fax: +49 (911) 539909 - 99
E-Mail: mailto:info at netlogix.de | Internet: http://www.netlogix.de/

netlogix GmbH & Co. KG ist eingetragen am Amtsgericht Nürnberg (HRA 13338)
Persönlich haftende Gesellschafterin: netlogix Verwaltungs GmbH (HRB 20634)
Umsatzsteuer-Identifikationsnummer: DE 233472254
Geschäftsführer: Stefan Buchta, Matthias Schmidt, Guido-Arndt Söldner, Jens-Henrik Söldner

- -----Ursprüngliche Nachricht-----


Von: typo3-german-bounces at lists.typo3.org [mailto:typo3-german-bounces at lists.typo3.org] Im Auftrag von "M. Graßhoff"
Gesendet: Mittwoch, 18. November 2009 10:42
An: German TYPO3 Userlist
Betreff: [TYPO3-german] Problem mit label_userFunc in ext_tables.php

Hi liebe Leute,
Ich verzweifel hier grad. ...

Vorhaben:
In der Listenansicht im Backend benötige ich ausser der normalen
Titelangaben als Label noch zusätzliche Infos aus einer anderen Tabelle.

Ansatz:
http://typo3.org/documentation/document-library/core-documentation/doc_core_api/4.2.0/view/4/2/#id4240310
Stichwort: label_userFunc -

Problem:
Meine class.user_LabelClass wird nicht included, stattdessen zeigt das
BE nichts mehr an, trotz error_reporting(E_ALL), sprich ich bekomm nicht
raus, woran es liegt.

Ich verzweifel hier grad. label_alt und label_alt_force würde
funktionieren, allerdings kann ich damit keine daten aus ner anderen
Tabelle entnehmen.
Was mache ich nur falsch? Hier ein Auszug aus ext_tables:
<?php
error_reporting(E_ALL);
require_once(t3lib_extMgm::extPath($_EXTKEY).'class.userLabelClass.php');
if (!defined ('TYPO3_MODE')) {
    die ('Access denied.');
}
//Custom Labels

// enable label_userFunc only for TYPO3 v 4.1 and higher
if (t3lib_div::int_from_ver(TYPO3_version) >= 4001000) {
$TCA['tx_ddfstandard']['ctrl']['label_userFunc'] =
"user_LabelClass->getUserLabel";
}

und hier die class.user_LabelClass:
<?
require_once(PATH_t3lib.'class.t3lib_befunc.php');

class user_LabelClass {
function getUserLabel(&$params, &$pObj) {
$id = $params['row']['uid']; //aktuelle uid
$mylabel = $params['row']['[title]']; //wie oben holen wir uns den
ersten Label

if ($id) { //zur Sicherheit...
$item = t3lib_BEfunc::getRecord('[tx_ddfstandard_items]', $id); //uid
aus Tabelle holen
//$label =
$GLOBALS['LANG']->sL('LLL:EXT:[EXTKEY]/locallang_db.xml:[XMLFRAGMENT].'.$item['[DROPDOWNWERT]']);
$label = 'test';
} else $label = '[Fehler!]';
    $params['title'] = $mylabel.', '.$label;
}
}
?>

Irgendwelche Vorschläge?? Ich wäre sehr dankbar!!

Schöne Grüße,
Marko

_______________________________________________
TYPO3-german mailing list
TYPO3-german at lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


-----BEGIN PGP SIGNATURE-----
Version: PGP Universal 2.12.0 (Build 1035)
Charset: Windows-1252

wpUDBQFLBB67pp0IwsibV8MBCKuIA/9jE8lhudWnu9XhYfzh/XIF1jxTegG4XpOI
SG7yf15xC9b7Smhq9u4s62ceuHsGyeqo2mBWyolb9UD7wZP6+l2Sy1MRgx2Jqb2d
AjoiN1ezqLXiZf1IY6vKeUjplGVXA1xSQNEFsbRG8V0H825fzRDhsHsteYz/moWw
kKBWVmkt+w==
=p6R+
-----END PGP SIGNATURE-----


More information about the TYPO3-german mailing list