Mehrere Frontend-Seiten durch Plugin erstellen

absolutbad

Aktives Mitglied
4. Oktober 2013
42
19
Hallo JTL-Community,
ich suche ein Möglichkeit mehrere Frontend-Seiten über ein Plugin zu erzeugen.
Bislang sind die "Inspirationen" (siehe Links weiter unten) als einzelne Seiten im JTL CMS angelegt. Das möchte ich in ein Plugin umwandeln, um die Pflege zu vereinfachen.

Es gibt die Haupt-Übersichtsseite der Inspirationen und zu jedem Element eine eigene Frontend-Seite.
Übersicht: Inspirationen | Absolut Bad
Detail: Inspiration ID0017 | Absolut Bad

Ich könnte POST Variablen setzen, um die richtige Seite anzeigen zu lassen, aber das ist nicht gut für die SEO Optimierung.
Ich möchte für jede Inspiration einen SEO-optimierten Link haben, und alles über das Plugin-Backend pflegen können.

Deswegen möchte ich nicht auf POST Variablen zurückgreifen. -> http://lloremipsum.tld/Inspiration?id=17
Bestenfalls sollte die URL -> http://lloremipsum.tld/Inspiration/Inpirationstitel lauten.

In der info.xml kann ich eine oder mehrere Frontend-Seiten definieren, aber keine Seiten dynamisch anlegen, je nach dem wie viele Inspirationen ich angelegt habe.

Kann mir jemand dazu einen Denkanstoß liefern?

Vielen Dank im Voraus!
 

OpenMind

Aktives Mitglied
8. November 2017
6
0
Hallo absolutbad,

konntest Du das Problem inzwischen lösen?
Ich beschäftige mich zur Zeit mit der selbigen Aufgabenstellung und wäre für einen Tip dankbar.

Vielleicht hat auch jemand anders eine Idee.

Danke!
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
6.639
1.583
Berlin
@OpenMind : Da dieser Beitrag von 2015 ist, und es nicht aussieht als ob er etwas gefunden hat, richte ich die Antwort mal direkt an dich.

Was ist daran so schlimm das normal über das Hauseigene System (die eigenen Seiten) zu machen, bzw. was stört dich daran.
Es ist möglich das über ein Plugin zu regeln aber der Aufwand wäre schon recht hoch, letztendlich hast du aber immer einen html Editor den du mit Daten befüllst.

Alternativ gibt es den Dropper von Kreativ Konzentrat, mit dem man diese Seiten zusätzlich individualisieren kann.
 
  • Gefällt mir
Reaktionen: Kreativkonzentrat

OpenMind

Aktives Mitglied
8. November 2017
6
0
@css-umsetzung
Danke für die schnelle Antwort. Es ist natürlich nichts schlimm daran, CMS Seiten einzusetzen. Leider ist deren Funktionalität limitiert. Ich möchte gern (nur auf bestimmten Seiten, wohlgemerkt) auch dynamischen Inhalt einpflegen (z.B. zufällige Produktbilder, verweise auf die zuletzt erstellten Seiten etc.). Das ist meines Erachtens mit CMS Seiten nicht ohne Weiteres möglich.
Davon abgesehen ziehe ich eine Plugin-Lösung grundsätzlich statischem Content vor.

Nur eine Idee zur Lösung der obigen Fragestellung wäre schon zielführend.
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
6.639
1.583
Berlin
Ich habe die Antwort eigentlich schon gegeben, Die Seite über die cms Funktion im Shop anlegen, und dann kannst du diese, mit dynamischen Inhalten über den Dropper befüllen. Eine sauberere Implementierung wirst du mit eigenen Plugins nicht, ohne einem recht hohem Aufwand erreichen.

Und um ein Listing von zuletzt erstellten Seiten zu generieren erstellt man sich eine smarty funktion, dann kann man das von überall her nutzen "auch im Dropper" da dieser smarty parsen kann.

Alles andere fängt mit einem Programmieraufwand von einigen Wochen/Monaten an.
 

OpenMind

