/** * The furniture object for the document handler. * @author Pinkfish * @started Tue Jan 15 16:43:39 PST 2002 */ inherit "/std/room/furniture/commercial"; inherit "/std/room/furniture/inherit/document_handler"; #include <room/document_handler.h> void create() { document_handler::create(); commercial::create(); add_help_file("document_handler"); set_shop_use_types( ({ "document_view", "document_add", "document_delete" }) ); } /* create() */ /** @ignore yes */ string query_save_dir() { return commercial::query_save_dir() + "/" + query_commercial_id(); } /* query_save_dir() */ /** @ignore yes */ void load_me() { if (!query_commercial_id()) { setup_new_commercial_id(); } // Make the directory for our stuff to go in. if (unguarded( (: file_size(query_save_dir()) :) ) != -2) { unguarded( (: mkdir(query_save_dir()) :)); } } /* load_me() */ void save_me() { environment()->event_save(this_object()); } /* save_me() */ /** @ignore yes */ void init() { add_command("list", "documents [from] <direct:object>", (: do_list() :)); add_command("view", "document <string'id'> [from] <direct:object>", (: do_display($4[0]) :)); add_command("add", "documents {html|plain} called <string:quoted'title'> to <direct:object>", (: do_add_document($4[1], ($4[0] == "html"?DOCUMENT_HTML:DOCUMENT_PLAIN)) :)); add_command("delete", "document <string'id'> [from] <direct:object>", (: do_delete_document($4[0]) :)); } /* init() */ /** @ignore yes */ mapping query_dynamic_auto_load() { mapping map; map = commercial::query_dynamic_auto_load(); document_handler::query_dynamic_auto_load(map); return map; } void init_dynamic_arg(mapping map) { document_handler::init_dynamic_arg(map); commercial::init_dynamic_arg(map); } /* init_dynamic_arg() */