Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Kalender Darstellungs Frage

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Kalender Darstellungs Frage

    Hallo Leute

    Ich hab mal eine kleine Frage. Ich will einen Kalender in Kalenderwochen Ansicht ausgeben wo man sieht an welchem Tag jeweils ein Event stattfindet. Also im Prinzip sowas: ( http://www.kroll-software.de/images/...ner_screen.jpg )

    Wie ich den Kalender generieren kann anhand der KW etc. ist alles kein Thema. Die grosse Frage ist wie setze ich das ganze am besten um.

    Variante 1: Eine Tabelle für jede Kalenderwoche, wobei ich dann pro Aufgabe/Termin eine Zeile erstelle und jeder Zelle das Datum verpasse.

    Also im Prinzip so:

    <table id="KW41">
    <tr id="aufgabe1">
    <td id="aufgabe1_27.10.2010"></td>
    <td id="aufgabe1_28.10.2010"></td>
    <td id="aufgabe1_29.10.2010"></td>
    <td id="aufgabe1_30.10.2010"></td>
    <td id="aufgabe1_31.10.2010"></td>
    <td id="aufgabe1_01.11.2010"></td>
    <td id="aufgabe1_02.11.2010"></td>
    </tr>

    Und danach suche ich wie DB die Termine heraus und fülle diese dann via DOM Objekt in die entsprechende Zelle anhand der ID.

    Oder Variante 2:

    Ich mache eine komplette Matrix mit CSS.

    Wie würdet ihr sowas umsetzten?

    Grüsse

    eXe
    It's not a bug. It's a feature!


  • #2
    Wenn du tabellarsiche Daten hast und diese in einem Gitter darstellen willst solltest du eine Tabelle verwenden, das wäre mit CSS nur umständlich und fehleranfällig gegen Zellenüberläufe.
    You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.

    Kommentar


    • #3
      Eine Tabelle für jede Kalenderwoche
      Wieso reicht nicht eine Gemeinsame? Ich würde aber auch zu einer Tabelle raten. Einen Kalender über <div>-Container und CSS zu erzeugen ist
      1. aus semantischer Sicht Unfug
      2. inperformant
      http://hallophp.de

      Kommentar


      • #4
        Grundsätzlich: Tabellen sind für tabellarische Daten gedacht - sie in so einem Falle nicht zu nutzen, ist idR. genauso unsinnig, wie andersherum sie zu Layoutzwecken zu missbrauchen, wenn keine tabellarischen Daten vorliegen.

        Zitat von da.eXecutoR Beitrag anzeigen
        Variante 1: Eine Tabelle für jede Kalenderwoche
        Wieso für eine Woche?

        Du hast im Beispielbild mehrere Wochen nebeneinander dargestellt - also bilden die zusammen doch wohl die Gesamtheit deiner tabellarischen Daten.

        Kommentar


        • #5
          Hey Leute

          Vielen Dank für eure Inputs. Ich hab mich für die Tabellen Version entschieden. Und wie von euch bereits korrekt notiert, eine Tabelle für alles. Hier der Auszug falls es jemand interessiert:

          PHP-Code:
          <?PHP
                      
          // Create a new calendar object
                      
          $cal = new calendar();
                      
          // Set the Number of weeks we wanna go for
                      
          $cal->setCalendarCount(6);
                      
          // Get the Weeks
                      
          $weeks $cal->getCalendarWeek(102010);

                      
          // Creating the table header content with the dates
                      
          echo '
                          <table width="100%" border="0">
                            <tr>
                              <td>Aufgaben</td>'
          ;
                              foreach(
          array_keys($weeks) as $cWeek){
                                  echo 
          '<td colspan="7">KW'.$cWeek.' '.date('F',$weeks[$cWeek][0]).'</td>';
                              }
                              echo 
          '
                            </tr>
                            <tr>
                              <td>&nbsp;</td>'
          ;
                              foreach(
          $weeks as $cWeek){
                                  foreach(
          $cWeek as $days){
                                      echo 
          '<td>'.substr(date('l',$days),0,1).'<br>'.date('d',$days).'</td>';
                                  }
                              }
                             echo 
          '
                            </tr>'
          ;
                              
          // Here we go with our events ( later on we drop it from the database )
                              
          $events = array();
                              
          $events[] = array("1. Kundenberatung","08.03.2010");
                              
          $events[] = array("2. Offerte","10.03.2010");
                              
          $events[] = array("3. Entwurf erstellen das ist ja sone geile Sache ich flipp aus.","05.04.2010");
                              foreach(
          $events as $event){
                                  echo 
          '<tr>
                                  <td>'
          .$event[0].'</td>';
                                  foreach(
          $weeks as $cWeek){
                                      foreach(
          $cWeek as $days){
                                          
          // Here we go for the Events, precache em in an array for saving SQL Querys
                                          
          if(date('d.m.Y',$days) == $event[1]){
                                              echo 
          '<td>x</td>';
                                          }else{
                                              echo 
          '<td></td>';
                                          }
                                      }
                                  }
                                  echo 
          '</tr>';
                              }
                              echo 
          '
                           </table>'
          ;
                      
          ?>
          Dies kommt dabei raus:
          It's not a bug. It's a feature!

          Kommentar

          Lädt...
          X