Aktives Mitglied
8. November 2017
6
0
Bitte verzeih mir die Ironie, aber wenn mich jemand fragt, ob ich ihm einen Hinweis geben kann, wie er am besten einen Reifen an seinem Golf wechselt, und ich antworte: "Das ist viel zu aufwändig, fahr' lieber in die Werkstatt", dann habe ich auch eine Antwort gegeben, aber leider nicht die Frage beantwortet.

Angenommen, ich habe einige Wochen/Monate Zeit, was wäre der sauberste Lösungsansatz?
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
6.639
1.583
Berlin
OK dann anders:
kannst du Programmieren, dann -> http://docs.jtl-shop.de/de/latest/shop_plugins/index.html
Dort steht, was du tun musst um ein Plugin zu erstellen, dein Plugin wird dann nichts anderes machen als die komplette CMS Funktion vom Shop zu übernehmen.

Du wirst also mit deinem Plugin die Tabelle für die eigenen Seiten befüllen, denn nur so ist eine saubere Linkstruktur im Shop gewährleistet, die der Shop auch durchgehend unterstützt.
Hierfür kannst du dann direkt Plugin Module schreiben, die ähnlich wie bei WordPress, Platzhalter befüllen, die Anzahl deiner Pluginmodule bestimmst du.

über die Hooks und den Pagetypen weisst du dann wann du reagieren musst und befüllst die Platzhalter mit dynamischen Werten.
Größte Baustelle hierbei ist es einen CMS zu schreiben das deine Seiten individual gestalten kann (spalten usw.) wenn du das geschafft hast, dann sind die Module für die Dynamik ein klax.

Fazit: alles das kann der Dropper, bis auf das er keine "eigenen Seiten" erstellt und auf die vorhandenen Ressourcen zurückgreift.
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
6.639
1.583
Berlin
@ag-websolutions.de Sei nicht immer so gemein.... das ist doch alles nur provisorisches Brainstorming

ok dann anders :)

Es werden keine Fremden Werte eingetragen, nur die Felder von JTL werden genutzt und zum speichern auch "NUR" die Funktion von JTL.
Da ich gerade sehe das JTL für das speichern keine eigene Funktion hat machen wir das noch anders, wir senden die Daten der eigenen Seite an uns selbst per POST und includen uns die link.php, die dann für uns das speichern übernimmt...(ja leicht pfuschig aber ich sehe in der Datei kein redirect, könnte gehen)

Alternativ kann er ja von mir aus auch eine eigene Tabelle bauen, dann muss man aber schauen ob der 404er hook (ich glaube den gibt es) direkt einen 404er auswirft oder mich erst schauen lässt ob ich ihm einen Inhalt anbieten kann um dann einen ordentlichen 200er header auszuliefern, Problem hierbei ist aber das es im sitemap nicht sauber vorhanden ist, daher kommt hier wieder die vorherige Lösung zum Tragen.

Alles ist reines Brainstorming und kann in der Entwicklung wie sie durchgeführt werden muss, vom geschriebenem abweichen
 

OpenMind

Aktives Mitglied
8. November 2017
6
0
Danke erstmal, jetzt wird es interessant.
Im Moment sieht meine Lösung so aus, dass ich eine Plugin-Tabelle habe, die ich aus dem Plugin-Backend mit Informationen zur Seite befülle. Im Frontend habe ich eine einzelne CMS Seite (über das Plugin) angelegt, nennen wir sie der Einfachheit halber "Sammlung". Beim Speichern einer Seite im Plugin-Backend wird der kKey Wert von "Sammlung" aus der tseo Tabelle ausgelesen und anschließend wird ein neuer Eintrag in tseo angelegt mit dem Slug der neuen Seite und eben mit dem gerade ausgelesenen kKey. Wird also eine Seite z.B. mit dem Slug "bob" angelegt und anschließend über www.mein-shopname.de/bob aufgerufen, so landet man auf "Sammlung", kann dort die URI auslesen und den entprechenden Eintrag aus der Plugin Tabelle fetchen. Das funktioniert.

Nun hat ag-websolutions.de natürlich recht, das entspricht nicht dem Style- Guide von JTL. Für den internen Einsatz sicher kein Problem, das ist allerdings nicht die sauberste Lösung und schafft weitere Probleme, die man händisch lösen muss, z.B. die bereits erwähnte Sitemap oder auch die Breadcrumbs.

