MDL-72092 timeline: Change the default location for the block

Add/Change the default location of the block on /my pages
This commit is contained in:
Peter Dias
2022-03-01 19:13:20 +08:00
committed by Mathew May
parent b12508c19a
commit a190e2defc
2 changed files with 95 additions and 1 deletions
+94
View File
@@ -0,0 +1,94 @@
<?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/>.
/**
* This file keeps track of upgrades to the timeline block
*
* Sometimes, changes between versions involve alterations to database structures
* and other major things that may break installations.
*
* The upgrade function in this file will attempt to perform all the necessary
* actions to upgrade your older installation to the current version.
*
* If there's something it cannot do itself, it will tell you what you need to do.
*
* The commands in here will all be database-neutral, using the methods of
* database_manager class
*
* Please do not forget to use upgrade_set_timeout()
* before any action that may take longer time to finish.
*
* @package block_timeline
* @copyright 2022 Peter Dias
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
/**
* Upgrade the timeline block
* @param int $oldversion
* @param object $block
*/
function xmldb_block_timeline_upgrade($oldversion, $block) {
global $CFG, $DB;
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.7.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.8.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.9.0 release upgrade line.
// Put any upgrade step following this.
if ($oldversion < 2022030200) {
$context = context_system::instance();
// Begin looking for any and all customised /my pages.
$pageselect = 'name = :name and private = :private';
$pageparams['name'] = '__default';
$pageparams['private'] = 1;
$pages = $DB->get_recordset_select('my_pages', $pageselect, $pageparams);
foreach ($pages as $subpage) {
$blockinstance = $DB->get_record('block_instances', ['blockname' => 'timeline',
'pagetypepattern' => 'my-index', 'subpagepattern' => $subpage->id]);
if (!$blockinstance) {
// Insert the timeline into the default index page.
$blockinstance = new stdClass;
$blockinstance->blockname = 'timeline';
$blockinstance->parentcontextid = $context->id;
$blockinstance->showinsubcontexts = false;
$blockinstance->pagetypepattern = 'my-index';
$blockinstance->subpagepattern = $subpage->id;
$blockinstance->defaultregion = 'content';
$blockinstance->defaultweight = -10;
$blockinstance->timecreated = time();
$blockinstance->timemodified = time();
$DB->insert_record('block_instances', $blockinstance);
} else if ($blockinstance->defaultregion !== 'content') {
$blockinstance->defaultregion = 'content';
$DB->update_record('block_instances', $blockinstance);
}
}
$pages->close();
upgrade_block_savepoint(true, 2022030200, 'timeline', false);
}
return true;
}
+1 -1
View File
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2021052500; // The current plugin version (Date: YYYYMMDDXX).
$plugin->version = 2022030200; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2021052500; // Requires this Moodle version.
$plugin->component = 'block_timeline'; // Full name of the plugin (used for diagnostics).