CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
19.05.2010, 16:50:13
|
Anfänger
|
|
Registriert seit: May 2010
Alter: 46
Beiträge: 9
|
|
T-SQL Kalender Klasse
Hallo,
Ich verwende die Kalenderklasse von tsql.de
Es existiert meine Homepage mit mehreren Seiten. Eine davon ist eine Eventseite. Mit der sehr guten Kalenderklasse wird ein Datum ausgewählt und das jeweilge Event angezeigt. Soweit so gut. Nur wenn man ein Datum im Kalender angewählt und das jeweilge Datum per GET übergeben wird, so geschieht das immer an die Seite, auf der sich der Besucher zur Zeit befindet (z.B. jetzigeseite.php?datum=1-1-2010). Ich suche aber nach dem Weg, wenn sich der Besucher z.B. auf der Startseite aufhält, und hier auf ein Event im Kalender klickt, das Datum per GET an die Eventseite und nicht an die Startseite übergeben wird.
Ich hoffe ich konnte mich einigermaßen gut erklären.
Hier die Klasse:
Code:
<?
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="'.$this->getspezialLink('1-'.$vmonat.'-'.$vjahr,true).'"><img src="images/buttons/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="'.$this->getspezialLink('1-'.$nmonat.'-'.$njahr,true).'"><img src="images/buttons/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>';
}
}
?>
Würde mich über eine Antwort sehr freuen!
Gruss
Andi
|
19.05.2010, 19:21:56
|
SELFPHP Profi
|
|
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
|
|
AW: T-SQL Kalender Klasse
bitte punkt c unserer forenregeln beachten.
[mod: verschoben]
cx
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 10:54:14 Uhr.
|