Ergebnis 1 bis 6 von 6

Thema: Eingebundenes Formular-widget zeigt Optionen nicht an

  1. #1
    Contao-Fan Avatar von Gassi
    Registriert seit
    18.11.2009.
    Ort
    Konstanz
    Beiträge
    425

    Standard Eingebundenes Formular-widget zeigt Optionen nicht an

    Hallo,

    ich brech mir hier einen ab - suche schon Stunden nach dem Fehler - vielleicht könnt ihr mir helfen?!
    Ich habe ein snippet eingebunden das ein Formular beinhaltet. Einbinden klappt soweit auch:

    Als Standalone klappt das Teil auch: http://dialoge.com/formtest/thebingtest.php

    Jedoch sobald ich versuche das Teil in Contao zu integrieren - bringen mir die Optionsfelder keine Inhalte mehr.
    Da sind Sie - aber ich vermute das data-dynamic macht hier irgendwie Probleme - die option Werte werden jedoch nicht erzeugt und ausgegeben ? Was kann ich aber hierzu machen?

    Hier die Seite wo es eingebunden ist: http://dialoge.com/de/gesamtuebersicht-kursprogramm


    PHP-Code:
    <select name="block_219_nationality" 
    data-dynamic-config="[{"type":"StaticSelectOptions","data":{"select_options":[[0,""],["AF","Afghanisch"],["CI","Afrikanisch"],["EG","\u00c4gyptisch"],["AL","Albanisch"],["DZ","Algerisch"],["US","Amerikanisch"],["AD","Andorranisch"],["AI","Anglikaner"],["AO","Angolanisch"],["AQ","Antarktisch"],["AG","Antiguanisch"],["GQ","\u00c4quatorialguineisch"],["AE","Arabisch"],["AR","Argentinisch"],["AM","Armenisch"],["AW","Arubanisch"],["ET","\u00c4thiopisch"],["AU","Australisch"],["CC","Australisch"],["AZ","Azerbaijanisch"],["BS","Baham...nisch"],["TT","Trinidadisch"],["TD","Tschadisch"],["CZ","Tschechisch"],["TN","Tunesisch"],["TR","T\u00fcrkisch"],["TM","Turkmenisch"],["TV","Tuvaluisch"],["UG","Ugandisch"],["UA","Ukrainisch"],["HU","Ungarisch"],["UY","Uruguayisch"],["UZ","Usbekisch"],["VU","Vanuatuanisch"],["VE","Venezolanisch"],["VN","Vietnamesisch"],["BY","Wei\u00dfrussisch"],["CF","Zentralafrikanisch"],["CY","Zypriotisch"]]}},{"type":"ValidateInput","data":{"message":"","algorithm":"SelectOptionsBlacklist","blacklist":[null,"","0"]}}]" data-dynamic-identifier="block_219">
    </
    select
    Ach ja - mein Template für die Integration sieht so aus:

    Code:
    <?php
    $id = $this->field('form_id')->value();
    
    include("includes/class.snippet.php");
    
    $oSnippet = new Thebing_Snippet('https://login.thebing.com', $id , 'xxxxxxxxxxxxxxx');
    
    $oSnippet->execute();
    
    ?>
            <div id="thebing">
            
            <?=$oSnippet->getContent()?>
            </div>
            </div>
    Über Hilfe wäre ich sehr dankbar....

    Gruss Gassi
    Geändert von Gassi (29.08.2017 um 12:14 Uhr)

  2. #2
    Contao-Nutzer Avatar von alexgr
    Registriert seit
    01.10.2012.
    Beiträge
    69

    Standard

    In dem Code sind irgendwie alle Dateien mit
    Code:
    src="?get_file=foo.bar"
    eingebunden. Deine thebingtest.php fängt wohl den Get-Parameter "get_file" ab und liefert die entsprechende Datei dann aus. Contao kann mit "get_file" natürlich nichts anfangen und lädt einfach die Startseite anstelle der Datei. Man müsste also erst mal wissen, wozu "get_file" überhaupt benutzt wird. Kannst Du den entsprechenden Code aus der thebingtest.php posten? Vielleicht wird ja versucht, zu verhindern, dass die Dateien aus dem Browsercache geladen werden oder so.

    Nachtrag:
    Ach so, wahrscheinlich werden die Methoden, die sich irgendwie darum kümmern, mit irgendwas hiervon geladen:
    PHP-Code:
    include("includes/class.snippet.php");

    $oSnippet = new Thebing_Snippet('https://login.thebing.com'$id 'xxxxxxxxxxxxxxx');

    $oSnippet->execute(); 
    Kann es vielleicht sein, dass irgendwas davon eine Warning erzeugt? Oder sind vielleicht einfach die Dateien, die hier zu laden versucht werden, nicht vorhanden oder nicht an der Stelle vorhanden, von der aus versucht wird, sie zu laden?
    Geändert von alexgr (29.08.2017 um 15:17 Uhr)

  3. #3
    Contao-Fan Avatar von Gassi
    Registriert seit
    18.11.2009.
    Ort
    Konstanz
    Beiträge
    425

    Standard

    Hey Alexgr,

    im prinzip ist da das gleiche drin wie in meinem Template:
    Code:
    <?php
    
    include("includes/class.snippet.php");
    
    $oSnippet = new Thebing_Snippet('https://kunde.thebing.com', 'J2XY297P88ULB22W', 'xxxxxxxxxxxx');
    
    $oSnippet->execute();
    
    ?>
            <div id="thebing">
            
            <?=$oSnippet->getContent()?>
            </div>
            </div>
    im ordner includes liegt dann eben die snippet.php datei.

    Gruss Gassi

  4. #4
    Contao-Nutzer Avatar von alexgr
    Registriert seit
    01.10.2012.
    Beiträge
    69

    Standard

    Ach du Schande, jetzt verstehe ich das erst, diese eine Zeile
    PHP-Code:
    <?=$oSnippet->getContent()?>
    rendert das gesamte Formular. Umpf. Okay. Da kommt man dann wahrscheinlich überhaupt nirgendwo dran.

    Also, das Problem ist jedenfalls wie gesagt, dass sich dieses get_file und Contao nicht recht vertragen. Das könnte ausschließlich an Contaos Verwendung von <base href="…"> liegen. Wenn Du die Seite mal mit offenem Netzwerk-Tab neu laden lässt, siehst Du, was da versucht wird zu laden: Alles ist entweder /de/?get_file=foo.bar oder /?get_file=foo.bar, und zwar besonders /de/?get_file=form_object.js. Es wird dann einfach die Startseite mit dem Parameter-Wert-Paar get_file=form_object.js geladen, was natürlich nichts bringt. Dir fehlt daher das gesamte JavaScript, das sich um das Laden der Optionen im Formular kümmert. Was Du eigentlich brauchst, ist /de/gesamtuebersicht-kursprogramm?get_file=form_object.js.

    Kann man diesem Thebing_Snippet-Objekt noch irgendwelche Parameter mitgeben oder irgendwelche Eigenschaften setzen? Ich kenne diese Thebing-Sache überhaupt nicht, aber anscheinend gibt es ja für andere CMS schon Integrationen, was dafür spricht, dass die das ja irgendwie schon benutzbar gekriegt haben müssen. Ich habe mir mal das entsprechende Wordpress-Plugin angeschaut und da drin gefunden, dass dieser dritte Parameter, der bei Dir nur "xxxxxxxxxxxx" heißt, ein Key ist, der auf ein "Template" verweist. Worum geht es da? Gibt es da vielleicht irgendeine Handhabe?

    Wenn das alles ganz sicher nur Holzwege wären, dann hättest Du aus meiner Sicht noch folgende Optionen:
    1. Den gesamten Output zu parsen und an den entsprechenden Stellen Ersetzungen vorzunehmen, d. h.
      PHP-Code:
      $content $oSnippet->getContent();
      $request = \Environment::get('indexFreeRequest');
      $contentForContao str_replace('?get_file='$request.'?get_file='$content);
      echo 
      $contentForContao
    2. In der .htaccess eine Weiterleitung für /?get_file=foo und /de/?get_file=foo auf /de/gesamtuebersicht-kursprogramm?get_file=foo einrichten. Sobald Du mehrere solcher Formulare auf verschiedenen Seiten hast, müsstest Du überdies prüfen, woher die Anfrage kommt.

  5. #5
    Contao-Fan Avatar von Gassi
    Registriert seit
    18.11.2009.
    Ort
    Konstanz
    Beiträge
    425

    Standard

    Hey Alexgr,

    danke das du dir solche Mühe gemacht hast ...
    Also ich denke doch auch - das von TheBing mehr kommen müsste - die lassen einen jedoch mit der Zip allein - und sagen immer - das es ein CMS fehler wäre ...
    Daher wenig Hoffnung auf Hilfe - wobei ich mir nicht vorstellen kann das dieses Problem nur bei Contao auftritt!?

    Ich werde mal das von dir ausprobieren - und hoffe ich komme damit klar. Es sind zudem 4 Formulare die eingebunden werden sollen auf verschiedenen seiten - aber wenn es bei einem klappt - ist der Rest nur noch Fleissarbeit.

    Und das "xxxxxx" ist der Auth-Key des Kunden - damit man auch nur seine Formulare abrufen kann.
    Ich hatte das Skript mal in dem Template mit drin - da hat es dann funktioniert - aber klar - da kann dann im Pinzip auch die Startseite was mit den get Parametern anfangen....

    Besten Dank und Gruss
    Gassi

  6. #6
    Contao-Fan Avatar von Gassi
    Registriert seit
    18.11.2009.
    Ort
    Konstanz
    Beiträge
    425

    Daumen hoch

    Hey,
    du hattest mit dem base tag recht!
    Antwort von thebing:

    "Hier wird bei euch ein <base> Tag genutzt. Dieser darf nicht bei den Formen benutzt werden da ansonsten das JS nicht mehr richtig arbeiten kann."

    Als wenn ich das jetzt mal einfach rausschmeisse ^^. Tolle Antwort - und mehr kam auch schon wieder nicht.

    Vielleicht sollte ich dein Ansatz jetz probieren - wobei ich ihn ehrlich gesagt nicht ganz verstehe....
    Was machte denn diese Zeile hier genau?
    Code:
    $request = \Environment::get('indexFreeRequest');
    Wenn ich die php datei im Seitenlayout fest reinnehme - dann kommen die opionen. Jetzt frage ich mich - ob es irgendwie geht, das File in das Template einzubauen -und dem File dann auf der Seite eine Variable mitgeben kann - die dann mir das entsprechende Formular lädt?

    Also z.B. ein Seitenlayout namens formular:
    im "Zusätzliche <head>-Tags " dann die Datei mit Parameter einfügen {{file::thebing.php?template=TempID}}

    Kann ich dem Template die Variable denn so überhaupt übergeben? Oder bringt das nichts - weil er ja immer nur die Startseite dann findet ohne die get_file Variablen?
    Ist der Ansatz so total bescheuert?!

    Gruss Gassi

    Edith:

    Also mit der Variante 1 konnte ich nun das gewünschte Ergebnis mit einem eigenen Modul samt Template umsetzen! Vielen DANK nochmal!
    Geändert von Gassi (04.09.2017 um 10:16 Uhr)

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
  •