示例#1
0
/**
 * Metainformation catalogue
 * --------------------------------------------------
 *
 * HARVEST for MicKa
 *
 * @link       http://www.bnhelp.cz
 * @package    Micka admin
 * @category   Metadata
 * @version    20140522
 */
function adminHarvest($harvestAction)
{
    $params = array();
    while (list($key, $val) = each($_REQUEST)) {
        $params[$key] = htmlspecialchars($val);
    }
    $harvest = new Harvest(null, null);
    $rs = array();
    $rs['types'] = array_flip($harvest->types);
    $rs['error'] = '';
    //my_print_r($params); my_print_r($harvestAction); //exit;
    switch ($harvestAction) {
        case 'save':
            $overwrite = isset($params['new']) && $params['new'] == 1 ? false : true;
            if ($params['handlers']) {
                $handlers = "email:" . $params['handlers'];
            }
            if ($params['period'] <= 0) {
                $params['period'] = "0";
            }
            if ($params['ok']) {
                if (!canAction('*')) {
                    $params['active'] = 0;
                }
                $result = $harvest->setParameters($params['id'], $params['source'], $params['type'], $handlers, "P" . $params['period'] . "D", $params['filter'], $params['active'], $overwrite);
                if ($result['status'] == 'fail') {
                    $rs['error'] = $result['error'];
                }
            }
            break;
        case 'edit':
            if ($params['id'] && $result['status'] != 'fail') {
                $par = $harvest->getParameters($params['id']);
                $params = $par[0];
                $days = $par[0]['h_interval'] / 24;
                $params['period'] = $days;
                $email = explode(":", $params['handlers']);
                $params['handlers'] = $email[1];
            } else {
                $rs['new'] = '1';
            }
            $rs['values'] = $params;
            $rs['isadmin'] = canAction('*');
            return $rs;
        case 'delete':
            $harvest->delete($params['id']);
            break;
        default:
            break;
    }
    $rs['list'] = $harvest->getParameters();
    //my_print_r($rs); exit;
    return $rs;
}
示例#2
0
文件: Csw.php 项目: riskatlas/micka
 function harvest($io = true)
 {
     //var_dump($this->params);
     include PHPPRG_DIR . '/Harvest.php';
     include PHPPRG_DIR . '/CswClient.php';
     $cswFrom = new CSWClient();
     $harvestor = new Harvest($this, $cswFrom);
     // jen vrati hodnoty - nad ramec standardu
     if ($io == false) {
         $result = $harvestor->getParameters($this->params['ID']);
         header("Content-type: application/json");
         echo json_encode($result);
         exit;
     }
     // implicitni hodnota
     if (!$this->params['RESOURCETYPE']) {
         $this->params['RESOURCETYPE'] = "csw/2.0.2";
     }
     //--- save to database ---
     if ($this->params['HANDLERS']) {
         if (!$this->params['ID']) {
             $this->params['ID'] = $this->params['SOURCE'];
         }
         if ($this->params['HARVESTINTERVAL'] != '') {
             $result = $harvestor->setParameters($this->params['ID'], $this->params['SOURCE'], $this->params['RESOURCETYPE'], $this->params['HANDLERS'], $this->params['HARVESTINTERVAL'], "");
         } else {
             //TODO poslat hned uzivateli
             $result = $harvestor->runResource(array('source' => $this->params['SOURCE'], 'name' => 'instant', 'type' => $this->params['RESOURCETYPE']));
             $result = $this->updateResponse($result, "Update");
             $h = explode("|", $this->params['HANDLERS']);
             file_put_contents($h[0], $result);
             //FIXME - toto je docasne
         }
         $this->logText .= "HARVEST";
         // XML verze
         if (count($_GET) == 0) {
             // quick and dirty
             $this->xsl->load(PHPPRG_DIR . "/../xsl/HarvestResponse.xsl");
             $this->xp->importStyleSheet($this->xsl);
             $this->xp->setParameter('', 'timestamp', gmdate("Y-m-d\\TH:i:s"));
             // svetovy cas
             $processed = $this->xp->transformToXML($this->xml);
         } else {
             header("Content-type: application/json");
             echo json_encode($result);
             exit;
         }
         return $processed;
     } else {
         $result = $harvestor->runResource(array('source' => $this->params['SOURCE'], 'name' => 'blee', 'type' => $this->params['RESOURCETYPE']));
         return $this->updateResponse($result, "Update");
     }
 }