-
Notifications
You must be signed in to change notification settings - Fork 4
/
opensearchdescription.vsp
94 lines (73 loc) · 2.91 KB
/
opensearchdescription.vsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
-- This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
-- project.
--
-- Copyright (C) 1998-2021 OpenLink Software
--
-- This project is free software; you can redistribute it and/or modify it
-- under the terms of the GNU General Public License as published by the
-- Free Software Foundation; only version 2 of the License, dated June 1991.
--
-- This program is distributed in the hope that it will be useful, but
-- WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- General Public License for more details.
--
-- You should have received a copy of the GNU General Public License along
-- with this program; if not, write to the Free Software Foundation, Inc.,
-- 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
--
<?vsp
declare sname, descr, tags, contact, url any;
declare url_reg any;
declare uriqa_str varchar;
declare favicon_path, search_image_path any;
uriqa_str := cfg_item_value (virtuoso_ini_path(), 'URIQA', 'DefaultHost');
if (uriqa_str is null)
{
uriqa_str := 'localhost:' || server_http_port ();
}
sname := registry_get ('fct_opensearch_shortname');
if (0 = sname)
{
if (length (uriqa_str) > 16)
{
log_message ('facets: ShortName from URIQA too long. Please set ''fct_opensearch_shortname'' in registry');
sname := 'OpenLink FCT';
}
else
sname := uriqa_str;
}
sname := "LEFT" (sname, 16);
descr := registry_get ('fct_opensearch_desc');
if (0 = descr)
{
descr := sprintf ('OpenLink Virtuoso Faceted search engine on %s', sname);
}
tags := registry_get ('fct_opensearch_tags');
if (0 = tags) tags := '';
contact := registry_get ('fct_opensearch_contact');
url_reg := registry_get ('fct_opensearch_url');
if (0 = url_reg)
{
url_reg := 'http://' || uriqa_str || '/fct/facet.vsp';
}
url := sprintf ('%s?q={searchTerms}', url_reg);
favicon_path := registry_get ('fct_opensearch_favicon_url');
search_image_path := registry_get ('fct_opensearch_image_url');
http_rewrite ();
http_header ('Content-Type: application/opensearchdescription+xml\r\n');
http ('<?xml version="1.0" encoding="UTF-8"?>');
http ('<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">');
http (sprintf ('<ShortName>%s</ShortName>', sname));
http (sprintf ('<Description>%s</Description>', descr));
http (sprintf ('<Url type="text/html" template="%s"/>', url));
if (tags)
http (sprintf ('<Tags>%s</Tags>', tags));
if (contact)
http (sprintf ('<Contact>%s</Contact>', contact));
if (favicon_path)
http (sprintf ('<Image height="16" width="16" type="image/x-icon">%s</Image>', favicon_path));
if (search_image_path)
http (sprintf ('<Image height="64" width="64" type="image/png">%s</Image>', search_image_path));
http ('</OpenSearchDescription>');
?>