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

"M. Graßhoff" m.grasshoff at signup-design.de
Thu Nov 19 11:46:48 CET 2009


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.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-----
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
>
>   



More information about the TYPO3-german mailing list