include $root . '/framework/class.secure.php';
    } else {
        trigger_error(sprintf("[ <b>%s</b> ] Can't include class.secure.php!", $_SERVER['SCRIPT_NAME']), E_USER_ERROR);
    }
}
// end include class.secure.php
define('KIT_INSTALL_RUNNING', true);
require_once WB_PATH . '/modules/' . basename(dirname(__FILE__)) . '/initialize.php';
require_once WB_PATH . '/modules/' . basename(dirname(__FILE__)) . '/class.mail.php';
require_once WB_PATH . '/modules/' . basename(dirname(__FILE__)) . '/class.newsletter.php';
require_once WB_PATH . '/modules/' . basename(dirname(__FILE__)) . '/class.cronjob.php';
global $admin;
global $database;
$error = '';
// first install configuration table!
$dbConfig = new dbKITcfg(true);
if ($dbConfig->isError()) {
    $error .= sprintf('<p>[Installation] %s</p>', $dbConfig->getError());
}
$dbKITcontact = new dbKITcontact(true);
if ($dbKITcontact->isError()) {
    $error .= sprintf('<p>[Installation] %s</p>', $dbKITcontact->getError());
}
$dbKITcontactAddress = new dbKITcontactAddress(true);
if ($dbKITcontactAddress->isError()) {
    $error .= sprintf('<p>[Installation] %s</p>', $dbKITcontactAddress->getError());
}
$dbKITprovider = new dbKITprovider(true);
if ($dbKITprovider->isError()) {
    $error .= sprintf('<p>[Installation] %s</p>', $dbKITprovider->getError());
}
$dbKITlanguages = new dbKITlanguages();
if (!$dbKITlanguages->sqlTableExists()) {
    if (!$dbKITlanguages->initTables()) {
        $error .= sprintf('<p>[CREATE TABLE mod_kit_languages] %s</p>', $dbKITlanguages->getError());
    }
}
// add field 'contact_language' to contact db
if (!$dbKITcontact->sqlFieldExists(dbKITcontact::field_contact_language)) {
    if (!$dbKITcontact->sqlAlterTableAddField(dbKITcontact::field_contact_language, "VARCHAR(2) NOT NULL DEFAULT 'en'", dbKITcontact::field_contact_note)) {
        $error .= sprintf('<p>[ALTER TABLE mod_kit_contact] %s</p>', $dbKITcontact->getError());
    }
}
/**
 * Release 0.56
 */
$dbKITcfg = new dbKITcfg();
// remove cfgGoogleMapsAPIkey
$where = array(dbKITcfg::field_name => 'cfgGoogleMapsAPIkey');
if (!$dbKITcfg->sqlDeleteRecord($where)) {
    $error .= sprintf('<p>[UPDATE CONFIG TABLE mod_kit_config] %s</p>', $dbKITcfg->getError());
}
/**
 * Release 0.62
 */
$where = array(dbKITcfg::field_name => 'cfgSortContactList');
if (!$dbKITcfg->sqlDeleteRecord($where)) {
    $error .= sprintf('<p>[UPDATE CONFIG TABLE mod_kit_config] %s</p>', $dbKITcfg->getError());
}
$where = array(dbKITcfg::field_name => 'cfgLimitContactList');
if (!$dbKITcfg->sqlDeleteRecord($where)) {
    $error .= sprintf('<p>[UPDATE CONFIG TABLE mod_kit_config] %s</p>', $dbKITcfg->getError());
 public function __construct($createTables = false)
 {
     $this->createTables = $createTables;
     // use another table prefix?
     if (file_exists(WB_PATH . '/modules/' . basename(dirname(__FILE__)) . '/config.json')) {
         $config = json_decode(file_get_contents(WB_PATH . '/modules/' . basename(dirname(__FILE__)) . '/config.json'), true);
         if (isset($config['table_prefix'])) {
             self::$table_prefix = $config['table_prefix'];
         }
     }
     parent::__construct();
     $this->setTablePrefix(self::$table_prefix);
     $this->setTableName('mod_kit_config');
     $this->addFieldDefinition(self::field_id, "INT(11) NOT NULL AUTO_INCREMENT", true);
     $this->addFieldDefinition(self::field_name, "VARCHAR(32) NOT NULL DEFAULT ''");
     $this->addFieldDefinition(self::field_type, "TINYINT UNSIGNED NOT NULL DEFAULT '" . self::type_undefined . "'");
     $this->addFieldDefinition(self::field_value, "VARCHAR(255) NOT NULL DEFAULT ''", false, false, true);
     $this->addFieldDefinition(self::field_label, "VARCHAR(64) NOT NULL DEFAULT 'ed_str_undefined'");
     $this->addFieldDefinition(self::field_description, "VARCHAR(255) NOT NULL DEFAULT 'ed_str_undefined'");
     $this->addFieldDefinition(self::field_status, "TINYINT UNSIGNED NOT NULL DEFAULT '" . self::status_active . "'");
     $this->addFieldDefinition(self::field_update_by, "VARCHAR(32) NOT NULL DEFAULT 'SYSTEM'");
     $this->addFieldDefinition(self::field_update_when, "DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'");
     $this->setIndexFields(array(self::field_name));
     $this->setAllowedHTMLtags('<a><abbr><acronym><span>');
     $this->checkFieldDefinitions();
     date_default_timezone_set(CFG_TIME_ZONE);
     // Tabelle erstellen
     if ($this->createTables) {
         if (!$this->sqlTableExists()) {
             if (!$this->sqlCreateTable()) {
                 $this->setError(sprintf('[%s - %s] %s', __METHOD__, __LINE__, $this->getError()));
             }
         }
     }
     if (!defined('KIT_INSTALL_RUNNING')) {
         // Default Werte garantieren
         if ($this->sqlTableExists()) {
             $this->checkConfig();
         }
     }
 }
    }
    if (file_exists($root . '/framework/class.secure.php')) {
        include $root . '/framework/class.secure.php';
    } else {
        trigger_error(sprintf("[ <b>%s</b> ] Can't include class.secure.php!", $_SERVER['SCRIPT_NAME']), E_USER_ERROR);
    }
}
// end include class.secure.php
define('KIT_INSTALL_RUNNING', true);
require_once WB_PATH . '/modules/' . basename(dirname(__FILE__)) . '/initialize.php';
require_once WB_PATH . '/modules/' . basename(dirname(__FILE__)) . '/class.mail.php';
require_once WB_PATH . '/modules/' . basename(dirname(__FILE__)) . '/class.newsletter.php';
require_once WB_PATH . '/modules/' . basename(dirname(__FILE__)) . '/class.cronjob.php';
global $admin;
$error = '';
$dbConfig = new dbKITcfg();
if ($dbConfig->sqlTableExists()) {
    if (!$dbConfig->sqlDeleteTable()) {
        $error .= sprintf('<p>[Delete Table] %s</p>', $dbConfig->getError());
    }
}
$dbContact = new dbKITcontact();
if ($dbContact->sqlTableExists()) {
    if (!$dbContact->sqlDeleteTable()) {
        $error .= sprintf('<p>[Delete Table] %s</p>', $dbContact->getError());
    }
}
$dbContactArray = new dbKITcontactArrayCfg();
if ($dbContactArray->sqlTableExists()) {
    if (!$dbContactArray->sqlDeleteTable()) {
        $error .= sprintf('<p>[Delete Table] %s</p>', $dbContactArray->getError());