1. Wenn Ihr uns das erste Mal besucht, lest euch bitte zuerst die Foren-Regeln durch.
    Information ausblenden

Mehrere Frontend-Seiten durch Plugin erstellen

Dieses Thema im Forum "Technische Fragen zu Plugin- und Templateentwicklung" wurde erstellt von absolutbad, 12. August 2015.

  1. absolutbad

    absolutbad Neues Mitglied

    Registriert seit:
    4. Oktober 2013
    Beiträge:
    2
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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!
     
  2. absolutbad

    absolutbad Neues Mitglied

    Registriert seit:
    4. Oktober 2013
    Beiträge:
    2
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    AW: Mehrere Frontend-Seiten durch Plugin erstellen

    Ich meine natürlich die GET Variablen.
     
  3. OpenMind

    OpenMind Neues Mitglied

    Registriert seit:
    8. November 2017
    Beiträge:
    6
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    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!
     
  4. css-umsetzung

    css-umsetzung Offizieller Servicepartner SPBanner

    Registriert seit:
    6. Juli 2011
    Beiträge:
    2.164
    Zustimmungen:
    233
    Punkte für Erfolge:
    63
    Beruf:
    Freiberuflich
    Ort:
    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.
     
    Kreativkonzentrat gefällt das.
  5. OpenMind

    OpenMind Neues Mitglied

    Registriert seit:
    8. November 2017
    Beiträge:
    6
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    @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.
     
  6. css-umsetzung

    css-umsetzung Offizieller Servicepartner SPBanner

    Registriert seit:
    6. Juli 2011
    Beiträge:
    2.164
    Zustimmungen:
    233
    Punkte für Erfolge:
    63
    Beruf:
    Freiberuflich
    Ort:
    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.
     
  7. OpenMind

    OpenMind Neues Mitglied

    Registriert seit:
    8. November 2017
    Beiträge:
    6
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    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?
     
  8. ag-websolutions.de

    ag-websolutions.de Super-Moderator JTLBanner

    Registriert seit:
    29. Dezember 2009
    Beiträge:
    13.996
    Zustimmungen:
    152
    Punkte für Erfolge:
    63
    Auf einer Skala von 1 (was ist das?) - 10 (arbeite ich jeden Tag mit) wie schätzt du deine Fähigkeiten in der PHP-Programmierung ein?
     
  9. OpenMind

    OpenMind Neues Mitglied

    Registriert seit:
    8. November 2017
    Beiträge:
    6
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
  10. css-umsetzung

    css-umsetzung Offizieller Servicepartner SPBanner

    Registriert seit:
    6. Juli 2011
    Beiträge:
    2.164
    Zustimmungen:
    233
    Punkte für Erfolge:
    63
    Beruf:
    Freiberuflich
    Ort:
    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.
     
  11. ag-websolutions.de

    ag-websolutions.de Super-Moderator JTLBanner

    Registriert seit:
    29. Dezember 2009
    Beiträge:
    13.996
    Zustimmungen:
    152
    Punkte für Erfolge:
    63
    Nicht ganz korrekt.
    Auch wenn es technisch möglich ist, schreibt der Style-Guide von JTL von Plugins vor, dass diese nur in plugineigene Tabelle schreiben sollen
     
  12. css-umsetzung

    css-umsetzung Offizieller Servicepartner SPBanner

    Registriert seit:
    6. Juli 2011
    Beiträge:
    2.164
    Zustimmungen:
    233
    Punkte für Erfolge:
    63
    Beruf:
    Freiberuflich
    Ort:
    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
     
  13. OpenMind

    OpenMind Neues Mitglied

    Registriert seit:
    8. November 2017
    Beiträge:
    6
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    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!
     
  14. css-umsetzung

    css-umsetzung Offizieller Servicepartner SPBanner

    Registriert seit:
    6. Juli 2011
    Beiträge:
    2.164
    Zustimmungen:
    233
    Punkte für Erfolge:
    63
    Beruf:
    Freiberuflich
    Ort:
    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 :)
     
  15. OpenMind

    OpenMind Neues Mitglied

    Registriert seit:
    8. November 2017
    Beiträge:
    6
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    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...
     
  16. css-umsetzung

    css-umsetzung Offizieller Servicepartner SPBanner

    Registriert seit:
    6. Juli 2011
    Beiträge:
    2.164
    Zustimmungen:
    233
    Punkte für Erfolge:
    63
    Beruf:
    Freiberuflich
    Ort:
    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.
     

Diese Seite empfehlen

Verstanden Weitere Informationen

JTL-Software benutzt Cookies, teilweise von Drittanbietern, um Funktionalitäten auf unseren Webseiten zu ermöglichen.