Den Lösungsansatz mit der Link.php finde ich interessant, das schaue ich mir an. Danke für den Tip!
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
6.639
1.583
Berlin
Ich darf das ja nicht sagen, aber Tabellen sind zum beschreiben da, und wenn man "leicht antiquierten" Code hat, der weder ein MVC oder ähnliches bzw. sogar keine eigenen Anzusprechenden Funktionen hat um Daten regelgerecht ablegen zu können, dann ist das natürlich nicht mehr zeitgemäß, denn wie möchte man "vernünftig und performant", ein Shopsystem mit tollen Features ausstatten.

Der normale weg ist ja, ich möchte ich über ein Plugin eine Seite anlegen, also sage ich dem System "hallo ich hätte gerne eine Seite" das System sagt dann ja OK kein Ding gib mir Infos dann hast du deine Seite.
Die Tabelle auf gut Glück selbst, mit insert oder wie auch immer zu füttern ist natürlich doof da man ja nicht weiß ob sich diese Struktur irgendwann ändern wird.

Aber gut dafür bekomme ich es gleich wieder von allen Seiten :)
 

OpenMind

Aktives Mitglied
8. November 2017
6
0
Die Tabelle auf gut Glück selbst, mit insert oder wie auch immer zu füttern ist natürlich doof da man ja nicht weiß ob sich diese Struktur irgendwann ändern wird.
Absolut. Deshalb auch die Frage nach einer sauberen Lösung.

Eine Funktion zum Füttern der Datenbank für individuellem Content wäre natürlich genial. Oder noch besser: Custom types a la Wordpress...
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
6.639
1.583
Berlin
Ich sage es mal so,

wenn du insert() verwendest, dann hast du ja vorher das Object mit den zu befüllenden Feldern gefüttert, wenn die Struktur nicht passt, wird diese ja sogar ohne Fehlermeldung einfach nicht akzeptiert, in sofern ist man theoretisch auf der sicheren Seite aber über kurz oder lang muss da was kommen das man eine Funktion zum auslesen oder setzen, für alle relevanten Daten hat.

ich kenne von Contao das MVC, die einen sagen das ist auch nicht mehr zeitgemäß, die anderen schwören drauf, der Vorteil ist für mich, es ist egal wie die Struktur aussieht und Plugins dürfen diese auch erweitern, ich bekomme immer immer meine Daten vom SYSTEM und das SYSTEM schreibt diese auch.
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Ameise - Attribute importieren/aktualisieren - Mehrere Sprachen JTL-Ameise - Ideen, Lob und Kritik 1
Neu Mehrere Stellen zu besetzen Dienstleistung, Jobs und Ähnliches 1
In Bearbeitung Mehrere Karten/Buchnungskonten aber nur ein Karten-Terminal (Ethernet) Allgemeine Fragen zu JTL-POS 4
Gelöst "Nur letzten ausführen" führt dennoch mehrere Gelöste Themen in diesem Bereich 3
Mehrere Versandarten in einem Auftrag JTL-Wawi 1.7 0
Mehrere Menüpunkte in neuer Footer-Box Einrichtung JTL-Shop5 0
In Diskussion "Zeitverschiebung" um mehrere Tage in POS 1.0.9.0 JTL-POS - Fehler und Bugs 8
Suchergebnisse normale Suche filtern MEHRERE Kategorien anklicken geht nicht Einrichtung JTL-Shop5 1
Neu In einen Portlet-Container im Frontend per Ajax Datennachladen (weitere anzeigen) Technische Fragen zu Plugins und Templates 1
Neu Kurzbeschreibung wird nach dem letztem Shop-Abgleich nicht im Frontend angezeigt User helfen Usern - Fragen zu JTL-Wawi 0
Neu Eigene Seiten mit Plugin erstellen Technische Fragen zu Plugins und Templates 0
Neu Inhalt von eigenen Seiten ausgeben Technische Fragen zu Plugins und Templates 5
Neu Bitte um Hilfe: Seiten Variationskombis im Shop zeigen http:500 Allgemeine Fragen zu JTL-Shop 4
Neu Eigene Seiten Priority in der Sitemap ändern Allgemeine Fragen zu JTL-Shop 5

Ähnliche Themen