Ergebnis 1 bis 5 von 5

Thema: Externe PHP-Klasse und PHP-Formular einbinden

  1. #1
    Contao-Nutzer Avatar von komuniki
    Registriert seit
    29.04.2013.
    Ort
    Aachen
    Beiträge
    6

    Standard Externe PHP-Klasse und PHP-Formular einbinden

    Hallo,

    ich verzweifel langsam bei den vielen Versuchen ein externes Formular in Contao einzubinden. Mehres habe ich schon versucht (Einbindung php-file über insert-tag, Erweiterung fe_page.tpl um besagte Klasse, Ablage in verschiedenen Verzeichnissen...). Ich komme einfach nicht weiter! Dabei sieht die "Anleitung" des Form-Anbieters an sich ganz einfach aus:

    1. Kopieren Sie die Grundklasse FBIform.class.php auf Ihren Webspace. Am besten in dasselbe Verzeichnis, in welchem die PHP-Dateien liegen, in die Sie unsere Formulare integrieren möchten.

    2. Initialisieren Sie das Objekt:
    $FBI = new FBIform($product_id, $partner_id);

    3. Abfrage durchführen (erst nach der Initialisierung):
    $FBI->handle();

    4. Platzierung der Ausgabe im <head> ... </head>-Bereich:
    <html>
    <head>
    <title>Testseite für PHP-Includes</title>
    <?php echo $FBI->get_head(); ?>
    </head>

    5. Platzierung der Ausgabe der Formulare an der Stelle, an der Sie angezeigt werden sollen:

    <body>
    <?php echo $FBI->get_body(); ?>
    </body>



    Meine Fragen nun konkret hierzu:
    zu 1.) Welches ist das richtige Ablage-Verzeichnis für die Datei FBIform.class.php, damit es mit " include('FBIform.class.php')" eingebunden werden kann? .... /templates ?
    zu 2.) und zu 3.) Wo packe ich die beiden Statements hin? Eigener HTML-Code mit insert_tag? Folgendes soll dabei rauskommen:
    <?php
    include('FBIform.class.php');
    $product_id = 1;
    $partner_id = NSA007;
    // Aufruf durchführen
    $FBI = new FBIform($product_id, $partner_id);
    $FBI->handle();
    ?>

    zu 4.) Wo packe ich dann "<?php echo $FBI->get_head(); ?>" hin, damit es vorher noch im "<head> ... </head>"-Bereich platziert wird?
    zu 5.) Ja, die Stelle ist mir eigentlich klar, und das über einen insert_tag vermutlich auch, aber wo packe ich das hin, damit die ganze Reihenfolge klappt?

    Bitte, bitte! Hilfe!
    Geändert von komuniki (24.04.2014 um 12:40 Uhr)

  2. #2
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.794

    Standard

    Erstmal wundert mich, daß eine Formularklasse überhaupt was im head-Bereich eintragen will. Was soll das denn sein?
    Außerdem müßtest Du dann das Anlegen des Objekts (new) bereits davor erledigen.

    Wozu überhaupt fe_page.tpl? Muß die Formularklasse auf allen Seiten verfügbar sein?
    Ich binde meine externen Formularskripte immer nur auf einer Seite per insert-Tag file ein.
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  3. #3
    Contao-Nutzer Avatar von komuniki
    Registriert seit
    29.04.2013.
    Ort
    Aachen
    Beiträge
    6

    Standard

    Hallo Frank,
    danke für Deinen Kommentar, doch leider hilft er mir nicht weiter.
    Warum der Anbieter den head-Bereich will, weiß ich auch nicht. Steht aber so in der Anleitung.
    Einfach nur insert-tag wie bei dir geht leider nicht (wie bereits beschrieben)
    Trotzdem nochmal danke für Deine Anregung.
    Heiko
    p.s.: Wäre toll wenn jemand meine konkreten Fragen beantworte könnte...

  4. #4
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.794

    Standard

    Ich kenne diese Klasse nicht und habe auch nichts dazu im Internet gefunden. "FBI" ist halt ein sch... Suchbegriff.

    Von daher kann ich Deine Fragen nicht beantworten, da mir das Vorwissen fehlt.

    In den blauen Dunst hineingeschossen:
    • Deinen Beispielcode in Antwort 2/3 schreibe an den Anfang von fe_page.tpl
    • Deinen Code aus Frage 4 und 5 packst Du dahinter in den jeweiligen Bereich von fe_page.tpl


    Wenn ich das Skript haben würde und nicht den Quellcode anschauen darf, würde ich aber stattdessen wie folgt vorgehen:
    1. PHP-Datei anlegen und Code laut Anleitung hineinkopieren.
    2. PHP-Datei auf den Server laden und im Browser aufrufen.
    3. Im Quelltext anschauen, was das Skript da im Header reingeschrieben hat.

    Danach würde ich entscheiden, ob das sinnvoll ist. Ich denke mal nein, wenn da nicht gerade Javascripte verewigt werden. Aber die kann man auch per Hand einbinden. Dazu braucht es wahrscheinlich das Skript nicht.

    Aus der Ferne würde ich sagen: Du kannst alle Aufrufe auch innerhalb von body machen und deshalb reicht eine Einbindung per Insert-Tag auf einer Seite. Wenn ich davon ausgehe, daß Du das Formularskript nicht auf jeder Seite brauchst.
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  5. #5
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Hallo Heiko,

    das wird so nicht klappen, selbst wenn deine Klasse ordnungsgemäß geladen wird. Der Anleitung zufolge musst du einen Bereich im Header einbauen, dann einen weiteren Bereich im Body. Das hat halt überhaupt nichts mit dem InsertTags zu tun und wird so auch nicht funktionieren. Wenn du unbedingt dieses Formular benötigst, such dir einen Contao-Partner und lass dir die Formularklasse in ein sauberes Modul programmieren, dann wird alles richtig geladen und auch in den richtigen Bereich gebracht.

    Aber mit InsertTags hast du meiner Meinung null Chance. Dafür sind die einfach nicht gemacht.
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •