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;
 }
Ejemplo n.º 2
0
  public static function all_collections() {
    $a = array();
    $catlist = &dmGetCollectionList();
    for ($i = 0; $i < count($catlist); $i++){
      $a[$i] = trim($catlist[$i]['alias']);
    }

    return($a);
  }
Ejemplo n.º 3
0
<?
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 &mdash; 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 "&gt;&gt;" 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;
}
Ejemplo n.º 5
0
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;
}