externes php einfügen

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
adriano
Regular
Posts: 10
Joined: Fri Jun 03, 2005 2:03 pm

externes php einfügen

Post by adriano »

Hallo Forum,
bin heute erstmalig online nachdem ich mir vorige Woche die Blogsoftware installiert hatte. Super und einfach zu bedienen, nur mit dem Anpassungskonzept konnte ich mich noch nicht ganz anfreunden: Habe mir ein eigenes Template, na ja nur ein eigenes Stylesheet, angelegt, dort eine Headertabelle oben draufgepackt und möchte nun ein kleines externes php Skript zwischen Header und Blog einfügen. Das externe php Skript ruft zufällige Bilder aus einer Bilddatenbank auf dem gleichen Server ab und stellt sie in einer Tabelle mit vier Bildern dar.
Ich hab also im Defaulttemplate in der Index.tpl den Aufruf des Skripts eingebunden mit <?php ... ?>, bekomme aber dann leider eine blanke Seite. Ein Test in einer sonst leeren php Seite klappte aber, meint der Code ist ok und Pfade und aufzurufende Datei auch.

Was muss ich im Template ändern, damit das Blog diesen php code Schnipsel annimmt und ausführt?
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: externes php einfügen

Post by garvinhicking »

Unser Templatesystem basiert auf Smarty, da kannst Du also nicht einfach <? ?> PHP Code drin einbinden.

Stattdessen müsstest Du Smarty-Funktionen schreiben (was nicht so kompliziert ist) die dann dein PHP Script aufrufen. Das habe ich hier: http://www.s9y.org/forums/viewtopic.php ... php+random relativ ausführlich beschrieben.

Die zweite Möglichkeit wäre, das alte "layout.php" Format von Serendipity zu nutzen. Schau Dir mal die layout.php im Newsletter Verzeichnis an; wenn Du die kopierst, kannst Du dort auch beliebigen PHP Code ausführen. Ich empfehle Dir aber wirklich, die sehr nützlichen und guten Smarty-Möglichkeiten anzusehen. Unsere Doku auf www.s9y.org zeigt da auch noch Tpps und Tricks zur Anwendung.

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
adriano
Regular
Posts: 10
Joined: Fri Jun 03, 2005 2:03 pm

Post by adriano »

Danke für die prompte Antwort,
beide Links habe ich mir angesehen und verstehe es schon etwas besser. Nur was ich in das config.inc.php reinschreibe, habe ich noch nicht ganz verstanden. Ich definiere eine Funktion in Deinem Beispiel, und benutze die dann im index.tpl. Für die Einbung meines kleinen Skripts benötige ich einerseits einen kurzen php-code als auch ein Stylesheet und ein kleines Javascript file:

Code: Select all

<!-- take the code below and add it to your own homepage, e.g. index.php //-->
<link rel="stylesheet" href="photokorn.css" type="text/css" />
<script type="text/javascript" src="scripts.js"></script>

<?php include("ext_thumb.php"); //only include once! ?>

<?php
$sorting_order = "random"; // random, newest, popular
$show_thumbtext = "title"; // none, title, filesize, filename, price
$maxnum = 4; // maximum number of images to show
$columns = 4; // number of images per column
$openwhat = 0; // 0 = normal details page, 1 = pop-up window

if ($sorting_order!="") {
showthumbs($sorting_order,$show_thumbtext,$maxnum,$columns,$openwhat);
}
?>
<!-- end //-->
Kannst Du Deinen Tipp noch ein klein wenig mehr ausführen?
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Do musst quasi deinen PHP-Code den Du hast in die config.inc.php einfügen.

Dann musst Du die Smarty Funktion für "showthumbs" so definieren wie in meinem Beispiel, dass sie deine echte funktion "showthumbs" ansprechen kann.

Danach kannst Du im PHP Code folgendes löschen

Code: Select all

$sorting_order = "random"; // random, newest, popular
$show_thumbtext = "title"; // none, title, filesize, filename, price
$maxnum = 4; // maximum number of images to show
$columns = 4; // number of images per column
$openwhat = 0; // 0 = normal details page, 1 = pop-up window

if ($sorting_order!="") {
showthumbs($sorting_order,$show_thumbtext,$maxnum,$columns,$openwhat);
}
Und stattdessen in die index.tpl folgendes renimachen:

Code: Select all

{serendipity_showthumbs sorting_order="random" show_thumbtext="title" maxnum=4 columns=4 openwhat=0}
Das setzt halt voraus dass Du die function serendipity_showthumbs in der config.inc.php wie in meinem verlinkten Beispiel ausführst, und die $params['sorting_order'] usw. dort alle korrekt einfügst.

Das ist das erste mal eine recht steile LErnkurve, aber mit etwas Biss kriegst Du das sicher hin. Danach ist man jedenfalls um einiges klüger :-)

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
adriano
Regular
Posts: 10
Joined: Fri Jun 03, 2005 2:03 pm

Post by adriano »

Hallo Garvin,
ich weiss, Du meinst es gut mit mir. Wenn ich Deinen Eintrag in index.tpl richtig verstehe, rufst Du dort die Funktion serendipity_showthumbs mit Parametern auf. Den Part für die conf.inc.php verstehe ich aber noch nicht bzw. sehe ich nicht, was dort übrig bleiben soll, wenn ich den Codepart hernach weglöschen soll. Gut, ich habe schon ins 170 Seiten Handbuch zu smarty reingelesen, nur wann werde ich das noch mal brauchen ausser eben jetzt.
Muss ich in der cong.inc.php überhaupt noch etwas von meinen Parametern angeben ausser das ich dort das ext_thumb.php aufrufe? Wie werden die aus der index.tpl mit dem Aufruf übergebenen Werte in die ext_thumb.php übergeben und muss es in der conf.inc.php ein return geben?

Du merkst hoffentlich mein laienhaftes Wissen ums Programmieren!
Post Reply