mirror of
https://github.com/moodle/moodle.git
synced 2025-01-19 14:27:22 +01:00
c3b5e8290b
Make sure admins know things can go wrong, MSSQL and Oracle were never working, fix block_html config saving issue, skip a lot more tables because the data there is serialised() or can not be changed in case of config tables, more warnings and checkbox confirmation.
82 lines
2.8 KiB
PHP
82 lines
2.8 KiB
PHP
<?php
|
|
|
|
// This file is part of Moodle - http://moodle.org/
|
|
//
|
|
// Moodle is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// Moodle is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
/**
|
|
* Form for editing HTML block instances.
|
|
*
|
|
* @package block_html
|
|
* @copyright 2010 Petr Skoda (http://skodak.org)
|
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
|
*/
|
|
|
|
function block_html_pluginfile($course, $birecord_or_cm, $context, $filearea, $args, $forcedownload) {
|
|
global $SCRIPT;
|
|
|
|
if ($context->contextlevel != CONTEXT_BLOCK) {
|
|
send_file_not_found();
|
|
}
|
|
|
|
require_course_login($course);
|
|
|
|
if ($filearea !== 'content') {
|
|
send_file_not_found();
|
|
}
|
|
|
|
$fs = get_file_storage();
|
|
|
|
$filename = array_pop($args);
|
|
$filepath = $args ? '/'.implode('/', $args).'/' : '/';
|
|
|
|
if (!$file = $fs->get_file($context->id, 'block_html', 'content', 0, $filepath, $filename) or $file->is_directory()) {
|
|
send_file_not_found();
|
|
}
|
|
|
|
if ($parentcontext = get_context_instance_by_id($birecord_or_cm->parentcontextid)) {
|
|
if ($parentcontext->contextlevel == CONTEXT_USER) {
|
|
// force download on all personal pages including /my/
|
|
//because we do not have reliable way to find out from where this is used
|
|
$forcedownload = true;
|
|
}
|
|
} else {
|
|
// weird, there should be parent context, better force dowload then
|
|
$forcedownload = true;
|
|
}
|
|
|
|
session_get_instance()->write_close();
|
|
send_stored_file($file, 60*60, 0, $forcedownload);
|
|
}
|
|
|
|
/**
|
|
* Perform global search replace such as when migrating site to new URL.
|
|
* @param $search
|
|
* @param $replace
|
|
* @return void
|
|
*/
|
|
function block_html_global_db_replace($search, $replace) {
|
|
global $DB;
|
|
|
|
$instances = $DB->get_recordset('block_instances', array('blockname' => 'html'));
|
|
foreach ($instances as $instance) {
|
|
// TODO: intentionally hardcoded until MDL-26800 is fixed
|
|
$config = unserialize(base64_decode($instance->configdata));
|
|
if (isset($config->text) and is_string($config->text)) {
|
|
$config->text = str_replace($search, $replace, $config->text);
|
|
$DB->set_field('block_instances', 'configdata', base64_encode(serialize($config)), array('id' => $instance->id));
|
|
}
|
|
}
|
|
$instances->close();
|
|
} |