Ich benutze folgendes angepasstes Modul um den event_cal auszugeben:
Code: Alles auswählen
<?php
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 r?cken das Array um so viele Stellen weiter, bis es mit dem startenden Wochentag ?bereinstimmt
for($pushDay = 0; $pushDay<$this->firstDay; $pushDay++)
{
array_push($this->values, NULL);
}
//wir bef?llen das Array standard-m?§ig 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--;
}
}
//F?gt einen Wert in ein Array
function setValue($tag, $value)
{
$this->values[$tag+$this->firstDay-1] = $this->values[$tag+$this->firstDay-1].$value;
}
//F?gt 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('Jänner', '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('Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag','Sonntag'))
{
$output = '<table class="kalendar">
<tr>
';
foreach($header as $element)
$output .= '<th>'.$element.'</th>'
;
$output .= '</tr>'
;
for($row = 1; $row<=5; $row++)
{
$output .= '<tr>
';
for($col= 1; $col<=7; $col++)
{
if($this->values[$col+(($row-1)*7)] == "")
$class='class="none"';
else
$class = "";
$output .= '<td '.$class.'>'.$this->values[$col+(($row-1)*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=23&eventid='.$getAll->getValue('ID').'" title="'.$getAll->getValue('EVENT').'">'.substr($getAll->getValue('EVENT'), 0, 15).'</a>');
}
$getAll->next();
}
echo "<h2>Veranstaltungen im ".$makeCal->getMonth().":</h2>";
echo $makeCal->getKalender();
echo '<p class="navigation cal">
<span class="last">
<a href="index.php?article_id=23&month='.($makeCal->getMonthAsNumber()-1).'">
vorherigen Monat anzeigen
</a>
<em>.</em>
</span>
<span class="next">
<a href="index.php?article_id=23&month='.($makeCal->getMonthAsNumber()+1).'">
nächsten Monat anzeigen
</a>
</span>
</p>';
}
//andernfalls...
else
{
$getAll = new rex_sql;
$getAll->setQuery("SELECT * FROM rex_120_events WHERE ID='".$_REQUEST['eventid']."'");
if($getAll->getRows() > 0)
{
echo '<h2>Veranstaltung</h2>';
echo '<p class="eventdate">'.substr($getAll->getValue('DATE'), 6, 2).'.'.substr($getAll->getValue('DATE'), 4, 2).'.'.substr($getAll->getValue('DATE'), 0, 4).'</p>';
echo '<p class="eventtext">
'.$getAll->getValue('EVENT').'
</p>';
}
else
{
echo '<p class="warning">Dieses Event existiert nicht!</p>';
}
echo '<p class="back"><a href="index.php?article_id=23">Zurück</a></p>';
}
?>
Code: Alles auswählen
Notice: Undefined offset: 33 in /var/www/vhosts/ucae.lu/httpdocs/redaxo/include/classes/class.rex_article.inc.php(671) : eval()'d code on line 302 Notice: Undefined offset: 33 in /var/www/vhosts/ucae.lu/httpdocs/redaxo/include/classes/class.rex_article.inc.php(671) : eval()'d code on line 307
Weiß da jemand Rat?
Danke schonmal im voraus!
Eru