-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Hallo Marko.
Die Funktion muss auf jeden Fall public sein, weil sie TYPO3 von außen anspricht. Außerdem solltest du, wenn deine Klasse von anderen Klassen erbt, darauf achten, keine Attribute plötzlich private oder protected zu machen, die vorher public (vielleicht weil alter Code und daher ohne explizite Sichtbarkeit) waren. Dann wirft dir PHP nämlich einen Fehler um die Ohren, der dank Fehlerunterdrückung nicht auf dem Bildschirm landet sondern sonstwo. Du könntest mit einem "die('foo');" am Anfang deiner Datei (erste PHP-Anweisung nach dem "<?PHP") prüfen, ob du dich vertippt hat (Syntax-Error, dann wird auch kein "foo" ausgegeben) oder beim Aufruf etwas schief geht (dann wird "foo" ausgegeben, bevor PHP stirbt). Wenn das nicht hilft, könntest du mal deine Label-Func-Klasse von allen Methoden und Attributen befreien, abgesehen von der eigentlichen Label-Func-Methode, diese Label-Func-Methode sofort mit "return false;" beenden und so checken was passiert. Dadurch lässt sich zumindest in Erfahrung bringen, ob TYPO deine Methode ruft und du da was falsch machst oder ob TYPO die falsche Methode ruft. Gruß, Stephan Schuler TYPO3 Entwickler Telefon: +49 (911) 539909 - 0 E-Mail: stephan.schu...@netlogix.de - -----Ursprüngliche Nachricht----- Von: typo3-german-boun...@lists.typo3.org [mailto:typo3-german-boun...@lists.typo3.org] Im Auftrag von "M. Graßhoff" Gesendet: Donnerstag, 19. November 2009 11:47 An: German TYPO3 Userlist Betreff: Re: [TYPO3-german] Problem mit label_userFunc in ext_tables.php Hi Stephan, also ich hab das mit der Direktreferenzierung mal ausprobiert. Jetzt ist das Backend nicht sofort weg, sondern erst dann, wenn ich im betreffenden plugin dann auf liste klicke. Das würde für mich jetzt bedeuten, dass er die Klasse immernoch nicht findet oder nicht referenzieren darf oder so was, aber warum nur? Komischerweise funktioniert das Beispiel auf einer Typo3 Testumgebung... Dort wird die Klasse schon beim require schön eingebunden, wie es sein soll und dafür muss die function noch nichtmal public deklariert sein. Habe alles nochmal kontrolliert: Tabellenfelder, Pfade, Syntax.. alles richtig. Ist echt zum Mäusemelken.. Mit den Feldern, die die Tabellennamen enthalten sollten hattest du natürlich recht, war auch nicht allzu relevant.. haben ja hier alle vertrauenserklärungen unterzeichnet und dürfen den source somit nicht 1:1 irgendwo posten. Netten Gruß, Marko Stephan Schuler schrieb: > -----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.schu...@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:i...@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-boun...@lists.typo3.org > [mailto:typo3-german-boun...@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@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----- > _______________________________________________ > TYPO3-german mailing list > TYPO3-german@lists.typo3.org > http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german > > _______________________________________________ TYPO3-german mailing list TYPO3-german@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 wpUDBQFLBVlopp0IwsibV8MBCBasBACcCjnG1caYZQgGP+ehJTuI9NqvgyRx8EAD vbz2Z+Dg77yVwlBjN6BnWRE/XA4h7wcIvVp8kjPz+NZ1QCs81+O4+om3tohQMeP8 fNNCFJpYcRe7aHDguFhGbEl6hvKx0LQJxudludQiWAuNMzS1ptJxUvwEIiepy+Q5 NpShzkBADQ== =TnxP -----END PGP SIGNATURE----- _______________________________________________ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german