Meine PHP-Datei:
// *** START Monatskalender ***
$monat=date("n");
$jahr=date("Y");
$erster=date("w", mktime(0,0,0,$monat,1,$jahr));
$insgesamt=date("t");
$heute=date("d");
$monate=array("Januar","Februar","März","April","Mai","Juni","Juli","August", "September","Oktober","November","Dezember");
if($erster==0){$erster=7;}
$content = '<table border="0" style="font-size:14pt; font-family:Verdana">';
$content .= "<th colspan='7' align='center' style='font-size:16pt; font-family:Arial; color:#ff9900;'>";
$content .= $monate[$monat-1];
$content .= " ";
$content .= $jahr;
$content .= "</th>";
$content .= '<tr><td style="color:#666666"><b>Mo</b></td><td style="color:#666666"><b>Di</b></td>';
$content .= '<td style="color:#666666"><b>Mi</b></td><td style="color:#666666"><b>Do</b></td>';
$content .= '<td style="color:#666666"><b>Fr</b></td><td style="color:#0000cc"><b>Sa</b></td>';
$content .= '<td style="color:#cc0000"><b>So</b></td></tr>';
$content .= "<tr>"; $i=1; while($i<$erster){$content .= "<td></td>"; $i++;} $i=1;
while($i<=$insgesamt) { $rest=($i+$erster-1)%7;
if($i==$heute){$content .= '<td style="font-size:12pt; font-family:Verdana; background:#ff0000;" align=center>';}
else{$content .= '<td style="font-size:12pt; font-family:Verdana" align=center>';}
if($i==$heute){$content .= "<span style='color:#ffffff'>$i</span>";}
else if($rest==6){$content .= "<span style='color:#0000cc';>$i</span>";}
else if($rest==0){$content .= "<span style='color:#cc0000'>$i</span>";}
else{$content .= "$i";}
$content .= "</td>";
if($rest==0){$content .= "</tr><tr>";} $i++; }
$content .= "</tr>";
$content .= "</table>";
return $content;
// *** ENDE Monatskalender *** ?>
Meine Inhaltsseite:
[ueber2|Aktuelle Dokumente]
blabla
[php|return include("inc/testcal_bsv.php");]
blabla
Die PHP-Datei wird abgearbeitet. Alle Inhalte vor und nach der includierten Datei werden nicht ausgegeben. Sie sind einfach weg. Was mache ich falsch?
Es spielt keine Rolle, ob ich ein return vor der includierten Datei habe oder nicht.
Mit 1.12 und der Plugin-Schnittstelle haben wir das [php|...]-Element als veraltet markiert. Eigener PHP-Code kann (und soll) als Plugin ausgelagert werden. Steht so schon im Kommentar zum Element "php" in der Syntax.php; die Doku auf cms.mozilo.de ziehen wir noch nach.
Schau mal, ob dein Code als Plugin funktioniert.
Veraltet? In anderen Systemen (wie phpCMS) wurde das extra eingeführt, um die Flexibilität zu erhöhen und hier ist es veraltet? Das wäre ja das Ende aller includierten externen Skripte, die so bei den mozilo-Usern im Einsatz sind. Nichts mehr mit einfach das augenblickliche Datum (date) ausgeben. Finito mit Ausgabe includierter Dateien.
Nein, jetzt muß vorher noch ein Plugin gecodet werden und dort das externe Skript eingebunden werden. Das schreckt ja jeden normalen Benutzer, der wenig Ahnung vom Programmieren hat, ab. Die Botschaft soll wohl lauten: Externe Skripte verbieten wir, nehmt unsere Plugins!
P.S. Wahrscheinlich wird eines meiner nächsten Plugins eins sein, womit der Anwender beliebigen PHP-Code in einer Inhaltsseite ausführen kann.
Wir haben uns mit Einführung der Plugin-Schnittstelle ganz bewußt gegen das PHP-Element entschieden, denn eigentlich macht ein Plugin ja nichts anderes. (Ist ja auch schnell aufgebaut mit dem Demo-Plugin als Vorlage.) [php|...] kann man faktisch als Vorstufe zur Plugin-Schnittstelle sehen.
So müssen wir nicht zwei Schnittstellen pflegen (siehe die Probleme mit return bzw echo im PHP-Element).
Externen Code verbieten wir ausdrücklich nicht, im Gegenteil: Mit der Pluginschnittstelle standardisieren wir die Einbindung und geben sogar die Möglichkeit, mit ein paar wenigen Zeilen auch die komplette Konfiguration externer Scripte in den Admin zu integrieren.
Gegen das PHP-Plugin spricht übrigens nix, die Idee finde ich nur konsequent: Es führt den Gedanken der einheitlichen Erweiterungsschnittstelle nahtlos fort :)
wird es ein PHP code plugin von Euch geben, oder muss ich wegen ein zwei Zeilen eigenen PHP codes selber eins schreiben?
Danke fuer Infos.
Lars
Na, wer wird denn hektisch werden :)
Tests bitte mal aus und sag Bescheid, ob alles funktioniert: Plugin "PHP-Code ausführen" (http://moziloplugins.hehoe.de/details.php?image_id=26)
der erste test damit funktionierte
sehr gut.
danke