Hallo Harald.
Ich sehe bei dir zwei Probleme, wobei das eine dich daran hindert, das zweite zu erkennen. Grundsätzlich ist es in den meißten Fällen Quatsch, "eine PHP-Datei" ausführen zu wollen wenn man im TYPO3-Kontext arbeitet. Natürlich *kann* ich eine beliebige PHP-Datei die irgend wo in den Tiefen der TYPO3-Installation vergraben liegt unmittelbar aufrufen. Technisch hindert mich niemand daran. Nur ist das Ergebnis eben nicht das gewünschte bzw. der dafür notwendige Aufwand schnell um ein Vielfaches höher als die passenden TYPO3-Mittel dazu zu verwenden. Deine Fehlermeldung ist eigentlich sehr aussagekräftig. Jedenfalls sollte sie dich nachdemklich machen, warum das von dir geschriebene nicht funktioniert. Laut Fehlermeldung existiert die folgende Datei nicht: "'PATH_tslibclass.tslib_pibase.php". Aber: Die hast du nicht eingebunden. Du bindest 'PATH_tslib."class.tslib_pibase.php" ein. Der Grund dafür (durch "echo" und "die" kannst du dich in Plain-PHP an das Problem rantasten, im TYPO3-Kontext würdest du "t3lib_div::debug" bzw. seit 4.5 "t3lib_utility_Debug::debug" zum Debuggen nutzen) ist, dass deine Konstante PATH_tslib nicht definiert ist und PHP deshalb implizit davon ausgeht, dass du den String "PATH_tslib" meinst. Das ist natürlich falsch, in Wirklichkeit fehlt die hier eben die Konstante. Das ist das erste Problem: Du deutest die PHP-Meldung falsch (bzw. eher gar nicht). Jetzt kommt der Punkt mit dem "nachdenklich". Stephan hat gerade geschrieben, dass du an "TYPO3 vorbei programmierst". Das ist der häufigste Fall wenn jemand versucht, eine PHP-Datei über den Browser aufzurufen. Dabei sieht man im Quellcode dann ganz häufig "echo" von HTML- Code sowie $_SESSION, $_GET und $_POST. Das tust du allerdings explizit nicht. Du begehst einen Fehler im anderen Extrem: Du verwendest TYPO3-Mittel, ohne TYPO3 vorher gestartet zu haben. Woher soll dein PHP-Prozess die Konstante denn kennen? Wenn du jetzt anfängst, die Konstante des PATH_tslib (richtig) zu konfigurieren (sodass die Datei ohne Fehlermeldung geladen wird) wirst du sehr schnell auf das nächste Problem stoßen: Du hast in einer selbstgestrickten PHP-Datei weder (die vollständige TYPO3-) Session noch eine Datenbankverbindung. Das alles kann man sich natürlich von Hand dazu schrauben, nur wäre das alles andere als elegant. Grundsätzlich kann man sagen, dass man nie (Ausnahmslos!) Dateien schreibt die anschließend über den Webserver aufgerufen werden. Wobei du dir zur Verwendung von eID vorher genau anschauen solltest, ob das überhaupt das ist was dich langfristig glücklich macht. Für AJAX ist eID zunächst toll, weil es wahnsinnig schnell ist. Aber die Geschwindigkeit hat einen ganz bestimmten Grund: Es fehlt eben eine ganze Menge TYPO3 drum herum. Das normale Seitenrendering bezieht sich auf eine Seite im TYPO3- Seitenbaum. Heißt es wird die Seite geladen und die Rootline, sprich alle Seiten auf dem Weg vom Rootobjekt bis zur Seite. Dazu noch das auf der Seite gültige Typoscript (das natürlich von der zugehörigen Hierarchie abhängt) und anschließend alle Inhaltselemente auf dieser Seite. eID kennt dagegen zunächst keine Seiten, folglich auch kein Typoscript. Das führt zu nicht ganz geringenen Nachteilen. Die Konfiguraiton eines eID-Moduls ist nur sehr eingeschränkt komfortabel, weil dir eben kein Typoscript zur Verfügung steht. Wenn du doch Typoscript verwenden möchtest (und das möchtest du eigentlich wo du gehst und stehst) musst du dir einen Weg ausenken, wie du entweder das Typoscript durch die Session leitest oder du instanziierst im eID-Script ein tslib_fe mit allem was dazu gehört. Dass eID keine Seiten kennt führt weiterhin dazu, dass es nur begrenzt an unterschiedlichen Stellen unterschiedlich verwendet werden kann. Ein Plugin kann ich auf mehreren Seiten einbinden und via Typoscript pro Seite ein anderes Template hinterlegen. Bei eID muss ich mir einen anderen Weg ausdenken wie ich ein eID- Script dazu bekomme, bei unterschiedlichen Aufrufen unterschiedliche Ausgaben zu produzieren. Ich will hier keinesfalls eID schlechtreden. Kay hat natürlich vollkommen Recht wenn er dir hier eID ans Herz legt. Nur sollte man sich meiner Meinung nach schon ein wenig mit TYPO3 auskennen bevor man sich an eID wagt. Dass eID deutlich weniger dokumentiert ist als die Programmierung von Plugins ist der eine Grund, dass es eben völlig anders funktioniert der andere. Gruß, Stephan Schuler Web-Entwickler Telefon: +49 (911) 539909 - 0 E-Mail: stephan.schu...@netlogix.de Website: media.netlogix.de -- netlogix GmbH & Co. KG IT-Services | IT-Training | Media Andernacher Straße 53 | 90411 Nürnberg Telefon: +49 (911) 539909 - 0 | Fax: +49 (911) 539909 - 99 E-Mail: 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 ________________________________________ Von: typo3-german-boun...@lists.typo3.org [typo3-german-boun...@lists.typo3.org]" im Auftrag von "Kay Strobach [ty...@kay-strobach.de] Gesendet: Freitag, 24. Juni 2011 19:32 Bis: typo3-german@lists.typo3.org Betreff: Re: [TYPO3-german] eigene kleine PHP Datei in eigener Extension Hi Harald, bei eid scripten sind nicht alle funktionen für pibase aktiviert. Wenn du wirklich pibase nutzen willst, kommst du um TS und einen anderen pagetype nicht herum. [0] http://www.typo3-tutorials.org/tutorials/extensions/eid-mechanismus.html [1] http://www.sk-typo3.de/Ajax-mit-prototype-und-eID.328.0.html [3] http://jimsuperfly.de/blog/typo3-eid-ajax/ [4] http://lists.typo3.org/pipermail/typo3-project-timtab/2010-August/000553.html [5] http://www.typo3.net/forum/beitraege/thema/93256/ Hoffe die links helfen dir. Leider ist im Wiki derzeit kein tutorial zu eid und typenum :( Grüße Kay Am 24.06.2011 19:25, schrieb Harald Keller: > Stimmt das AJAX ist ja auch ok, der Request wird perfekt abgesetzt etc, > nur was muss ich tun damit eine PHP Datei in einer Extension funktioniert. > > Oder anders gefragt warum kann ich eine PHP Datei in meiner Extension nicht > ausführen gibt es einen Grund dafür? > > gruess > Harald > > "Kay Strobach" <ty...@kay-strobach.de> schrieb im Newsbeitrag > news:mailman.1.1308935768.10116.typo3-ger...@lists.typo3.org... >> hi in typo3 ist das zauberwort für ajax eid ;) >> >> Grüße >> Kay >> >> Am 24.06.2011 18:03, schrieb Harald Keller: >>> sorry der Code hat es verhackt: >>> >>> <?php >>> require_once(PATH_tslib.'class.tslib_pibase.php'); >>> >>> class my_ajax extends tslib_pibase { >>> >>> public function main() { >>> $wert="mein test"; >>> $GLOBALS['TSFE']->fe_user->setKey('ses','checkfields',$wert); >>> $GLOBALS['TSFE']->storeSessionData(); >>> return; >>> } >>> } >>> >>> $output = t3lib_div::makeInstance('my_ajax'); >>> echo $output->main(); >>> >>> ?> >>> >>> >> >> >> -- >> http://www.kay-strobach.de - Open Source Rocks >> >> TYPO3 .... inspiring people to share! >> Get involved: http://typo3.org > > -- http://www.kay-strobach.de - Open Source Rocks TYPO3 .... inspiring people to share! Get involved: http://typo3.org _______________________________________________ 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