芝麻web文件管理V1.00
编辑当前文件:/home2/sdektunc/www/cepali/admin/tool/installaddon/index.php
. /** * The main screen of the tool. * * @package tool_installaddon * @copyright 2013 David Mudrak
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require(__DIR__ . '/../../../config.php'); require_once($CFG->libdir.'/adminlib.php'); admin_externalpage_setup('tool_installaddon_index'); if (!empty($CFG->disableupdateautodeploy)) { notice(get_string('featuredisabled', 'tool_installaddon')); } $pluginman = core_plugin_manager::instance(); $installer = tool_installaddon_installer::instance(); $output = $PAGE->get_renderer('tool_installaddon'); $output->set_installer_instance($installer); // Handle the eventual request for installing from remote repository. $remoterequest = optional_param('installaddonrequest', null, PARAM_RAW); $installer->handle_remote_request($output, $remoterequest); // Handle the confirmed installation request. $installremote = optional_param('installremote', null, PARAM_COMPONENT); $installremoteversion = optional_param('installremoteversion', null, PARAM_INT); $installremoteconfirm = optional_param('installremoteconfirm', false, PARAM_BOOL); if ($installremote and $installremoteversion) { require_sesskey(); require_once($CFG->libdir.'/upgradelib.php'); $PAGE->set_pagelayout('maintenance'); $PAGE->set_popup_notification_allowed(false); if ($pluginman->is_remote_plugin_installable($installremote, $installremoteversion)) { $installable = array($pluginman->get_remote_plugin_info($installremote, $installremoteversion, true)); upgrade_install_plugins($installable, $installremoteconfirm, get_string('installfromrepo', 'tool_installaddon'), new moodle_url($PAGE->url, array('installremote' => $installremote, 'installremoteversion' => $installremoteversion, 'installremoteconfirm' => 1) ) ); } // We should never get here. throw new moodle_exception('installing_non_installable_component', 'tool_installaddon'); } // Handle installation of a plugin from the ZIP file. $installzipcomponent = optional_param('installzipcomponent', null, PARAM_COMPONENT); $installzipstorage = optional_param('installzipstorage', null, PARAM_FILE); $installzipconfirm = optional_param('installzipconfirm', false, PARAM_BOOL); if ($installzipcomponent and $installzipstorage) { require_sesskey(); require_once($CFG->libdir.'/upgradelib.php'); $PAGE->set_pagelayout('maintenance'); $PAGE->set_popup_notification_allowed(false); $installable = array((object)array( 'component' => $installzipcomponent, 'zipfilepath' => make_temp_directory('tool_installaddon').'/'.$installzipstorage.'/plugin.zip', )); upgrade_install_plugins($installable, $installzipconfirm, get_string('installfromzip', 'tool_installaddon'), new moodle_url($installer->index_url(), array('installzipcomponent' => $installzipcomponent, 'installzipstorage' => $installzipstorage, 'installzipconfirm' => 1) ) ); } $form = $installer->get_installfromzip_form(); if ($form->is_cancelled()) { redirect($PAGE->url); } else if ($data = $form->get_data()) { $storage = $installer->make_installfromzip_storage(); $form->save_file('zipfile', $storage.'/plugin.zip'); $ziprootdir = $pluginman->get_plugin_zip_root_dir($storage.'/plugin.zip'); if (empty($ziprootdir)) { echo $output->zip_not_valid_plugin_package_page($installer->index_url()); die(); } $component = $installer->detect_plugin_component($storage.'/plugin.zip'); if (!empty($component) and !empty($data->plugintype)) { // If the plugin type was explicitly set, make sure it matches the detected one. list($detectedtype, $detectedname) = core_component::normalize_component($component); if ($detectedtype !== $data->plugintype) { $form->selected_plugintype_mismatch($detectedtype); echo $output->index_page(); die(); } } if (empty($component)) { // This should not happen as all plugins are supposed to declare their // component. Still, let admins upload legacy packages if they want/need. if (empty($data->plugintype)) { $form->require_explicit_plugintype(); echo $output->index_page(); die(); } if (!empty($data->rootdir)) { $usepluginname = $data->rootdir; } else { $usepluginname = $ziprootdir; } $component = $data->plugintype.'_'.$usepluginname; } redirect($installer->index_url(array( 'installzipcomponent' => $component, 'installzipstorage' => basename($storage), 'sesskey' => sesskey(), ))); } // Display the tool main page. echo $output->index_page();