Mit dem USER-Objekt kannst Du eigene PHP-Scripts einbinden (falls Dir die Erstellung einer Extension zu kompliziert erscheint).
Früher gab es eine Extension, mit der man PHP direkt als Content-Element einfügen konnte. Diese gibt es nicht mehr, zumindest nicht mehr im TER.
Dafür kannst Du aber die Extension tscobj nutzen. Sie erlaubt es Dir, TypoScript-Objekte als Content-Elemente einzufügen. Diese TypoScript-Objekte können natürlich auch USER und USER_INT enthalten, welche Deine PHP-Scripts aufrufen.
PHP in Typo3 einbinden.
igorshmigor schriebDafür kannst Du aber die Extension tscobj nutzen. Sie erlaubt es Dir, TypoScript-Objekte als Content-Elemente einzufügen. Diese TypoScript-Objekte können natürlich auch USER und USER_INT enthalten, welche Deine PHP-Scripts aufrufen.
Hab die extension jetzt mal installiert, wie bekomm ich jetzt mein PHP-Script was unter fileadmin/calender/calender.php nun included ?
Hi,
da du wahrscheinlich keine Lust zum lesen hast, hier mal ein Beispiel:
page.20 = PHP_SCRIPT
page.20{
file = fileadmin/templates/scripts/test.php
}
<?php
// test.php
$content = 'Hello world';
?>
Wichtig ist:
Alle Inhalte müssen in $content geschrieben werden. Keine Ausgabe durch echo.
Über eine Condition kannst du jetzt noch gezielt eine spezielle Seite ansprechen:
[globalVar = TSFE:id = 10]
page.20 = PHP_SCRIPT
page.20{
file = fileadmin/templates/scripts/test.php
}
[end]
Beste Grüße
tom 🙂
Naja ich habs nur nicht so ganz verstanden,
und verstehs immernoch nicht so ganz, tut mir leid beschäftige mich noch nicht so wirklich lange mit typo3
page.20 = PHP_SCRIPT
page.20{
file = fileadmin/calender/today.php
}
so sieht mein typoscript aus,
und
<?php
error_reporting(0);
require_once 'events.php';
require_once 'functions.php';
$year = intval(date('Y'));
$month = intval(date('m'));
$day = intval(date('d'));
$time_today = mktime(0, 0, 0, $month, $day, $year);
$days = 0;
$i = 0;
$next_events = array();
while (TRUE) {
if ($days >= 3) {
break;
}
$this_time = $time_today + ($i * (60 * 60 * 24));
$this_events = checkEvents(NULL, NULL, NULL, $this_time);
if (!empty($this_events)) {
$next_events[date('d.m.Y', $this_time)] = $this_events;
$days++;
}
$i++;
}
if (!empty($next_events)) {
$content = '<ul id="today">';
foreach ($next_events as $date => $today) {
foreach ($today as $babe) {
$content = '<li>'.$date.' '.$babe.'</li>';
}
}
$content = '</ul>';
} else {
$content = '<span id="calendar_no_events">Keine Einträge</span>';
}
das ist mein php script
und wenn ich jetzt bei plugin einfügen ts object wähle und dann durchsuchen klicke, finde ich nicht das page.20 oder wie auch immer das heißen muss.
so siehts bei mir aus.
wenn ich page.20 eingebe kommt auf der seite dieser fehler: "TypoScript object not found (page.20)"
Wenn du das über das "ts object" machen willst ändere das typoscript folgendermaßen ab:
lib.phpscript = PHP_SCRIPT
lib.phpscript{
file = fileadmin/calender/today.php
}
Dann müsstest du eigentlich das lib.phpscript angezeigt bekommen
Im PHP Script stimmt deine $content Ausgabe noch nicht.
...
$content = '<ul id="today">';
foreach ($next_events as $date => $today) {
foreach ($today as $babe) {
$content .= '<li>'.$date.' '.$babe.'</li>';
}
}
$content .= '</ul>';
...
Danke danke danke funktioniert super!
Hallo,
weiß jemand wie man das mit dem "tollen" neuen Typo3 6.0 macht? Da wurde PHP_SCRIPT ja sinnvollerweise rausgenommen.
hoffe hier kann mir jemand helfen.
Es grüßt,
Christian
Objektorientiert mit "includeLibs" und "USER_INT" ?
Die Methode ist nicht neu und sollte eigentlich bevorzugt werden.
Chrissli schriebObjektorientiert mit "includeLibs" und "USER_INT" ?
Die Methode ist nicht neu und sollte eigentlich bevorzugt werden.
Danke. Es funktioniert!
includeLibs.my_functions = fileadmin/_data/phpfunctions.php
page = PAGE
page {
10 = USER_INT
10.userFunc = meineKlasse->meineFunktion
10.stdWrap.wrap = |
}
Die alte Methode, ist die Einbindung über PHP_SCRIPT. Diese Methode funktioniert ab Version 6.0 aber nicht mehr und es sollte die Funktion userFunc verwendet werden. Dazu habe ich zwei Blogartikel geschrieben:
Alte Methode (vor Version 6.0): http://blog.richpages.de/php-skript-in-typo3-einbinden.html
Neue Methode (ab Version 6.0): http://blog.richpages.de/typo3-6-php-skript-einbinden.html