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: Schleifen ausgeben

    Phil333

    • Mitglied
    • Beiträge: 166
    Schleifen ausgeben
    am: 23. Mai 2012, 16:59:53
    Hallo!

    Ich sammel gerade in einer php Informationen (Anzahl variabel) und möchte diese in der dazugehörigen html ausgeben.

    In der html darf ich ja kein php verwenden, da ich sonst Fehler bekomme.
    Daher ist ein einfaches
    Code: PHP  [Auswählen]
    <?php
    mit entsprechender Schleife nicht möglich.

    Meine nächste Idee war einfach ein dynamisches, verschachteltes Array in der php zu konstruieren und mittels $smarty->assign an die html zu reichen.

    Dort kann ich zwar mit den richtige indizes die Werte direkt abfragen, das geht aber nur solange gut, wie ich die Anzahl der Ergebnisse kenne (ich möchte es aber variabel haben).

    Gibt es eine Möglichkeit diese jeweils 4 Attribute pro Element an die html zu reichen und dort auszugeben?
    (sowas wie "for ($i=0; $i<sizeof($array)...." oder foreach)

    Vielen Dank!

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

    SubData

    • Neu im Forum
    • Beiträge: 23
    • Geschlecht:
    Re: Schleifen ausgeben
    Antwort #1 am: 23. Mai 2012, 17:05:19
    Schau doch einfach mal, wie das in den Dateien categorie_listing.html oder product_listing.html gemacht wurde. Die arbeiten auch mit Schleifen, die durch Smarty geparst werden.

    innuXTC

    • Viel Schreiber
    • Beiträge: 508
    Re: Schleifen ausgeben
    Antwort #2 am: 23. Mai 2012, 17:05:31
    Hallo Phil333,

    habe leider nicht ganz verstanden, was Du vorhast, aber in Smarty kann man PHP verwenden.

    Allerdings statt

    Code: PHP  [Auswählen]
    <?php ... code ... ?>

    musst Du da

    Code: PHP  [Auswählen]
    {php} ... code ... {/php}

    verwenden.

    Viel Erfolg!
    Gruss, innuXTC

    Phil333

    • Mitglied
    • Beiträge: 166
    Re: Schleifen ausgeben
    Antwort #3 am: 23. Mai 2012, 17:25:16
    in der products_listing.html wird
    Code: PHP  [Auswählen]
    {foreach name=aussen item=module_data from=$module_content}
    genutzt. Wo und wie das zustande kommt kann ich nicht nachvollziehen.
    Erstrecht nicht mit einer eigentlich ganz anderen schleife.

    Wenn ich den php Teil mit {php} starte und mit {/php} beende komm ich schonmal einiges weiter ^^

    jetzt hängt es aber an einer anderen Stelle:

    in der php wird das Array so übergeben:
    $smarty->assign('ARRAY', $array);

    in der html hab ich versucht so drauf zu zu greifen:
    Code: PHP  [Auswählen]
    {php}
                                   
    for ($i=0; $i<sizeof($ARRAY); $i++)
    {
      echo "Zeile ".$i."<br>";                                      
    }
    {/php}

    könnt ihr mir sagen wie ich jetzt an das Array dran komme?
    mit {$ARRAY[0]} kann ich (im html teil) die Inhalte ausgeben.

    Danke!

    innuXTC

    • Viel Schreiber
    • Beiträge: 508
    Re: Schleifen ausgeben
    Antwort #4 am: 23. Mai 2012, 17:40:35
    Hallo Phil333,

    oh, wenn Du mich fragst, dann fragst Du sicherlich den Falschen :-( Sorry, weiß nicht, ob ich Dir weiterhelfen kann - warte lieber noch auf andere Lösungsvorschläge!

    Aber Variablen aus Smarty an PHP kannst Du - glaube ich - so weitergeben (P.S. Variable-Name ist "innu")

    Code: PHP  [Auswählen]
    {assign var=innu value="0"}
    {php}
    $newvar = $this->get_template_vars('innu');

    if ($newvar == 0)  

    { echo "Tada!!"; }

    {/php}

    Gruss, innuXTC

    Phil333

    • Mitglied
    • Beiträge: 166
    Re: Schleifen ausgeben
    Antwort #5 am: 23. Mai 2012, 17:50:02
    Vielen vielen Dank innuXTC!

    ich brauchte nur das "$newvar = $this->get_template_vars('innu');".

    Damit klappt es anscheinend...
    nochmal VIELEN DANK!

    innuXTC

    • Viel Schreiber
    • Beiträge: 508
    Re: Schleifen ausgeben
    Antwort #6 am: 23. Mai 2012, 18:03:03
    Würde mich freuen, wenn das funktioniert @ Phil333! :-)

    Erlaube bitte die Frage was das werden soll, wenn es fertig ist? Nützlich für andere? Wirst Du es dann mit uns teilen? o_O

    Gruss, innuXTC

    Phil333

    • Mitglied
    • Beiträge: 166
    Re: Schleifen ausgeben
    Antwort #7 am: 23. Mai 2012, 18:42:47
    Tja das ist eine gute Frage :D

    Ich weiß selbst ziemlich genau was es werden soll, aber ich bin mir nicht sicher ob das was wird.
    Ganz zu schweigen davon, das ich über den gedanken es zu teilen noch meilen entfernt bin.
    Ich bin gerade dabei ein (noch) nicht funktionierendes Modul zum laufen zu bringen und zu erweitern.

    Habe mir für heute eine deadline gesetzt, weil es wichtigeres gibt.
    Wenn ich es heute fertig bekomme, dann werd ich es veröffentlichen.
    Bezweifel es aber stark :D

    Phil333

    • Mitglied
    • Beiträge: 166
    Re: Schleifen ausgeben
    Antwort #8 am: 24. Mai 2012, 07:30:57
    Ich wollte nur Rückmeldung geben, das ich es nicht geschafft habe ^^

    Es wird also erstmal auf die lange Bank geschoben...
    Vielleicht erwecke ich das Ganze dann später nochmal.

    Ich bin an ziemlich vielen, zum Teil, Kleinigkeiten verzweifelt.
    Unter anderem weil ich die Multilingualität nicht im php Teil initialisieren konnte.

    Im html Teil werden durch die smarty Klasse ja Variablen bereit gestellt:
    Code: PHP  [Auswählen]
    {config_load file="$language/lang_$language.conf" section="bereich"}

    {#variablen_name#}

     

    Im php-Teil hatte ich versucht mittels
    Code: PHP  [Auswählen]
    smarty->config_load($language."/lang_".$language.".conf", "bereichname");

    irgendwie an die Variablen dran zu kommen....
    das klappt aber nicht, weil sowohl $language nicht definiert ist, als auch die Variablen nicht wirklich erreichbar für mich waren.

    Daher wäre es interessant zu wissen, wie man im php-Teil die Multilingualität abgreifen kann.

    Mal abgesehen von dem "Feinschliff" an dieser Stelle hat das Modul aber so oder so nicht funktioniert :-D
    Ich nehms jetzt fertig hier aus dem Board ;-)

    Phil333

    • Mitglied
    • Beiträge: 166
    Re: Schleifen ausgeben
    Antwort #9 am: 24. Mai 2012, 11:30:04
    Hmm...

    Ich glaube ich habe mich etwas kompliziert ausgedrück (beim nochmaligen drüberlesen).

    Im Prinzip will ich einfach "nur" eine Variable aus der lang_german.conf (und den anderen sprachen) schon in ner php auslesen können und dann später weiter geben.

    Leider kann ich nicht editieren.

    Phil333

    • Mitglied
    • Beiträge: 166
    Re: Schleifen ausgeben
    Antwort #10 am: 24. Mai 2012, 13:30:51
    Schade das hier niemand antwortet.

    ...und sorry für doppel-trippel-quattro-post.

    Ich bin mir sicher, dass das Ganzte ziemlich einfach zu lösen ist.
    Da ich aber nicht den direkten Zugriff dafür weiß, habe ich das mit einem Trick umgangen.

    Ich nehme die language_id aus der Session um den Pfadnamen der config zusammen zu basteln:
    Code: PHP  [Auswählen]
    $lang_query = xtc_db_query("select directory from languages where languages_id = '".$_SESSION['languages_id']."'");
    $lang_result = xtc_db_fetch_array($lang_query);
    $language = $lang_result['directory'];
     

    Jetzt muss man "nur" noch an die eigentliche Variable dran:
    Beispiel:
    Code: PHP  [Auswählen]
    [bereichname]
    test ='inhalt'

    Also lese ich die conf mit dem entsprechenden Bereich ein mit:
    Code: PHP  [Auswählen]
    $smarty->config_load($language."/lang_".$language.".conf", "bereichname");
     

    und lasse die Variable auslesen und zwischen speichern:
    Code: PHP  [Auswählen]
    $inhalt = $smarty->get_config_vars('test');

    Falls jemand einen besseren/einfacheren Weg kennt dann immer her damit.

    Bis dahin hoffe ich, das meine Erklärung zumindest ein paar anderen hilft.

    LG

    DokuMan

    • modified Team
    • Beiträge: 6.669
    • Geschlecht:
    Re: Schleifen ausgeben
    Antwort #11 am: 24. Mai 2012, 17:23:53
    Daher wäre es interessant zu wissen, wie man im php-Teil die Multilingualität abgreifen kann.

    Es gibt mehrere Variablen, die du abfragen kannst:
    Code: PHP  [Auswählen]
    $_SESSION['language']
    $_SESSION['languages_id']
    $_SESSION['language_charset']
    $_SESSION['language_code']
     

    Phil333

    • Mitglied
    • Beiträge: 166
    Re: Schleifen ausgeben
    Antwort #12 am: 24. Mai 2012, 18:31:05
    Gibt es da auch einen einfachen Trick um an die einträge in den sprach configs dran zu kommen?

    Wie wäre ich z.B. auf die Variable  "test" in dem oben genannten Beispiel zugreifen?  
    Also z.B. in der lang\german\lang_german.conf

    Code: PHP  [Auswählen]
    [bereichname]
    test ='inhalt'

    Liebe Grüße
    5 Antworten
    5074 Aufrufe
    30. November 2009, 17:14:15 von DokuMan
    1 Antworten
    1750 Aufrufe
    12. Februar 2015, 06:51:41 von mr.mc.mauser
    4 Antworten
    3365 Aufrufe
    13. November 2011, 09:50:56 von lexus
    1 Antworten
    1042 Aufrufe
    11. Dezember 2018, 16:24:36 von Parker