1 <?php 2 3 // This file is part of Moodle - http://moodle.org/ 4 // 5 // Moodle is free software: you can redistribute it and/or modify 6 // it under the terms of the GNU General Public License as published by 7 // the Free Software Foundation, either version 3 of the License, or 8 // (at your option) any later version. 9 // 10 // Moodle is distributed in the hope that it will be useful, 11 // but WITHOUT ANY WARRANTY; without even the implied warranty of 12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 // GNU General Public License for more details. 14 // 15 // You should have received a copy of the GNU General Public License 16 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 17 18 /** 19 * Defines backup_theme_plugin class 20 * 21 * @package core_backup 22 * @subpackage moodle2 23 * @category backup 24 * @copyright 2011 onwards The Open University 25 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 26 */ 27 28 defined('MOODLE_INTERNAL') || die(); 29 30 /** 31 * Base class for theme backup plugins. 32 * 33 * NOTE: When you back up a course, it runs backup for ALL themes - not just 34 * the currently selected one. 35 * 36 * That means that if, for example, a course was once in theme A, and theme A 37 * had some data settings, but it is then changed to theme B, the data settings 38 * will still be included in the backup and restore. With the restored course, 39 * if you ever change it back to theme A, the settings will be ready. 40 * 41 * It also means that other themes which are not the one set up for the course, 42 * but might be seen by some users (eg user themes, session themes, mnet themes) 43 * can store data. 44 * 45 * If this behaviour is not desired for a particular theme's data, the subclass 46 * can call is_current_theme('myname') to check. 47 */ 48 abstract class backup_theme_plugin extends backup_plugin { 49 50 /** 51 * @var string Current theme for course (may not be the same as plugin). 52 */ 53 protected $coursetheme; 54 55 /** 56 * @param string $plugintype Plugin type (always 'theme') 57 * @param string $pluginname Plugin name (name of theme) 58 * @param backup_optigroup $optigroup Group that will contain this data 59 * @param backup_course_structure_step $step Backup step that this is part of 60 */ 61 public function __construct($plugintype, $pluginname, $optigroup, $step) { 62 63 parent::__construct($plugintype, $pluginname, $optigroup, $step); 64 65 $this->coursetheme = backup_plan_dbops::get_theme_from_courseid( 66 $this->task->get_courseid()); 67 68 } 69 70 /** 71 * Return condition for whether this theme should be backed up (= if it 72 * is the same theme as the one used in this course). This condition has 73 * the theme used in the course. It will be compared against the name 74 * of the theme, by use of third parameter in get_plugin_element; in 75 * subclass, you should do: 76 * $plugin = $this->get_plugin_element(null, $this->get_theme_condition(), 'mytheme'); 77 */ 78 protected function get_theme_condition() { 79 return array('sqlparam' => $this->coursetheme); 80 } 81 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body