![]() | ||||||||
![]() |
Karte | Kalender | Suche | Bookmarks | Experte | FAQ |
ModuleDownloadSMFinder_Edit_EventFieldsWird verwendet von:SMFinder_Main Mit diesem Formular kannst du die Angaben eines event-Eintrags bearbeiten. Unterelemente wie address, link oder auch die Kategorien und Attribute werden mit Subformularen bearbeitet. Falls du dieses Formular mit Adminrechten aufrufst ($_SESSION['IamGod']=true), werden zusätzliche Angaben wie 'UID' angezeigt, und du kannst u.a. den status auf 'ok' setzen. Allgemein wird für jedes Feld von event eine Zeile generiert, in der zunächst der Name des Feldes ($EventFields) mit Links zum Hilfetext, gefolgt vom eigentlichen Eingabefeld und einer Leerspalte, die für die merfach möglichen Subelemente notwendig ist. chooseAddresstimeFieldfrequency<?php /* published under GPL www.gnu.org/licenses/gpl.html */ function SMFinder_Edit_EventFields($event,$link,$NoLink){ include('SMFinder_Edit_LinkFields.php'); include_once('SMFinder_Edit_CatsAtrs.php'); #print_r($event);echo "in EventFields<p>"; include ('SMFinder_Elementdefinitions.php'); $eventForm = "<h1>Eingabe eines Termins</h1>"; $eventForm .= "<form action='".$_SERVER['PHP_SELF']."?what2do=editEvent' method='POST'><table border='0'>"; $eventForm .= "<input type='hidden' name='element' value='event'>\n"; $eventFieldBlock = "<input type='hidden' name='NoLink' value='".$NoLink."'>\n"; if($_SESSION['IamGod']){ $eventFieldBlock .= "<tr><td><a href='index.php?what2do=help&sec=DB&modul=SMFinder_Datenbanken_event#".$EventFields[0]."' target='help'>".$EventFieldsDesc[0]."</a></td><td> <input type='text' name='UID' value='".$event['UID']."' size='50'></td><td> </td></tr>\n"; }else{ $eventFieldBlock .= "<input type='hidden' name='UID' value='".$event['UID']."'>\n"; } $eventFieldBlock .= "<input type='hidden' name='created' value='".$event['created']."'>\n"; /* summary */ $eventFieldBlock .= "<tr><td><a href='index.php?what2do=help&sec=DB&modul=SMFinder_Datenbanken_event#".$EventFields[4]."' target='help'>".$EventFieldsDesc[4]."</a></td><td><input type='text' name='summary' value='".$event['summary']."' size='50'></td><td> </td></tr>\n"; /* desc */ $eventFieldBlock .= "<tr><td valign='top'><a href='index.php?what2do=help&sec=DB&modul=SMFinder_Datenbanken_event#".$EventFields[5]."' target='help'>".$EventFieldsDesc[5]."</a></td><td>"; $eventFieldBlock .= "<textarea name='desc' cols='50' rows='20'>".$event['desc']."</textarea></td><td> </td></tr>\n"; $eventFieldBlock .= "<tr><td valign='top'><a href='index.php?what2do=help&sec=DB&modul=SMFinder_Datenbanken_event#dtstart' target='help'>Beginnt um:</a></td><td>".timeField("Start",$event['dtstart'])."</td><td></td></tr>"; $eventFieldBlock .= "<tr><td valign='top'><a href='index.php?what2do=help&sec=DB&modul=SMFinder_Datenbanken_event#dtend' target='help'>Endet um:</a></td><td>".timeField("End",$event['dtend'])."</td><td></td></tr>"; if (empty($event['freq'])){ $eventFieldBlock .= "<tr><td valign='top'></td><td align='center'></td><td><input type='submit' name='setFreq' value='Serientermin'></td></tr>"; }else{ $rruleField = frequency($event['freq'],$event['interval'],$event['wday'],$event['mday'],$event['mon'],$event['yrday'],$event['wkno'],$event['until'],$event['exdate']); $eventFieldBlock .= "<tr><td valign='top'><a href='index.php?what2do=help&sec=DB&modul=SMFinder_Datenbanken_event#rrule' target='help'>Serientyp:</a></td><td>".$rruleField."</td><td></td></tr>"; } $eventForm .= $eventFieldBlock; for ($n=0;$n<$NoLink;$n++){ $thisLink=$link[$n]; $thisLink['refUID']=$event['UID']; $type=sprintf("link%02d",$n); SMFinder_Edit_LinkFields($thisLink,$type,false); } #n $eventFieldBlock = "<tr><td valign='top'> </td><td> </td><td> </td></tr>"; $eventFieldBlock .= chooseAddress("location",$event['location'],$event['UID']); $eventFieldBlock .= chooseAddress("organizer",$event['organizer'],$event['UID']); $eventFieldBlock .= chooseAddress("contact",$event['contact'],$event['UID']); $string = SMFinder_Edit_CatsAtrs("event",$event['cats'],$event['atrs']); $eventFieldBlock .= $string; $eventFieldBlock .= "<tr><td valign='top'><a href='index.php?what2do=help&sec=DB&modul=SMFinder_Datenbanken_event#".$EventFields[0]."' target='help'>".$EventFieldsDesc[0]." </a></td> <td><small> delete: Eintrag <span style='color:red;'>löschen</span></small></td> <td><select name='".$EventFields[0]."' size='1'>\n"; if (!empty($event['status'])){$eventFieldBlock .= "<option value='".$event['status']."'>".$event['status']."\n";} # if ($_SESSION['IamGod']){$addressFieldBlock .= "<option value='ok'>ok\n";} $eventFieldBlock .= "<option value='ok'>ok\n <option value='new'>new\n <option value='delete'>delete\n </select></td></tr>\n"; $eventForm .= $eventFieldBlock; $eventForm .= "<tr><td></td><td><input type='submit' name ='editMode' value='anzeigen'></td><td><input type='submit' name ='editMode' value='speichern'></td></tr>"; $eventForm .= "</table></form>"; return $eventForm; } #=================================== function chooseAddress($type,$content,$refUID){ switch ($type){ case "location": $name="Veranstaltungsort"; break; case "organizer": $name="Veranstalter"; break; case "contact": $name="Kontakt"; break; } $addressBlock ="<tr><td valign='top'><a href='SMFinder_Help_editEvent.php#organizer' target='help'>".$name."</a>:</td><td valign='top'>"; $buttonName= $type."Button"; if (!empty($_POST[$buttonName])){ include_once('SMFinder_Query_ABC.php'); $choiceList = SMFinder_Query_ABC($type,"address"); $addressBlock.="<b>wähle die Nummer der gewünschten Adresse</b>\n".$choiceList; }else if (empty($content)){ #$addressBlock.="<input type='text' name='".$type."' value='".$content."' size='40'> \n"; $addressBlock.="<input type='submit' name='".$type."Button' value='wähle Adresse'>"; }else{ $addressBlock.="<input type='text' name='".$type."' value='".$content."' size='50'> \n"; } $addressBlock.="</td><td>"; if (empty($content)){ $addressBlock.="<table><tr><th width='25%' class='button'><a href='".$_SERVER['PHP_SELF']."?what2do=editAddress&status=".$type."&refUID=".$refUID."' class='button' target='editAddress'>Adresse eingeben</a></th></tr></table>"; } $addressBlock.="</td></tr>\n"; return $addressBlock; } #=================================== function timeField($type,$datetime){ if ($datetime[0]=="P"){ $check2="checked"; $pos=strpos($datetime,"H"); $pos1=strpos($datetime,"T"); $durationHours=substr($datetime,$pos1+1,$pos-$pos1-1); $pos=strpos($datetime,"M"); $durationMinutes=substr($datetime,$pos-2,2); }else if ($datetime[0]==2){ $check1="checked"; $year=substr($datetime,0,4); $month=substr($datetime,4,2); $day=substr($datetime,6,2); $hour=substr($datetime,9,2); $minute=substr($datetime,11,2); }else{ if (empty($year)){$year=date('Y');} if (empty($month)){$month=date('m');} if (empty($day)){$day=date('d');} if (empty($hour)){$hour=date('H');} if (empty($minute)){$minute=date('i');} if (empty($durationHour)){$duratonHour=0;} if (empty($durationMinutes)){$duratonMinutes=0;} } $monName['01']="Januar"; $monName['02']="Februar"; $monName['03']="März"; $monName['04']="April"; $monName['05']="Mai"; $monName['06']="Juni"; $monName['07']="Juli"; $monName['08']="August"; $monName['09']="September"; $monName['10']="Oktober"; $monName['11']="November"; $monName['12']="Dezember"; $NameYear=sprintf("year%s",$type); $NameMonth=sprintf("month%s",$type); $NameDay=sprintf("day%s",$type); $NameHour=sprintf("hour%s",$type); $NameMinute=sprintf("minute%s",$type); $NameDurationHours=sprintf("durationHours%s",$type); $NameDurationMinutes=sprintf("durationMinutes%s",$type); if ($type=="End"){ $datetimeField .= "<input type='radio' name='endType' value='dtend' ".$check1.">"; }else{ $datetimeField .= " "; } $datetimeField .= " <input type='text' size='2' name='".$NameDay."' value='".$day."'>"; $datetimeField .= "<select name=".$NameMonth." size='1'>\n"; $datetimeField .= "<option value='".$month."'>".$monName[$month]."\n"; $datetimeField .= "<option value='01'>Januar\n <option value='02'>Februar\n <option value='03'>März\n <option value='04'>April\n <option value='05'>Mai\n <option value='06'>Juni\n <option value='07'>Juli\n <option value='08'>August\n <option value='09'>September\n <option value='10'>Oktober\n <option value='11'>November\n <option value='12'>Dezember\n </select> "; $datetimeField .= "<input type='text' size='4' name='".$NameYear."' value='".$year."'>"; $datetimeField .= " "; $datetimeField .= "<input type='text' name='".$NameHour."' value='".$hour."' size='2'>:"; $datetimeField .= "<input type='text' name='".$NameMinute."' value='".$minute."' size='2'> Uhr"; if ($type=="End"){ if (empty($durationHours)){$durationHours=2;} if (empty($durationMinutes)){$durationMinutes="00";} $datetimeField .= "<br><input type='radio' name='endType' value='duration' ".$check2."> <input type='test' name='".$NameDurationHours."' value='".$durationHours."' size='2'> Studen <input type='test' name='".$NameDurationMinutes."' value='".$durationMinutes."' size='2'> Minuten"; } return $datetimeField; } #===================================== function frequency($freq,$interval,$wday,$mday,$mon,$yrday,$wkno,$until,$exdate){ # echo "<p>in edit event".$freq."</p>"; if (strlen($until)<8){$count=$until;}else{$count=1;} if (strlen($wday)==3){ $nten=substr($wday,0,1);$wday=substr($wday,1,2); }else if(strlen($wday>3)){ $setFreq="free;"; } $ntenName=array("vorletzten","letzten","jeden","ersten","zweiten","dritten","vierten"); $monName=array("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"); $wdayName['MO']="Montag"; $wdayName['TU']="Dienstag"; $wdayName['WE']="Mittwoch"; $wdayName['TH']="Donnerstag"; $wdayName['FR']="Freitag"; $wdayName['SA']="Sonnabend"; $wdayName['SU']="Sonntag"; $freqType="<input type='hidden' name='freq' value='".$freq."'> <input type='submit' name='setFreq' value='täglich'><br> <input type='submit' name='setFreq' value='wöchentlich'><br> <input type='submit' name='setFreq' value='monatlich'><br> <input type='submit' name='setFreq' value='jährlich'><br> <input type='submit' name='setFreq' value='freie Eingabe'>"; $rruleField="<table border='1'><tr><td>\n".$freqType."</td>\n"; if (!empty($_POST['setFreq'])){ $freqSwitch=substr($_POST['setFreq'],0,1); }else if (empty($freq)){ $freqSwitch="m"; }else if(!empty($_POST['freqSwitch'])){ $freqSwitch=$_POST['freqSwitch']; }else if(strlen($wday)>4 OR !empty($mday)){ $freqSwitch="f"; }else{ $freqSwitch=$freq[0]; } if ($freqSwitch=="S"){$freqSwitch="m";} $rruleField .= "<input type='hidden' name='freqSwitch' value='".$freqSwitch."'>\n"; switch($freqSwitch){ case "d": /* dayly */ if ($_POST['freqMod']=="Each"){ $check1=""; $check2="checked"; }else{ $check1="checked"; $check2=""; } if (empty($interval)){$interval=1;} $rruleField .= "<td><input type='radio' name='freqMod' value='No' ".$check1."> Alle <input type='text' size='2' name='interval' value='".$interval."'> Tag(e) </td></tr>"; break; case "w": /* weekly */ if (empty($interval)){$interval=1;} $rruleField .= "<td> Jede <input type='text' size='2' name='interval' value='".$interval."'> . Woche <select name='wday' size='1'>\n"; if (!empty($wday)){$rruleField .= "<option value='".$wday."'>".$wdayName[$wday]."\n";} $rruleField .= "<option value='MO'>Montag\n <option value='TU'>Dienstag\n <option value='WE'>Mittwoch\n <option value='TH'>Donnerstag\n <option value='FR'>Freitag\n <option value='SA'>Sonnabend\n <option value='SU'>Sonntag\n </select></td></tr>"; break; case "m": /* monthly */ if ($_POST['freqMod']=="Day"){ $check1=""; $check2="checked"; }else{ $check1="checked"; $check2=""; } if (empty($interval)){$interval=1;} if (empty($mday)){$mday=1;} $rruleField .= "<td><input type='radio' name='freqMod' value='Week' ".$check1."> Am <select name='nten' size='1'>\n"; if (!empty($nten)){$rruleField .= "<option value='".$nten."'>".$ntenName[$nten+2]."\n";} $rruleField .= "<option value='1'>ersten\n <option value='2'>zweiten\n <option value='3'>dritten\n <option value='4'>vierten\n <option value='0'>jeden\n <option value='-1'>letzten\n <option value='-2'>vorletzten\n </select> . <select name='wday' size='1'>\n"; if (!empty($wday)){$rruleField .= "<option value='".$wday."'>".$wdayName[$wday]."\n";} $rruleField .= "<option value='MO'>Montag\n <option value='TU'>Dienstag\n <option value='WE'>Mittwoch\n <option value='TH'>Donnerstag\n <option value='FR'>Freitag\n <option value='SA'>Sonnabend\n <option value='SU'>Sonntag\n </select> jedes <input type='text' size='2' name='interval' value='".$interval."'>. Monats <br>"; $rruleField .= "<input type='radio' name='freqMod' value='Day' ".$check2."> Am <input type='text' size='2' name='mday' value='".$mday."'> . Tag jedes <input type='text' size='2' name='interval1' value='".$interval."'> . Monats </td></tr>"; break; case "y": /* yearly */ if ($_POST['freqMod']=="MonthWeekDay"){ $check1=""; $check2="checked"; }else{ $check1="checked"; $check2=""; } if (empty($mday)){$mday=1;} $rruleField .= "<td><input type='radio' name='freqMod' value='MonthDay' ".$check1."> Jeden <input type='text' size='2' name='mday' value='".$mday."'> . <select name='mon' size='1'>\n"; if (!empty($mon)){$rruleField .= "<option value='".$mon."'>".$monName[$mon-1]."\n";} $rruleField .= "<option value='1'>Januar\n <option value='2'>Februar\n <option value='3'>März\n <option value='4'>April\n <option value='5'>Mai\n <option value='6'>Juni\n <option value='7'>Juli\n <option value='8'>August\n <option value='9'>September\n <option value='10'>Oktober\n <option value='11'>November\n <option value='12'>Dezember\n </select> <br>"; $rruleField .= "<input type='radio' name='freqMod' value='MonthWeekDay' ".$check2."> Am <select name='nten' size='1'>\n"; if (!empty($nten)){$rruleField .= "<option value='".$nten."'>".$nten."\n";} $rruleField .= "<option value='1'>ersten\n <option value='2'>zweiten\n <option value='3'>dritten\n <option value='4'>vierten\n <option value='0'>jeden\n <option value='-1'>letzten\n <option value='-2'>vorletzten\n </select> . <select name='wday' size='1'>\n"; if (!empty($wday)){$rruleField .= "<option value='".$wday."'>".$wdayName[$wday]."\n";} $rruleField .= "<option value='MO'>Montag\n <option value='TU'>Dienstag\n <option value='WE'>Mittwoch\n <option value='TH'>Donnerstag\n <option value='FR'>Freitag\n <option value='SA'>Sonnabend\n <option value='SU'>Sonntag\n </select> im <select name='mon1' size='1'>\n"; if (!empty($mon)){$rruleField .= "<option value='".$mon."'>".$monName[$mon-1]."\n";} $rruleField .= "<option value='1'>Januar\n <option value='2'>Februar\n <option value='3'>März\n <option value='4'>April\n <option value='5'>Mai\n <option value='6'>Juni\n <option value='7'>Juli\n <option value='8'>August\n <option value='9'>September\n <option value='10'>Oktober\n <option value='11'>November\n <option value='12'>Dezember\n </select></td></tr>"; break; #default: case "f": /* freie Eingabe */ if ($freq=="free"){$freq="monthly";} $rruleField .= "<td><strong>Falls du dich mit dem iCal Format nicht auskennst, ließ bitte die <a href='iCalendar.htm'>Spezifikation</a>, <a href='http://en.wikipedia.org/wiki/ICalendar'>http://en.wikipedia.org/wiki/ICalendar</a>.</strong><br><table border='0'>"; $rruleField .= "<tr><td>Frequenz:</td><td><input name='freq' value='".$freq."' length='10'> </td><td>[dayly, weekly, monthly, yearly]</td></tr>"; $rruleField .= "<tr><td>Interval:</td><td><input name='interval' value='".$interval."' length='10'></td><td>[1-N]</td></tr>"; $rruleField .= "<tr><td>ByWeekday:</td><td><input name='wday' value='".$wday."' length='10'></td><td>[MO, TU, WE, TH, FR, SA, SU]</td></tr>"; $rruleField .= "<tr><td>ByMonthday:</td><td><input name='mday' value='".$mday."' length='10'></td><td>[1-31]</td></tr>"; $rruleField .= "<tr><td>ByYearday:</td><td><input name='yrday' value='".$yrday."' length='10'></td><td>[1-365]</td></tr>"; $rruleField .= "<tr><td>ByWeeknumber:</td><td><input name='wkno' value='".$wkno."' length='10'></td><td>[1-52]</td></tr>"; $rruleField .= "<tr><td>ByMonth</td><td><input name='mon' value='".$mon."' length='10'></td><td>[1-12]</td></tr>"; $rruleField .= "</table></td></tr>"; break; } //switch $finalField= timeField("until",$datetime); if ($_POST['finalType']=="count"){ $check4="checked"; }else if ($_POST['finalType']=="date"){ $check5="checked"; }else{ $check3="checked"; } $rruleField .= "<tr><td>Serienende:</td><td> <input type='radio' name='finalType' value='none' ".$check3."> kein Ende<br> <input type='radio' name='finalType' value='count' ".$check4."> nach <input type='text' name='count' value='".$count."' size='2'> Wiederholungen<br> <input type='radio' name='finalType' value='date' ".$check5."> am ".$finalField."</td></tr>"; $rruleField .= "</table>"; if (!empty($exdate) OR $_POST['setExdate']=="Ausnahmen"){ $rruleField .= "<tr><td>Ausnahmen:</td><td>jedoch nicht an folgenden mit Komma getrennten Tagen:<br><input name='exdate' value='".$exdate."' length='50'> yyyy-mm-dd</td><td></td></tr>"; }else{ $rruleField .= "<tr><td></td><td></td><td> <input type='submit' name='setExdate' value='Ausnahmen'></td></tr>"; } return $rruleField; } ?> 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!