. /** * Search and replace strings throughout all texts in the whole database * * @package tool * @subpackage replace * @copyright 1999 onwards Martin Dougiamas (http://dougiamas.com) * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ define('NO_OUTPUT_BUFFERING', true); require_once('../../../config.php'); require_once($CFG->dirroot.'/course/lib.php'); require_once($CFG->libdir.'/adminlib.php'); admin_externalpage_setup('toolreplace'); $search = optional_param('search', '', PARAM_RAW); $replace = optional_param('replace', '', PARAM_RAW); $sure = optional_param('sure', 0, PARAM_BOOL); ################################################################### echo $OUTPUT->header(); echo $OUTPUT->heading('Search and replace text throughout the whole database'); if ($DB->get_dbfamily() !== 'mysql' and $DB->get_dbfamily() !== 'postgres') { //TODO: add $DB->text_replace() to DML drivers echo $OUTPUT->notification('Sorry, this feature is implemented only for MySQL and PostgreSQL databases.'); echo $OUTPUT->footer(); die; } if (!data_submitted() or !$search or !$replace or !confirm_sesskey() or !$sure) { /// Print a form echo $OUTPUT->notification('This script is not supported, always make complete backup before proceeding!
This operation can not be reverted!'); echo $OUTPUT->box_start(); echo '
'; echo '
'; echo ''; echo '
(usually previous server URL)
'; echo '
(usually new server URL)
'; echo '
'; echo '
'; echo '
'; echo '
'; echo $OUTPUT->box_end(); echo $OUTPUT->footer(); die; } echo $OUTPUT->box_start(); db_replace($search, $replace); echo $OUTPUT->box_end(); /// Rebuild course cache which might be incorrect now echo $OUTPUT->notification('Rebuilding course cache...', 'notifysuccess'); rebuild_course_cache(); echo $OUTPUT->notification('...finished', 'notifysuccess'); echo $OUTPUT->continue_button(new moodle_url('/admin/index.php')); echo $OUTPUT->footer();