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); }
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; } }
*/ 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}";
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; } }