Beispiel #1
0
 public function parent_item()
 {
     if ($this->_parent === NULL) {
         $parent_itnum = GetParent($this->alias, $requested_itnum, $this->collection_path);
         if ($parent_itnum != -1) {
             $this->_parent = new CompoundObject($this->alias, $parent_itnum);
         }
     }
     return $this->_parent;
 }
Beispiel #2
0
if (isset($_SERVER["QUERY_STRING"])) {
    $arglist = $_SERVER["QUERY_STRING"];
    $p = strpos($arglist, ",", 0);
    if ($p > 0) {
        $alias = substr($arglist, 0, $p);
        $ptr = substr($arglist, $p + 1);
        $rc = dmGetCollectionParameters($alias, $name, $path);
        if ($rc >= 0) {
            $rc2 = dmGetItemInfo($alias, $ptr, $buf);
            if ($rc2 > 0) {
                $find = GetXMLField("find", $buf);
                $ext = GetFileExt($find);
                if ($ext == "cpd") {
                    $link = "/seeking_michigan/discover_item_viewer.php?CISOROOT=" . $alias . "&CISOPTR=" . $ptr;
                } else {
                    $rc3 = GetParent($alias, $ptr, $path);
                    if ($rc3 >= 0) {
                        $link = "/seeking_michigan/discover_item_viewer.php?CISOROOT=" . $alias . "&CISOPTR=" . $rc3 . "&CISOSHOW=" . $ptr;
                    } else {
                        $link = "/seeking_michigan/discover_item_viewer.php?CISOROOT=" . $alias . "&CISOPTR=" . $ptr;
                    }
                }
                print "<html>\n";
                print "<head>\n";
                print "<title>Redirect URL</title>\n";
                $line = '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=' . $link . '">' . "\n";
                print "{$line}";
                print "</head>\n";
                print "<body>\n";
                print "</body>\n";
                print "</html>\n";
$show_all = isset($_GET["show_all"]) ? $_GET["show_all"] : false;
$printable = false;
if (isset($_GET['search'])) {
    $seek_search_params = $_GET['search'];
    $encoded_seek_search_params = urlencode($seek_search_params);
} else {
    if (isset($_POST['search'])) {
        $seek_search_params = $_POST['search'];
        $encoded_seek_search_params = urlencode($seek_search_params);
    }
}
$search_position = isset($_GET['search_position']) ? $_GET['search_position'] : 0;
$parent_item = get_item($alias, $requested_itnum);
$parent_filetype = GetFileExt($parent_item['structure'][$parent_item['index']["FIND"][0]]["value"]);
dmGetCollectionParameters($alias, $collection_name, $collection_path);
$parent_object_ptr = GetParent($alias, $requested_itnum, $collection_path);
if ($parent_object_ptr != -1) {
    $parent_itnum = $parent_object_ptr;
    include "discover/comp_obj_scr.php";
    $isthisCompoundObject = true;
    $display_item = $current_item;
    $itnum = $display_item['ptr'];
    $print_item = $display_item;
} else {
    if ($parent_filetype == 'cpd') {
        $parent_itnum = $requested_itnum;
        include "discover/comp_obj_scr.php";
        $isthisCompoundObject = true;
        $display_item = $current_item;
        $itnum = $display_item['ptr'];
        $printable = true;
Beispiel #4
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;
}