Ergebnis 1 bis 13 von 13

Thema: Kalender Foreach Schleife

  1. #1
    Contao-Nutzer
    Registriert seit
    23.03.2010.
    Ort
    NRW
    Beiträge
    39

    Standard Kalender Foreach Schleife

    Hallo zusammen

    --- Bitte letzten Post lesen ---

    Wäre über jede Hilfe sehr dankbar.

    LG
    Echo
    Geändert von Echo (26.03.2010 um 12:56 Uhr)

  2. #2
    Contao-Nutzer
    Registriert seit
    23.03.2010.
    Ort
    NRW
    Beiträge
    39

    Standard

    Ich noch mal

    --- Bitte letzten Post lesen ---

    LG
    Echo
    Geändert von Echo (26.03.2010 um 12:56 Uhr)

  3. #3
    Contao-Nutzer
    Registriert seit
    23.03.2010.
    Ort
    NRW
    Beiträge
    39

    Standard

    So und noch mals ich
    In der Hoffnung, dass sich doch noch jemand erbarmt, um mir bei meinen Problemen zu helfen.

    Ich habe den Kalender jetzt soweit ohne Hilfe hinbekommen, allerdings macht mir die foreach Schleife der Wochentage ein paar Probleme.

    Der Kalender gibt die Wochentage von Montag-Sonntag immer pro Tag aus.
    Hier eine Grafik zu Veranschaulichung:



    Eigentlich müsste ich ja nur die Foreach Schleife unterbrechen, sobald der Tag einmal ausgegeben wurde und danach wieder weiterlaufen lassen, um den nächsten Tag ausgeben zu lassen.

    Leider bin ich total ratlos, wie ich das hinbekommen soll, da ja alles in einem Array gespeichert ist und Google konnte mir ebenfalls nicht helfen.

    Hier der Code vom calender.tpl

    PHP-Code:
    <table cellspacing="0" cellpadding="0" class="minicalendar" summary="Calendar">
    <thead>
      <tr>
        <th class="head previous"><a href="<?php echo $this->prevHref?>" title="<?php echo $this->prevTitle?>"><?php echo $this->prevLabel?></a></th>
        <th colspan="5" class="head current"><?php echo $this->current?></th>
        <th class="head next"><a href="<?php echo $this->nextHref?>" title="<?php echo $this->nextTitle?>"><?php echo $this->nextLabel?></a></th>
      </tr>
    </thead>
    <tbody>

    <?php foreach ($this->weeks as $class=>$week): ?>
    <tr class="<?php echo $class?>">
    <?php foreach ($week as $day): ?>
    <?php 
    if ($day['href']): ?>

    <?php foreach ($this->days as $i=>$daya): ?>
    <td class="<?php echo $day['class']; ?>"><?php echo utf8_substr($daya02); ?><br /><a href="<?php echo $day['href']; ?>" title="<?php echo $day['title']; ?>"><?php echo $day['label']; ?>.<?php echo $this->intMonth.'.'?></a></td>
    <?php endforeach; ?>
    <?php 
    else: ?>

    <?php foreach ($this->days as $i=>$daya): ?>
    <td class="<?php echo $day['class']; ?>"><?php echo utf8_substr($daya02); ?><br /><?php echo $day['label'?>
    <?php 
        
    if (($day['class'] == "days empty") OR ($day['class'] == "days empty col_first") OR ($day['class'] == "days empty weekend") OR ($day['class'] == "days empty weekend col_last")) {
        echo 
    "    ";
        } else {
        echo 
    '.'.$this->intMonth.'.';
        }
        
    ?></td>
    <?php endforeach; ?>

    <?php endif; ?>
    <?php 
    endforeach; ?>
      </tr>
    <?php endforeach; ?>
    </tbody>
    </table>
    Vielen Dank schon mal für Antworten

    LG
    Echo

  4. #4
    Contao-Nutzer
    Registriert seit
    11.03.2010.
    Beiträge
    25

    Standard

    Verstehe ich dich richtig, es geht dir um die Datumsanzeige, bzw. die Nummerierung?
    Warum lässt du nicht ein Variable mitlaufen, die du bei jedem Schleifendurchgang, bzw. Datumsausgabe um eins inkrementierst? Dann musst du nur schauen, wann diese größer als 28/30/31 wird...

    Gruß Mathse

  5. #5
    Contao-Nutzer
    Registriert seit
    23.03.2010.
    Ort
    NRW
    Beiträge
    39

    Standard

    Es geht um den Wochentag, passend zum Datum

    Die Idee mit dem Inkrementieren hatte ich ebenfalls schon, leider ist der 1. im Monat ja leider nicht immer auch gleich ein Montag.

    Daher bringt mir diese Lösung nichts, außer ich übersehe gerade etwas!?

    LG
    Echo

  6. #6
    Contao-Nutzer
    Registriert seit
    11.03.2010.
    Beiträge
    25

    Standard

    Ok - klingt logisch ;-)
    Und, wenn du über die Datumsformatierung von PHP gehst? Sprich du wandelst dein Datum in einen Timestamp um und formatierst diesen mit der date-Funktion (z.B. date("w",$timestamp). Mit dem Parameter "w" bekommste nen nummerischen Wert für den Wochentag (0->Sonntag, 1-> Montag, ... )
    http://de2.php.net/manual/de/function.date.php

    Gruß Mathse

  7. #7
    Contao-Nutzer
    Registriert seit
    11.03.2010.
    Beiträge
    25

    Standard

    Ich hab grad was zusammengeschrieben:
    Code:
    $datum="29.3.2010";
    $wochentage[0]="So";
    $wochentage[1]="Mo";
    $wochentage[2]="Di";
    $wochentage[3]="Mi";
    $wochentage[4]="Do";
    $wochentage[5]="Fr";
    $wochentage[6]="Sa";
    echo $wochentage[date("w",strtotime($datum))];
    Gruß Mathse

  8. #8
    Contao-Nutzer
    Registriert seit
    23.03.2010.
    Ort
    NRW
    Beiträge
    39

    Standard

    Danke Mathse Bin leider gerade erst dazu gekommen, die Postings zu lesen.

    Habe jetzt ein Array genommen, welchem ich die Tage zuornde und es im Hintergrund mitlaufen lasse. Sobald das Array bei 6 angekommen ist, wird es wiederholt

  9. #9
    Contao-Nutzer
    Registriert seit
    26.09.2009.
    Ort
    Berlin
    Beiträge
    244

    Frage

    Hallo Echo,

    ich will meinen Kalender nicht in einer table anzeigen lassen sondern untereinander...

    habe das template umgeschrieben und alles funktioniert, allerdings fehlen mir jetzt die wochentage als bezeichnung zu den einzelnen datumsangaben...

    <?php echo $this->showTemplateVars(); ?> zeigt mir für das cal_default.tpl eben auch nur ein array days an, und ich bin leider (noch) zu blöd mir durch dein beschriebenes array selbst die einzelnen tage richtig zugeordnet auszugeben, kannst du mir vielleicht erklären wire du es gelöst hast?

    wäre ne super sache!

    beste grüße
    .christoph

  10. #10
    Contao-Nutzer
    Registriert seit
    23.03.2010.
    Ort
    NRW
    Beiträge
    39

    Daumen hoch

    Hallo MPstudent,
    das ist eigentlich ganz einfach

    Du hast ja irgendwo eine foreach Schleife, wo die Kalendertage (01, 02, 03, etc.) ausgelesen werden. In diese Foreach Schleife schreibst du ein Array mit den Wochentagen Mo-Fr rein, sowie eine Variable (x) mit dem Inhalt null.

    Wenn die Variable x nun 0, 1, 2, 3, 4 oder 5 ist, dann soll der x-te Beitrag aus dem Array angezeigt werden. Ist die Variable 6, dann soll der 6. Beitrag aus dem Array angezeigt und die Variable x auf 0 zurück gesetzt werden

    Wichtig hierbei ist, dass der Kalender immer mit Montag beginnt, also:

    | Mo | Di | Mi | Do
    | 01 | 02 | 03 | 04

    oder:

    | Mo | Di | Mi | Do
    | | 01 | 02 | 03

    aber nicht:

    | Di | Mi | Do | Fr | Sa | So | Mo
    | 01 | 02 | 03 | 04 | 05 | 06 | 07

  11. #11
    Contao-Nutzer
    Registriert seit
    26.09.2009.
    Ort
    Berlin
    Beiträge
    244

    Standard

    hallo echo,

    danke schonmal für die schnelle antwort!

    meinst du damit dass ich nur kalender anzeigen kann die mit Montag dem 01.x. beginnen? was mach ich denn mit den Monaten die auf anderen wochentagen anfangen?

    ich muß leider gestehen dass ich in php (bzw. template) umschreibungen ein blutiger anfänger bin, ich hab diese for each schleife, was kommt dann jetzt da für ein array rein? kannst du mir da mit etwas code aushelfen, ich bin sonst nicht so, aber hier komm ich echt nicht weiter...

    PHP-Code:
    <?php foreach ($week as $day): ?>
        <div class="<?php echo $day['class']; ?>">
          <div class="header"><?php echo $day['label']; ?></div>
    tausend dank!

    .christoph

  12. #12
    Contao-Nutzer
    Registriert seit
    23.03.2010.
    Ort
    NRW
    Beiträge
    39

    Standard

    Nein, du kannst alle Monate anzeigen lassen Die Tage, wo der 1. z.B. ein Dienstag ist, kannst du per PHP auf Inhalt prüfen lassen. Wenn kein Inhalt drin ist (im Beispiel also dann z.B. Montag), gibts du ihm z.B. die CSS Klasse "leer", welche dann die CSS Formatierung: display: none; erhält.
    Leider kann ich dir nicht genau sagen, ob das in einem Tabellenlosen Kalender funktioniert :/

    Codeschnipsel gebe ich nicht her, denn selbst ist die Frau:
    http://www.php-einfach.de/php-tutorial/php-array.php
    Anfangs ist das Lernen zwar super nervig und langwidrig, aber gerade bei der Arbeit mit Typolight lernt man seine Kenntnisse zu schätzen und jeder hat mal klein angefangen
    Das Kalendermodul war übrigens auch für mich das erste Template, das ich umgeschrieben habe und seit ich das gepackt habe, schreck ich vor Templates nicht mehr zurück :>

  13. #13
    Contao-Nutzer
    Registriert seit
    26.09.2009.
    Ort
    Berlin
    Beiträge
    244

    Daumen hoch

    hallo echo,

    danke trotzdem, dass mit den codeschipseln verstehe ich ;-)

    habe allerdings schon fast jedes template angepasst was ich benutze, die news-templates, die pagination, die event-listen die navi und und und, allerdings konnte ich da fast immer meine anliegen mit den variablen des templates lösen... <?php echo $this->showTemplateVars(); ?> war meine zauberformel...

    aber du hast recht, ich werde mir dies nach meinem jetzigen job mal genauer zu gemüte führen, nur fehlt mir im moment leider die zeit da der job am wochenden online sein muß ;-)

    trotzdem danke für deine ausführliche hilfestellung!

    grüße aus berlin
    .christoph

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Installtool wird in schleife weitergeleitet???
    Von xxopenedxx im Forum Installation / Update
    Antworten: 2
    Letzter Beitrag: 16.12.2010, 09:53
  2. For-Schleife in news_simple.tpl
    Von sailor2001 im Forum Layout / Templates / Holy Grail
    Antworten: 1
    Letzter Beitrag: 04.11.2010, 21:03
  3. Kalender
    Von Acta im Forum Nachrichten/Events/FAQ
    Antworten: 2
    Letzter Beitrag: 23.09.2009, 11:40
  4. Eine elegantere Lösung für Schleife + Rechte?
    Von walle im Forum Geschützte Bereiche/Mitglieder
    Antworten: 0
    Letzter Beitrag: 24.08.2009, 16:26
  5. Kalender - Kategorien - mehrere Kalender - gemeinsame Ausgabe - WIE?
    Von cris2371 im Forum Nachrichten/Events/FAQ
    Antworten: 4
    Letzter Beitrag: 12.07.2009, 12:18

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •