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