None-Frame - Seiten, PHP include();

PHP include(); ist ein PHP-Befehl und damit Teil einer Programmiersprache.
PHP include(); ist keine Eigenschaft von ScarFormManager.

Die Formulare können problemlos in andere Seiten und Framework's eingebunden werden.
Ein Beispiel wie so eine Einbindung in eine andere PHP-Datei aussehen muss, kann direkt in der mitgelieferten Datei form.php eingesehen werden. Öffnen Sie dazu die Datei form.php und führen Sie die selben Schritte aus.

Sie können durch anpassen des PHP include(); - Befehls selbst entscheiden, ob das Formular sofort ausgegeben oder vorerst in einer Variable zwischengespeichert werden soll. Letzteres ist für CMS Systeme wichtig, sie erwarten ihren Content (also den darzustellenden Seiteninhalt) oft in einer speziellen Variable, die anschließend für das CMS passend ausgegeben wird.

 


 

Mit PHP include(); einbinden

<?php
// ScarFormManager-Bibliothek einbinden
include_once("./acp/lib/class_scarformmanager.inc.php");

// ScarFormManager ausgeben
$scar4u_scarformmanager = new Scar4U_FormManager();
echo
$scar4u_scarformmanager->display($_REQUEST["sfm_id"]);
?>

Das Beispiel entspricht der mitgelieferten form.php.

 


 

Formularausgabe in einer Variable zwischenspeichern

Wenn die Ausgabe in einer Variable zwischengespeichert werden soll, muss lediglich die letzte Zeile angepasst werden:

<?php
// ScarFormManager-Bibliothek einbinden
include_once("./acp/lib/class_scarformmanager.inc.php");

// ScarFormManager ausgeben
$scar4u_scarformmanager = new Scar4U_FormManager();
$scarformmanager_variable = $scar4u_scarformmanager->display($_REQUEST["sfm_id"]);
?>

Die Ausgabe kann dann zu einem späteren Zeitpunkt erfolgen:

<?php
echo $scarformmanager_variable;
?>

Nutzen Sie diese Variante, wenn vor und nach dem PHP include(); HTML direkt ausgegeben wird. Setzen Sie den oberen Teil an den Anfang einer PHP Datei, füllen Sie anschließend den gesamte HTML Bereich ein und an die gewünschte Stelle die Formularausgabe, der zweite Code-Bestandteil. Wird das nicht beachtet, muss die Captcha-Grafik über die Datei captcha.php in die Formularseiten eingebunden werden.

 


 

Was ist $_REQUEST["sfm_id"];

  • In der mitgelieferten Demo kann jedes Formular durch übergabe des sfm_id Parameters aufgerufen werden (Beispiel: form.php?sfm_id=1).
  • Wahlweise kann dieser Parameter auch einen anderen Namen erhalten.
  • Wenn immer das selbe Formular ausgegeben werden soll, kann außerdem die Formular-ID direkt angegeben werden:
<?php
include_once("./acp/lib/class_scarformmanager.inc.php");
$scar4u_scarformmanager = new Scar4U_FormManager();
echo
$scar4u_scarformmanager->display(1);
?>

Im Beispiel würde immer das Formular mit der ID 1 ausgegeben werden.

 


 

HTML Formular Anpassungen

Wenn Skripte oder allgemein Dateien mit PHP über include(); eingebunden werden, wird das häufig durch einen Identifier realisiert. Das folgende URL-Beispiel zeigt einen solchen Kenner. Zum Beispiel muss der Parameter "seite" immer den Inhalt "formular" beinhalten.

http://deinedomain.de/index.php?seite=formular

Dieser Parameter muss eigenhändig in die Templates eingebunden werden! Das gilt für jeden Link und jedes Formular in den Templates! Für oberes Beispiel müssten die HTML-Formulare wie folgt erweitert werden:

<form ...>
    ...
    <input type="hidden" name="seite" value="formular">
    ...
</form>

