예제 #1
0
function smarty_block_query($params, $content, &$smarty, &$repeat)
{
    global $db, $db_prefix, $query, $view;
    if (isset($content)) {
        echo $content;
        return;
    }
    if (empty($params['var'])) {
        $smarty->trigger_error("assign: missing 'var' parameter");
        return;
    }
    $dbquery = html_to_db_query($query['submitted_query']);
    $pagesize = get_pagesize($dbquery, $view);
    $page = get_page($dbquery);
    $options = array('pagesize' => $pagesize, 'page' => isset($dbquery['page']) ? intval($dbquery['page']) : 1);
    $collectionid = $dbquery['collectionid'];
    if ($collectionid == '-1') {
        // search all collections, showing only a count of matching records
        $options['count'] = 1;
        $localCollections = query_local_collection_overview($dbquery, $options, $db, $db_prefix);
        $remoteCollections = get_remote_collections_links($db, $db_prefix);
        $result = array('result_type' => 'collections');
        $result['rs'] = array_merge($localCollections, $remoteCollections);
        // save the query structure in the session so that it can be re-used for an ajax request to get the remote counts
        if (!empty($remoteCollections)) {
            $remoteQueryStruct = transform_query($dbquery['querypiece'], true);
            if (empty($_SESSION['queries'])) {
                $_SESSION['queries'] = array();
            }
            $_SESSION['queries'][$_SESSION['counter']] = $remoteQueryStruct;
        }
    } else {
        // search a particular collection
        //error_reporting(E_ALL);
        include_once $config['includepath'] . 'remote.inc.php';
        if ($collection = get_remote_collection_info($collectionid)) {
            // search a remote collection
            $querystruct = transform_query($dbquery['querypiece'], true);
            $url = "http://{$collection['host']}/{$collection['soap_url']}";
            $soapparams = array('querystruct' => $querystruct, 'options' => $options);
            $result = queryRemoteServer($url, 'queryOverview', $soapparams);
            $result['local'] = 0;
            $result['remoteCollection'] = $collectionid;
        } else {
            // search a local collection
            $result = query_local_collection($dbquery, $options, $db, $db_prefix);
            $result['local'] = 1;
            $result['remoteCollection'] = 0;
        }
        $result['result_type'] = 'collection';
        //debug($result);
        //error_reporting(E_ALL);
    }
    if (!empty($result['error'])) {
        $smarty->trigger_error($result['error']);
        return;
    }
    //debug($result, false);
    $smarty->assign($params['var'], $result);
}
예제 #2
0
function smarty_block_query_image($params, $content, &$smarty, &$repeat)
{
    if (!isset($content)) {
        if (empty($params['id'])) {
            $smarty->trigger_error("assign: missing 'id' parameter");
            return;
        }
        if (empty($params['var'])) {
            $smarty->trigger_error("assign: missing 'var' parameter");
            return;
        }
        if (empty($params['remoteCollection'])) {
            $remoteCollectionId = 0;
        } else {
            $remoteCollectionId = $params['remoteCollection'];
        }
        global $db, $db_prefix, $query;
        $ids = explode(':', $params['id']);
        $collectionid = intval($ids[0]);
        $imageid = intval($ids[1]);
        if ($remoteCollectionId && ($collection = get_remote_collection_info($remoteCollectionId))) {
            $url = "http://{$collection['host']}/{$collection['soap_url']}";
            // search a remote collection
            $queryfields = array('collectionid' => $collectionid, 'imageid' => $imageid);
            $result = queryRemoteServer($url, 'queryDetail', $queryfields);
            $result['local'] = false;
        } else {
            // search a local collection
            $sql = "SELECT {$db_prefix}meta.collectionid AS collectionid\n    \t\t                          ,{$db_prefix}meta.imageid AS imageid\n    \t\t                          ,{$db_prefix}meta.type AS type\n    \t\t                          ,{$db_prefix}meta.status AS status\n    \t\t                                  ,{$db_prefix}meta.name1id, {$db_prefix}meta.name2id\n    \t\t\t\t\t\t\t\t\t\t  ,{$db_prefix}meta.name1 as name1text\n    \t\t                                  ,{$db_prefix}meta.name2 as name2text\n    \t\t\t\t\t\t\t\t\t\t  ,{$db_prefix}meta.addition,{$db_prefix}meta.title,{$db_prefix}meta.dating\n    \t\t\t\t\t\t\t\t\t\t  ,{$db_prefix}meta.material,{$db_prefix}meta.technique,{$db_prefix}meta.format\n    \t\t\t\t\t\t\t\t\t\t  ,{$db_prefix}meta.location as city\n    \t\t                                  ,{$db_prefix}meta.locationid as locationid\n    \t\t                                  ,{$db_prefix}meta.exp_prometheus, {$db_prefix}meta.exp_sid, {$db_prefix}meta.exp_unimedia\n    \t\t                                  ,{$db_prefix}meta.commentary\n    \t\t                                  ,{$db_prefix}meta.metacreator, {$db_prefix}meta.metaeditor\n    \t\t                                  ,{$db_prefix}meta.imagerights\n    \t\t                                  ,{$db_prefix}meta.institution,{$db_prefix}meta.literature\n    \t\t\t\t\t\t\t\t\t\t  ,{$db_prefix}meta.page,{$db_prefix}meta.figure,{$db_prefix}meta.`table`\n    \t\t\t\t\t\t\t\t\t\t  ,{$db_prefix}meta.isbn,base,filename,width,height,xres,yres,size,magick " . "FROM {$db_prefix}meta,{$db_prefix}img,{$db_prefix}img_base " . " WHERE {$db_prefix}meta.collectionid={$db_prefix}img.collectionid" . " AND {$db_prefix}meta.imageid={$db_prefix}img.imageid" . " AND {$db_prefix}img.img_baseid={$db_prefix}img_base.img_baseid" . " AND {$db_prefix}img.collectionid={$db_prefix}img_base.collectionid" . " AND {$db_prefix}meta.collectionid={$collectionid}" . " AND {$db_prefix}meta.imageid={$imageid}";
            $sqls = $sql;
            $row = $db->GetRow($sql);
            if ($row) {
                array_walk($row, "__stripslashes");
            }
            $result = array();
            $result['id'] = $row ? $params['id'] : '';
            $result['rs'] = $row;
            $result['local'] = true;
            if (!empty($params['sql'])) {
                $smarty->assign($params['sql'], $sqls);
            }
        }
        $smarty->assign($params['var'], $result);
    } else {
        echo $content;
    }
}
예제 #3
0
*/
define('DILPS_SOAP_QUERY', 1);
require_once './config.inc.php';
require_once "{$config['includepath']}db.inc.php";
require_once "{$config['includepath']}session.inc.php";
require_once "{$config['includepath']}tools.inc.php";
require_once "{$config['includepath']}remote.inc.php";
include_once 'SOAP/Client.php';
global $db, $db_prefix;
// get querystruct from session
$queryid = empty($_REQUEST['queryid']) ? 0 : $_REQUEST['queryid'];
if (!isset($_SESSION['queries'][$queryid])) {
    die('stored query not found');
}
$querystruct = $_SESSION['queries'][$queryid];
// get collection & build url
$collectionid = empty($_REQUEST['collectionid']) ? 0 : $_REQUEST['collectionid'];
$sql = "select * from {$db_prefix}collection where collectionid =" . $db->qstr($collectionid);
if (!($collection = $db->GetRow($sql))) {
    die('collection not found');
}
$url = "http://{$collection['host']}/{$collection['soap_url']}";
$params = array('querystruct' => $querystruct);
$response = queryRemoteServer($url, 'queryCount', $params, false);
if (isset($response->error)) {
    die("(soap error: {$response->error})");
}
if (!isset($response->count)) {
    die('?  (error: unexpected response)');
}
echo "{$response->count}";
예제 #4
0
function smarty_block_query_image($params, $content, &$smarty, &$repeat)
{
    if (!isset($content)) {
        if (empty($params['id'])) {
            $smarty->trigger_error("assign: missing 'id' parameter");
            return;
        }
        if (empty($params['var'])) {
            $smarty->trigger_error("assign: missing 'var' parameter");
            return;
        }
        if (empty($params['remoteCollection'])) {
            $remoteCollectionId = 0;
        } else {
            $remoteCollectionId = $params['remoteCollection'];
        }
        global $db, $db_prefix, $query;
        // $db->debug = true;
        $ids = explode(':', $params['id']);
        $collectionid = intval($ids[0]);
        $imageid = intval($ids[1]);
        if ($remoteCollectionId && ($collection = get_remote_collection_info($remoteCollectionId))) {
            $url = "http://{$collection['host']}/{$collection['soap_url']}";
            // search a remote collection
            $queryfields = array('collectionid' => $collectionid, 'imageid' => $imageid);
            $result = queryRemoteServer($url, 'queryDetail', $queryfields);
            $result['local'] = false;
        } else {
            // search a local collection
            $sql = "SELECT {$db_prefix}meta.collectionid AS collectionid\n                  ,{$db_prefix}meta.imageid AS imageid\n                  ,{$db_prefix}meta.id AS id\n                  ,{$db_prefix}meta.type AS type\n                  ,{$db_prefix}meta.status AS status\n                  ,{$db_prefix}meta.name1id, {$db_prefix}meta.name2id\n\t\t\t\t\t\t\t\t  ,{$db_prefix}meta.name1 as name1text\n                  ,{$db_prefix}meta.name2 as name2text\n\t\t\t\t\t\t\t\t  ,{$db_prefix}meta.addition,{$db_prefix}meta.title,{$db_prefix}meta.dating\n\t\t\t\t\t\t\t\t  ,{$db_prefix}meta.material,{$db_prefix}meta.technique,{$db_prefix}meta.format\n\t\t\t\t\t\t\t\t  ,{$db_prefix}meta.location as city\n                  ,{$db_prefix}meta.locationid as locationid\n                  ,{$db_prefix}meta.exp_prometheus, {$db_prefix}meta.exp_sid, {$db_prefix}meta.exp_unimedia\n                  ,{$db_prefix}meta.keyword \n                  ,{$db_prefix}meta.commentary\n                  ,{$db_prefix}meta.metacreator, {$db_prefix}meta.metaeditor\n                  ,{$db_prefix}meta.imagerights\n                  ,{$db_prefix}meta.institution,{$db_prefix}meta.literature\n\t\t\t\t\t\t\t\t  ,{$db_prefix}meta.page,{$db_prefix}meta.figure,{$db_prefix}meta.`table`\n\t\t\t\t\t\t\t\t  ,{$db_prefix}meta.isbn,base,filename,width,height,xres,yres,size,magick " . "FROM {$db_prefix}meta,{$db_prefix}img,{$db_prefix}img_base " . " WHERE {$db_prefix}meta.collectionid={$db_prefix}img.collectionid" . " AND {$db_prefix}meta.imageid={$db_prefix}img.imageid" . " AND {$db_prefix}img.img_baseid={$db_prefix}img_base.img_baseid" . " AND {$db_prefix}img.collectionid={$db_prefix}img_base.collectionid" . " AND {$db_prefix}meta.collectionid={$collectionid}" . " AND {$db_prefix}meta.imageid={$imageid}";
            $sqls = $sql;
            $row = $db->GetRow($sql);
            if ($row) {
                array_walk($row, "__stripslashes");
            }
            $result = array();
            $result['id'] = $row ? $params['id'] : '';
            $result['rs'] = $row;
            $result['local'] = true;
            // print_r($result);
            // load additional fields for archaeology
            if ($result['rs']['type'] == 'archaeology') {
                $sql = "SELECT `category_fn`, `category`, `iconography_fn`, `iconography`, " . "`dating_ext_fn`, `dating_ext`, `material_ext_fn`, `material_ext` " . ", `location_ext_fn`, `location_ext` " . " ,`obj_culture_fn`, `obj_culture` " . " ,`obj_culthistory_fn`, `obj_culthistory` " . " ,`obj_topography_fn`, `obj_topography` " . " ,`obj_arch_structelems_fn`, `obj_arch_structelems` " . " ,`obj_arch_tenement_fn`, `obj_arch_tenement` " . " ,`obj_arch_funcbuild_fn`, `obj_arch_funcbuild` " . " ,`obj_arch_amusement_fn`, `obj_arch_amusement` " . " ,`obj_arch_economy_fn`, `obj_arch_economy` " . " ,`obj_arch_sacral_fn`, `obj_arch_sacral` " . " ,`obj_arch_sepulchre_fn`, `obj_arch_sepulchre` " . " ,`obj_arch_military_fn`, `obj_arch_military` " . " ,`obj_mosaic_fn`, `obj_mosaic` " . " ,`obj_painting_fn`, `obj_painting` " . " ,`obj_sculpture_fn`, `obj_sculpture` " . " ,`obj_portrait_fn`, `obj_portrait` " . " ,`obj_ceramic_vascularforms_fn`, `obj_ceramic_vascularforms` " . " ,`obj_ceramic_groups_fn`, `obj_ceramic_groups` " . " ,`obj_toreutics_fn`, `obj_toreutics` " . " ,`obj_jewellery_fn`, `obj_jewellery` " . " ,`obj_glass_fn`, `obj_glass` " . " ,`obj_glyptics_fn`, `obj_glyptics` " . " ,`obj_numismatics_fn`, `obj_numismatics` " . " ,`obj_textiles_fn`, `obj_textiles` " . " ,`obj_misc_fn`, `obj_misc` " . " ,`obj_epigraphy_fn`, `obj_epigraphy` " . " ,`obj_methods_fn`, `obj_methods` " . " ,`obj_reception_fn`, `obj_reception` " . "FROM {$db_prefix}archaeology " . "WHERE" . " collectionid=" . $collectionid . " AND imageid=" . $imageid;
                $sqls = $sql;
                $row = $db->GetRow($sql);
                if ($row) {
                    array_walk($row, "__stripslashes");
                    foreach ($row as $name => $val) {
                        $result['rs'][$name] = $val;
                    }
                }
            }
            // load additional fields for architecture
            if ($result['rs']['type'] == 'architecture') {
                $sql = "SELECT `functiontype_fn`, `functiontype`, `formtype_fn`, `formtype`, " . " `draught_fn`, `draught`, `classification_fn`, `classification`" . "FROM {$db_prefix}architecture " . "WHERE" . " collectionid=" . $collectionid . " AND imageid=" . $imageid;
                $sqls = $sql;
                $row = $db->GetRow($sql);
                if ($row) {
                    array_walk($row, "__stripslashes");
                    foreach ($row as $name => $val) {
                        $result['rs'][$name] = $val;
                    }
                }
            }
            // print_r($result);
            // echo('block.query_image.php: '.$row['type'].' - Einsprungpunkt realisieren'."\n<br>\n");
            if (!empty($params['sql'])) {
                $smarty->assign($params['sql'], $sqls);
            }
        }
        $smarty->assign($params['var'], $result);
    } else {
        echo $content;
    }
}