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: Include Befehl mit dynamischem content

    Tonka

    • Fördermitglied
    • Beiträge: 103
    • Geschlecht:
    Include Befehl mit dynamischem content
    am: 13. Mai 2014, 16:23:19
    Grüüützi mitenand,

    Also meine Idee ist folgende / bitte genau den Befehl ansehen
    Code: PHP  [Auswählen]
    {include file="/module/includes/desc/{$MANUFACTURER}/desc.html"}
     

    das ich die Ordnerstruktur dafür erstellen muss und auf Umlaute sowie Leerzeichen allergisch reagieren sollte ist alles klar. Nur wie kann ich solch netten include befehl vergewaltigen?

    XD

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

    Tonka

    • Fördermitglied
    • Beiträge: 103
    • Geschlecht:
    Re: Include Befehl mit dynamischem content
    Antwort #1 am: 13. Mai 2014, 17:16:23
    Ich gebe zu ich habe es etwas karg formuliert.
    Deswegen hier noch einmal etwas umfangreicher.

    Ich habe in einer template Datei folgenden Aufruf gefunden...
    Code: PHP  [Auswählen]
    {if $PRODUCTS_FSK18=='true'}{#fsk#}{/if}

    Meine Idee wäre den Includebfehl zu nutzen

    so sieht der Statische aufruf aus der auch wunderbar funktioniert.
    Code: PHP  [Auswählen]
    {if $MANUFACTURER=='REASON'}
    {include file="xtc5/module/includes/Reason/desc.html"}

    Jedoch möchte ich mir die wenn dann sonst abfragen in handschriftlicher Form ersparen
    und dachte es geht vielleicht so?
    Code: PHP  [Auswählen]
    {if $MANUFACTURER=='{$MANUFACTURER}'}
    {include file="xtc5/module/includes/{$MANUFACTURER}/desc.html"}{/if}

    jedoch zeigt der Test nur einen Teilstring des Includebefehles an.

    Wie gehts denn richtig?

    as ich die Ordnerstruktur dafür erstellen muss und auf Umlaute sowie Leerzeichen allergisch reagieren sollte ist alles klar. Nur wie kann ich solch netten include befehl vergewaltigen?

    Tonka

    • Fördermitglied
    • Beiträge: 103
    • Geschlecht:
    Re: Include Befehl mit dynamischem content
    Antwort #2 am: 13. Mai 2014, 17:49:07
    bitte nur um kurze info ob es überhaupt geht?  :-?

    web0null

    • Experte
    • Beiträge: 1.998
    Re: Include Befehl mit dynamischem content
    Antwort #3 am: 13. Mai 2014, 17:59:59
    Klar geht das,
    Code: PHP  [Auswählen]
    {include file="xtc5/module/includes/$MANUFACTURER/desc.html"}

    Gruß

    Tonka

    • Fördermitglied
    • Beiträge: 103
    • Geschlecht:
    Re: Include Befehl mit dynamischem content
    Antwort #4 am: 13. Mai 2014, 23:58:50
    ei das ist ja fantastisch :) jetzt gehts wieder bergauf ich hab mich schon tippen sehen

    1000 Dank :)

    cYbercOsmOnauT

    • modified Team
    • Beiträge: 914
    • Geschlecht:
    Re: Include Befehl mit dynamischem content
    Antwort #5 am: 14. Mai 2014, 01:10:04
    Das hier
    Code: PHP  [Auswählen]
    {if $MANUFACTURER=='{$MANUFACTURER}'}
    ist immer TRUE, denn Du vergleichst einen String mit sich selbst. Ein Rat. Bei dynamischen Includes immer sicherstellen, das die dynamische Variable darin auf jeden Fall gereinigt wird.
    Viele Grüße,
    Tekin Birdüzen - Zend Certified Engineer

    Tonka

    • Fördermitglied
    • Beiträge: 103
    • Geschlecht:
    Re: Include Befehl mit dynamischem content
    Antwort #6 am: 14. Mai 2014, 10:35:45
    Hallo cYbercOsmOnauT und web0null

    danke für die Anregungen nur leider steh ich grad ein wenig auf dem Schlauch

    Code: PHP  [Auswählen]
        {if $MANUFACTURER=='{$MANUFACTURER}'}
        {include file="xtc5/module/includes/$MANUFACTURER/desc.html"}
        {/if}    

    In Worten ausgedrück:
    wenn der Hersteller (der dynamsich eingefügt wird) zB. Mercedes ist soll er sich aus dem ordner includes mit dem dynamisch erzeugten Hersteller die datei holen / Das verzeichniss ist korrekt angelegt aber irgendiwe klappt das ganze nicht  :-?

    Hab ich irgendwas falsch gemacht?

    Tonka

    • Fördermitglied
    • Beiträge: 103
    • Geschlecht:
    Re: Include Befehl mit dynamischem content
    Antwort #7 am: 14. Mai 2014, 13:25:39
    Andereseits habe ich auch ne totalen Denkfehler. Der Aufruf muss gar nicht abgefragt werden wenn der Pfad dynamisch ist. Und wenn am ende der kette keine passende datei vorhanden ist wird ja auch nix angezeigt. In diesem Falle würde ich meinen
     :-B

    THEMA ERLEDIGT :)

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.991
    • Geschlecht:
    Re: Include Befehl mit dynamischem content
    Antwort #8 am: 14. Mai 2014, 14:46:01
    Code: PHP  [Auswählen]
    {if $MANUFACTURER}
        {if file_exists('xtc5/module/includes/$MANUFACTURER/desc.html')}
            {include file='xtc5/module/includes/$MANUFACTURER/desc.html'}
        {/if}
    {/if}

    würde die Suche nach dem include nur generieren wenn das File existiert.
    Ansonsten, wenn das File nicht existiert, wird eine Fehlermeldung ausgegeben.

    Gruß,
    noRiddle

    web0null

    • Experte
    • Beiträge: 1.998
    Re: Include Befehl mit dynamischem content
    Antwort #9 am: 14. Mai 2014, 14:58:09
    Hi, noRiddle
    beim include braucht es " Anführungszeichen,
    Variablen werden innerhalb einfacher Anführungszeichen nicht interpoliert.

    bei Funktionen wahrscheinlich dito (habe ich aber nicht probiert), aber ich denke dass dort auch doppelte Anführungszeichen besser sind, wenn Variablen vorhanden sind.

    Gruß

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.991
    • Geschlecht:
    Re: Include Befehl mit dynamischem content
    Antwort #10 am: 14. Mai 2014, 15:06:04
    Upps, könntest du Recht haben, bin so gewohnt immer nur einfache Anführungsstriche zu benutzen wenn ich nicht gerade PHP schreibe und Variablen innerhalb eines Strings benutze.

    Danke für den Hinweis.

    Gruß,
    noRiddle

    web0null

    • Experte
    • Beiträge: 1.998
    Re: Include Befehl mit dynamischem content
    Antwort #11 am: 14. Mai 2014, 15:07:52
    Joo ich eh auch, deshalb bin ich damals, als ich das mal brauchte auch darauf gekommen  :-D

    web0null

    • Experte
    • Beiträge: 1.998
    Re: Include Befehl mit dynamischem content
    Antwort #12 am: 14. Mai 2014, 15:47:56
    Hab es jetzt selber mal getestet,

    es sollte so lauten:
    Code: PHP  [Auswählen]
    {if $MANUFACTURER}
      {if file_exists("`$smarty.const.DIR_FS_CATALOG`templates/xtc5/module/includes/$MANUFACTURER/desc.html")}
        {include file="xtc5/module/includes/$MANUFACTURER/desc.html"}
      {/if}
    {/if}
     

    Gruß

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.991
    • Geschlecht:
    Re: Include Befehl mit dynamischem content
    Antwort #13 am: 15. Mai 2014, 02:06:47
    Na sowas ;-).
    Habe mir beim Schreiben schon sowas gedacht, nämlich, daß ein relativer Pfad vielleicht nicht funktionieren wird, war nur zu faul - naja, wenig Zeit - es zu prüfen.

    Danke nochmals, web0null, für's Prüfen und Korrigieren,
    so muß die Community arbeiten, zum Vorteil aller.

    Nebenbei: Was sind da für seltsame Backticks im Code ?, das sollen doch normale einfache Anführungsstriche sein ?

    Gruß,
    noRiddle

    web0null

    • Experte
    • Beiträge: 1.998
    Re: Include Befehl mit dynamischem content
    Antwort #14 am: 15. Mai 2014, 02:29:06
    Nee nee, das mit den Backticks stimmt schon so, mit "normalen einfachen Anführungsstriche" geht das nämlich nicht.
    Als ICH das mal brauchte, dauerte es auch eine Zeit, bis ich merkte dass das nur mit Backticks geht.
    Smarty "tickt" ein bisschen umständlicher  :-D

    Gruß
    Modulshop - Eine große Auswahl an neuen und hilfreichen Modulen für die modified eCommerce Shopsoftware
    2 Antworten
    5045 Aufrufe
    24. Mai 2013, 09:02:45 von gonzo88
    2 Antworten
    2514 Aufrufe
    29. Januar 2014, 13:41:35 von ShopNix
    6 Antworten
    7248 Aufrufe
    16. April 2011, 16:39:44 von Tomcraft
    5 Antworten
    4531 Aufrufe
    27. September 2010, 15:59:13 von Tomcraft