Gelöst Plugin mit tpl include oder iframe

Status
Es sind keine weiteren Antworten möglich.

moeve

Aktives Mitglied
19. Mai 2015
64
0
Tostedt
Guten morgen.

Ich erstelle gerade ein Plugin, welches die Funktion haben soll, dass wenn auf einen von 3 Buttons gedrückt wird, sich ein Contentbereich ändern soll.
Ich möchte die Seite nicht über die php-Datei neuladen, sondern es soll sich nur der Inhalt eines Kastens ändern.

Meine erste Idee war es mit einem <iframe> zu versuchen, aber es kommt immer die Meldung "Permission denied" für die erstellten tpl-dateien. Auch beim {include file=""} musste ich feststellen, dass die entsprechende tpl-Datei nicht im Plugin-verzeichnis sein darf, sondern ich mir im tpl_inc-Ordner einen eigenen Unterordner erstellen musst, was ich auch ungerne machen möchte, da sich alle zugehörigen Dateien in dem Plugin befinden sollen.

Hat einer dazu eine Idee oder könnte mir eine Richtung vorgeben, was man noch probieren könnte?


Viele Dank schonmal.
 
Zuletzt von einem Moderator bearbeitet:

boaa-group

Sehr aktives Mitglied
28. Dezember 2007
4.932
9
Thailand, Bangkok
AW: Plugin mit tpl include oder iframe

Nachladen von Content am Besten via AJAX.

GET Request an die index.php > Plugin Datei am POST/GET Hook > TPL Datei "einlesen" und ausgeben und via JavaScript den Bereich "ersetzen".

So wie ich das deinem Post entnehmen kann, stehst du scheinbar aber noch am Anfang deiner JTL-Entwicklerlaufbahn und dürftest ne Weile brauchen. Es ist die Mühe aber wert...
 

moeve

Aktives Mitglied
19. Mai 2015
64
0
Tostedt
AW: Plugin mit tpl include oder iframe

@boaa-group Da hast du Recht. Dieser ganze Bereich ist für mich Neuland, normalerweise bin ich in der Welt von Java und C++ unterwegs.

GET Request an die index.php > Plugin Datei am POST/GET Hook > TPL Datei "einlesen" und ausgeben...

Dieses verstehe ich noch nicht richtig. Nutze den Hook 140, zum aktivieren meines Plugins und steuer das einfügen der tpl-Datei über die Abfrage eines div->id, damit ich per Query auf die Datenbank zugreifen kann und später die tpl per pq() ausgeben kann. Oder ist dieser Ansatz in einem Plugin falsch?

Nadann werde ich mich "maleben" dem Javaskript widmen und sehen wir dort der Content-change funktioniert.
 

boaa-group

Sehr aktives Mitglied
28. Dezember 2007
4.932
9
Thailand, Bangkok
AW: Plugin mit tpl include oder iframe

Das kommt darauf an was du wo genau ändern möchtest. Da du ja "onclick" arbeiten möchtest wäre es einfacher eine PHP Datei an HOOK 132 zu haben und in deiner info.xml einfach eine JavaScript Datei einzubinden (siehe JTL Beispielplugin).

In der JavaScript Datei kannst du dann ja
Code:
if($('body').data('page') == 'xx'){
    dein Code
}
xx ... SeitenTyp (zB 18 für Startseite...)

erstmal festlegen auf welchen Seiten dein JS überhaupt arbeiten soll.

Innerhalb der IF-Bedingung machst du dann etwas ala

Code:
$('body').on('click', '#id.class', function(e){
    deine Funktion
});

damit deine Funktion eben nur beim Klick auf das Element mit der ID bzw. Klasse ausgeführt wird die du möchtest.
Ich nutze hier übrigens .on() um sicherzustellen, dass deine Trigger auch nach Änderung des Contets zB auf Artikeldetailseiten nach Laden eines Var.Kombi Kindartikels immer noch funktionieren.

Deine Funktion wäre dann ein AJAX Call (siehe dazu jQuery.ajax() | jQuery API Documentation bzw. gezielt für GET Requests https://api.jquery.com/jquery.get/) bei dem deine Ziel URL index.php wäre.

In deiner PHP Datei am Hook 132 hast du dann zB:

Code:
if(isset($_GET['deinParameter']) && $_GET['deinParameter'] == 'deinWert'){
    $geparsterInhaltdeinerTPL = $smarty->fetch($oPlugin->cFrontendPfad . '/deineTPLDatei.tpl');

    echo $geparsterInhalt;
    exit();
}

in der jQuery AJAX/GET funktion bekommst du dann quasi dein HTML als "data" zurückübergeben (siehe Beispiele auf den oben verlinkten seiten) und brauchst dann im .done() Block deines AJAX/GET Aufrufs nur etwas ala

Code:
$('#zielid.zielclass').html(data);

Und schon wird der Inhalt des Elements mit dem übermittelten Code ersetzt.

Da fehlt jetzt natürlich noch bisschen was um Fehler abzufangen falls "data" leer ist usw... aber das wär's im Großen und Ganzen.

Kann natürlich sein, dass ich deine Anforderungen nicht 100% verstanden habe oder ein anderer Entwickler eine effizientere Lösung kennt ;)
 

