Hallo zusammen
--- Bitte letzten Post lesen ---
Wäre über jede Hilfe sehr dankbar.
LG
Echo
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)
Ich noch mal
--- Bitte letzten Post lesen ---
LG
Echo
Geändert von Echo (26.03.2010 um 12:56 Uhr)
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
Vielen Dank schon mal für AntwortenPHP-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($daya, 0, 2); ?><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($daya, 0, 2); ?><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>
LG
Echo
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
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
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
Ich hab grad was zusammengeschrieben:
Gruß MathseCode:$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))];
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
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
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
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...
tausend dank!PHP-Code:
<?php foreach ($week as $day): ?>
<div class="<?php echo $day['class']; ?>">
<div class="header"><?php echo $day['label']; ?></div>
.christoph
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 :>
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 in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)