Es geht um die Ausgabe des Event-Cal.
Das ist mein aktuelles Ausgabe-Modul für den Kalender (zu sehen hier: http://www.tckreuzlingen.ch/index.php?a ... 1&month=12):
Code: Alles auswählen
<?php
$art = REX_ARTICLE_ID;
class rex_cal
{
var $curYear;
var $curMonth; //Aktueller Monat als Zahl
var $monthDays; //Anzahl der Tage des aktuellen Monats
var $firstDay; //erster Tag des aktuellen Monats
var $values = array(); //Array mit dem ID-Wert des Events
function rex_cal($givenMonth = '', $givenYear = '')
{
//Wenn kein Jahr angegeben wird, dann nehme ich den das aktuelle
if($givenYear == '')
$this->curYear = date('Y', time());
else
$this->curYear = $givenYear;
//Wenn kein Monat angegeben wird, dann nehme ich den aktuellen Monat
if($givenMonth == '')
$this->curMonth = date('n', time());
else
$this->curMonth = $givenMonth;
$this->monthDays = date('t', mktime(0, 0, 0, $this->curMonth, 1, $this->curYear));
$this->firstDay = date('w', mktime(0, 0, 0, $this->curMonth, 1, $this->curYear));
//wir ruecken das Array um so viele Stellen weiter, bis es mit dem startenden Wochentag uebereinstimmt
for($pushDay = 0; $pushDay<$this->firstDay; $pushDay++)
{
array_push($this->values, NULL);
}
//wir befuellen das Array standard-maessig mit Zahlen
for($day = 1; $day<=$this->monthDays; $day++)
{
array_push($this->values, '<span class="day">'.$day.'</span>');
}
if($this->curMonth == 13)
{
$this->curMonth = 1;
$this->curYear++;
}
if($this->curMonth == 0)
{
$this->curMonth = 12;
$this->curYear--;
}
}
//Fuegt einen Wert in ein Array
function setValue($tag, $value)
{
$this->values[$tag+$this->firstDay-1] = $this->values[$tag+$this->firstDay-1].$value;
}
//Fuegt einen Link in ein Array
function setLink($tag, $befor, $after)
{
$this->values[$tag+$this->firstDay-1] = $befor.$this->values[$tag+$this->firstDay-1].$after;
}
function setrepeatValue($tag, $value)
{
}
function nextMonth()
{
$this->curMonth = $this->curMonth+1;
if($this->curMonth == 13)
{
$this->curMonth = 1;
$this->curYear++;
}
}
function lastMonth()
{
$this->curMonth = $this->curMonth-1;
if($this->curMonth == 0)
{
$this->curMonth = 12;
$this->curYear--;
}
}
function nextYear()
{
$this->curYear = $this->curYear+1;
}
function lastYear()
{
$this->curYear = $this->curYear-1;
}
//liefert den aktuellen Monat als Namen zurück
function getMonth($month = array('Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'))
{
return $month[$this->curMonth-1];
}
function getMonthAsNumber()
{
return $this->curMonth;
}
function getKalender($header = array('M','D','M','D','F','S','S'))
{
$output = '<table class="kalendar">
<tr>
';
foreach($header as $element)
$output .= '<th>'.$element.'</th>'
;
$output .= '</tr>'
;
for($row = 1; $row<=6; $row++)
{
$output .= '<tr>
';
for($col= 1; $col<=7; $col++)
{
if($this->values[$col+(($row-2)*7)] == "")
$class='class="none"';
else
$class = "";
$output .= '<td '.$class.'>'.$this->values[$col+(($row-2)*7)].'</td>
';
}
$output .= '</tr>
';
}
$output .= '</table>
';
return $output;
}
}
//Wenn es noch keine eventID gibt -> wenn kein Termin angeklickt wurde
if(!isset($_REQUEST['eventid']))
{
if(!isset($_REQUEST['month']))
$makeCal = new rex_cal();
else
$makeCal = new rex_cal($_REQUEST['month']);
$getAll = new rex_sql;
$getAll->setQuery("SELECT * FROM rex_120_events WHERE SUBSTRING(DATE, 5,2)='".sprintf("%02d", $makeCal->getMonthAsNumber())."'");
for($u=0; $u<$getAll->getRows(); $u++)
{
if($getAll->getValue('DATE') != '')
{
$makeCal->setValue(substr($getAll->getValue('DATE'), 6, 2), '<a href="index.php?article_id='.$art.'&eventid='.$getAll->getValue('ID').'">'.substr($getAll->getValue('DATE'), 6, 2).'</a>');
}
$getAll->next();
}
echo '<div id="kalender">';
echo '<h2><span class="last"><a href="index.php?article_id='.$art.'&month='.($makeCal->getMonthAsNumber()-1).'"><img src="files/last.png" alt="vorheriger Monat" /></a></span> ';
echo " ".$makeCal->getMonth()." ";
echo '<span class="next"><a href="index.php?article_id='.$art.'&month='.($makeCal->getMonthAsNumber()+1).'"><img src="files/next.png" alt="nächster Monat" /></a></span></h2>';
echo $makeCal->getKalender();
echo '</div>';
}
//andernfalls...
else
{
$getAll = new rex_sql;
$getAll->setQuery("SELECT * FROM rex_120_events WHERE ID='".$_REQUEST['eventid']."'");
if($getAll->getRows() > 0)
{
echo '<div id="kalender-detail">';
echo '<h1>Info</h1>';
echo '<p>'.substr($getAll->getValue('DATE'), 6, 2).'.'.substr($getAll->getValue('DATE'), 4, 2).'.'.substr($getAll->getValue('DATE'), 0, 4);
if ($getAll->getValue('TIME'))
{
echo ' - '.$getAll->getValue('TIME').' Uhr';
}
echo '</p>';
echo '<p>'.$getAll->getValue('EVENT').'</p>';
if($getAll->getValue('DETAIL')){ print("<p class=\"back\"><a href=\"index.php?article_id=".$getAll->getValue('DETAIL')."\">Detail</a></p><br clear=\"all\">"); }
}
else
{
echo '<p class="warning">Dieses Event existiert nicht!</p>';
}
echo '<p class="back"><a href="javascript:history.back()">zurück zum Kalender</a></p>';
echo '</div>';
}
?>
Code: Alles auswählen
echo '<div id="kalender">';
echo '<h2><span class="last"><a href="index.php?article_id='.$art.'&month='.($makeCal->getMonthAsNumber()-1).'"><img src="files/last.png" alt="vorheriger Monat" /></a></span> ';
echo " ".$makeCal->getMonth()." ";
echo '<span class="next"><a href="index.php?article_id='.$art.'&month='.($makeCal->getMonthAsNumber()+1).'"><img src="files/next.png" alt="nächster Monat" /></a></span></h2>';
echo $makeCal->getKalender();
echo '</div>';
Habt ihr einen Tipp für mich, wie ich das Jahr auch einbauen kann beim blättern?
Vielen Dank!!!
PS: ich habe nun diese Frage auch in einem anderen Forum gestellt. Ich weiss, es nicht ganz die richtige Art, darum kann dieser Beitrag auch nicht beachtet werden. Sobald ich die Lösung habe, werde ich sie auf jeden Fall trotzdem hier posten. Wenn hier sonst jemand die Lösung weiss, darf er es natürlich auch gerne tun!