Moin
Ich möchte ein paar Funktionen global in all meinen Frontend-Extensions benutzen ohne diese jedesmal inkludieren zu müssen.
Bisher habe ich die Funktionen einfach in die Klasse class.tslib_pibase.php kopiert aber um updatetauglich zu bleiben kann das nicht die Lösung sein.
Ansprechen möchte ich die funktionen nach wie vor direkt mit $this->showMessage()
Ich bin folgendermassen vorgegangen jedoch funzt es nicht.
1. In root einer bestehenden Extension folgende Klassendatei erstellt:
class.ux_tslib_pibase.php
class ux_tslib_pibase extends tslib_pibase {
function showMessage(){
}
}
2. In der ext_localconf.php der Extension folgende Zeile eingefügt
$TYPO3_CONF_VARS['FE']['XCLASS']['tslib/class.tslib_pibase.php'] = t3lib_extMgm::extPath('nameMeinerExtension').'class.ux_tslib_pibase.php';
Wenn ich nun innerhalb dieser Extension die funktion $this->showMessage() aufrufe ... kann die Funktion nicht gefunden werden!
Hat jemand ne Idee?
Wäre sehr dankbar
wie kommst Du darauf, das man die tslib_pibase xclassen kann ? Das geht nur mit Extensions, die das auch zulassen.
Danke für den Hinweis, Xclass ist in diesem Fall nicht das richtige
gibt es eine Alternative welche zu meinem Ziel führt?
Wie gesagt ich möchte das System mit einigen Funktionen ergänzen welche ich in meinen Frontend-Extensions direkt mit $this->nameDerFunktion ansprechen möchte.
der übliche Weg wäre eine Extension, die nur als Library dient, also nur eine Klasse beinhaltet.
Diese kannst Du in anderen Extensions als "Vorraussetzung" angeben, so das die bei der Installation angezeigt wird.
Klingt gut.
Hab nun im Kickstarter ein neues Frontent-Plugin mit dem Typ Just include library erstellt und in der Klasse unter /pi1 eine Funktion eingetragen.
Wie kann ich die Funktionen nun in anderen Extensions ansprechen?
Über $this->meineFunktion() funktioniert es nicht!?
es gibt mehrere Möglichkeiten, das einfachste ist, Du inkludierst die Klasse in Deiner Extension und rufst sie dann auf über
myextlibrary::meineFunktion();
Super, das hat geklappt!!!
Sorry für die vielen Fragen aber ich muss das wissen.
Gäbe es denn auch eine Möglichkeit die Funktion direkt über $this->meineFunktion() anzusprechen.
nein. Du könntest höchstens die Klasse instanzieren als $this->library und die Funktion dann ansprechen über $this->library->meineFunktion(), aber das ist doch reine Makulatur.
Schade einerseits..
..andererseits ist auf diese Weise immer klar welcher klasse die Funktion zugehörig ist.
Danke für die Hilfestellung