Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: MODUL: Inserttags als Smarty Modifier

    fiveBytes

    • Neu im Forum
    • Beiträge: 29
    • Geschlecht:
    MODUL: Inserttags als Smarty Modifier
    am: 18. Januar 2020, 20:35:00
    Hallo zusammen,

    zwar kann man ganz bequem mit SmartyCode im BackEnd arbeiten, sofern man im Tempate die entsprechende Ausgabe evaluiert, aber irgendwie war mir das auf Dauer doch ein wenig zu unkomfortabel. Vor allem, wenn schicke Querverlinkungen in Kategorien oder Artikeln, oder auch komplette Landigpages im Content-Manager angelegt werden sollen (zusammen mit nem tauglichen SEO-URL-Modul ein echter Mehrwert).

    Daher habe ich mir mal überlegt, dass es doch ganz schön wäre, wenn man verschiedene Inserttags (einigen evtl. bereits bekannt vom CMS Contao) zur Verfügung hätte. Also habe ich mal eine entsprechende php-Funktion als Smarty.modifier zusammengbastelt. Momentan stehen damit folgende Inserttags zur Verfügung:

    • {{date::*}} Dieses Tag wird mit dem aktuellen Datum gemäß eines individuellen Datumsformats ersetzt. z. B. {{date::d.m.Y}}
    • {{product::*}} Dieses Tag wird mit einem Link zu einem Produkt ersetzt (ersetze * mit der ProduktID).
    • {{product_url::*}} Dieses Tag wird mit der URL von einem Produkt ersetzt.
    • {{product_title::*}} Dieses Tag wird mit einem (wenn m entsprechende Daten vorhanden) zusammengebauten Produkttitel (Herstellername Produktname Artikelnr.) ersetzt.
    • {{product_name::*}} Dieses Tag wird mit dem Namen von einem Produkt ersetzt.
    • {{product_img::*}} Dieses Tag wird mit dem Info-Bild (Nr. 1) von einem Produkt ersetzt.
    • {{product_thumb::*}} Dieses Tag wird mit dem Thumbnail-Bild (Nr. 1) von einem Produkt ersetzt.
    • {{categorie::*}} Dieses Tag wird mit einem Link zu einer Kategorie ersetzt (ersetze * mit der KategorieID).
    • {{categorie_url::*}} Dieses Tag wird mit der URL von einer Kategorie ersetzt.
    • {{categorie_title::*}} Dieses Tag wird mit dem Titel (wenn vorhanden, sonst Namen) einer Kategorie ersetzt.
    • {{categorie_name::*}} Dieses Tag wird mit dem Namen einer Kategorie ersetzt.
    • {{categorie_img::*}} Dieses Tag wird mit dem Bild einer Kategorie ersetzt.
    • {{manufacturer::*}} Dieses Tag wird mit einem Link zu einer Herstellerseite ersetzt (ersetze * mit der HerstellerID).
    • {{manufacturer_url::*}} Dieses Tag wird mit der URL von einem Hersteller ersetzt.
    • {{manufacturer_title::*}} Dieses Tag wird mit dem Meta-Titel (wenn vorhanden, sonst Namen) von einem Hersteller ersetzt.
    • {{manufacturer_name::*}} Dieses Tag wird mit dem Namen von einem Hersteller ersetzt.
    • {{manufacturer_img::*}} Dieses Tag wird mit dem Bild von einem Hersteller ersetzt.
    • {{content::*}} Dieses Tag wird mit einem Link zu einer Content-Seite ersetzt (ersetze * mit der HerstellerID).
    • {{content_url::*}} Dieses Tag wird mit der URL von einer Content-Seite ersetzt.
    • {{content_title::*}} Dieses Tag wird mit der Überschrift (wenn vorhanden, sonst Titel) von einer Content-Seite ersetzt.
    • {{content_name::*}} Dieses Tag wird mit dem Titel von einer Content-Seite ersetzt.

    Modul erweitert:

    [...]
    Ansonsten hänge ich nochmal eine erweiterte Funktion an, damit sind jetzt auch zusätzliche Flags möglich. D.h. ein Insertag kann um z.B. eine Klasse oder einen Queryzusatz erweitert werden.
    {{product_img::1|class="img-thumbnail"}} - würde das Produktbild vom Produkt mit der ID 1 liefern und den Quellcode mit der Klasse erweitern.
    {{categorie::1|?filter_id=2}} - würde einen Link zur Kategorie mit der ID 1 liefern und den Link mit der Query erweitern, sprich es würde bei der Artikelliste der Herstellerfilter direkt auf ID=2 springen, also ein Link zu den Artiklen von Hersteller #2 in Kategorie #1

    Unterstüzt werden hier momentan für URLs folgende Flags: "?, #", für Verlinkungen "class, id, style" und für Bilder "class, id, style, height, width"
    [...]

    Natürlich wären noch zig weitere Inserttags vorstellbar, aber ich wollte ja noch ein wenig Raum für Eure Phantasien lassen. ;-)

    Einfach die angehängte Datei entpacken, ins Template-Verzeichnis "smarty/" einfügen und in der index.html entsprechend den Smarty.modifier setzten:
    aus
    Code: PHP  [Auswählen]
    {if isset($main_content)}{$main_content}{/if}
    wird
    Code: PHP  [Auswählen]
    {if isset($main_content)}{$main_content|inserttags}{/if}

    Viel Spaß damit und Gruß
    Stefen

    [EDIT Tomcraft 27.01.2020: Modul aktualisiert.]

    Linkback: https://www.modified-shop.org/forum/index.php?topic=40723.0

    FräuleinGarn

    • Fördermitglied
    • Beiträge: 3.779
    Re: MODUL: Inserttags als Smarty Modifier
    Antwort #1 am: 19. Januar 2020, 09:42:17
    Moin

    Vielen Dank.

    Sehe ich das richtig, dass es ähnlich wie das Themenweltenmodul funktioniert man aber mehr Sachen verlinken kann?

    Gruß Timm

    Tante Uschi

    • Fördermitglied
    • Beiträge: 118
    Re: MODUL: Inserttags als Smarty Modifier
    Antwort #2 am: 19. Januar 2020, 10:37:11
    Ganz tolle Sache Stefen,

    vielen Dank fürs Teilen, dies erleichtert einige Sachen enorm!

    fiveBytes

    • Neu im Forum
    • Beiträge: 29
    • Geschlecht:
    Re: MODUL: Inserttags als Smarty Modifier
    Antwort #3 am: 19. Januar 2020, 13:33:40
    @Timm
    sorry, aber ich kenne das von Dir angesprochene Modul nicht.
    Mit den Inserttags kann man im BackEnd (Kategorie-, Artikel-, Herstellerbeschreibungen, Überschriften, Inhalte Contentmanager usw.) ohne Smarty- und/oder php-Kenntnisse fertige Elemente aus dem Shopsystem (Datumsausgaben, Links, URLs, Bilder, Namen, Titel von Artikeln, Kategorien, Herstellern und Contentseiten usw.)  einbauen. Einfach mal ausprobieren, das dürfte dann alle Deine Fargen beantworten ;-)

    @Tante
    ohhh jaaaa und wie ;-)

    und für alle die sich über die fehlenden Konstanten gewundert haben, sorry, hatte ich vergessen zu erwähnen:

    Code: PHP  [Auswählen]
    define('TEXT_ARTIKELNR','Art.-Nr.');
    define('TEXT_NO_INSERTTAG','Kein korrektes Insertag!!!');
    define('TEXT_NO_PRODUCTS_DATA','Keine Produktdaten vorhanden!!!');
    define('TEXT_NO_CATEGORIES_DATA','Keine Kategoriedaten vorhanden!!!');
    define('TEXT_NO_MANUFACTURER_DATA','Keine Herstellerdaten vorhanden!!!');
    define('TEXT_NO_CONTENT_DATA','Keine Contentdaten vorhanden!!!');

    FräuleinGarn

    • Fördermitglied
    • Beiträge: 3.779
    Re: MODUL: Inserttags als Smarty Modifier
    Antwort #4 am: 23. Januar 2020, 22:06:42
    Abend Stefen

    Wärst du so nett und führst das nochmal etwas aus, was es mit den fehlenden Konstanten auf sich hat bzw. wo man das einfügen soll? Es gibt auch Nichtprogrammierer hier im Forum, denen das nicht klar sein wird.  ;-)

    Das Themenweltenmodul gibt es hier: MODUL: Themenwelten
    Das scheint mir als Laie ähnlich. Ich nutze das selbst, um auf der Startseite die Kategorien anzuzeigen und es mobilen Nutzern einfacher zu machen.

    Gruß Timm

    fiveBytes

    • Neu im Forum
    • Beiträge: 29
    • Geschlecht:
    Re: MODUL: Inserttags als Smarty Modifier
    Antwort #5 am: 24. Januar 2020, 11:48:13
    @Timm
    die Konstanten musst Du einfach in eine Sprachdatei packen (z.B. const_inserttags.php sofern Du noch keine eigene Spracherweiterungsdatei hast) und diese im Ordner /lang/german/extra ablegen. Die dienen aber an sich eh nur dazu, dass im Quellcode bei fehlerhaften Ausgaben ein entsprechender Kommentar erzeugt wird. Lediglich die Konstante "TEXT_ARTIKELNR" dient zur Erzeugung der Produkttitel.

    Ansonsten hänge ich nochmal eine erweiterte Funktion an, damit sind jetzt auch zusätzliche Flags möglich. D.h. ein Insertag kann um z.B. eine Klasse oder einen Queryzusatz erweitert werden.
    {{product_img::1|class="img-thumbnail"}} - würde das Produktbild vom Produkt mit der ID 1 liefern und den Quellcode mit der Klasse erweitern.
    {{categorie::1|?filter_id=2}} - würde einen Link zur Kategorie mit der ID 1 liefern und den Link mit der Query erweitern, sprich es würde bei der Artikelliste der Herstellerfilter direkt auf ID=2 springen, also ein Link zu den Artiklen von Hersteller #2 in Kategorie #1

    Unterstüzt werden hier momentan für URLs folgende Flags: "?, #", für Verlinkungen "class, id, style" und für Bilder "class, id, style, height, width"

    Gruss
    Stefen

    [EDIT Tomcraft 27.01.2020: Modul in Beitrag 1 aktualisiert.]

    fiveBytes

    • Neu im Forum
    • Beiträge: 29
    • Geschlecht:
    Re: MODUL: Inserttags als Smarty Modifier
    Antwort #6 am: 18. Februar 2020, 19:53:23
    Ich habe gerade einen Fehler in der Beschreibung aus Beitrag #1 gefunden, es darf NICHT heißen:
    •{{content::*}} Dieses Tag wird mit einem Link zu einer Content-Seite ersetzt (ersetze * mit der HerstellerID).

    sondern
    •{{content::*}} Dieses Tag wird mit einem Link zu einer Content-Seite ersetzt (ersetze * mit der ContentID - also coID).

    und das gilt dann natürlich für alle {{content...}} -Tags.
    28 Antworten
    12002 Aufrufe
    07. Dezember 2015, 20:32:30 von Alfred
    16 Antworten
    17669 Aufrufe
    27. Mai 2019, 16:46:23 von clausleh