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

Module

Download

SMFinder_Query_ABC

Wird verwendet von:
SMFinder_Edit_EventFields
SMFinder_Main
SMFinder_Query_ABC

Alphabetische Auflistung aller Einträge vom Typ $element.

Dabei entscheidet das Argument $handle, was beim Klick auf einen Eintrag aus der Liste geschehen soll:

  • Edit
    Der Eintrag wird komplett gelesen und ans Bearbeitungsformular übergeben.
  • Query
    Der Eintrag wird angezeigt.
  • Form
    Jeder Eintrag bekommt eine Nummer und wird als Auswahl in ein Formular eingebunden.
  • SHOWorganizer
    Sortierung der Termine nach Veranstalter.
  • SHOWlocation
    Sortierung der Termine nach Veranstaltungsort.
<?php /* published under GPL www.gnu.org/licenses/gpl.html */
function SMFinder_Query_ABC($handle,$element){
  include("SMFinder_Config.php");
  include("SMFinder_Query_getAllUID.php");
  if (empty($handle)){$handle=$_GET['handle'];}
  if ($handle=="location" OR $handle=="organizer" OR $handle=="contact"){
    $type=$handle."No";
    $handle="Form";
  }else{
    $type="No";
  }
  $status=$_GET['status'];
  if($GLOBALS['debug']){
    echo "<b>SMFinder_Query_ABC.php</b> element=".$element.#
      " handle=".$handle." status=".$status."<br>";
  }
  $ABC=array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","*");
  
  /* get all entries */
  switch ($element){
  case "address":
    $field="fn";
    if (!empty($_GET['date'])){$searchString=$_GET['date'];$field="date";}
    break;
  case "event":
    $searchString="";
    if ($handle=="Query"){$field="summary";}
    if ($handle=="organizerList"){$handle="SHOWorganizer";$field="organizer";}
    if ($handle=="locationList"){$handle="SHOWlocation";$field="location";}
    if ($handle=="Edit"){$field="summary";}
    break;
  case "link":
    $searchString="bookmark";$field="refUID";
    $searchString="";$field="URL";
    break;
  }
  list($UIDs,$stati,$names) = SMFinder_Query_getAllUID($element,$searchString,$field);
  for($i=0; $i<count($UIDs); $i++){
    /* test validity of entries */
    $flag=false;
    switch ($element){
    case "address":
      if(!empty($status)){
	/* zeige nur gesuchte Sorte */
	if($stati[$i]==$status){
	  $flag=true;
	  $bgcolor="";
	}else{
	  $flag=false;
	  $bgcolor="class='notgood' ";
	}
      }elseif($_SESSION['IamGod']){
	/* Admin sieht alles */
	$flag=true;
	$bgcolor=$color[$stati[$i]];
      }elseif($stati[$i]!="delete"){
	/* to edit show all not deleted */
	$flag=true;
	$bgcolor=$color[$stati[$i]];
      }

      break;
    case "event":
      if ($stati[$i]=="ok"){
	$flag=true;$bgcolor="";
      }elseif ($stati[$i]=="new"){
	if ($handle=="Query"){
	  $flag=false;
	}else{
	  $flag=true;
	}
	$bgcolor="class='mostly' ";
      }elseif ($stati[$i]=="delete" OR $stati[$i]=="inactive"){
	$flag=false;$bgcolor="class='notgood' ";
      }else{
	if ($handle=="Query"){
	  $flag=false;
	}else{
	  $flag=true;
	}
      }
      break;
    case "link":
      # $names are used for $desc
      $flag=false;
      if ($stati[$i]<100){$flag=false;$bgcolor="class='unknown' ";}
      if ($stati[$i]>=200){$flag=true;$bgcolor="class='good' ";}
      if ($stati[$i]>=300){$flag=true;$bgcolor="class='mostly' ";}
      if ($stati[$i]>=400){$flag=false;$bgcolor="class='notgood' ";}
      $URLs[$i]=dropCharacters("http://",$UIDs[$i]);
      $URLs[$i]=dropCharacters("https://",$URLs[$i]);
      $URLs[$i]=dropCharacters("ftp://",$URLs[$i]);
      $URLs[$i]=dropCharacters("www.",$URLs[$i]);
      $desc[$i]=str_replace("<crlf />","<br>",$names[$i]);
      break;
    }

    /* collect valid entries */
    if ($flag){
      if ($element=="link"){
	$character=sortByInitial($URLs[$i],$ABC);
      }else{
	$character=sortByInitial($UIDs[$i],$ABC);
      }
      ${$character}.="<li><span ".$bgcolor."> ";
      if($_SESSION['IamGod'] AND $element=="link"){${$character}.="<a target='_new' href='".$UIDs[$i]."'>GO</a>";}
      ${$character}.=" </span> ";
      switch ($handle){
      case "Edit":
	${$character}.="<a href='".$_SERVER['PHP_SELF']."?what2do=READ".$element."&UID=".$UIDs[$i]."'>".$UIDs[$i]."</a><br>".$desc[$i];
	break;
      case "Query":
	if ($element=="link"){
	  ${$character}.="<a href='".$UIDs[$i]."'>".$URLs[$i]."</a><br>   ".$desc[$i];
	}else{
	  ${$character}.="<a href='".$_SERVER['PHP_SELF']."?element=".$element."&what2do=SHOW".$element."&UID=".$UIDs[$i]."'>".$names[$i]."</a>";
	}
	break;
      case "Form":
	$No++;
	$NoName=sprintf("%3.0d",$No);
	${$character}.="<input type='submit' name='".$type."' value='".$NoName."'><input type='hidden' name='UID".$No."' value='".$UIDs[$i]."'> ".$names[$i];
	break;
      case "SHOWorganizer":
	  ${$character}.="<a href='".$_SERVER['PHP_SELF']."?element=".$element."&what2do=SHOWorganizer&UID=".$UIDs[$i]."'>".$names[$i]."</a><br>".$desc[$i];
	break;
      case "SHOWlocation":
	  ${$character}.="<a href='".$_SERVER['PHP_SELF']."?element=".$element."&what2do=SHOWlocation&UID=".$UIDs[$i]."'>".$names[$i]."</a><br>".$desc[$i];
	break;
      }
      ${$character}.="</li>\n";
    }
  }


  /* compose output */
  $choiceList ="<center>";
  for ($j=0;$j<count($ABC);$j++){
    $choiceList.="<a href='#".$ABC[$j]."'>".$ABC[$j]."</a> ";
  }
  $choiceList .="</center>";

  if ($handle!="Form"){$listType="ol";}else{$listType="ul";}
  for ($j=0; $j<count($ABC); $j++){
    if (!empty(${$ABC[$j]})){
      $choiceList .= "<a name='".$ABC[$j]."'></a><h2>".$ABC[$j]."</h2>\n";
      $choiceList .= "<".$listType.">".${$ABC[$j]}."</".$listType.">\n";
    }
  }
  if (count($UIDs)<=0){$choiceList .= "<p>Keine Einträge gefunden.</p>";}
  return $choiceList;
}


function sortByInitial($string,$ABC){
  for ($j=0; $j<count($ABC); $j++){
    if (eregi("\\".$ABC[$j],$string[0])){
      $character=$ABC[$j];
      break;
    }
    /* numbers, spezial characters */
    if ($ABC[$j]=="*"){$character="*";}
  }
  return $character;
}

function dropCharacters($redundant,$url){
  $pos=strpos($url,$redundant);
  $len=strlen($redundant);
  if ($pos===false){
    $string=$url;
  }else{
    $string=substr($url,$pos+$len);
  }
  return $string;
}
?>

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