Site/referrers.skin
general parameters used in this skin:
  • request.filter
  • request.includeSpam
  • response.action

Sourcecode in Site/referrers.skin:
1:   <form action="<% response.action %>" method="get">
2:   <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" />
3:   <div class="small"><input type="checkbox" name="includeSpam" value="checked" <% request.includeSpam prefix='checked="' suffix='"' %> /> include referrer spam</div>
4:   <br />
5:   
6:   <table border="0" cellspacing="0" cellpadding="2">
7:   <tr>
8:   <td align="right" class="small">Visits</td>
9:   <td width="10" nowrap="nowrap" rowspan="999"> </td>
10:  <td></td>
11:  <td class="small">Referrer</td>
12:  </tr>
13:  
14:  <script type="text/javascript"><!--
15:  var referrers = [];
16:  <% site.listReferrers %>
17:  
18:  var query = new Antville.Query();
19:  var spamFilter = new Antville.Filter([<% site.spamfilter %>]);
20:  var searchFilter = new Antville.Filter(query.filter);
21:  var searchEngineFilters = [
22:     new Antville.Filter("http:\/\/.*google.*\?", "q"),
23:     new Antville.Filter("http:\/\/.*search\.msn.*\?", "q"),
24:     new Antville.Filter("http:\/\/.*altavista.*\?", "q"),
25:     new Antville.Filter("http:\/\/.*search\.yahoo.*\?", "p"),
26:  ]
27:  for (var i in referrers) {
28:     var ref = referrers[i];
29:     var text = ref.text;
30:     var isSpam = spamFilter.test(ref.url);
31:     if (isSpam && !query.includeSpam)
32:        continue;
33:     if (query.filter && !searchFilter.test(ref.url))
34:        continue;
35:     var done = false;
36:     for (var e in searchEngineFilters) {
37:        var filter = searchEngineFilters[e];
38:        if (!done && filter.test(ref.url)) {
39:           text = ref.compose(filter.key, "<em>Search request:</em> ");
40:           done = true;
41:        }
42:     }
43:     document.writeln('<tr>');
44:     document.writeln('<td align="right" valign="top">', ref.count, '</td>');
45:     document.writeln('<td valign="top"><% site.switch name="userMayEdit" on="<input type=\"checkbox\" name=\"permanent\" value=\"', ref.url, '\" />" off="" %></td>');
46:     document.writeln('<td><a href="', ref.url, '"',
47:        ' onclick="clickReferrer(event, this); return false;"',
48:        (isSpam ? ' style="color: <% layout.smallcolor %>;"' : ''),
49:        '>', text, '</a></td>');
50:     document.writeln('</tr>');
51:  }
52:  // --></script>
53:  
54:  <noscript>
55:  <tr>
56:  <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>
57:  </tr>
58:  </noscript>
59:  
60:  </table>
61:  </form>
62: