![]() | ||||||||
![]() |
Karte | Kalender | Suche | Bookmarks | Experte | FAQ |
ModuleDownloadSMFinder_Query_CalendarWird verwendet von:SMFinder_Main
<?php /* published under GPL www.gnu.org/licenses/gpl.html */ function SMFinder_Query_Calendar($UIDs,$firstWeekNo,$calendar,$start,$end,$type){ include_once("SMFinder_Query_composeDates4UIDs.php"); if ($GLOBALS['debug']){echo "<aj>SMFinder_Query_Calendar:</aj> ". $type."<br>";} /* find all dates for all events */ list($datesTensor,$allDates)=SMFinder_Query_composeDates4UIDs($UIDs,$start,$end,"",""); switch ($type){ case "chronological": include_once("SMFinder_Query_showEventsChronological.php"); $calendarString[0]=SMFinder_Query_showEventsChronological($firstWeekNo,$calendar,$datesTensor); break; case "dynamic": include_once("SMFinder_Query_showCalendarDynamic.php"); $calendarString=SMFinder_Query_showCalendarDynamic($firstWeekNo,$calendar,$datesTensor); break; case "static": include_once("SMFinder_Query_showCalendar.php"); $calendarString[0]=SMFinder_Query_showCalendar($firstWeekNo,$calendar,$datesTensor); break; default: $calendarString=""; } return $calendarString; } function SMFinder_Query_CalendarForm($start,$end,$type,$UIDs){ include_once("SMFinder_Query_validDate.php"); if ($GLOBALS['debug']){echo "<aj>SMFinder_Query_CalendarForm:</aj> ".$start." bis ".$end." ".$type."<br>";} switch ($type){ case "dynamic": $calendarString=""; $calendarString.= "<p> </p><div align='center'><table class='calendarDynamic'><tr><td class='calendarDynamic' colspan='12'>Monat</td></tr><tr>"; $thisYear=date(Y); $thisMonth=date(m); for ($m=0;$m<12;$m++){ if ($m<$thisMonth){$year=$thisYear+1;}else{$year=$thisYear;} $mm=$m+1; $monthString = sprintf("%02d",$mm); $monthStart=$year."-".$monthString."-01"; $monthEnd=$year."-".$monthString."-31"; $calendarString.= "<td class='calendarDynamic'><a href='".$GLOBALS['self']."?what2do=calendar&calType=dynamic&start=".$monthStart."&end=".$monthEnd."'>".$monthString."</a></td>"; } #m $calendarString.= "</tr></table></div>\n"; break; case "static": $calendarString=""; $calendarString.= "<p> </p> <form action='".$_SERVER['PHP_SELF']."?what2do=calendar&calType=static' method='POST'> <div align='center'> vom: <input type='text' name='start' value='".$start."' size='10'> bis: <input type='text' name='end' value='".$end."' size='10'> <input type='submit' name ='what2do' value='zeige Kalender'> </div></form>"; break; default: $calendarString=""; } return $calendarString; } function SMFinder_Query_composeCalendar($start,$end,$type){ # yyyy-mm-dd # 0123456789 /* first date */ #if (empty($start)){$start = sprintf("%04d-%02d-%02d",date(Y),date(m),date(d));} switch($type){ case "dynamic": $start=substr($start,0,8)."01"; #fallthrough case "week": $startYear=substr($start,0,4); $startMonth=substr($start,5,2); $startDay=substr($start,8,2); $wday= date("D",mktime(0, 0, 0, $startMonth, $startDay, $startYear)); $safe=0; while($wday!="Mon"){ $safe++; $startDay=$startDay-1; $wday= date("D",mktime(0, 0, 0, $startMonth, $startDay, $startYear)); if ($startDay<=0){ $startDay=31; $startMonth=$startMonth-1; $wday= date("D",mktime(0, 0, 0, $startMonth, $startDay, $startYear)); } if ($safe>30){break;} } break; case "chronological": $startYear=substr($start,0,4); $startMonth=substr($start,5,2); $startDay=substr($start,8,2); break; case "static": $startYear=substr($start,0,4); $startMonth=substr($start,5,2); $startDay=substr($start,8,2); $wday= date("D",mktime(0, 0, 0, $startMonth, $startDay, $startYear)); $safe=0; while($wday!="Mon"){ $safe++; $startDay=$startDay-1; $wday= date("D",mktime(0, 0, 0, $startMonth, $startDay, $startYear)); if ($startDay<=0){ $startday=31; $startMonth=$startMonth-1; $wday= date("D",mktime(0, 0, 0, $startMonth, $startDay, $startYear)); } if ($safe>30){break;} } default: } /* last date */ /* if (empty($end)){ $thisYear=date(Y); $thisMonth=date(m); $endMonth=$thisMonth+1; $endYear=$thisYear; if ($endMonth>12){$endMonth=$endMonth-12;$endYear=$endYear+1;} $end = sprintf("%04d-%02d-%02d",$endYear,$endMonth,date(d)); } */ $endYear=substr($end,0,4); $endMonth=substr($end,5,2); $endDay=substr($end,8,2); switch($type){ case "dynamic": $lastDayOfMonth=date("t",mktime(0, 0, 0, $endMonth, 10, $endYear)); $end = sprintf("%04d-%02d-%02d",$endYear,$endMonth,$lastDayOfMonth); break; case "week": $year=substr($end,0,4); $month=substr($end,5,2); $day=substr($end,8,2); $wday= date("D",mktime(0, 0, 0, $month, $day, $year)); $safe=0; while($wday!="Sun"){ $safe++; $day=$day+1; $wday= date("D",mktime(0, 0, 0, $month, $day, $year)); if ($day<=0){ $day=31; $month=$month-1; $wday= date("D",mktime(0, 0, 0, $month, $day, $year)); } if ($safe>30){break;} } break; default: $end=$end; } if ($GLOBALS['debug']){echo "<aj>SMFinder_Query_composeCalendar:</aj> ".$start." bis ".$end." ".$type."<br>";} /* build calendar */ if(strlen($type)>1){ $day=$startDay; $month=$startMonth; $year=$startYear; $firstWeekNo=date("W",mktime(0, 0, 0, $month, $day, $year)); /* wkno Mon Tue Wen Thu Fri Sat Sun */ while ($somedate<$end){ $safe++; $somedate=sprintf("%04d-%02d-%02d",$year,$month,$day); $wday= date("D",mktime(0, 0, 0, $month, $day, $year)); $wkno=sprintf('%02d',date("W",mktime(0, 0, 0, $month, $day, $year))); /* next day */ $day=$day+1; if ($day>date("t",mktime(0, 0, 0, $month, $day, $year))){ $day=1; $month=$month+1; if ($month>12){ $month=1; $year=$year+1; } } $calendar[$wkno][$wday]=$somedate; if ($safe>1e3){echo "build of calendar terminated!<br>";break;} $lastWeekNo=$wkno; } #while }else{ $firstWeekNo=1; #??? $calendar=array(); } return array($firstWeekNo,$calendar); } ?> IndexFür die Funktionalität des SM-Finders sind viele kleine Tools notwendig. Alle Funktionen beginnen mit SMFinder_ um deren Ursprung zu kennzeichnen. Dem schließt sich die Funktionsgruppe, z.B. Geo_ an, gefolgt vom eigentlichen Namen, der die Aufgabe der Funktion widerspiegeln soll, z.B. PLZ2DB. Der gesamte Sourcecode darf gemäß GNU General Public License weiterverbreitet werden. |
![]() |
Die hier zur Verfügung gestellten Informationen basieren auf dem Austauschnetzwerk des SM-Finders.
Änderungen an eurem Datensatz könnt ihr z.B. beim Arbeitskreis SM-Finder vornehmen.
Bei Fragen und Problemen schreibt bitte an: sm-finderki-co.org
Der AK-SM-Finder ist korporatives Mitglied der BVSM e.V.
Für Aktualität und Richtigkeit der dargebotenen Infomationen kann keine Gewähr übernommen werden!