Merhaba. Bir etkinlik takvimi oluşturuyorum. Ancak bir yerde takılıp kaldım. Bu saatte kafada kalmadı.. İşin içinden çıkamıyorum.
Sorun şöyle:
<html>
<head>
<link rel="stylesheet" type="text/css" href="style/style1.css" />
</head>
<body>
<?php
$tarih="18-9-2009";
error_reporting(E_ALL);
include_once 'calendarlib.php';
$mycal = new calendarlib();
$mycal->setLanguage(0);
$mycal->setLinkTyp(4);
$mycal->setGETVariableName('datum');
$mycal->setDateWithGET();
$mycal->addEvent('18-9-2009','etkinlik.php?id=$tarih');
$mycal->addEvent('21-9-2009','etkinlik.php?id=$tarih');
$mycal->showCAL();
?>
</body>
</html>Şeklinde bir kod var. Buradaki
$mycal->addEvent('18-9-2009','etkinlik.php?id=$tarih');
$mycal->addEvent('21-9-2009','etkinlik.php?id=$tarih');kısmında değişken kullanmak istiyorum. Yani
$mycal->addEvent('$tarih','etkinlik.php?id=$tarih');
$mycal->addEvent('$tarih','etkinlik.php?id=$tarih');gibi olmasını istiyorum. Ancak sürekli hata veriyor. Sizce nedeni ne olabilir?
calendarlib.php içeriğide şu şekilde: <?
class calendarlib{
private $language = 0;
private $link = 1;
private $mydate = NULL;
private $tag,$monat,$jahr;
private $getVariable = 'mydate';
private $arr_monate = array(
array ('Ocak', 'Subat', 'Mart', 'Nisan', 'Mayis', 'Haziran', 'Temmuz', 'Agustos', 'Eylul', 'Ekim', 'Kasim', 'Aralik'),
array ('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'),
array ('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre')
);
private $arr_Tage = array(
array ('Pt','Sl','Cr','Pr','Cm','Ct','Pz'),
array ('Mon','Tue','Wed','Thu','Fri','Sat','Sun'),
array ('Lu','Ma','Me','Je','Ve','Sa','Di')
);
private $events = array();
private $links = array();
private $javascriptFunction=NULL;
private $javascriptPick=NULL;
private function isEvent($date){
return in_array($date, $this->events);
}
private function getspezialLink($date,$isNavlnk=false){
if($this->javascriptFunction!=NULL){
if($isNavlnk){
return 'javascript:'.$this->javascriptFunction.'(\''.$date.'\')';
} else{
return 'javascript:'.$this->javascriptPick.'(\''.$date.'\')';
}
}
if($this->isEvent($date) && !$isNavlnk){
$key = array_search($date, $this->events);
return ($this->links[$key]!='') ? $this->links[$key] : '?'.$this->getVariable.'='.$date;
}
return '?'.$this->getVariable.'='.$date;
}
private function check_date($date,$format,$sep){
$pos1 = strpos($format, 'd');
$pos2 = strpos($format, 'm');
$pos3 = strpos($format, 'Y');
$check = explode($sep,$date);
return checkdate($check[$pos2],$check[$pos1],$check[$pos3]);
}
private function datetest(){
$arr_mydate = explode('-', $this->mydate);
if($arr_mydate[0]>=1 && $arr_mydate[0]<=31 &&
$arr_mydate[1]>0 && $arr_mydate[1]<13 &&
$arr_mydate[2] > 1970 && $arr_mydate[2]< 2038){
$this->tag = $arr_mydate[0];
$this->monat = $arr_mydate[1];
$this->jahr = $arr_mydate[2];
}
//Defaultwerte, wenn kein Monat/Jahr Übergeben wurde
$this->tag = (isset($this->tag)!==true) ? date("d",time()) : $this->monat;
$this->monat = (isset($this->monat)!==true) ? date("n",time()) : $this->monat;
$this->jahr = (isset($this->jahr)!==true) ? date("Y",time()) : $this->jahr;
}
public function __construct(){
}
public function addEvent($tdate,$speziallnk=NULL){
if($this->check_date($tdate,"dmY","-")){
$tmp = explode('-', $tdate);
$tdate = (($tmp[0][0]=='0') ? $tmp[0][1] : $tmp[0]).
'-'.(($tmp[1][0]=='0') ? $tmp[1][1] : $tmp[1]).
'-'.$tmp[2];
array_push($this->events, $tdate);
array_push($this->links,$speziallnk);
return true;
} else {
return false;
}
}
public function setDate($caldate){
$this->mydate = $caldate;
}
public function setAjax($requestmethode = 'sndReq',$pickmethode='pick'){
$this->javascriptFunction = $requestmethode;
$this->javascriptPick = $pickmethode;
}
public function setDateWithGET(){
if(isset($_GET[$this->getVariable]))
$this->mydate = $_GET[$this->getVariable];
}
public function setLinkTyp($lnk=1){
$this->link = $lnk;
}
public function setGETVariableName($newName){
$this->getVariable = $newName;
}
public function setLanguage($lang){
if($lang>=0 && $lang<count($this->arr_monate))
$this->language = $lang;
}
public function showCAL(){
$this->datetest();
$iWochenTag = date("w", mktime(0, 0, 0, $this->monat, 1, $this->jahr));
$iAnzahltage = date("t", mktime(0, 0, 0, $this->monat, 1, $this->jahr));
$iZeilen = ($iWochenTag==1 && $iAnzahltage==28) ? 4 : (($iAnzahltage == 31 && ($iWochenTag == 6 || $iWochenTag == 0))|| ($iWochenTag == 0 && $iAnzahltage == 30)) ? 6 : 5;
//Nächster Monat
if($this->monat==12){
$nmonat=1;
$njahr=$this->jahr+1;
} else {
$nmonat=$this->monat+1;
$njahr=$this->jahr;
}
//Vorheriger Monat
if($this->monat==1){
$vmonat=12;
$vjahr=$this->jahr-1;
} else {
$vmonat=$this->monat-1;
$vjahr=$this->jahr;
}
$iAnzahltageVormonat = date("t", mktime(0, 0, 0, $vmonat, 1, $vjahr));
echo '<table id="cal"><tr>',
'<th>',
(($this->link==1 || $this->link==2 || $this->link==4) ? '<a href="#"><img src="img/arrowp.gif" width="9" height="11" alt=">"></a>' : ' '),
'</th>',
'<th colspan="5">',htmlentities($this->arr_monate[$this->language][$this->monat-1]),' ',$this->jahr,'</th>',
'<th >',
(($this->link==1 || $this->link==2 || $this->link==4) ? '<a href="#"><img src="img/arrown.gif" width="9" height="11"></a>': ' '),
'</th>',
'</tr>
<tr>
<th >', htmlentities($this->arr_Tage[$this->language][0]) ,'</th>
<th >', htmlentities($this->arr_Tage[$this->language][1]) ,'</th>
<th >', htmlentities($this->arr_Tage[$this->language][2]) ,'</th>
<th >', htmlentities($this->arr_Tage[$this->language][3]) ,'</th>
<th >', htmlentities($this->arr_Tage[$this->language][4]) ,'</th>
<th >', htmlentities($this->arr_Tage[$this->language][5]) ,'</th>
<th >', htmlentities($this->arr_Tage[$this->language][6]) ,'</th>
</tr>';
$iTag = 0; //Tag im Monat
$i=0;
$ntmp=0;
do{ // while($i < $iZeilen);
echo '<tr>';
$j=1;
do { //while($j <= 7);
//Hilfsvariable Mo=1, Di=2 .... So=7
$m = ($iWochenTag==0) ? 7 : $iWochenTag;
//Nicht jeder Monat beginnt am Monat
if($m == $j && $j <= 7 && $iTag == 0){
$iTag = 1;
}
$preTag = ($iAnzahltageVormonat+$j-$m+1);
if ($iTag == 0){
$tmpEvent =$this->isEvent($preTag.'-'.$vmonat.'-'.$vjahr);
echo '<td ';
echo $tmpEvent ? 'id="aevent">' : 'id="amonat">';
echo ($this->link==1 || ($tmpEvent==true && ($this->link==3 || $this->link==4))) ? '<a href="'.$this->getspezialLink($preTag.'-'.$vmonat.'-'.$vjahr).'">' : '';
echo $preTag;
echo ($this->link==1 || ($tmpEvent==true && ($this->link==3 || $this->link==4))) ? '</a>' : '';
}
if ($iTag > $iAnzahltage){
++$ntmp;
$tmpEvent = $this->isEvent($ntmp.'-'.$nmonat.'-'.$njahr);
echo '<td ';
echo $tmpEvent ? 'id="aevent">' : 'id="amonat">';
echo ($this->link==1 || ($tmpEvent==true && ($this->link==3 || $this->link==4))) ? '<a href="'.$this->getspezialLink($ntmp.'-'.$nmonat.'-'.$njahr).'">' : '';
echo $ntmp;
echo ($this->link==1 || ($tmpEvent==true && ($this->link==3 || $this->link==4))) ? '</a>' : '';
echo '</td>';
}
if ($iTag != 0 && $iTag <= $iAnzahltage){
$tmpEvent = $this->isEvent($iTag.'-'.$this->monat.'-'.$this->jahr);
echo '<td ';
echo $tmpEvent ? 'id="monatevent">' : 'id="monat">';
echo ($this->link==1 || ($tmpEvent==true && ($this->link==3 || $this->link==4))) ? '<a href="'. $this->getspezialLink($iTag.'-'.$this->monat.'-'.$this->jahr) .'">' : '';
echo $iTag;
echo ($this->link==1 || ($tmpEvent==true && ($this->link==3 || $this->link==4))) ? '</a>' : '';
echo '</td>';
++$iTag;
}
} while(++$j <= 7);
echo '</tr>';
} while(++$i < $iZeilen);
echo '</table>';
}
}
?>