MDL-45897 blocks: added 3 new default blocks to /my

This commit is contained in:
Andrew Davis 2014-06-26 20:10:11 +08:00
parent d29fb4ac65
commit 7623260459
7 changed files with 223 additions and 11 deletions

View File

@ -0,0 +1,72 @@
<?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 badges 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.
*
* @since Moodle 2.8
* @package block_badges
* @copyright 2014 Andrew Davis
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
/**
* Upgrade the badges block
* @param int $oldversion
* @param object $block
*/
function xmldb_block_badges_upgrade($oldversion, $block) {
global $DB;
if ($oldversion < 2014062600) {
// Add this block the default blocks on /my.
$blockname = 'badges';
$page = new moodle_page();
$page->set_context(context_system::instance());
// Check to see if this block is already on the default /my page.
$criteria = array(
'blockname' => $blockname,
'parentcontextid' => $page->context->id,
'pagetypepattern' => 'my-index'
);
if (!$DB->record_exists('block_instances', $criteria)) {
// Add the block to the default /my.
$page->blocks->add_region(BLOCK_POS_RIGHT);
$page->blocks->add_block($blockname, BLOCK_POS_RIGHT, 0, false, 'my-index');
}
upgrade_block_savepoint(true, 2014062600, $blockname);
}
return true;
}

View File

@ -25,6 +25,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2014051200; // The current plugin version (Date: YYYYMMDDXX).
$plugin->version = 2014062600; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2014050800; // Requires this Moodle version.
$plugin->component = 'block_badges';
$plugin->component = 'block_badges';

View File

@ -0,0 +1,72 @@
<?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 calendar_month 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.
*
* @since Moodle 2.8
* @package block_calendar_month
* @copyright 2014 Andrew Davis
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
/**
* Upgrade the calendar_month block
* @param int $oldversion
* @param object $block
*/
function xmldb_block_calendar_month_upgrade($oldversion, $block) {
global $DB;
if ($oldversion < 2014062600) {
// Add this block the default blocks on /my.
$blockname = 'calendar_month';
$page = new moodle_page();
$page->set_context(context_system::instance());
// Check to see if this block is already on the default /my page.
$criteria = array(
'blockname' => $blockname,
'parentcontextid' => $page->context->id,
'pagetypepattern' => 'my-index'
);
if (!$DB->record_exists('block_instances', $criteria)) {
// Add the block to the default /my.
$page->blocks->add_region(BLOCK_POS_RIGHT);
$page->blocks->add_block($blockname, BLOCK_POS_RIGHT, 0, false, 'my-index');
}
upgrade_block_savepoint(true, 2014062600, $blockname);
}
return true;
}

View File

@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2014051200; // The current plugin version (Date: YYYYMMDDXX)
$plugin->version = 2014062600; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2014050800; // Requires this Moodle version
$plugin->component = 'block_calendar_month'; // Full name of the plugin (used for diagnostics)

View File

@ -0,0 +1,72 @@
<?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 calendar_upcoming 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.
*
* @since Moodle 2.8
* @package block_calendar_upcoming
* @copyright 2014 Andrew Davis
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
/**
* Upgrade the calendar_upcoming block
* @param int $oldversion
* @param object $block
*/
function xmldb_block_calendar_upcoming_upgrade($oldversion, $block) {
global $DB;
if ($oldversion < 2014062600) {
// Add this block the default blocks on /my.
$blockname = 'calendar_upcoming';
$page = new moodle_page();
$page->set_context(context_system::instance());
// Check to see if this block is already on the default /my page.
$criteria = array(
'blockname' => $blockname,
'parentcontextid' => $page->context->id,
'pagetypepattern' => 'my-index'
);
if (!$DB->record_exists('block_instances', $criteria)) {
// Add the block to the default /my.
$page->blocks->add_region(BLOCK_POS_RIGHT);
$page->blocks->add_block($blockname, BLOCK_POS_RIGHT, 0, false, 'my-index');
}
upgrade_block_savepoint(true, 2014062600, $blockname);
}
return true;
}

View File

@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2014051200; // The current plugin version (Date: YYYYMMDDXX)
$plugin->version = 2014062600; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2014050800; // Requires this Moodle version
$plugin->component = 'block_calendar_upcoming'; // Full name of the plugin (used for diagnostics)

View File

@ -2248,11 +2248,7 @@ function blocks_add_default_system_blocks() {
$page->blocks->add_blocks(array(BLOCK_POS_LEFT => array('navigation', 'settings')), '*', null, true);
$page->blocks->add_blocks(array(BLOCK_POS_LEFT => array('admin_bookmarks')), 'admin-*', null, null, 2);
if ($defaultmypage = $DB->get_record('my_pages', array('userid'=>null, 'name'=>'__default', 'private'=>1))) {
$subpagepattern = $defaultmypage->id;
} else {
$subpagepattern = null;
}
$page->blocks->add_blocks(array(BLOCK_POS_RIGHT => array('private_files', 'online_users'), 'content' => array('course_overview')), 'my-index', $subpagepattern, false);
$newblocks = array('private_files', 'online_users', 'badges', 'calendar_month', 'calendar_upcoming');
$newcontent = array('course_overview');
$page->blocks->add_blocks(array(BLOCK_POS_RIGHT => $newblocks, 'content' => $newcontent), 'my-index');
}