Roxen.git / server / modules / tags / configtablist.pike

version» Context lines:

Roxen.git/server/modules/tags/configtablist.pike:1:   /* -  * $Id: configtablist.pike,v 1.13 1999/05/20 03:26:17 neotron Exp $ +  * $Id: configtablist.pike,v 1.14 1999/07/24 21:56:21 nilsson Exp $    *    * Makes a tab-list like the one in the config-interface.    * -  * $Author: neotron $ +  * $Author: nilsson $    */    - constant cvs_version="$Id: configtablist.pike,v 1.13 1999/05/20 03:26:17 neotron Exp $"; + constant cvs_version="$Id: configtablist.pike,v 1.14 1999/07/24 21:56:21 nilsson Exp $";   constant thread_safe=1;    -  + #define old_rxml_compat 1 +    #define use_contents_cache 0   #define use_gif_cache 1   #include <module.h>   inherit "module";   inherit "roxenlib";      #if use_contents_cache   mapping(string:string) contents_cache = ([]);   #endif   
Roxen.git/server/modules/tags/configtablist.pike:26:   /*    * Functions    */      array register_module()   {    return(({ MODULE_PARSER, "Config tab-list",    "Adds some tags for making a config-interface "    "look-alike tab-list.<br>\n"    "Usage:<br>\n" -  "<ul><pre>&lt;config_tablist&gt;\n" +  "<ul><pre>&lt;tablist&gt;\n"    "&lt;tab href=\"/tab1/\"&gt;Some text&lt;/tab&gt;\n"    "&lt;tab href=\"/tab2/\"&gt;Some more text&lt;/tab&gt;\n"    "&lt;tab href=\"a/strange/place/\"&gt;Tab 3&lt;/tab&gt;\n" -  "&lt;/config_tablist&gt;\n" +  "&lt;/tablist&gt;\n"    "</pre></ul>Attributes for the &lt;tab&gt; tag:<br>\n"    "<ul><table border=0>\n"    "<tr><td><b>selected</b></td><td>Whether the tab is selected "    "or not.</td></tr>\n"    "<tr><td><b>bgcolor</b></td><td>What color to use as background. "    "Defaults to white.</td></tr>\n"    "<tr><td><b>alt</b></td><td>Alt-text for the image (default: "    "\"_/\" + text + \"\\_\").</td></tr>\n"    "<tr><td><b>border</b></td><td>Border for the image (default: "    "0).</td></tr>\n"    "</table></ul>\n", 0, 1 }));   }      void create()   {   }    - string tag_config_tab(string t, mapping a, string contents) + string tag_config_tab(string t, mapping a, string contents, mapping d)   {    string dir = "u/";    mapping img_attrs = ([]);    if(a->help) return register_module()[2];    if (a->selected) {    dir = "s/";    }    if(a->bgcolor)    dir+=replace(a->bgcolor,"#","|"); -  +  else if(d->bgcolor) +  dir+=replace(d->bgcolor,"#","|");    else    dir+="white";    dir+="/";    m_delete(a, "selected");       img_attrs->src = query_internal_location() + dir +    replace(http_encode_string(contents), "?", "%3f") + ".gif";    if (a->alt) {    img_attrs->alt = a->alt;    m_delete(a, "alt");    } else {    img_attrs->alt = "_/" + html_encode_string(contents) + "\\_";    }    if (a->border) {    img_attrs->border = a->border;    m_delete(a, "border");    } else {    img_attrs->border="0";    } -  +  if(!a->noxml && !d->noxml) img_attrs["/"]="/"; +  m_delete(a, "noxml");    return make_container("a", a, make_container("b", ([]),    make_tag("img", img_attrs)));   }      int my_hash(mixed o)   {    switch(sprintf("%t",o))    {    case "string": return hash(o);    case "int": return o;
Roxen.git/server/modules/tags/configtablist.pike:109:      string tag_config_tablist(string t, mapping a, string contents)   {   #if use_contents_cache    object md5 = Crypto.md5();    md5->update(contents+my_hash(a));    string key=md5->digest();    if(contents_cache[key])    return contents_cache[key];   #endif -  string res=replace(parse_html(contents, ([]), (["tab":tag_config_tab])), +  string res=replace(parse_html(contents, ([]), (["tab":tag_config_tab]), a),    ({ "\n", "\r" }), ({ "", "" }));   #if use_contents_cache    contents_cache[key]=res;   #endif    return res;   }      mapping query_tag_callers()   {    return ([]);   }    mapping query_container_callers()   { -  return ([ "config_tablist":tag_config_tablist ]); +  return ([ "tablist":tag_config_tablist + #if old_rxml_compat +  ,"config_tablist":tag_config_tablist + #endif +  ]);   }      #if constant(thread_create)   object interface_lock = Thread.Mutex();   #endif /* constant(thread_create) */      object load_interface()   {   #if constant(thread_create)    // Only one thread at a time may call roxen->configuration_interface().