10, 'option2' => true, )); conf_update_param('skeleton', $conf['skeleton']); } else { // if you need to test the "old" configuration you must check if not yet unserialized $old_conf = is_string($conf['skeleton']) ? unserialize($conf['skeleton']) : $conf['skeleton']; if (empty($old_conf['option3'])) { $old_conf['option3'] = 'two'; } $conf['skeleton'] = serialize($old_conf); conf_update_param('skeleton', $conf['skeleton']); } // add a new table pwg_query(' CREATE TABLE IF NOT EXISTS `'. $prefixeTable .'skeleton` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `field1` mediumint(8) DEFAULT NULL, `field2` varchar(64) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;'); // add a new column to existing table $result = pwg_query('SHOW COLUMNS FROM `'.IMAGES_TABLE.'` LIKE "skeleton";'); if (!pwg_db_num_rows($result)) { pwg_query('ALTER TABLE `' . IMAGES_TABLE . '` ADD `skeleton` TINYINT(1) NOT NULL DEFAULT 0;'); } // create a local directory if (!file_exists(PHPWG_ROOT_PATH . PWG_LOCAL_DIR . 'skeleton/')) { mkdir(PHPWG_ROOT_PATH . PWG_LOCAL_DIR . 'skeleton/', 0755); } } function skeleton_uninstall() { global $prefixeTable, $conf; // delete configuration pwg_query('DELETE FROM `'. CONFIG_TABLE .'` WHERE param = "skeleton";'); unset($conf['skeleton']); // delete table pwg_query('DROP TABLE `'. $prefixeTable .'skeleton`;'); // delete field pwg_query('ALTER TABLE `'. IMAGES_TABLE .'` DROP `skeleton`;'); // delete local folder $dir = PHPWG_ROOT_PATH . PWG_LOCAL_DIR . 'skeleton/'; foreach (scandir($dir) as $file) { if ($file == '.' or $file == '..') continue; unlink($dir.$file); } rmdir($dir); }