function getMetadata() { $this->metadata = array(); $mdstart = 1; try { do { $metadata = new MdExport($_SESSION['u'], $mdstart, 25, ""); $metadata->only_public = TRUE; $flatParams = array(); $q = array("@type = 'service'"); list($xmlstr, $head) = $metadata->getXML($q, $flatParams); $this->xml->loadXML($xmlstr); $result = $this->xp->transformToXML($this->xml); //echo $result; eval($result); //echo "mdstart=$mdstart / $records\n"; $this->metadata = array_merge($this->metadata, $md); $mdstart += $returned; } while ($records >= $mdstart); } catch (Exception $e) { echo "catalogue not connected"; var_dump($e); exit; } return true; }
/** * Tvorba souboru XML * * @param string $user * @param string $uuid * @param string $xsltemplate * @param string $xml_from cache|data * @return string XML|FALSE */ function getXml($user, $uuid, $xsltemplate, $xml_from = 'cache') { setMickaLog("USER={$user}, UUID={$uuid}, XSL={$xsltemplate}", 'DEBUG', 'micka_lib_xml.php (getXML)'); $xml = FALSE; $in = array(); if ($uuid != '') { $in[] = "_UUID_ = '{$uuid}'"; $export = new MdExport($user); $export->xml_from = $xml_from; $xml_pom = $export->getXML($in, FALSE); setMickaLog('XML=' . $xml_pom, 'DEBUG', 'micka_lib_xml.php (getXML)'); if ($xsltemplate != '' && $export->xml_from == 'data' && $xml_pom != '') { setMickaLog('applyTemplate', 'DEBUG', 'micka_lib_xml.php (getXml)'); $xml_pom = applyTemplate($xml_pom, $xsltemplate); if ($xml_pom === FALSE) { setMickaLog('applyTemplate === FALSE', 'ERROR', 'micka_lib_xml.php (getXml)'); return $xml; } } if ($xml_pom != '') { $xml = $xml_pom; } } return $xml; }
function getRecordById() { $qstr = ""; if (!$this->params['ID']) { $this->exception(2, "ID", ""); } $ids = explode(",", $this->params['ID']); foreach ($ids as $id) { if ($id) { if ($qstr) { $qstr .= ","; } $qstr .= "'" . urldecode($id) . "'"; } } if ($this->params['DEBUG'] == 1) { var_dump($this->params['ID']); } //---- dotaz do Micky ------------------------------------------------------ $export = new MdExport($_SESSION['u'], 0, 25, $this->params['SORTBY']); //$export->xml_from = 'data'; // z puvodnich dat //if($this->params['FORMAT']=='text/html'){ $xmlstr = $export->getXML(array(), array("ID" => "({$qstr})"), true, true); //} //else { // list($xmlstr, $head) = $export->getXML(array(), array("ID" =>"($qstr)")); //} //-------------------------------------------------------------------------- if ($xmlstr == -1) { $this->exception(3, "Filter", "Invalid filter: " . $xmlstr); } $sablona = "micka2cat_19139"; if ($this->params['OUTPUTSCHEMA']) { if (!in_array($this->params['OUTPUTSCHEMA'], $this->schemas)) { $this->exception(3, "OUTPUTSCHEMA", $this->params['OUTPUTSCHEMA'] . " is not valid value."); } switch ($this->params['OUTPUTSCHEMA']) { case $this->schemas["gmd"]: $sablona = "micka2cat_19139"; break; case $this->schemas["atom"]: $sablona = "micka2atom"; break; case $this->schemas["dcat"]: $sablona = "micka2dcat"; break; default: $sablona = "micka2cat_dc"; break; } } switch ($this->getParamL('ELEMENTSETNAME')) { //TODO - nefunguje v sablone case 'brief': $sablona .= '_brief'; break; case 'summary': $sablona .= '_summary'; break; case 'full': default: $sablona .= '_full'; // podle standardu summary $this->params['ELEMENTSETNAME'] = "full"; break; } $this->logText .= "[ID=" . $qstr . "]"; //TODO - kaskadovani //---prevod XML do katalogu $this->xml->loadXML($xmlstr); $this->xsl->load(PHPPRG_DIR . "/../xsl/{$sablona}.xsl"); $this->xp->importStyleSheet($this->xsl); $this->xp->setParameter('', 'requestId', $this->params['REQUESTID']); $this->xp->setParameter('', 'thisPath', dirname($this->params['thisURL'])); $this->xp->setParameter('', 'LANGUAGE', $this->params['LANGUAGE']); $this->xp->setParameter('', 'ID', $this->params['ID']); $this->xp->setParameter('', 'version', $this->params['VERSION']); $this->xp->setParameter('', 'root', "csw:GetRecordByIdResponse"); $this->xp->setParameter('', 'elementSet', $this->getParamL('ELEMENTSETNAME')); $this->xp->setParameter('', 'user', $_SESSION["u"]); // --- HTML --- if ($this->params['FORMAT'] == 'text/html') { //$processed = $this->xp->transformToDoc($this->xml); //echo CATCLIENT_PATH."/xsl/iso2htmlFull.xsl"; exit; if ($params['TEMPLATE']) { $sablona = $params['TEMPLATE']; } else { $sablona = "iso2htmlFull_"; } //die(PHPPRG_DIR); $output = $this->asHTML($this->xml, PHPPRG_DIR . "/../xsl/{$sablona}.xsl"); // TODO - podle konfigurace $this->isXML = false; } else { $output = $this->xp->transformToXML($this->xml); } return $output; }
public function getMdXmlData($uuid, $xsltemplate = 'micka2one19139.xsl') { setMickaLog("UUID={$uuid}, XSL={$xsltemplate}", 'DEBUG', 'MdRecord.getMdXmlData'); require_once PHPPRG_DIR . '/MdExport.php'; $rs = ''; if ($uuid != '') { //$in = array(); //$in[] = "_UUID_ = '$uuid'"; $export = new MdExport($this->user); if ($this->table_mode == 'tmp') { $export->setTableMode('tmp'); $xml = $export->getXmlTmpMd($uuid); } else { $in = array(); $params = array(); $in[] = "_UUID_ = '{$uuid}'"; // TODO: použít params $export->xml_from = 'data'; $pom = $export->getXML($in, $params, FALSE); $xml = $pom[0]; } //setMickaLog('XML=' . $xml_pom, 'DEBUG', 'micka_lib_xml.php (getXML)'); if ($xsltemplate == '' && $xml != '') { $rs = $xml; } elseif ($xsltemplate != '' && $xml != '') { setMickaLog("applyTemplate {$xsltemplate}", 'DEBUG', 'MdRecord.getMdXmlData'); $xml = applyTemplate($xml, $xsltemplate); if ($xml === FALSE) { setMickaLog('applyTemplate === FALSE', 'ERROR', 'MdRecord.getMdXmlData'); } else { if ($xml != '') { $rs = $xml; } } } } if ($rs == '') { setMickaLog("XML empty", 'ERROR', 'MdRecord.getMdXmlData'); } return $rs; }
function run($qstring = "") { // prochazi cele repository $start = 1; $step = 50; $numResults = 0; // zpracovani dotazu if ($qstring) { $query = $this->csw->cql2sql($qstring); } else { $query = array(); } do { $export = new MdExport($_SESSION['u'], $start, $step, ""); list($xmlstr, $head) = $export->getXML($query, array()); //var_dump($head); die; //echo $xmlstr; die(); $this->xml->loadXML($xmlstr); $vety = $this->xml->getElementsByTagNameNS("http://www.isotc211.org/2005/gmd", "MD_Metadata"); $numResults = $this->xml->documentElement->getAttribute("numberOfRecordsMatched"); $this->refreshXpath(); $i = 0; foreach ($vety as $veta) { $this->collectResults($veta, $head[$i]); $i++; } $start += $step; } while ($start <= $numResults); return $this->result; }