ag-websolutions.de

Sehr aktives Mitglied
29. Dezember 2009
14.548
233
AW: Plugin mit tpl include oder iframe

Je nach Komplexität könntest du auch direkt alle Inhalte der Seite in hidden-DIVs rein setzen und dann nur per javascript auf das Click-Event die div-classes tauschen/löshen.
 

boaa-group

Sehr aktives Mitglied
28. Dezember 2007
4.932
9
Thailand, Bangkok
AW: Plugin mit tpl include oder iframe

Dieses verstehe ich noch nicht richtig. Nutze den Hook 140, zum aktivieren meines Plugins und steuer das einfügen der tpl-Datei über die Abfrage eines div->id, damit ich per Query auf die Datenbank zugreifen kann und später die tpl per pq() ausgeben kann. Oder ist dieser Ansatz in einem Plugin falsch?

Ich denke das ist Geschmackssache. phpQuery dient dazu den DOM zu manipulieren also "einmalige" Änderungen durzuführen (meiner Meinung nach), wenn du aber dynamisch onClick Dinge ändern möchtest macht es mehr Sinn die dann auch dynamisch wie du sie brauchst via JS zu holen.

Falls du einen Button vorangeklickt haben willst schreibst du übrigens in die IF-Anweisung im JS noch...

Code:
$('#iddesbuttons.classdesbuttons').trigger('click');

Dann wird quasi direkt bei Aufruf erstmal der Button geklickt > der erste Inhalt geladen.
Optional wäre hier dann aber auch der Hook 140 angebracht um deinen "Startinhalt" eben einmalig direkt an die gewünschte Stelle zu bringen.

EDIT: Oder die Lösung von AG-Websolutions direkt alle Inhalte zu hinterlegen und nur via JS ein- und ausblenden.

Gibt viele Wege die zum Ziel führen :)
 

moeve

Aktives Mitglied
19. Mai 2015
64
0
Tostedt
AW: Plugin mit tpl include oder iframe

Wollte mich nochmal kurz zurück melden.

Nochmals vielen Dank für eure Hilfe. Habe das Problem nun ohne iframe, aber mit javskript gelöst bekommen.
 
