public static function get_alias($params) { global $thisfile, $specifyCollection; $a = array(); if (isset($params["CISOPARM"])) { $parm = explode(":", urldecode($params["CISOPARM"])); $cr = explode(" ", $parm[0]); if ($cr[0] == "all") { $catlist =& dmGetCollectionLIst(); for ($i = 0; $i < count($catlist); $i++) { $a[$i] = trim($catlist[$i]['alias']); } } else { for ($i = 0; $i < count($cr) - 1; $i++) { $a[$i] = isset($cr[$i]) ? trim($cr[$i]) : 0; } } } else { if (isset($params["CISOROOT"])) { if ($params["CISOROOT"] == "all") { $catlist =& dmGetCollectionList(); for ($i = 0; $i < count($catlist); $i++) { $a[$i] = trim($catlist[$i]['alias']); } } else { $cisostr = explode(',', urldecode($params["CISOROOT"])); for ($i = 0; $i < count($cisostr); $i++) { $a[$i] = isset($cisostr[$i]) ? trim($cisostr[$i]) : 0; } } } } return $a; }
public static function all_collections() { $a = array(); $catlist = &dmGetCollectionList(); for ($i = 0; $i < count($catlist); $i++){ $a[$i] = trim($catlist[$i]['alias']); } return($a); }
<? include("config.php"); $breadcrumbs = array('Home' => SEEKING_MICHIGAN_HOST, 'Seek' => 'seek_advanced.php', 'Advanced Search' => ''); app()->partial('header', array('body_class' => 'seek', 'breadcrumbs' => $breadcrumbs, 'js_includes' => array('advanced_search'), 'title' => 'Advanced: Seek — Seeking Michigan')); $collections = dmGetCollectionList(); ?> <div id="section-header"> <h1><a href="seek_advanced.php">Seek</a></h1> </div> <div id="main-content"> <div class="wrapper"> <div id="advanced-search"> <div class="wrapper"> <h2>Advanced Search</h2> <p class="intro"> You can construct a search by combining up to four search criteria and by selecting a list of collections that will be searched. Any criteria left blank will not be used in the search. To select which collections to search, highlight one or more collections in the left-hand box (on Windows and Linux you can CTRL+Click to select multiple collections, Command+Click on Mac OS). Then click the ">>" button to add the selected collections to the right-hand box. </p> <h3>Build Your Advanced Search</h3> <form action="seek_results.php" class="mod"> <? for($i = 1; $i <= 4; $i++) { app()->partial('criterion', array('num' => $i));
function isSingleColl() { global $protocol, $isCiso, $isCustom; $s = "all"; if ($protocol . "://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] != $protocol . "://" . $_SERVER['HTTP_HOST'] . "/index.php") { if ($isCustom) { $thisdir = "/" . $isCiso; } else { $thisdir = str_replace("cdm-", "", dirname($_SERVER["PHP_SELF"])); } $catlist =& dmGetCollectionList(); for ($i = 0; $i < count($catlist); $i++) { if ($catlist[$i]['alias'] == $thisdir) { $s = $thisdir; break; } } } return $s; }
function &dmQuery43($alias, $searchstring, $field, $sortby, $maxrecs, $start, &$total, $suppress = 0, $docptr = -1) { $record = array(); $pathmap = array(); $n = 0; $numsearchfields = count($searchstring); if ($numsearchfields == 0 && count($alias) != 1) { /* can only browse one collection */ $total = 0; } else { if (count($alias) == 0) { print "Error, no collections specified<br>\n"; exit; } $catlist =& dmGetCollectionList(); for ($i = 0; $i < count($catlist); $i++) { $pathmap[$catlist[$i]["alias"]] = $catlist[$i]["path"]; } if ($alias[0] == "all") { $dblist = $catlist[0]["alias"]; for ($i = 1; $i < count($catlist); $i++) { $dblist = $dblist . " " . $catlist[$i]["alias"]; } } else { $dblist = $alias[0]; for ($i = 1; $i < count($alias); $i++) { $dblist = $dblist . " " . $alias[$i]; } } if (count($sortby) == 0) { $sortlist = ""; } else { $sortlist = $sortby[0]; for ($i = 1; $i < count($sortby); $i++) { $sortlist = $sortlist . " " . $sortby[$i]; } } for ($i = 0; $i < 4; $i++) { $fieldmap[$i] = -1; } $multimode = 0; for ($i = 0; $i < $numsearchfields; $i++) { $searchstring[$i]["string"] = strtr($searchstring[$i]["string"], "`~!@#\$%^&-_+={}[]|;:<>,.?/", " "); if ($searchstring[$i]["field"] == "CISOSEARCHALL") { $multimode = 1; // $searchstring[$i]["string"] = strtolower($searchstring[$i]["string"]); } if (trim($searchstring[$i]["string"]) != "") { if ($searchstring[$i]["mode"] == "all") { $fieldmap[0] = $i; } elseif ($searchstring[$i]["mode"] == "exact") { $fieldmap[1] = $i; } elseif ($searchstring[$i]["mode"] == "any") { $fieldmap[2] = $i; } elseif ($searchstring[$i]["mode"] == "none") { $fieldmap[3] = $i; } } } $searchlist = ""; if ($multimode == 1) { /* Search across all fields */ if ($fieldmap[1] >= 0) { $searchlist = "(" . $searchstring[$fieldmap[1]]["string"] . ")"; } if ($fieldmap[0] >= 0) { if ($searchlist != "") { $searchlist = $searchlist . " and "; } $searchlist = $searchlist . "(" . AddOperator($searchstring[$fieldmap[0]]["string"], "and") . ")"; } if ($fieldmap[2] >= 0) { if ($searchlist != "") { $searchlist = $searchlist . " and "; } $searchlist = $searchlist . "(" . AddOperator($searchstring[$fieldmap[2]]["string"], "or") . ")"; } if ($fieldmap[3] >= 0) { if ($searchlist != "") { $searchlist = $searchlist . " not "; } else { $searchlist = "not "; } $searchlist = $searchlist . "(" . AddOperator($searchstring[$fieldmap[3]]["string"], "or") . ")"; } } else { /* Selected fields */ for ($i = 0; $i < $numsearchfields; $i++) { if (trim($searchstring[$i]["string"]) != "") { if ($searchstring[$i]["mode"] == "all") { $searchlist = $searchlist . $searchstring[$i]["field"] . "=" . AddOperator($searchstring[$i]["string"], "and") . "\n"; } elseif ($searchstring[$i]["mode"] == "exact") { $searchlist = $searchlist . $searchstring[$i]["field"] . "=" . $searchstring[$i]["string"] . "\n"; } elseif ($searchstring[$i]["mode"] == "any") { $searchlist = $searchlist . $searchstring[$i]["field"] . "=" . AddOperator($searchstring[$i]["string"], "or") . "\n"; } elseif ($searchstring[$i]["mode"] == "none") { $searchlist = $searchlist . $searchstring[$i]["field"] . "=not " . AddOperator($searchstring[$i]["string"], "or") . "\n"; } } } } if (!extension_loaded('DmSearch')) { if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) { dl('php_dmsearchmod.dll'); } else { dl('dmsearch.so'); } } $dmid = dmGetUser(); if (isset($_SERVER["REMOTE_ADDR"])) { $remote_addr = $_SERVER["REMOTE_ADDR"]; } else { $remote_addr = ""; } if ($suppress == 1) { $multimode = $multimode + 20; } $result = dmsearch($dblist, $searchlist, $multimode, $docptr, $start, $maxrecs, $sortlist, $dmid, $remote_addr); if (substr($result, 0, 1) == "0") { $total = 0; $n = 0; $temp = strtok($result, "\n"); $p1 = strpos($temp, " "); if ($p1 != FALSE) { $p2 = strpos($temp, " ", $p1 + 1); if ($p2 != FALSE) { $total = (int) trim(substr($temp, $p2 + 1)); } } while (($temp = strtok("\n")) != FALSE) { $p1 = strpos($temp, " "); $p2 = strpos($temp, " ", $p1 + 1); $record[$n]["collection"] = trim(substr($temp, 0, $p1)); $record[$n]["pointer"] = trim(substr($temp, $p1 + 1, $p2 - $p1 - 1)); $record[$n]["filetype"] = trim(substr($temp, $p2 + 1)); $record[$n]["parentobject"] = GetParent($record[$n]["collection"], $record[$n]["pointer"], $pathmap[$record[$n]["collection"]]); $n++; } } else { /* Error */ $total = 0; } } /* Check if there are any metadata fields to return */ if (count($field) > 0) { for ($i = 0; $i < count($record); $i++) { dmGetItemInfo($record[$i]["collection"], $record[$i]["pointer"], $data); if (!($parser = xml_parser_create())) { print "Error creating XML parser<br>"; exit; } xml_parse_into_struct($parser, $data, $structure, $index); xml_parser_free($parser); for ($j = 0; $j < count($field); $j++) { $tag = strtoupper($field[$j]); if (array_key_exists($tag, $index)) { if (array_key_exists("value", $structure[$index[$tag][0]])) { $record[$i][$field[$j]] = $structure[$index[$tag][0]]["value"]; } else { $record[$i][$field[$j]] = ""; } } else { $record[$i][$field[$j]] = ""; } } } } return $record; }