public function basic_view($alias, $display_item, $parent_item, $image_types, $encoded_seek_search_params, $search_position, $seek_search_params, $isthisCompoundObject, $previous_item, $next_item, $current_item_num, $totalitems)
 {
     $conf =& dmGetCollectionFieldInfo($alias);
     $itnum = $display_item['ptr'];
     $rc = dmGetItemInfo($alias, $itnum, $data);
     $parser = xml_parser_create();
     xml_parse_into_struct($parser, $data, $structure, $index);
     xml_parser_free($parser);
     dmGetImageInfo($alias, $itnum, $filename, $type, $width, $height);
     $filename = substr($filename, strrpos($filename, "/") + 1);
     $file_extension = GetFileExt($filename);
     if (in_array($file_extension, $image_types)) {
         $is_image = true;
         $dimensions = Image::fit_width($width, $height, 640);
         $scaled_width = $dimensions[0];
         $scaled_height = $dimensions[1];
         $scaling_factor = $dimensions[2];
         $file_url = "http://cdm9006.cdmhost.com/cgi-bin/getimage.exe?CISOROOT=" . $alias . "&CISOPTR=" . $itnum;
         $file_url .= "&DMWIDTH=" . $scaled_width . "&DMHEIGHT=" . $scaled_height . "&DMSCALE=" . $scaling_factor;
     } else {
         $is_image = false;
         $file_url = "http://cdm9006.cdmhost.com/cgi-bin/showfile.exe?CISOROOT=" . $alias . "&CISOPTR=" . $itnum;
         $encoded_file_url = urlencode("http://cdm9006.cdmhost.com/cgi-bin/showfile.exe?CISOROOT=" . $alias . "&CISOPTR=" . $itnum);
     }
     include 'basic_view.php';
 }
function &parseCPD($alias, $itnum, $xmlbuffer, &$type)
{
    $parser = xml_parser_create();
    xml_parse_into_struct($parser, $xmlbuffer, $structure);
    xml_parser_free($parser);
    $compound_itemsult = array();
    $type = "";
    foreach ($structure as $s) {
        if ($s["tag"] == "TYPE") {
            $type = $s["value"];
            break;
        }
    }
    /* Read the document title from the metadata */
    $rc = dmGetItemInfo($alias, $itnum, $data2);
    if ($rc == -1) {
        $doctitle = "";
    } else {
        $parser2 = xml_parser_create();
        xml_parse_into_struct($parser2, $data2, $structure2, $index2);
        xml_parser_free($parser2);
        $doctitle = $structure2[$index2["TITLE"][0]]["value"];
    }
    global $thisdoc;
    switch ($type) {
        case "Document":
            $thisdoc = "document";
            break;
        case "Document-PDF":
            $thisdoc = "PDFdoc";
            break;
        case "Postcard":
            $thisdoc = "postcard";
            break;
        case "Picture Cube":
            $thisdoc = "picturecube";
            break;
        case "Monograph":
            $thisdoc = "monograph";
            break;
    }
    $n = 0;
    if ($type == "Document" || $type == "Document-PDF" || $type == "Postcard" || $type == "Picture Cube") {
        $compound_itemsult[$n]["index"] = $n;
        $compound_itemsult[$n]["title"] = $doctitle;
        $compound_itemsult[$n]["ptr"] = "";
        $compound_itemsult[$n]["file"] = "";
        $n++;
        foreach ($structure as $s) {
            if ($s["tag"] == "PAGETITLE") {
                $title = $s["value"];
            } elseif ($s["tag"] == "PAGEFILE") {
                $file = $s["value"];
            } elseif ($s["tag"] == "PAGEPTR") {
                $ptr = $s["value"];
                $compound_itemsult[$n]["index"] = $n;
                $compound_itemsult[$n]["title"] = $title;
                $compound_itemsult[$n]["ptr"] = $ptr;
                $compound_itemsult[$n]["file"] = $file;
                $n++;
            }
        }
    } elseif ($type == "Monograph") {
        $monolvl = array();
        for ($i = 0; $i < 9; $i++) {
            $monolvl[$i] = 0;
        }
        $level = 0;
        $firsttime = 1;
        $leveladjust = 0;
        foreach ($structure as $s) {
            if ($s["tag"] == "PAGETITLE") {
                $title = $s["value"];
            } elseif ($s["tag"] == "PAGEPTR") {
                $ptr = $s["value"];
                for ($i = $level + 1; $i < 9; $i++) {
                    $monolvl[$i] = 0;
                }
                $monolvl[$level] = $monolvl[$level] + 1;
                $compound_itemsult[$n]["index"] = ComputeLevel($monolvl);
                $compound_itemsult[$n]["title"] = $title;
                $compound_itemsult[$n]["ptr"] = $ptr;
                $n++;
            } elseif ($s["tag"] == "NODETITLE") {
                $title = isset($s["value"]) ? $s["value"] : '';
                $level = $s["level"] - 3 + $leveladjust;
                if ($level < 0) {
                    $level = 0;
                } elseif ($level > 9) {
                    $level = 9;
                }
                if ($level == 0 && $monolvl[0] == 0 && $firsttime == 1) {
                    $firsttime = 0;
                    $compound_itemsult[$n]["index"] = "0";
                    $title = $doctitle;
                } else {
                    if ($level == 0) {
                        $leveladjust = 1;
                        $level = $level + 1;
                    }
                    if ($level < 1) {
                        $level = 1;
                    }
                    $monolvl[$level - 1] = $monolvl[$level - 1] + 1;
                    for ($i = $level; $i < 9; $i++) {
                        $monolvl[$i] = 0;
                    }
                    $compound_itemsult[$n]["index"] = ComputeLevel($monolvl);
                }
                $compound_itemsult[$n]["title"] = $title;
                $compound_itemsult[$n]["ptr"] = "";
                $n++;
            }
        }
    }
    return $compound_itemsult;
}
<?php

