Intelligente Ausgabe mit Smarty?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Intelligente Ausgabe mit Smarty?

    Hallo Leute !

    Ich bräuchte mal kurz euren Rat. Ich versuche zur Zeit eine Oberfläche für nen Mailserver zu programmieren und zwar werden verschiedene Daten aus einer DB gelesen. Das Ausgabeschema soll nacher eine Dreispaltige Tabelle sein: (Striche hier als Platzhalter)


    Großkunde1

    _______________ Unterkunde 1

    ------------------------------- Email des Unterkunden1
    ------------------------------- Email des Unterkunden2

    _______________ Unterkunde 2

    ------------------------------- Email des Unterkunden1
    ------------------------------- Email des Unterkunden2


    Großkunde2

    _______________ Unterkunde 1

    ------------------------------- Email des Unterkunden1
    ------------------------------- Email des Unterkunden2

    _______________ Unterkunde 2

    ------------------------------- Email des Unterkunden1
    ------------------------------- Email des Unterkunden2


    Bisher hatte ich die Ausgabe mit PHP gemacht:
    Bei einem Großkunden hat PHP dann eben hinter dem Kunden 2 leere Spalten ausgegeben.
    Jetzt soll ich das ganze aber für ein Smarty Template programmieren, weil nacher ein Designer das ganze eventuell anderst anordnen will.
    Das große Probleme das ich hierbei habe, ist das PHP die Kunden, Unterkunden und Emailadressen nur kurz ausliest, ausgibt und dann zur/zum jeweils nächsten Datensatz springt. Also hab ich ohne Ausgabe nur den jeweils letzten Datensatz in meiner Ausgabe.
    In Arrays packen ist hier auch ungeschickt, weil es dann auch wieder unheimliche viele Arrays wären und das alles andre als praktisch und übersichtlich wäre.
    Erschwerend kommt hier noch hinzu, dass die Datensätze sich ständig verändert, also kann man hier kein allzu starres Design verwenden.

    Hat jemand von euch vielleicht eine Idee, wie man dieses Problem mit Smarty realisieren könnte?
    Wäre echt lieb

  • #2
    Re: Intelligente Ausgabe mit Smarty?

    so
    Original geschrieben von Perceptor
    In Arrays packen ist hier auch ungeschickt, weil es dann auch wieder unheimliche viele Arrays wären und das alles andre als praktisch und übersichtlich wäre.
    oder du schreibst dir irgendwie ne Funktion oder so, die das dann ausgibt, aber ob das so prickelnd ist...

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Joar, das hab ich mir auch schon überlegt.
      Aber eigentlich ist es sehr sehr käsig, weil alles immer verändert wird und so ne Funktion die das mal locker macht ist auch nich einfach so ausm Ärmel gezaubert.
      Im Zweifelsfall wär die Ausgabe mit PHP doch garnich so übel, oder?

      Kommentar


      • #4
        Re: Intelligente Ausgabe mit Smarty?

        Ginge es nicht damit?
        PHP-Code:
        $clientstruct =  array(
            
        'Großkunde1' => array(
                
        'Unterkunde 1' => array(
                    
        'Email des Unterkunden1',
                    
        'Email des Unterkunden2'
                
        ),
                
        'Unterkunde 2' => array(
                    
        'Email des Unterkunden1',
                    
        'Email des Unterkunden2'
                
        )
            ),
            
        'Großkunde2' => array(
                
        'Unterkunde 1' => array(
                    
        'Email des Unterkunden1',
                    
        'Email des Unterkunden2'
                
        ),
                
        'Unterkunde 2' => array(
                    
        'Email des Unterkunden1',
                    
        'Email des Unterkunden2'
                
        )
            )
        );
        $tpl->assign('clientstruct'$clientstruct); 
        und im Template
        PHP-Code:
        {foreach name=g key=gkunde_name item=gkunde from=$clientstruct}
          {
        $gkunde_name}
          {foreach 
        name=k key=kunde_name item=kunde from=$g}
            {
        $kunde_name}
            {foreach 
        item=email from=$k}
              {
        $email}
            {/foreach}
          {/foreach}
        {/foreach} 

        Kommentar


        • #5
          Sieht Klasse aus, aber die Frage ist dann halt ob der gute Webdesigner der das ganze nacher Designen darf nacher damit zurecht kommt.
          Weil 3-fach ineinander verschachtelte Array's sind imho auch nicht einfacher, als ne simple PHP Ausgabe
          Aber danke auf jeden Fall mal soweit.
          Vielleicht hat ja jemand noch nen Geistesblitz?

          Kommentar


          • #6
            Mehrdimensionale Arrays sind ja nun wirklich keine Seltenheit und wenn man mit der 2. Dimension umgehen kann, ist alles weitere nur Rekursion.

            Ein Designer, der von sich behauptet, die Smarty-Templatesprache zu können, der sollte mit sowas keine Probleme haben. Schließlich ist es durchaus üblich für Menüs mit Sub- und Subsubmenüs solche Arraystrukturen an das Template zu übergeben.

            Kommentar


            • #7
              Jup das stimmt schon. Die Lösung stellt tatsächlich ne gute Alternative zur Ausgabe mit PHP dar.
              Werd mich also wohl daran halten.
              Aber wenn jemand nochwas weiß nur rausdamit =)

              Gesetzt den Fall:

              Großkunde1

              -------------------------------- Email des Großkunden 1
              -------------------------------- Email des Großkunden 2

              _______________ Unterkunde 1

              ------------------------------- Email des Unterkunden1
              ------------------------------- Email des Unterkunden2

              _______________ Unterkunde 2

              ------------------------------- Email des Unterkunden1
              ------------------------------- Email des Unterkunden2


              Großkunde2


              -------------------------------- Email des Großkunden 1
              -------------------------------- Email des Großkunden 2

              _______________ Unterkunde 1

              ------------------------------- Email des Unterkunden1
              ------------------------------- Email des Unterkunden2

              _______________ Unterkunde 2

              ------------------------------- Email des Unterkunden1
              ------------------------------- Email des Unterkunden2



              So wird das ganze dann noch komlizierter, weil dann wären wir schon bei 4 Arrays =|
              Zuletzt geändert von Perceptor; 08.06.2006, 10:33.

              Kommentar

              Lädt...
              X