Die HTML-Links (sofern vorhanden) müssten wie folgt erweitert werden:

<a href="{$smarty.server.PHP_SELF}?seite=formular&variable1=...

Diese Parameter können an den Anfang oder an das Ende einer URL gesetzt werden. {$smarty.server.PHP_SELF}?.. setzt den Link für die aktuelle Seite und kann auch durch: index.php?.. ersetzt werden. Variable Übergabeparameter können z.B. mit: {$smarty.request.uebergabeparameter} eingebunden werden.

siehe auch: http://www.smarty.net

 


 

Captcha-Grafik einbinden

Wenn das Skript über PHP include(); eingebunden wird, ändert sich nicht nur der Name der resultierenden Skript-Datei, sondern evt. auch gleichzeitig der Path zum eigentlichen Formular-Skript. Die Templates sind oft auf gleichliegende Path-Angaben ausgelegt, diese Path-Angaben müssen ebenfalls korrigiert werden.

  • Variante 1
    Prüfen Sie die URL zur Captcha-Grafik, ist sie korrekt? Erweitern Sie die URL um den notwendigen Aufrufparameter:

    <img src="{$smarty.server.PHP_SELF}?sfm_id={$form.formid}&sfm_displaycaptcha&seite=formular">

    Diese Variante funktioniert nur, wenn vor der PHP include(); Anweisung des Skriptes -keine- Ausgabe erfolgt!

  • Variante 2
    Dem Skript liegt eine Code-Beispiel zum alleinigen Aufruf der Captcha Grafik bei. Binden Sie diese Datei in die Formulare ein, natürlich muss auch hier die URL in den Formularen angepasst werden.

    <img src="http://example.de/sfm/captcha.php?sfm_id={$form.formid}">

Die Captcha Grafik befindet sich auf der letzten Formularseite.

Wenn die Captcha-Grafik nicht wie erwartet angezeigt wird, sollte sie selbstständig aufgerufen werden. Öffnen Sie die URL der Captcha-Grafik in einem neuen Browser-Fenster. Im Fall eines technischen Fehlers wird dieser so direkt ausgegeben.
An die URL der Captcha-Grafik gelangt man in den meisten Browsern durch einen Rechts-Klick auf die Grafik, anschließend entweder "Grafikadresse kopieren" oder "Eigenschaften" wählen.

 


 

Weitere PHP Include(); Beispiele

In der Administration von ScarFormManager befinden sich weitere PHP Include(); Beispiele die zusätzlich den vollständigen Server-Path zum Skript anzeigen.

  • In der Administration wird im Hilfe-Menü ein allgemeines Beispiel angezeigt, wie mit PHP include(); das Skript eingebunden werden kann.
  • Während der Formularbearbeitung kann man in der Formular-Vorschau das funktionstüchtige Formular betrachten und auch bereits nutzen. Auf der linken Seite werden dort einige Code-Schnipsel gezeigt, wie man mit PHP include(); das Skript einbinden kann. Weiterhin wird auch die captcha.php Variante der Captcha-Grafik dort nochmal veranschaulicht. Die "funktionstüchtige" Formularvorschau setzt das generieren/existieren aller Formularseiten (Templates) vorraus!
    Funktionstüchtige Formular VorschauFunktionstüchtige Formular Vorschau

 


 

HTML Formular Layout

Wenn die Formulare mit PHP include(); eingebunden werden, ist eine Reduzierung des HTML Layouts notwendig.
Beachten Sie, das nur ein <body .. > . . . </body> Bereich in einer HTML Seite definiert werden darf. Entfernen Sie daher alle überflüssigen HTML Bestandteile.

Alternativ kann das bisher genutzte Templatepack kopiert und reduziert werden. Der Vorteil: alle damit generierten Formulare enthalten automatisch die Änderungen.

 


 

Weiterführende Links

PHP include: http://www.php.net/include
HTML Image: http://de.selfhtml.org/html/grafiken/einbinden.htm