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 . "&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 . "&CISOPTR=" . $itnum); }
<?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 . "&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";
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; }
public static function create($alias, $itnum, $subitnum) { dmGetItemInfo($alias, $itnum, $xmlbuffer); return ItemFactory::create_from_xml($alias, $itnum, $subitnum, $xmlbuffer); }
public function xml() { $xml = $this->_xml; if ($xml == NULL) { dmGetItemInfo($this->alias, $this->itnum, $xml); $this->_xml = $xml; } return $xml; }