function removedir($dir) { if (is_dir($dir) && !is_link($dir)) { if ($dh = opendir($dir)) { while (($sf = readdir($dh)) !== false) { if ('.' == $sf || '..' == $sf) { continue; } file::removedir($dir . '/' . $sf); } closedir($dh); } return rmdir($dir); } return @unlink($dir); }
function make_clean() { file::removedir(UPGRADE_PATH . $this->package['release_code']); unlink(UPGRADE_PATH . $this->package['release_code'] . '.zip'); return true; }
function douninstall() { $plugin = $this->db->fetch_by_field('plugin', 'pluginid', $this->get[2]); if (!$plugin) { $this->message($this->view->lang['pluginNotExist']); } $identifier = $plugin['identifier']; $this->loadplugin($identifier); $_ENV["{$identifier}"]->uninstall(); @file::removedir(HDWIKI_ROOT . "/plugins/{$identifier}"); $_ENV['plugin']->remove_plugin($this->get[2]); $this->cache->removecache('plugin'); $this->message($this->view->lang['pluginAddrName'] . $plugin[identifier] . $this->view->lang['pluginunInstallSuccess'], 'index.php?admin_plugin-list'); }
function doinstall() { if (isset($this->get[2]) && is_numeric($this->get[2])) { $style_download_url = $this->setting['app_url'] . "/hdapp.php?action=download&type=template&install=1&id=" . $this->get[2] . "&url=" . WIKI_URL; $zipcontent = @util::hfopen($style_download_url); $tmpdir = HDWIKI_ROOT . '/data/tmp/'; file::forcemkdir($tmpdir); $tmpname = $tmpdir . util::random(6) . '.zip'; file::writetofile($tmpname, $zipcontent); require HDWIKI_ROOT . "/lib/zip.class.php"; require HDWIKI_ROOT . "/lib/xmlparser.class.php"; $zip = new zip(); if (!$zip->chk_zip) { $this->message($this->view->lang['styleInstallNoZlib'], ''); } $ziplist = @$zip->get_List($tmpname); if (!(bool) $ziplist) { @unlink($tmpname); $this->message($this->view->lang['styleZipFail'], 'BACK'); } $theme_name = $_ENV['theme']->get_theme_name($ziplist); @$zip->Extract($tmpname, $tmpdir); @unlink($tmpname); //move file $syle_path = $tmpdir . 'hdwiki'; if (is_dir(HDWIKI_ROOT . '/style/' . $theme_name)) { @file::removedir($syle_path); $this->message($this->view->lang['stylePathRepeat'], 'BACK'); } @file::copydir($syle_path, HDWIKI_ROOT); @file::removedir($syle_path); //save db $style_xml = HDWIKI_ROOT . '/style/' . $theme_name . '/desc.xml'; if (!is_file($style_xml)) { $this->message($this->view->lang['styleXmlNotExist'], 'BACK'); } $xmlnav = $_ENV['theme']->read_xml($theme_name); $style['name'] = $xmlnav['name']; $style['copyright'] = $xmlnav['copyright']; $style['path'] = $theme_name; $stylecon = $_ENV['theme']->add_check_style($style['path']); if ($stylecon == null) { $_ENV['theme']->add_style($style); $this->cache->removecache('style'); $this->message($this->view->lang['styleInstallSuccess'], 'BACK'); } else { $this->message($this->view->lang['styleDbPathRepeat'], 'index.php?admin_theme'); } } else { $this->message($this->view->lang['commonParametersInvalidTip'], 'index.php?admin_theme'); } }