antville/code/Site/referrers.skin

60 lines
2.3 KiB
Text

<form action="<% response.action %>" method="get">
<input type="text" name="filter" value="<% request.filter %>" size="30" /> <input type="submit" name="submit" value="Filter" /> <input type="button" onclick="document.location='<% site.href action="referrers" %>';" value="Reset" />
<div class="small"><input type="checkbox" name="includeSpam" value="checked" <% request.includeSpam prefix='checked="' suffix='"' %> /> include referrer spam</div>
<br />
<table border="0" cellspacing="0" cellpadding="2">
<tr>
<td align="right" class="small">Visits</td>
<td width="10" nowrap="nowrap" rowspan="999"> </td>
<td></td>
<td class="small">Referrer</td>
</tr>
<script type="text/javascript"><!--
var referrers = [];
<% site.listReferrers %>
var query = new Antville.Query();
var spamFilter = new Antville.Filter([<% site.spamfilter %>]);
var searchFilter = new Antville.Filter(query.filter);
var searchEngineFilters = [
new Antville.Filter("http:\/\/.*google.*\?", "q"),
new Antville.Filter("http:\/\/.*search\.msn.*\?", "q"),
new Antville.Filter("http:\/\/.*altavista.*\?", "q"),
new Antville.Filter("http:\/\/.*search\.yahoo.*\?", "p"),
]
for (var i in referrers) {
var ref = referrers[i];
var text = ref.text;
var isSpam = spamFilter.test(ref.url);
if (isSpam && !query.includeSpam)
continue;
if (query.filter && !searchFilter.test(ref.url))
continue;
var done = false;
for (var e in searchEngineFilters) {
var filter = searchEngineFilters[e];
if (!done && filter.test(ref.url)) {
text = ref.compose(filter.key, "<em>Search request:</em> ");
done = true;
}
}
document.writeln('<tr>');
document.writeln('<td align="right" valign="top">', ref.count, '</td>');
document.writeln('<td valign="top"><% site.switch name="userMayEdit" on="<input type=\"checkbox\" name=\"permanent\" value=\"', ref.url, '\" />" off="" %></td>');
document.writeln('<td><a href="', ref.url, '"',
(isSpam ? ' style="color: <% layout.smallcolor %>;"' : ''),
'>', text, '</a></td>');
document.writeln('</tr>');
}
// --></script>
<noscript>
<tr>
<td colspan="3">To prevent spam abuse referrers and backlinks are displayed using client-side JavaScript code. Thus, you should enable the option to execute JavaScript code in your browser. Otherwise you will only see this information.</td>
</tr>
</noscript>
</table>
</form>