function smarty_function_artist_list($params, &$smarty)
{
    if (empty($params['var'])) {
        $smarty->trigger_error("assign: missing 'var' parameter");
        return;
    }
    if (empty($params['query'])) {
        $smarty->trigger_error("assign: missing 'var' parameter");
        return;
    } else {
        $query = $params['query'];
    }
    //debug($query);
    global $db, $db_prefix;
    $thesaurus = new thesaurusDB($db, $db_prefix);
    // $frommeta indicates whether or not the data is coming from the _existing_ metadata
    $frommeta = false;
    // search for artists by the artistsearch field if given or by the meta-id otherwise
    if (empty($query['searchartist'])) {
        if (empty($query['id'])) {
            $searchtype = false;
        } else {
            extractID($query['id'], $collectionid, $imageid);
            $searchterm = "{$collectionid}:{$imageid}";
            $searchtype = 'metaid';
            $frommeta = true;
        }
    } else {
        $searchterm = $query['searchartist'];
        $searchtype = 'name';
    }
    $result = array();
    if ($searchtype != false) {
        $rs = $thesaurus->query('names', $searchterm, $searchtype);
        $sql = "queried through thesaurusDB::query('names', '{$searchterm}', '{$searchtype}');";
        /*if ($frommeta) {
              $params['query']['name1id'] = $rs[0]['id'];
              $params['query']['name1text'] = $rs[0]['name'];
              $params['query']['name1id'] = $rs[0]['id'];
              $params['query']['name1text'] = $rs[0]['name'];
              $smarty->assign('query', $params['query']);
          }*/
        //make the ids be keys, and strip slashes out
        foreach ($rs as $row) {
            array_walk($row, '__stripslashes');
            $result[$row['id']] = $row;
        }
    } else {
        $sql = 'no query';
    }
    //debug($result);
    $smarty->assign($params['var'], $result);
    if (!empty($params['sql'])) {
        $smarty->assign($params['sql'], $sql);
    }
}
function smarty_function_mygroup_change($params, &$smarty)
{
    if (empty($params['result'])) {
        $smarty->trigger_error("assign: missing 'result' parameter");
        return;
    }
    global $db, $db_prefix;
    /*
    print_r($params);
    
    $db->debug = true;
    */
    if (empty($params['gid'])) {
        $smarty->trigger_error("assign: missing 'gid' parameter");
        return;
    } else {
        $mygroupid = $params['gid'];
    }
    if (empty($params['action'])) {
        $smarty->trigger_error("assign: missing 'action' parameter");
        return;
    } else {
        $action = $params['action'];
    }
    if (empty($params['changes'])) {
        $smarty->trigger_error("assign: missing 'changes' parameter");
        return;
    } else {
        $changes = $params['changes'];
    }
    if ($action == 'update') {
        foreach ($changes as $key => $val) {
            extractID($key, $cid, $imageid);
            if ($val == 'add') {
                $sql = "REPLACE INTO " . $db_prefix . "img_group " . "(groupid, collectionid, imageid) " . "VALUES (" . $db->qstr($mygroupid) . " ," . $db->qstr($cid) . " ," . $db->qstr($imageid) . ")";
                $rs = @$db->Execute($sql);
            } else {
                if ($val == 'del') {
                    $sql = "DELETE FROM " . $db_prefix . "img_group " . "WHERE groupid=" . $db->qstr($mygroupid) . " " . "AND collectionid=" . $db->qstr($cid) . " " . "AND imageid=" . $db->qstr($imageid);
                    $rs = @$db->Execute($sql);
                }
            }
        }
    } else {
        $rs = false;
    }
    if (!$rs) {
        $smarty->assign($params['result'], 'failed to ' . $action . ' group ' . $mygroupid);
    } else {
        $smarty->assign($params['result'], $action . 'ed group ' . $mygroupid . ' successfully');
    }
    if (!empty($params['sql'])) {
        $smarty->assign($params['sql'], $sql);
    }
}
function smarty_function_archaeology_element($params, &$smarty)
{
    if (empty($params['fieldnames'])) {
        $smarty->trigger_error("assign: missing 'fieldnames' parameter");
        return;
    }
    if (empty($params['values'])) {
        $smarty->trigger_error("assign: missing 'values' parameter");
        return;
    }
    if (empty($params['query'])) {
        $smarty->trigger_error("assign: missing 'query' parameter");
        return;
    } else {
        $query = $params['query'];
    }
    if (empty($params['element'])) {
        $smarty->trigger_error("assign: missing 'element' parameter");
        return;
    } else {
        $element = $params['element'];
    }
    //debug($query);
    global $db, $db_prefix;
    extractID($query['id'], $collectionid, $imageid);
    $fieldnames = array();
    $values = array();
    // load fieldnames and values for the specified element
    $sql = "SELECT `" . $element . "_fn` as fn, `" . $element . "` as value " . "FROM {$db_prefix}archaeology " . "WHERE" . " collectionid=" . $collectionid . " AND imageid=" . $imageid;
    $row = $db->GetRow($sql);
    /*
    if (trim($row['fn'] != ""))
    {
    	$fieldnames = explode("; ",trim($row['fn']));
    }
    if (trim($row['value'] != ""))
    {
    	$values 	= explode("; ",trim($row['value']));
    }
    */
    $fieldnames = $row['fn'];
    $values = $row['value'];
    /*
    print_r($fieldnames);
    print_r($values);
    */
    $smarty->assign($params['fieldnames'], $fieldnames);
    $smarty->assign($params['values'], $values);
    if (!empty($params['sql'])) {
        $smarty->assign($params['sql'], $sql);
    }
}
function smarty_function_src_list($params, &$smarty)
{
    if (empty($params['var'])) {
        $smarty->trigger_error("assign: missing 'var' parameter");
        return;
    }
    global $db, $db_prefix, $query;
    extractID($query['id'], $collectionid, $imageid);
    $sql = "SELECT DISTINCT literature,isbn FROM {$db_prefix}meta WHERE literature LIKE " . $db->qstr('%' . $query['literature'] . '%') . " OR isbn ";
    $page = isset($query['page']) ? intval($query['page']) : 1;
    $defaultpagesize = 30;
    $pagesize = isset($query['pagesize']) ? intval($query['pagesize']) : $defaultpagesize;
    if ($pagesize < 1 || $pagesize > 500) {
        $pagesize = $defaultpagesize;
    }
    if (isset($query['next'])) {
        $page++;
    }
    if (isset($query['prev'])) {
        $page--;
    }
    if (isset($query['new'])) {
        $page = 1;
    }
    if ($page < 1) {
        $page = 1;
    }
    $rs = $db->PageExecute($sql, $pagesize, $page);
    $result = array();
    $result['lastpage'] = $rs->LastPageNo();
    $result['maxrecords'] = $rs->MaxRecordCount();
    $result['rs'] = array();
    while (!$rs->EOF) {
        array_walk($rs->fields, '__stripslashes');
        $result['rs'][] = $rs->fields;
        $rs->MoveNext();
    }
    $rs->Close();
    if ($page > $result['lastpage']) {
        $page = $result['lastpage'];
    }
    $result['page'] = $page;
    $result['pagesize'] = $pagesize;
    $smarty->assign($params['var'], $result);
    if (!empty($params['sql'])) {
        $smarty->assign($params['sql'], $sql);
    }
}
function smarty_function_save_image($params, &$smarty)
{
    global $_REQUEST, $db_prefix, $db, $user;
    if (empty($params['error'])) {
        $smarty->trigger_error("save_image: missing 'error' parameter");
        return;
    }
    $edit = $_REQUEST['edit'];
    if ($edit['loadtype'] != 'save') {
        return;
    }
    if (!$user['editor']) {
        $error = "Insufficient Rights";
        $smarty->assign($params['error'], $error);
        return;
    }
    extractID($edit['id'], $collectionid, $imageid);
    $sql = "SELECT status FROM {$db_prefix}meta WHERE collectionid={$collectionid} AND imageid={$imageid}";
    $status = $db->GetOne($sql);
    if ($user['admin']) {
        $status = $edit['status'];
    } else {
        if ($user['editor']) {
            $status = $edit['status'] == 'reviewed' ? 'edited' : $edit['status'];
        }
    }
    // If the name1id, name2id or locationid is "new", check to see whether it does actually already exist.
    // if not, insert the new name into the DB and set the id
    $name1 = get_or_set_values($db, $db_prefix, $edit['id'], 'name', $edit['name1text'], $edit['name1id']);
    if (isset($name1['is_error'])) {
        $smarty->assign($params['error'], $name1['error_msg']);
        return;
    }
    $name2 = get_or_set_values($db, $db_prefix, $edit['id'], 'name', $edit['name2text'], $edit['name2id']);
    if (isset($name2['is_error'])) {
        $smarty->assign($params['error'], $name2['error_msg']);
        return;
    }
    $location = get_or_set_values($db, $db_prefix, $edit['id'], 'location', $edit['city'], $edit['locationid']);
    if (isset($location['is_error'])) {
        $smarty->assign($params['error'], $location['error_msg']);
        return;
    }
    $export_systems = array('prometheus', 'sid', 'unimedia');
    $exports = '';
    foreach ($export_systems as $system) {
        $exports .= ", exp_{$system} = " . (int) (!empty($edit['export'][$system]));
    }
    $datestring = trim($edit['dating']);
    $sql = "UPDATE {$db_prefix}meta\r\n    SET `type`=" . $db->qstr($edit['type']) . "\r\n    ,`status`=" . $db->qstr($status) . "\r\n    ,name1id='{$name1['id']}'\r\n    ,name2id='{$name2['id']}'\r\n    ,locationid='{$location['id']}'\r\n    ,name1=" . $db->qstr($name1['name']) . "\r\n    ,name2=" . $db->qstr($name2['name']) . "\r\n    ,location=" . $db->qstr($location['location']) . "\r\n    ,name1sounds=" . $db->qstr($name1['sounds']) . "\r\n    ,name2sounds=" . $db->qstr($name2['sounds']) . "\r\n    ,locationsounds=" . $db->qstr($location['sounds']) . "\r\n    ,addition=" . $db->qstr(trim($edit['addition'])) . "\r\n    ,title=" . $db->qstr(trim($edit['title'])) . "\r\n    ,dating=" . $db->qstr($datestring) . "\r\n    ,material=" . $db->qstr(trim($edit['material'])) . "\r\n    ,technique=" . $db->qstr(trim($edit['technique'])) . "\r\n    ,format=" . $db->qstr(trim($edit['format'])) . "\r\n    ,institution=" . $db->qstr(trim($edit['institution'])) . "\r\n    ,literature=" . $db->qstr(trim($edit['literature'])) . "\r\n    ,page=" . $db->qstr(trim($edit['page'])) . "\r\n    ,figure=" . $db->qstr(trim($edit['figure'])) . "\r\n    ,`table`=" . $db->qstr(trim($edit['table'])) . "\r\n    ,isbn=" . $db->qstr(trim($edit['isbn'])) . "\r\n    ,keyword=" . $db->qstr(trim($edit['keyword'])) . "\r\n    ,metacreator=" . $db->qstr(trim($edit['metacreator'])) . "\r\n    ,metaeditor=" . $db->qstr(trim($edit['metaeditor'])) . "\r\n    ,imagerights=" . $db->qstr(trim($edit['imagerights'])) . "\r\n    ,commentary=" . $db->qstr(trim($edit['commentary'])) . "\r\n    ,modify_date=NOW()" . $exports . "\r\nWHERE\r\n    collectionid={$collectionid}\r\n    AND imageid={$imageid};";
    //die($sql);
    $sqls = $sql;
    if (!$db->Execute($sql)) {
        $error = $db->ErrorMsg() . "[{$sql}]";
    } else {
        $sql = "DELETE FROM {$db_prefix}dating WHERE collectionid={$collectionid} AND imageid={$imageid};";
        $sqls .= "\n" . $sql;
        if (!$db->Execute($sql)) {
            $error .= "\n" . $db->ErrorMsg() . "[{$sql}]";
        } else {
            dating($db, $datestring, $datelist);
            foreach ($datelist as $date) {
                $sql = "INSERT INTO {$db_prefix}dating(collectionid,imageid,`from`,`to`) VALUES('{$collectionid}', '{$imageid}', {$date['from']}, {$date['to']})";
                $sqls .= "\n" . $sql;
                if (!$db->Execute($sql)) {
                    $error .= "\n" . $db->ErrorMsg() . "[{$sql}]";
                }
            }
            $sql = "update {$db_prefix}dating d,  {$db_prefix}meta m" . " set d.metaid=m.id" . " where m.collectionid = '{$collectionid}' and m.imageid = '{$imageid}'" . " and m.collectionid = d.collectionid and m.imageid = d.imageid";
            if (!$db->Execute($sql)) {
                $error .= "\n" . $db->ErrorMsg() . "[{$sql}]";
            }
        }
    }
    $smarty->assign($params['error'], $error);
    if (isset($params['sql'])) {
        $smarty->assign($params['sql'], $sqls);
    }
}
function smarty_function_mygroup_change($params, &$smarty)
{
    if (empty($params['result'])) {
        $smarty->trigger_error("assign: missing 'result' parameter");
        return;
    }
    global $db, $db_prefix;
    /*
    print_r($params);
    
    $db->debug = true;
    */
    if (empty($params['gid'])) {
        $smarty->trigger_error("assign: missing 'gid' parameter");
        return;
    } else {
        $mygroupid = $params['gid'];
    }
    if (empty($params['action'])) {
        $smarty->trigger_error("assign: missing 'action' parameter");
        return;
    } else {
        $action = $params['action'];
    }
    if (empty($params['changes'])) {
        $smarty->trigger_error("assign: missing 'changes' parameter");
        return;
    } else {
        $changes = $params['changes'];
    }
    if ($action == 'update') {
        foreach ($changes as $key => $val) {
            extractID($key, $cid, $imageid);
            if ($val == 'add') {
                $sql = "REPLACE INTO " . $db_prefix . "img_group " . "(groupid, collectionid, imageid) " . "VALUES (" . $db->qstr($mygroupid) . " ," . $db->qstr($cid) . " ," . $db->qstr($imageid) . ")";
                $rs = @$db->Execute($sql);
            } else {
                if ($val == 'del') {
                    // search all subgroups, look where we can find the image, then delete it
                    $sql = "SELECT * FROM " . $db_prefix . "img_group WHERE " . "collectionid=" . $db->qstr($cid) . " AND imageid=" . $db->qstr($imageid) . get_groupid_where($groupid, $db, $db_prefix, true);
                    $rs = $db->Execute($sql);
                    while (!$rs->EOF) {
                        $sql2 = "DELETE FROM " . $db_prefix . "img_group " . "WHERE groupid=" . $db->qstr($rs->fields['groupid']) . " " . "AND collectionid=" . $db->qstr($cid) . " " . "AND imageid=" . $db->qstr($imageid);
                        $rs2 = @$db->Execute($sql2);
                        $rs->MoveNext();
                    }
                }
            }
        }
    } else {
        $rs = false;
    }
    if (!$rs) {
        $smarty->assign($params['result'], 'failed to ' . $action . ' group ' . $mygroupid);
    } else {
        $smarty->assign($params['result'], $action . 'ed group ' . $mygroupid . ' successfully');
    }
    if (!empty($params['sql'])) {
        $smarty->assign($params['sql'], $sql);
    }
}
Example #7
0
            echo $req->getResponseBody();
        }
    } else {
        sendImageHTTP('empty.jpg');
    }
} else {
    //local image
    if (isset($_REQUEST['debug'])) {
        $debug = $_REQUEST['debug'];
    } else {
        $debug = false;
    }
    if ($debug) {
        echo "Local image\n<br>\n";
    }
    extractID($id, $collectionid, $imageid);
    $sql = "SELECT filename,base FROM {$db_prefix}img,{$db_prefix}img_base WHERE {$db_prefix}img.imageid=" . intval($imageid) . " AND {$db_prefix}img.collectionid=" . intval($collectionid) . " AND {$db_prefix}img.collectionid={$db_prefix}img_base.collectionid" . " AND {$db_prefix}img.img_baseid={$db_prefix}img_base.img_baseid";
    $row = @$db->GetRow($sql);
    $base = $row['base'];
    $file = intval($imageid) . '.jpg';
    if ($base != '' && $base[strlen($base) - 1] != DIRECTORY_SEPARATOR) {
        $base .= DIRECTORY_SEPARATOR;
    }
    if ($debug) {
        echo "Base Directory: {$base}\n<br>\n";
    }
    $file_exists_test = false;
    foreach ($formats_suffix as $mime => $suffix) {
        $path = $base . 'cache' . DIRECTORY_SEPARATOR . $resolution . DIRECTORY_SEPARATOR . intval($collectionid) . '-' . intval($imageid) . "." . $suffix;
        // $path = $base.$resolution.'/'.intval($collectionid).'-'.intval($imageid).".".$suffix;
        // echo "Test-Path: $path";
function smarty_function_save_image($params, &$smarty)
{
    global $_REQUEST, $db_prefix, $db, $user;
    if (empty($params['error'])) {
        $smarty->trigger_error("save_image: missing 'error' parameter");
        return;
    }
    $edit = $_REQUEST['edit'];
    // echo('function.save_image.php: '.$edit['type'].' - Einsprungpunkt realisieren'."\n<br>\n");
    if ($edit['loadtype'] != 'save') {
        return;
    }
    if (!$user['editor']) {
        $error = "Insufficient Rights";
        $smarty->assign($params['error'], $error);
        return;
    }
    extractID($edit['id'], $collectionid, $imageid);
    $sql = "SELECT status FROM {$db_prefix}meta WHERE collectionid={$collectionid} AND imageid={$imageid}";
    $status = $db->GetOne($sql);
    if ($user['admin']) {
        $status = $edit['status'];
    } else {
        if ($user['editor']) {
            $status = $edit['status'] == 'reviewed' ? 'edited' : $edit['status'];
        }
    }
    print_r($edit);
    $db->debug = true;
    // If the name1id, name2id or locationid is "new", check to see whether it does actually already exist.
    // if not, insert the new name into the DB and set the id
    $name1 = get_or_set_values($db, $db_prefix, $edit['id'], 'name', $edit['name1text'], $edit['name1id']);
    if (isset($name1['is_error'])) {
        $smarty->assign($params['error'], $name1['error_msg']);
        return;
    }
    $name2 = get_or_set_values($db, $db_prefix, $edit['id'], 'name', $edit['name2text'], $edit['name2id']);
    if (isset($name2['is_error'])) {
        $smarty->assign($params['error'], $name2['error_msg']);
        return;
    }
    $location = get_or_set_values($db, $db_prefix, $edit['id'], 'location', $edit['city'], $edit['locationid']);
    if (isset($location['is_error'])) {
        $smarty->assign($params['error'], $location['error_msg']);
        return;
    }
    $export_systems = array('prometheus', 'sid', 'unimedia');
    $exports = '';
    foreach ($export_systems as $system) {
        $exports .= ", exp_{$system} = " . (int) (!empty($edit['export'][$system]));
    }
    $datestring = trim($edit['dating']);
    $sql = "UPDATE {$db_prefix}meta\n    SET `type`=" . $db->qstr($edit['type']) . "\n    ,`status`=" . $db->qstr($status) . "\n    ,name1id='{$name1['id']}'\n    ,name2id='{$name2['id']}'\n    ,locationid='{$location['id']}'\n    ,name1=" . $db->qstr($name1['name']) . "\n    ,name2=" . $db->qstr($name2['name']) . "\n    ,location=" . $db->qstr($location['location']) . "\n    ,name1sounds=" . $db->qstr($name1['sounds']) . "\n    ,name2sounds=" . $db->qstr($name2['sounds']) . "\n    ,locationsounds=" . $db->qstr($location['sounds']) . "\n    ,addition=" . $db->qstr(trim($edit['addition'])) . "\n    ,title=" . $db->qstr(trim($edit['title'])) . "\n    ,dating=" . $db->qstr($datestring) . "\n    ,material=" . $db->qstr(trim($edit['material'])) . "\n    ,technique=" . $db->qstr(trim($edit['technique'])) . "\n    ,format=" . $db->qstr(trim($edit['format'])) . "\n    ,institution=" . $db->qstr(trim($edit['institution'])) . "\n    ,literature=" . $db->qstr(trim($edit['literature'])) . "\n    ,page=" . $db->qstr(trim($edit['page'])) . "\n    ,figure=" . $db->qstr(trim($edit['figure'])) . "\n    ,`table`=" . $db->qstr(trim($edit['table'])) . "\n    ,isbn=" . $db->qstr(trim($edit['isbn'])) . "\n    ,keyword=" . $db->qstr(trim($edit['keyword'])) . "\n    ,metacreator=" . $db->qstr(trim($edit['metacreator'])) . "\n    ,metaeditor=" . $db->qstr(trim($edit['metaeditor'])) . "\n    ,imagerights=" . $db->qstr(trim($edit['imagerights'])) . "\n    ,commentary=" . $db->qstr(trim($edit['commentary'])) . "\n    ,modify_date=NOW()" . $exports . "\nWHERE\n    collectionid={$collectionid}\n    AND imageid={$imageid};";
    //die($sql);
    $sqls = $sql;
    if (!$db->Execute($sql)) {
        $error = $db->ErrorMsg() . "[{$sql}]";
    } else {
        $sql = "DELETE FROM {$db_prefix}dating WHERE collectionid={$collectionid} AND imageid={$imageid};";
        $sqls .= "\n" . $sql;
        if (!$db->Execute($sql)) {
            $error .= "\n" . $db->ErrorMsg() . "[{$sql}]";
        } else {
            dating($db, $datestring, $datelist);
            foreach ($datelist as $date) {
                $sql = "INSERT INTO {$db_prefix}dating(collectionid,imageid,`from`,`to`) VALUES('{$collectionid}', '{$imageid}', {$date['from']}, {$date['to']})";
                $sqls .= "\n" . $sql;
                if (!$db->Execute($sql)) {
                    $error .= "\n" . $db->ErrorMsg() . "[{$sql}]";
                }
            }
            $sql = "update {$db_prefix}dating d,  {$db_prefix}meta m" . " set d.metaid=m.id" . " where m.collectionid = '{$collectionid}' and m.imageid = '{$imageid}'" . " and m.collectionid = d.collectionid and m.imageid = d.imageid";
            if (!$db->Execute($sql)) {
                $error .= "\n" . $db->ErrorMsg() . "[{$sql}]";
            }
        }
    }
    // clear temporary values in session
    if (isset($_SESSION['tempvals'])) {
        unset($_SESSION['tempvals']);
    }
    // save additional fields for archaeology
    if ($edit['type'] == 'archaeology') {
        // $db->debug = true;
        $sql = "DELETE FROM {$db_prefix}archaeology WHERE collectionid={$collectionid} AND imageid={$imageid};";
        $sqls .= "\n" . $sql;
        if (!$db->Execute($sql)) {
            $error .= "\n" . $db->ErrorMsg() . "[{$sql}]";
        } else {
            $sql = "INSERT INTO {$db_prefix}archaeology (" . "  `collectionid`, `imageid`" . " ,`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` " . " ) VALUES (" . $collectionid . "," . $imageid . "," . $db->qstr(trim($edit['category_fn'])) . "," . $db->qstr(trim($edit['category'])) . "," . $db->qstr(trim($edit['iconography_fn'])) . "," . $db->qstr(trim($edit['iconography'])) . "," . $db->qstr(trim($edit['dating_ext_fn'])) . "," . $db->qstr(trim($edit['dating_ext'])) . "," . $db->qstr(trim($edit['material_ext_fn'])) . "," . $db->qstr(trim($edit['material_ext'])) . "," . $db->qstr(trim($edit['location_ext_fn'])) . "," . $db->qstr(trim($edit['location_ext'])) . "," . $db->qstr(trim($edit['obj_culture_fn'])) . "," . $db->qstr(trim($edit['obj_culture'])) . "," . $db->qstr(trim($edit['obj_culthistory_fn'])) . "," . $db->qstr(trim($edit['obj_culthistory'])) . "," . $db->qstr(trim($edit['obj_topography_fn'])) . "," . $db->qstr(trim($edit['obj_topography'])) . "," . $db->qstr(trim($edit['obj_arch_structelems_fn'])) . "," . $db->qstr(trim($edit['obj_arch_structelems'])) . "," . $db->qstr(trim($edit['obj_arch_tenement_fn'])) . "," . $db->qstr(trim($edit['obj_arch_tenement'])) . "," . $db->qstr(trim($edit['obj_arch_funcbuild_fn'])) . "," . $db->qstr(trim($edit['obj_arch_funcbuild'])) . "," . $db->qstr(trim($edit['obj_arch_amusement_fn'])) . "," . $db->qstr(trim($edit['obj_arch_amusement'])) . "," . $db->qstr(trim($edit['obj_arch_economy_fn'])) . "," . $db->qstr(trim($edit['obj_arch_economy'])) . "," . $db->qstr(trim($edit['obj_arch_sacral_fn'])) . "," . $db->qstr(trim($edit['obj_arch_sacral'])) . "," . $db->qstr(trim($edit['obj_arch_sepulchre_fn'])) . "," . $db->qstr(trim($edit['obj_arch_sepulchre'])) . "," . $db->qstr(trim($edit['obj_arch_military_fn'])) . "," . $db->qstr(trim($edit['obj_arch_military'])) . "," . $db->qstr(trim($edit['obj_mosaic_fn'])) . "," . $db->qstr(trim($edit['obj_mosaic'])) . "," . $db->qstr(trim($edit['obj_painting_fn'])) . "," . $db->qstr(trim($edit['obj_painting'])) . "," . $db->qstr(trim($edit['obj_sculpture_fn'])) . "," . $db->qstr(trim($edit['obj_sculpture'])) . "," . $db->qstr(trim($edit['obj_portrait_fn'])) . "," . $db->qstr(trim($edit['obj_portrait'])) . "," . $db->qstr(trim($edit['obj_ceramic_vascularforms_fn'])) . "," . $db->qstr(trim($edit['obj_ceramic_vascularforms'])) . "," . $db->qstr(trim($edit['obj_ceramic_groups_fn'])) . "," . $db->qstr(trim($edit['obj_ceramic_groups'])) . "," . $db->qstr(trim($edit['obj_toreutics_fn'])) . "," . $db->qstr(trim($edit['obj_toreutics'])) . "," . $db->qstr(trim($edit['obj_jewellery_fn'])) . "," . $db->qstr(trim($edit['obj_jewellery'])) . "," . $db->qstr(trim($edit['obj_glass_fn'])) . "," . $db->qstr(trim($edit['obj_glass'])) . "," . $db->qstr(trim($edit['obj_glyptics_fn'])) . "," . $db->qstr(trim($edit['obj_glyptics'])) . "," . $db->qstr(trim($edit['obj_numismatics_fn'])) . "," . $db->qstr(trim($edit['obj_numismatics'])) . "," . $db->qstr(trim($edit['obj_textiles_fn'])) . "," . $db->qstr(trim($edit['obj_textiles'])) . "," . $db->qstr(trim($edit['obj_misc_fn'])) . "," . $db->qstr(trim($edit['obj_misc'])) . "," . $db->qstr(trim($edit['obj_epigraphy_fn'])) . "," . $db->qstr(trim($edit['obj_epigraphy'])) . "," . $db->qstr(trim($edit['obj_methods_fn'])) . "," . $db->qstr(trim($edit['obj_methods'])) . "," . $db->qstr(trim($edit['obj_reception_fn'])) . "," . $db->qstr(trim($edit['obj_reception'])) . ")";
            $sqls .= "\n" . $sql;
            if (!$db->Execute($sql)) {
                $error = $db->ErrorMsg() . "[{$sql}]";
            }
        }
    }
    // save additional fields for architecture
    if ($edit['type'] == 'architecture') {
        // $db->debug = true;
        $sql = "DELETE FROM {$db_prefix}architecture WHERE collectionid={$collectionid} AND imageid={$imageid};";
        $sqls .= "\n" . $sql;
        if (!$db->Execute($sql)) {
            $error .= "\n" . $db->ErrorMsg() . "[{$sql}]";
        } else {
            $sql = "INSERT INTO {$db_prefix}architecture (" . "  `collectionid`, `imageid` " . ", `functiontype_fn`, `functiontype` " . ", `formtype_fn`, `formtype` " . ", `draught_fn`, `draught` " . ", `classification_fn`, `classification`" . " ) VALUES (" . $collectionid . "," . $imageid . "," . $db->qstr(trim($edit['functiontype_fn'])) . "," . $db->qstr(trim($edit['functiontype'])) . "," . $db->qstr(trim($edit['formtype_fn'])) . "," . $db->qstr(trim($edit['formtype'])) . "," . $db->qstr(trim($edit['draught_fn'])) . "," . $db->qstr(trim($edit['draught'])) . "," . $db->qstr(trim($edit['classification_fn'])) . "," . $db->qstr(trim($edit['classification'])) . ")";
            $sqls .= "\n" . $sql;
            if (!$db->Execute($sql)) {
                $error = $db->ErrorMsg() . "[{$sql}]";
            }
        }
    }
    $smarty->assign($params['error'], $error);
    if (isset($params['sql'])) {
        $smarty->assign($params['sql'], $sqls);
    }
}
global $imagemagick_identify;
global $imagemagick_convert;
global $file_binary;
// read sessiond id from get/post
if (isset($_REQUEST['PHPSESSID'])) {
    $sessionid = $_REQUEST['PHPSESSID'];
} else {
    $sessionid = '';
}
if (!empty($_REQUEST['query'])) {
    $query = $_REQUEST['query'];
} else {
    die('No query string given');
}
if (isset($query['id'])) {
    extractID($query['id'], $collectionid, $imageid);
} else {
    die('No id given');
}
if (isset($query['process'])) {
    $process = $query['process'];
} else {
    $process = 1;
}
// $db->debug = true;
$sql = "SELECT filename, {$db_prefix}img.img_baseid as baseid, base, host FROM {$db_prefix}img,{$db_prefix}img_base WHERE {$db_prefix}img.imageid=" . intval($imageid) . " AND {$db_prefix}img.collectionid=" . intval($collectionid) . " AND {$db_prefix}img.collectionid={$db_prefix}img_base.collectionid" . " AND {$db_prefix}img.img_baseid={$db_prefix}img_base.img_baseid";
$row = $db->GetRow($sql);
$base = $row['base'];
if ($base != '' && $base[strlen($base) - 1] != DIRECTORY_SEPARATOR) {
    $base .= DIRECTORY_SEPARATOR;
}
function smarty_function_query_ext_element($params, &$smarty)
{
    if (empty($params['type'])) {
        $smarty->trigger_error("assign: missing 'type' parameter");
        return;
    } else {
        $type = $params['type'];
    }
    if (empty($params['fieldnames'])) {
        $smarty->trigger_error("assign: missing 'fieldnames' parameter");
        return;
    }
    if (empty($params['values'])) {
        $smarty->trigger_error("assign: missing 'values' parameter");
        return;
    }
    if (empty($params['query'])) {
        $smarty->trigger_error("assign: missing 'query' parameter");
        return;
    } else {
        $query = $params['query'];
    }
    if (empty($params['element'])) {
        $smarty->trigger_error("assign: missing 'element' parameter");
        return;
    } else {
        $element = $params['element'];
    }
    //debug($query);
    global $db, $db_prefix;
    $id = $query['id'];
    extractID($id, $collectionid, $imageid);
    $fieldnames = array();
    $values = array();
    global $_SESSION;
    // if (isset($_SESSION['tempvals'][$id][$element."_fn"]) && isset($_SESSION['tempvals'][$id][$element]) && ($_SESSION['tempvals'][$id][$element."_fn"] != '') && ($_SESSION['tempvals'][$id][$element] != ''))
    if (isset($_SESSION['tempvals'][$id][$element . "_fn"]) && isset($_SESSION['tempvals'][$id][$element])) {
        $fieldnames = $_SESSION['tempvals'][$id][$element . "_fn"];
        $values = $_SESSION['tempvals'][$id][$element];
        $sql = "element {$element} loaded for id {$id} from session";
    } else {
        // load fieldnames and values for the specified element
        $sql = "SELECT `" . $element . "_fn` as fn, `" . $element . "` as value " . "FROM {$db_prefix}{$type} " . "WHERE" . " collectionid=" . $collectionid . " AND imageid=" . $imageid;
        $row = $db->GetRow($sql);
        /*
        if (trim($row['fn'] != ""))
        {
        	$fieldnames = explode("; ",trim($row['fn']));
        }
        if (trim($row['value'] != ""))
        {
        	$values 	= explode("; ",trim($row['value']));
        }
        */
        $fieldnames = $row['fn'];
        $values = $row['value'];
    }
    /*
    print_r($fieldnames);
    print_r($values);
    */
    $smarty->assign($params['fieldnames'], $fieldnames);
    $smarty->assign($params['values'], $values);
    if (!empty($params['sql'])) {
        $smarty->assign($params['sql'], $sql);
    }
}