public function install() { $this->create_data_dir(); Base_ThemeCommon::install_default_theme('Utils/RecordBrowser'); DB::CreateTable('recordbrowser_table_properties', 'id I2 AUTO KEY,'. 'tab C(64),'. 'quickjump C(64) DEFAULT \'\','. 'tpl C(255) DEFAULT \'\','. 'favorites I1 DEFAULT 0,'. 'recent I2 DEFAULT 0,'. 'full_history I1 DEFAULT 1,'. 'caption C(32) DEFAULT \'\','. 'icon C(255) DEFAULT \'\','. 'access_callback C(128) DEFAULT \'\','. 'description_callback C(128) DEFAULT \'\','. 'jump_to_id I1 DEFAULT 1,'. 'search_include I1 DEFAULT 0,'. 'search_priority I1 DEFAULT 0,'. 'printer C(255) DEFAULT \'\'', array('constraints'=>', UNIQUE(tab)')); DB::CreateTable('recordbrowser_datatype', 'type C(32) KEY,'. 'module C(64),'. 'func C(128)', array('constraints'=>'')); DB::CreateTable('recordbrowser_addon', 'tab C(64),'. 'module C(128),'. 'func C(128),'. 'pos I,'. 'enabled I1,'. 'label C(128)', array('constraints'=>', PRIMARY KEY(tab, module, func)')); DB::CreateTable('recordbrowser_browse_mode_definitions', 'tab C(64),'. 'module C(128),'. 'func C(128)', array('constraints'=>', PRIMARY KEY(tab, module, func)')); DB::CreateTable('recordbrowser_processing_methods', 'tab C(64),'. 'func C(255)', array('constraints'=>', PRIMARY KEY(tab, func)')); DB::CreateTable('recordbrowser_clipboard_pattern', 'tab C(64) KEY, pattern X, enabled I4'); DB::CreateTable('recordbrowser_words_index', 'id I AUTO KEY,word C(3)', array('constraints'=>', UNIQUE(word)')); DB::CreateTable('recordbrowser_words_map', 'word_id I, tab_id I2, record_id I, field_id I2, position I', array('constraints'=>', FOREIGN KEY (word_id) REFERENCES recordbrowser_words_index(id) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY (tab_id) REFERENCES recordbrowser_table_properties(id) ON DELETE CASCADE ON UPDATE CASCADE')); DB::CreateIndex('recordbrowser_words_map__idx','recordbrowser_words_map','tab_id,record_id'); Base_PrintCommon::register_printer(new Utils_RecordBrowser_RecordPrinter()); return true; }
public static function set_printer($tab, $class) { Base_PrintCommon::register_printer(new $class()); DB::Execute('UPDATE recordbrowser_table_properties SET printer=%s WHERE tab=%s', array($class, $tab)); }
<?php defined("_VALID_ACCESS") || die('Direct access forbidden'); Base_PrintCommon::register_printer(new Utils_RecordBrowser_RecordPrinter());