da die dokumentation sehr, sehr dürftig ist und ich auch keine ahnung von php hab, gelingt mir das natürlich nicht.
bekomme fehlermeldungen, weil das feld title welches das kalender_modul will
ja nicht durch das addon in der datenbank angelegt ist.
soweit so schlecht. eigentlich möchte ich nur das im kalender der betreffende tag(also, die zahl) mit meinem event verlinkt ist.
habe da selbst schon rumprobiert und habe auch es auch hinbekommen, dass mir das komplette datum im kalender angezeigt wird. allerdings wird ja dann der kalender vom layout zerschossen.
wäre schön, wenn wir jemand helfen könnte.
version redaxo 4.1
also, hier mal mein script(kalendermodul):
<?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('Mo','Di','Mi','Do','Fr','Sa','So'))
{
$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=33&eventid='.$getAll->getValue('ID').'" >'.substr($getAll->getValue('DATE'), 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=33&month='.($makeCal->getMonthAsNumber()-1).'">
vorherigen Monat anzeigen
</a>
<em>.</em>
</span>
<span class="next">
<a href="index.php?article_id=33&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 '<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=33">Zurück</a></p>';
}
?>