SM-Finder-Logo        
herz Karte Kalender Suche Bookmarks Experte FAQ

Module

Download

SMFinder_Query_Calendar

Wird verwendet von:
SMFinder_Main
  • SMFinder_Query_CalendarForm
    ermöglicht es, das Zeitintervall der Anzeige festzulegen und sucht per SMFinder_Query_getAllUID alle Termine und errechnet bei Serienterminen alle Treffer innerhalb eines Zeitintervalls mittels SMFinder_Query_composeDates4UIDs. Die Anzeige erfolgt dann entweder als Kalender SMFinder_Query_showCalendar oder chronologisch SMFinder_Query_showEventsChronological.
  • SMFinder_Query_Calendar
    erzeugt die Tabelle des Calenders mit Datum, Wochentag, Wochennummer
<?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);
}
?>

Index

Fü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.

1Makefile
2SMFinder_Admin
3SMFinder_Admin_addCategories
4SMFinder_Admin_checkAllLinks
5SMFinder_Admin_clean
6SMFinder_Admin_exportXML
7SMFinder_Admin_genMap
8SMFinder_Admin_getTimefInt
9SMFinder_Admin_importGeo
10SMFinder_Admin_sendXML2user
11SMFinder_Admin_uploadXML
12SMFinder_Config
13SMFinder_DTD
14SMFinder_Datenbanken
15SMFinder_Edit
16SMFinder_Edit_AddressFields
17SMFinder_Edit_AdrFields
18SMFinder_Edit_CatsAtrs
19SMFinder_Edit_EventFields
20SMFinder_Edit_LinkFields
21SMFinder_Edit_Modus
22SMFinder_Edit_POST
23SMFinder_Edit_PersFields
24SMFinder_Edit_genUID
25SMFinder_Elementdefinitions
26SMFinder_Geo
27SMFinder_Geo_PLZ2DB
28SMFinder_Geo_Umkreis
29SMFinder_Geo_getGeo
30SMFinder_Help
31SMFinder_Help_Download
32SMFinder_Help_FAQ
33SMFinder_Help_KategorienInfo
34SMFinder_Help_editAddress
35SMFinder_Help_editEvent
36SMFinder_Main
37SMFinder_MapDACH
38SMFinder_Menu
39SMFinder_Modules
40SMFinder_ModulesIndex
41SMFinder_Pagelayout
42SMFinder_Query_ABC
43SMFinder_Query_Calendar
44SMFinder_Query_CheckCatsAtrs
45SMFinder_Query_Map
46SMFinder_Query_Mask
47SMFinder_Query_SearchEngine
48SMFinder_Query_analyzeSearch
49SMFinder_Query_composeDates4UIDs
50SMFinder_Query_dateFormat
51SMFinder_Query_dmoz
52SMFinder_Query_expandSeries
53SMFinder_Query_find
54SMFinder_Query_getAllUID
55SMFinder_Query_getUID4CatsAtrsGeo
56SMFinder_Query_getUID4Geo
57SMFinder_Query_getUID4adr
58SMFinder_Query_getUID4fn
59SMFinder_Query_readAddress
60SMFinder_Query_readAdr
61SMFinder_Query_readBookmark
62SMFinder_Query_readEvent
63SMFinder_Query_readLink
64SMFinder_Query_readPers
65SMFinder_Query_showAddress
66SMFinder_Query_showAdr
67SMFinder_Query_showCalendar
68SMFinder_Query_showCalendarDynamic
69SMFinder_Query_showEvent
70SMFinder_Query_showEventList
71SMFinder_Query_showEventsChronological
72SMFinder_Query_showLink
73SMFinder_Query_showPers
74SMFinder_Query_showResult
75SMFinder_Query_validDate
76SMFinder_Style
77SMFinder_Write_Address
78SMFinder_Write_Adr
79SMFinder_Write_Event
80SMFinder_Write_Link
81SMFinder_Write_Pers
82SMFinder_Write_deleteEntry
83SMFinder_XML_checkType
84SMFinder_XML_export
85SMFinder_XML_extractAttribute
86SMFinder_XML_extractTag
87SMFinder_XML_findAllElements
88SMFinder_XML_import
89SMFinder_XML_importParseAddress
90SMFinder_XML_importParseAdr
91SMFinder_XML_importParseCatsAtrs
92SMFinder_XML_importParseEvent
93SMFinder_XML_importParseLink
94SMFinder_XML_importParsePerson
95SMFinder_XML_readFile
96SMallGiessen_SMFinder
97ShowCatsAtrsNice
98index
99php2txt.pl
100sm-finder-02.dtd
101testGeo
102sm-finder-02.dtd
103

Datenbanken

 

SM-Finder-Logo

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-finderATki-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!

blank

blank