Example #1
0
 private function delete()
 {
     $export = new MdExport($usr);
     $data = $export->getData(array($this->params['QSTR']));
     //TODO zaznamy apod ...
     $c = new MdImport();
     $result = $c->dataToMd($data, 'delete');
     if ($this->params['DEBUG'] == 1) {
         var_dump($result);
     }
     return $result;
 }
Example #2
0
 function importService($url, $service, $user, $group_e, $group_v, $mds, $langs, $lang = 'eng', $public = 0, $updateType = '')
 {
     /*---------------------------------------------------------------------
     	Import metadat ze sluzby
     
           		$filename   nazev xml souboru
     		  	$service    nazev typu sluzby (WMS, WFS, WCS, CSW, ...) podporovano zatim WMS
     			$user       prihlaseny uzivatel
     			$group_e   	skupina pro editaci
     			$$group_v   skupina pro prohlizeni
     			$mds  		standard metadat
     			$langs    	seznam pouzitych jazyku
         		$lang		jazyk zaznamu
     			$public		zda bude zaznam verejny
         ---------------------------------------------------------------------*/
     //$mod = 'all'; // mod pro import, all importuje vse, neco jineho preskakuji uuid
     $id = "1";
     // identifikator zaznamu
     $rs = -1;
     //-----------------------------------------------
     $url = trim(htmlspecialchars_decode($url));
     if (strpos($langs, $lang) === false) {
         $langs = $lang . "|" . $langs;
     }
     // kontrola, zda je jazyk zaznamu v seznamu pouzitych jazyku
     if (!strpos(strtolower("." . $url), "http")) {
         $url = "http://" . $url;
     }
     if (!strpos(strtolower($url), "service=")) {
         if (!strpos($url, "?")) {
             $url .= "?";
         } else {
             $url .= "&";
         }
         $url .= "SERVICE=" . $service;
     }
     if (!strpos(strtolower($url), "getcapabilities")) {
         $url .= "&REQUEST=GetCapabilities";
     }
     //echo "input url= <a href='$url'>$url</a>"; //TODO potom dat do reportu
     $xp = new XsltProcessor();
     $xml = new DomDocument();
     $xsl = new DomDocument();
     @($s = file_get_contents($url));
     if (!$s) {
         exit("<br>No data/connection! " . BACKURL);
     }
     //TODO QUICK HACK - udleat pres sablony nebo DOM
     if (strpos($s, 'exception')) {
         exit("<br><br>Exception: " . $s . " " . BACKURL);
     }
     if (!@$xml->loadXML($s)) {
         exit("<br><br>Not valid service!  " . BACKURL);
     }
     $xslName = PHPINC_DIR . "/xsl/" . strtolower($service) . ".xsl";
     // vyber sablony
     $md = $this->xml2array($xml, $xslName);
     if (!$md['MD_Metadata'][0]["language"][0]["LanguageCode"][0]['@']) {
         $md['MD_Metadata'][0]["language"][0]["LanguageCode"][0]['@'] = $lang;
     }
     $url1 = $md["MD_Metadata"][0]["distributionInfo"][0]["MD_Distribution"][0]["transferOptions"][0]["MD_DigitalTransferOptions"][0]["onLine"][0]["CI_OnlineResource"][0]["linkage"][0]["@"];
     //var_dump($md);
     // --- vyhledani duplicitniho zaznamu ---
     if ($updateType == "all") {
         require PHPPRG_DIR . '/MdExport.php';
         $export = new MdExport($_SESSION['u'], 1, 10, null);
         $ddata = $export->getdata(array("@linkage = '" . $url1 . "'", "And", "@type = 'service'"));
         // nalezen záznam
         if (count($ddata["data"]) > 0) {
             if (count($ddata["data"]) > 1) {
                 echo 'More records found with this URL.';
                 foreach ($ddata["data"] as $row) {
                     echo "<br>" . $row['uuid'] . ": " . $row['title'];
                 }
                 echo '<br>The record will be added as new.';
             } else {
                 echo "found record: <b>" . $ddata["data"][0]['uuid'] . "</b> " . $ddata["data"][0]['title'];
                 $md['MD_Metadata'][0]["fileIdentifier"][0]['@'] = $ddata["data"][0]['uuid'];
             }
         }
     }
     // ulozeni dat
     $c = new MdImport();
     $c->setTableMode($this->table_mode);
     $c->mds = $mds;
     if ($group_e) {
         $c->group_e = $group_e;
     }
     if ($group_v) {
         $c->group_v = $group_v;
     }
     $c->setDataType($public);
     // nastavení veřejného záznamu
     $c->lang = $lang;
     // pokud není v datech, použije se toto nastavení jazyka
     //$c->stop_error = true; // pokud dojde k chybě při importu pokračuje
     $c->stop_error = false;
     // pokud dojde k chybě při importu pokračuje
     $rs = $c->dataToMd($md, 'update');
     return $rs;
 }