Files
Facilitor/APPL/API/shorturl.asp
Jos Groot Lipman b6186e3d52 AAIT#27946 bookmark_refreshtime erbij
labelrot rotatie ondersteunen

svn path=/Website/trunk/; revision=19829
2013-11-14 13:27:27 +00:00

113 lines
4.0 KiB
Plaintext

<%@language = "javascript" %>
<% /*
$Revision$
$Id$
File: shorturl.asp
Description: Redirect naar een bookmark url
Parameters: u Bookmark die in de bookmark tabel moet zitten.
Dit moet de eerste parameter zijn als er nog meer komen
k Een integer keywaarde die plat achter de bookmark_query wordt geplakt
-- Optionele parameter(s): die worden allemaal blind
doorgegeven naar het volgende scherm
Context: Vanuit root
Note: Welbeschouwd is dit gewoon een url-shortener
http://sgf12/Facilitor5iWork/?u=J448UIrR43
Het is verleidelijk de u= parameter ook door te geven maar
dat is in tegenspraak met het betekenisloos zijn van de u-param
Als je dat wilt moet je maar BOOKMARK's gebruiken
*/
ANONYMOUS_Allowed = 1;
%>
<!-- #include file="../Shared/common.inc"-->
<%
var u = getQParam("u");
var keyparam = getQParamInt("k", -1);
// For flexiblity reasons: Literal or runtime parameter(s), just pass through...
var rest = String(Request.ServerVariables("QUERY_STRING")); // Request.ServerVariables("QUERY_STRING") is url-encoded,
// dat is hier safer dan Request.QueryString
// Strip eventuele leading &fac_id=XXXX er ook af.
rest = rest.substring(rest.indexOf("u=")).substring(("u="+u).length+1);
var sql = "SELECT fac_bookmark_path,"
+ " fac_bookmark_query,"
+ " prs_perslid_key_auth,"
+ " fac_bookmark_unauth_url,"
+ " fac_bookmark_expire,"
+ " fac_bookmark_refreshtime"
+ " FROM fac_bookmark"
+ " WHERE fac_bookmark_id = " + safe.quoted_sql(u);
var oRs = Oracle.Execute(sql);
if (oRs.Eof)
{
shared.simpel_page(L("lcl_fac_bookmark_unknown"));
}
if (oRs("fac_bookmark_expire").Value != null)
{
var expire = new Date(oRs("fac_bookmark_expire").Value);
if (expire <= new Date)
{
shared.simpel_page(L("lcl_fac_bookmark_expired"));
}
}
var url = oRs("fac_bookmark_path").Value;
var refresher = oRs("fac_bookmark_refreshtime").Value;
if (oRs("prs_perslid_key_auth").Value)
{
Session("fallback_user_key") = oRs("prs_perslid_key_auth").Value; // wordt opgepikt door loginTry.asp
}
else
Session("unauth_url") = oRs("fac_bookmark_unauth_url").Value; // wordt opgepikt door common.asp
var params = oRs("fac_bookmark_query").Value;
if (params)
{
if (keyparam > -1)
{
rest = rest.substring(("k="+keyparam).length+1);
params += keyparam;
}
if (rest)
params += "&" + rest;
}
else
{
if (rest)
params = rest;
}
oRs.Close();
// Als getQParam maar dan uit een string. Altijd null als niet gevonden
// Let op: de query mag niet (meer) URL-escaped zijn
function getSParam (key, query)
{
var nn = 1;
var params = query.split("&");
for (var i in params)
{
var xx = params[i].split("=");
if (xx[0].toUpperCase() == key.toUpperCase() && xx.length > 1)
{
return String(xx[1]);
}
}
return null;
}
url = url + "?" + params;
// Als de bookmark een refreshrate heeft ingesteld wordt automatisch gerefreshed
// Voorkom recursie met norefresh
// Testen op referrer=refresher.asp is mij niet stabiel genoeg
if (refresher > 0 && getQParamInt("norefresh",0) == 0)
{
theURL = "appl/shared/refresher.asp?url=" + Server.URLencode("/?norefresh=1" + transitQS()) + "&refreshrate=" + refresher;
}
else
var theURL = protectQS.create(url);
Response.Redirect(theURL);
%>