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
  
/* This is a roxen module. (c) Informationsvävarna AB 1997. 
 * $Id: killframe.pike,v 1.5 1997/08/10 00:29:09 grubba Exp $ 
 * 
 * Adds some java script that will prevent others from putting 
 * your page in a frame. 
 *  
 * Will also remove occuranses of "index.html" at the end of the URL. 
 *  
 * made by Peter Bortas <peter@infovav.se> Januari -97 
 */ 
 
#include <module.h> 
inherit "module"; 
 
void create() { } 
 
mixed *register_module() 
{ 
  return ({  
    MODULE_PARSER, 
    "Killframe tag", 
      ("Makes pages frameproof." 
       "<br>This module defines a tag," 
       "<pre>" 
       "&lt;killframe&gt;: Adds some java script that will prevent others\n" 
       "             from putting your page in a frame.\n\n" 
       "             Will also strip any occurences of the string\n" 
       "             'index.html' from the end of the URL." 
       "</pre>" 
       ), ({}), 1, 
    }); 
} 
 
string tag_killframe( string tag, mapping m, object id ) 
{ 
  // Links to index.html are ugly. 
  string my_url = id->conf->query("MyWorldLocation") + id->raw_url[1..]; 
 
  string flip = reverse(my_url); 
     
  if( flip[0..9] == reverse("index.html") ) 
    my_url = reverse(flip[10..]); 
 
  if (id->supports->javascript) 
    string head = "<script language=javascript>\n" 
      "<!--\n" 
      "   if(top.location.href != \""+ my_url  +"\")\n" 
      "     top.location.href = \""+ my_url  +"\";\n" 
      "//-->" 
      "</script>\n"; 
   
  return head; 
} 
 
mapping query_tag_callers() 
{ 
  return ([ "killframe" : tag_killframe ]); 
}