Status
Es sind keine weiteren Antworten möglich.
Ähnliche Themen
Titel Forum Antworten Datum
Neu JTL Shop Plugin - BD Automatisierter Widerruf (Von Händler für Händler - Schluss mit Mail-Chaos & Spam-Sorgen!) Plugins für JTL-Shop 0
Beantwortet [Shop 5.7.2 / Wawi 2.0.5] GPSR-Daten werden am Artikel nicht angezeigt trotz korrekter Übertragung und installiertem Plugin Allgemeine Fragen zu JTL-Shop 1
Neu Plugin: JTL Exportformat Google Shopping gibt <g:google_product_category> unter Shop 5.7.1 und Wawi 2.0.4 nicht aus Plugins für JTL-Shop 1
Neu Seller2Go – Mobile App & JTL-Plugin für Bestellungen, Support und Produktmanagement Plugins für JTL-Shop 0
Neu PayPal Plugin wirft Fehler auf einmal wegen telefonnummer JTL-Shop - Fehler und Bugs 3
Neu Neues Plugin: Erweiterter Widerrufsbutton für JTL-Shop Plugins für JTL-Shop 9
Neu Plugin Preisvorschlag Plugins für JTL-Shop 6
Neu Plugin Allgemeine Fragen zu JTL-POS 1
Neu Betatester gesucht - Plugin: Geizhals Basket Tracking inkl. EMID Übermittlung Plugins für JTL-Shop 0
Neu JTL-Shop "Plugin-Vorlage" gesucht User helfen Usern 3
Rechnung mit CC verschicken Vorlagen 2.0 JTL-Wawi 1.11 12
Neu Versanddatenimport in Packtisch nicht automatisch (DPD Österreich mit WEB.omat) JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 2
Neu Anzeige Alle Artikel mit Kategorieanzeige linke Menüleiste Allgemeine Fragen zu JTL-Shop 9
Neu GLS Privatlabels mit Packtisch verknüpfen JTL-ShippingLabels - Ideen, Lob und Kritik 0
Neu oAuth Credentials Login mit JTL .. WO? User helfen Usern 1
Neu kostenlos: DHL Sendungsverfolgung für JTL-Wawi – Web-Dashboard mit Frühwarnsystem Schnittstellen Import / Export 0
Neu Konfigurationsgruppe mit Auslesen Arbeitsabläufe in JTL-Wawi 1
Neu Ist es ohne Probleme möglich Cloudflare in der Free Version mit JTL zu nutzen? Allgemeine Fragen zu JTL-Shop 7
Neu Nach Wawi Update Probleme mit Rechnungsdrucker JTL-POS - Fehler und Bugs 4
Neu Mariadb 12 mit 5.7.1 Allgemeine Fragen zu JTL-Shop 0
Neu Pickliste mit maximaler SKU-Anzahl – gibt es eine Lösung? Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 4
Neu Mit Fehlern beendet - Object reference not set to an instance of an object. JTL-Track&Trace - Fehler und Bugs 0
ändern von Servernamen nach Neuinstallation von SQL und Verbindung mit neuem Server in der Wawi JTL-Wawi 2.0 2
Probleme mit Artikelansicht oder Verkauf, etc. JTL-Wawi 2.0 0
Fehler mit Zahlungsabgleich JTL-Wawi 1.11 11
Eigener Drittshop-Connector (jtl/connector 5.3): valide Variationskombinationen werden mit „besitzt keine Variationen" nicht gesendet JTL-Wawi 1.11 1
Neu Problem mit dem JTL-Connector – Invalid Shopify connection credentials. Shopify-Connector 3
Neu Arbeiten mit Lieferanten EKs - Workflows und SQL User helfen Usern - Fragen zu JTL-Wawi 6
Neu JTL Artikelanlage mit KI beschleunigen User helfen Usern - Fragen zu JTL-Wawi 2
Neu DHL 4.0 mit JTL-ShippingLabels funktioniert nicht JTL-ShippingLabels - Fehler und Bugs 2
Neu Amazon FBA Bestellungen doppelt mit _1 Amazon-Anbindung - Fehler und Bugs 5
Fehler beim Abgleich mit Amazon JTL-Wawi 2.0 10
Abgleich Amazon mit Fehlern beendet 1.11.08 JTL-Wawi 1.11 14
Rabatt Coupons in Verbindung mit Staffelpreisen - JTL 1.11.9, JTL Shop JTL-Wawi 1.11 0
Worker 2.0 starten mit deak. Abgleichen? JTL-Wawi 2.0 5
Fehler beim Abgleich mit dem JTL-Shop JTL-Wawi 2.0 12
Neu OnFinds: KI-Suche für JTL-Shop mit fairer Abrechnung nach Artikelanzahl. 30 Tage kostenlos testen Plugins für JTL-Shop 0
Neu Abrechnung / Auslieferung von Aufträgen mit Gutschriftverfahren Arbeitsabläufe in JTL-Wawi 3
Neu Dummy-ID oder Freiposition für Angebot mit mehrzeiliger Beschreibung JTL-Wawi - Ideen, Lob und Kritik 7
Neu JTL Shop 5.7.1 mit Fehlern - versandarten zahlungsarten nicht änderbar, leere weiße Seite JTL-Shop - Fehler und Bugs 5
JTL Ameise Lieferantenbestellung mit VPE importieren oder umrechnen JTL-Wawi 1.11 0
Jtl pos Einstellungen mit wiwa 2.02 JTL-Wawi 1.11 0
Anmeldung mit OAuth bei Versanddienstleister notwendig JTL-Wawi 1.10 5
Problem mit Hermes Österreich Sendungsnummern – Fehler beim Amazon-Abgleich in JTL-Wawi JTL-Wawi 1.10 0
Bestellabgleich mit JTL Wawi und WooCommerce 1h verzögert JTL-Wawi 2.0 0
Neu PayPal Käufername stimme nicht mit Liederadresse überein! Business Jungle 0
Neu 1.11.8 Auftagsimport mit Artikelnummern mapping JTL-Ameise - Fehler und Bugs 0
Neu Neuerdings E-Mail benachrichtigung bei "Pick up in Store", allerdings mit E-Mail "Bestellung wurde abgeholt" Shopify-Connector 0
Neu Abgleich mit Amazon Sendungsnummer / Rechnung Arbeitsabläufe in JTL-Wawi 0
Neu JTL-Wawi mit Claude, ChatGPT, Openclaw/Hermes oder CRM System verbinden User helfen Usern 2

Ähnliche Themen