$conf =& dmGetCollectionFieldInfo($alias);
$rc = dmGetItemInfo($alias, $itnum, $data);
$parser = xml_parser_create();
xml_parse_into_struct($parser, $data, $structure, $index);
xml_parser_free($parser);
$dmrotate = isset($_GET["DMROTATE"]) ? $_GET["DMROTATE"] : '0';
if (isset($structure[$index['TITLE'][0]]["value"])) {
    $item_title = $structure[$index['TITLE'][0]]["value"];
}
?>
<div id="item-view">
  <div class="wrapper mod">
    <ul id="item-actions">
      <?php 
if ($pan_enabled) {
    ?>
        <li class="zoom">
          ZOOM:
          <?php 
    if ($image_zoomout_link != '') {
        ?>
            <a href="<?php 
        echo $self;
        ?>
?<?php 
        echo $image_zoomout_link;
        ?>
" class="zoom-out" title="Zoom Out"><img src="<?php 
        echo SEEKING_MICHIGAN_HOST;
function get_item($alias, $itnum)
{
    $rc = dmGetItemInfo($alias, $itnum, $xmlbuffer);
    if ($rc == -1) {
        echo "This file is restricted.";
        exit;
    }
    $pageptr = "CISOROOT=" . $alias . "&amp;CISOPTR=" . $itnum;
    $parser = xml_parser_create();
    xml_parse_into_struct($parser, $xmlbuffer, $structure, $index);
    xml_parser_free($parser);
    $filetype = GetFileExt($structure[$index["FIND"][0]]["value"]);
    return array('alias' => $alias, 'ptr' => $itnum, 'structure' => $structure, 'index' => $index, 'title' => $structure[$index["TITLE"][0]]["value"], 'query_string' => $pageptr, 'settings' => get_item_settings($alias, $itnum, $filetype), 'filetype' => $filetype, 'thumbnail' => "/cgi-bin/thumbnail.exe?CISOROOT=" . $alias . "&amp;CISOPTR=" . $itnum);
}
예제 #5
0
<?php

include "../dmscripts/DMSystem.php";
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 . "&amp;CISOPTR=" . $ptr;
                } else {
                    $rc3 = GetParent($alias, $ptr, $path);
                    if ($rc3 >= 0) {
                        $link = "/seeking_michigan/discover_item_viewer.php?CISOROOT=" . $alias . "&amp;CISOPTR=" . $rc3 . "&amp;CISOSHOW=" . $ptr;
                    } else {
                        $link = "/seeking_michigan/discover_item_viewer.php?CISOROOT=" . $alias . "&amp;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";
예제 #6
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;
}
예제 #7
0
 public static function create($alias, $itnum, $subitnum)
 {
     dmGetItemInfo($alias, $itnum, $xmlbuffer);
     return ItemFactory::create_from_xml($alias, $itnum, $subitnum, $xmlbuffer);
 }
예제 #8
0
 public function xml()
 {
     $xml = $this->_xml;
     if ($xml == NULL) {
         dmGetItemInfo($this->alias, $this->itnum, $xml);
         $this->_xml = $xml;
     }
     return $xml;
 }