From 7204a990e52aa84f94324c957dbb60b6cec74193 Mon Sep 17 00:00:00 2001 From: Mathew May Date: Thu, 28 Feb 2019 12:01:40 +0800 Subject: [PATCH] MDL-64506 theme_more: Remove More from core --- theme/more/classes/privacy/provider.php | 46 ------ theme/more/config.php | 40 ----- theme/more/db/install.php | 47 ------ theme/more/db/upgrade.php | 49 ------- theme/more/lang/en/theme_more.php | 82 ----------- theme/more/less/moodle.less | 19 --- theme/more/lib.php | 181 ----------------------- theme/more/pix/background.jpg | Bin 4451 -> 0 bytes theme/more/pix/favicon.ico | Bin 1150 -> 0 bytes theme/more/pix/screenshot.jpg | Bin 51095 -> 0 bytes theme/more/settings.php | 185 ------------------------ theme/more/style/custom.css | 40 ----- theme/more/version.php | 33 ----- 13 files changed, 722 deletions(-) delete mode 100644 theme/more/classes/privacy/provider.php delete mode 100644 theme/more/config.php delete mode 100644 theme/more/db/install.php delete mode 100644 theme/more/db/upgrade.php delete mode 100644 theme/more/lang/en/theme_more.php delete mode 100644 theme/more/less/moodle.less delete mode 100644 theme/more/lib.php delete mode 100644 theme/more/pix/background.jpg delete mode 100644 theme/more/pix/favicon.ico delete mode 100644 theme/more/pix/screenshot.jpg delete mode 100644 theme/more/settings.php delete mode 100644 theme/more/style/custom.css delete mode 100644 theme/more/version.php diff --git a/theme/more/classes/privacy/provider.php b/theme/more/classes/privacy/provider.php deleted file mode 100644 index c74f2cfe196..00000000000 --- a/theme/more/classes/privacy/provider.php +++ /dev/null @@ -1,46 +0,0 @@ -. - -/** - * Privacy Subsystem implementation for theme_more. - * - * @package theme_more - * @copyright 2018 Andrew Nicols - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -namespace theme_more\privacy; - -defined('MOODLE_INTERNAL') || die(); - -/** - * The more theme does not store any data. - * - * @copyright 2018 Andrew Nicols - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ -class provider implements \core_privacy\local\metadata\null_provider { - - /** - * Get the language string identifier with the component's language - * file to explain why this plugin stores no data. - * - * @return string - */ - public static function get_reason() : string { - return 'privacy:metadata'; - } -} diff --git a/theme/more/config.php b/theme/more/config.php deleted file mode 100644 index 09991ee3e61..00000000000 --- a/theme/more/config.php +++ /dev/null @@ -1,40 +0,0 @@ -. - -/** - * Theme More config file. - * - * @package theme_more - * @copyright 2014 Frédéric Massart - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -$THEME->name = 'more'; -$THEME->parents = array('clean', 'bootstrapbase'); - -$THEME->doctype = 'html5'; -$THEME->sheets = array('custom'); -$THEME->lessfile = 'moodle'; -$THEME->usefallback = true; -$THEME->parents_exclude_sheets = array('bootstrapbase' => array('moodle'), 'clean' => array('custom')); -$THEME->lessvariablescallback = 'theme_more_less_variables'; -$THEME->extralesscallback = 'theme_more_extra_less'; -$THEME->yuicssmodules = array(); -$THEME->enable_dock = true; -$THEME->editor_sheets = array(); - -$THEME->rendererfactory = 'theme_overridden_renderer_factory'; -$THEME->csspostprocess = 'theme_more_process_css'; diff --git a/theme/more/db/install.php b/theme/more/db/install.php deleted file mode 100644 index 2544f417efb..00000000000 --- a/theme/more/db/install.php +++ /dev/null @@ -1,47 +0,0 @@ -. - -/** - * Theme More install. - * - * @package theme_more - * @copyright 2014 Frédéric Massart - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -defined('MOODLE_INTERNAL') || die(); - -/** - * Theme_more install function. - * - * @return void - */ -function xmldb_theme_more_install() { - global $CFG; - - // Set the default background. - $fs = get_file_storage(); - - $filerecord = new stdClass(); - $filerecord->component = 'theme_more'; - $filerecord->contextid = context_system::instance()->id; - $filerecord->userid = get_admin()->id; - $filerecord->filearea = 'backgroundimage'; - $filerecord->filepath = '/'; - $filerecord->itemid = 0; - $filerecord->filename = 'background.jpg'; - $fs->create_file_from_pathname($filerecord, $CFG->dirroot . '/theme/more/pix/background.jpg'); -} diff --git a/theme/more/db/upgrade.php b/theme/more/db/upgrade.php deleted file mode 100644 index 1573e64c2ee..00000000000 --- a/theme/more/db/upgrade.php +++ /dev/null @@ -1,49 +0,0 @@ -. - -/** - * Theme More upgrade. - * - * @package theme_more - * @copyright 2014 Frédéric Massart - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -defined('MOODLE_INTERNAL') || die(); - -/** - * Theme_more upgrade function. - * - * @param int $oldversion The version we upgrade from. - * @return bool - */ -function xmldb_theme_more_upgrade($oldversion) { - global $CFG; - - // Automatically generated Moodle v3.3.0 release upgrade line. - // Put any upgrade step following this. - - // Automatically generated Moodle v3.4.0 release upgrade line. - // Put any upgrade step following this. - - // Automatically generated Moodle v3.5.0 release upgrade line. - // Put any upgrade step following this. - - // Automatically generated Moodle v3.6.0 release upgrade line. - // Put any upgrade step following this. - - return true; -} diff --git a/theme/more/lang/en/theme_more.php b/theme/more/lang/en/theme_more.php deleted file mode 100644 index 361867f5528..00000000000 --- a/theme/more/lang/en/theme_more.php +++ /dev/null @@ -1,82 +0,0 @@ -. - -/** - * Theme More lang file. - * - * @package theme_more - * @copyright 2014 Frédéric Massart - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -$string['backgroundfixed'] = 'Background fixed'; -$string['backgroundfixed_desc'] = 'Use this setting to fix the background image to the page.'; -$string['backgroundimage'] = 'Background image'; -$string['backgroundimage_desc'] = 'The image to display as a background of the site.'; -$string['backgroundposition'] = 'Background position'; -$string['backgroundposition_desc'] = 'The position of the background image.'; -$string['backgroundpositioncenterbottom'] = 'Center bottom'; -$string['backgroundpositioncentercenter'] = 'Center center'; -$string['backgroundpositioncentertop'] = 'Center top'; -$string['backgroundpositionleftbottom'] = 'Left bottom'; -$string['backgroundpositionleftcenter'] = 'Left center'; -$string['backgroundpositionlefttop'] = 'Left top'; -$string['backgroundpositionrightbottom'] = 'Right bottom'; -$string['backgroundpositionrightcenter'] = 'Right center'; -$string['backgroundpositionrighttop'] = 'Right top'; -$string['backgroundrepeat'] = 'Background repeat'; -$string['backgroundrepeat_desc'] = 'Defines the way the background image will be repeated.'; -$string['backgroundrepeatnorepeat'] = 'No repeat'; -$string['backgroundrepeatrepeat'] = 'Repeat'; -$string['backgroundrepeatrepeatx'] = 'Repeat horizontally'; -$string['backgroundrepeatrepeaty'] = 'Repeat vertically'; -$string['bodybackground'] = 'Background colour'; -$string['bodybackground_desc'] = 'The main colour to use for the background.'; -$string['choosereadme'] = '

More is a theme that allows you to easily customise Moodle\'s look and feel directly from the web interface.

-

Visit the admin settings to change colours, add an image as a background, add your logo and more.

'; - -$string['configtitle'] = 'More'; -$string['contentbackground'] = 'Main content background colour'; -$string['contentbackground_desc'] = 'The background colour of the main content of the site, leave empty for none.'; - -$string['customcss'] = 'Custom CSS'; -$string['customcssdesc'] = 'Whatever CSS rules you add to this textarea will be reflected in every page, making for easier customization of this theme.'; - -$string['footnote'] = 'Footnote'; -$string['footnotedesc'] = 'Whatever you add to this textarea will be displayed in the footer throughout your Moodle site.'; - -$string['invert'] = 'Invert navbar'; -$string['invertdesc'] = 'Swaps text and background for the navbar at the top of the page between black and white.'; - -$string['linkcolor'] = 'Link colour'; -$string['linkcolor_desc'] = 'The colour of the links.'; -$string['logo'] = 'Logo'; -$string['logodesc'] = 'The logo is only displayed in the header of the front page and login page.
If the height of your logo is more than 75px add div.logo {height: 100px;} to the Custom CSS box below, amending accordingly if the height is other than 100px. If a logo is not added here, the logo in Appearance > Logos will be used.'; - -$string['pluginname'] = 'More'; -$string['privacy:metadata'] = 'The More theme does not store any personal data about any user.'; -$string['region-side-post'] = 'Right'; -$string['region-side-pre'] = 'Left'; -$string['secondarybackground'] = 'Secondary background colour'; -$string['secondarybackground_desc'] = 'The background colour of any secondary content, such as blocks.'; -$string['sitelogo'] = 'Site logo'; -$string['sitename'] = 'Display site name along with small logo'; -$string['sitenamedesc'] = 'If there is no small logo, the site name is always displayed in the navigation bar. If a small logo is set, it may be displayed with or without the site name.'; -$string['smalllogo'] = 'Small logo'; -$string['smalllogodesc'] = 'The small logo is displayed in the navigation bar. If there is a header logo for the front page and login page, the small logo is not displayed on these pages. If a logo is not added here, the compact logo in Appearance > Logos will be used.'; -$string['textcolor'] = 'Text colour'; -$string['textcolor_desc'] = 'The colour of the text.'; - diff --git a/theme/more/less/moodle.less b/theme/more/less/moodle.less deleted file mode 100644 index b7d8a31596c..00000000000 --- a/theme/more/less/moodle.less +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Import all the rules from the parent. - */ -@import "../../bootstrapbase/less/moodle.less"; - -// Set the secondary background. -@tableBackgroundAccent: darken(@wellBackground, 5%); -@tableBackgroundHover: darken(@wellBackground, 10%); -@tableBorder: @wellBorder; -@navbarBackground: @wellBackground; -@formActionsBackground: @wellBackground; -@paginationActiveBackground: @wellBackground; -@hrBorder: darken(@wellBackground, 5%); - -// Remove unwanted text shadow, this can look odd with random colours. -.breadcrumb li, -.nav-header { - text-shadow: none; -} \ No newline at end of file diff --git a/theme/more/lib.php b/theme/more/lib.php deleted file mode 100644 index 0162903e511..00000000000 --- a/theme/more/lib.php +++ /dev/null @@ -1,181 +0,0 @@ -. - -/** - * Theme More lib. - * - * @package theme_more - * @copyright 2014 Frédéric Massart - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -/** - * Extra LESS code to inject. - * - * This will generate some LESS code from the settings used by the user. We cannot use - * the {@link theme_more_less_variables()} here because we need to create selectors or - * alter existing ones. - * - * @param theme_config $theme The theme config object. - * @return string Raw LESS code. - */ -function theme_more_extra_less($theme) { - $content = ''; - $imageurl = $theme->setting_file_url('backgroundimage', 'backgroundimage'); - // Sets the background image, and its settings. - if (!empty($imageurl)) { - $content .= 'body { '; - $content .= "background-image: url('$imageurl');"; - if (!empty($theme->settings->backgroundfixed)) { - $content .= 'background-attachment: fixed;'; - } - if (!empty($theme->settings->backgroundposition)) { - $content .= 'background-position: ' . str_replace('_', ' ', $theme->settings->backgroundposition) . ';'; - } - if (!empty($theme->settings->backgroundrepeat)) { - $content .= 'background-repeat: ' . $theme->settings->backgroundrepeat . ';'; - } - $content .= ' }'; - } - // If there the user wants a background for the content, we need to make it look consistent, - // therefore we need to round its borders, and adapt the border colour. - if (!empty($theme->settings->contentbackground)) { - $content .= ' - #region-main { - .well; - background-color: ' . $theme->settings->contentbackground . '; - border-color: darken(' . $theme->settings->contentbackground . ', 7%); - }'; - } - return $content; -} - -/** - * Returns variables for LESS. - * - * We will inject some LESS variables from the settings that the user has defined - * for the theme. No need to write some custom LESS for this. - * - * @param theme_config $theme The theme config object. - * @return array of LESS variables without the @. - */ -function theme_more_less_variables($theme) { - $variables = array(); - if (!empty($theme->settings->bodybackground)) { - $variables['bodyBackground'] = $theme->settings->bodybackground; - } - if (!empty($theme->settings->textcolor)) { - $variables['textColor'] = $theme->settings->textcolor; - } - if (!empty($theme->settings->linkcolor)) { - $variables['linkColor'] = $theme->settings->linkcolor; - } - if (!empty($theme->settings->secondarybackground)) { - $variables['wellBackground'] = $theme->settings->secondarybackground; - } - return $variables; -} - -/** - * Parses CSS before it is cached. - * - * This function can make alterations and replace patterns within the CSS. - * - * @param string $css The CSS - * @param theme_config $theme The theme config object. - * @return string The parsed CSS The parsed CSS. - */ -function theme_more_process_css($css, $theme) { - global $OUTPUT; - - // Set the background image for the logo. - $logo = $OUTPUT->get_logo_url(null, 100); - $css = theme_more_set_logo($css, $logo); - - // Set custom CSS. - if (!empty($theme->settings->customcss)) { - $customcss = $theme->settings->customcss; - } else { - $customcss = null; - } - $css = theme_more_set_customcss($css, $customcss); - - return $css; -} - -/** - * Adds the logo to CSS. - * - * @param string $css The CSS. - * @param string $logo The URL of the logo. - * @return string The parsed CSS - */ -function theme_more_set_logo($css, $logo) { - $tag = '[[setting:logo]]'; - $replacement = $logo; - if (is_null($replacement)) { - $replacement = ''; - } - - $css = str_replace($tag, $replacement, $css); - - return $css; -} - -/** - * Serves any files associated with the theme settings. - * - * @param stdClass $course - * @param stdClass $cm - * @param context $context - * @param string $filearea - * @param array $args - * @param bool $forcedownload - * @param array $options - * @return bool - */ -function theme_more_pluginfile($course, $cm, $context, $filearea, $args, $forcedownload, array $options = array()) { - if ($context->contextlevel == CONTEXT_SYSTEM && - ($filearea === 'logo' || $filearea === 'smalllogo' || $filearea === 'backgroundimage')) { - $theme = theme_config::load('more'); - // By default, theme files must be cache-able by both browsers and proxies. - if (!array_key_exists('cacheability', $options)) { - $options['cacheability'] = 'public'; - } - return $theme->setting_file_serve($filearea, $args, $forcedownload, $options); - } else { - send_file_not_found(); - } -} - -/** - * Adds any custom CSS to the CSS before it is cached. - * - * @param string $css The original CSS. - * @param string $customcss The custom CSS to add. - * @return string The CSS which now contains our custom CSS. - */ -function theme_more_set_customcss($css, $customcss) { - $tag = '[[setting:customcss]]'; - $replacement = $customcss; - if (is_null($replacement)) { - $replacement = ''; - } - - $css = str_replace($tag, $replacement, $css); - - return $css; -} diff --git a/theme/more/pix/background.jpg b/theme/more/pix/background.jpg deleted file mode 100644 index 808052dbec7209349d71bee8498047de209fba8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4451 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 F{|&|ssK)>R diff --git a/theme/more/pix/favicon.ico b/theme/more/pix/favicon.ico deleted file mode 100644 index eea02482c3702d68518faecf6021610628fc1b62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1150 zcmZQzU<5(|0R|wcz>vYhz#zuJz@P!dKp~(AL>x#lFaYI*xFHzKA4G&k&1VMn>d%rI zwV%y(8owCW_kLwpuK&WI*Zx&OyZx($Ue{M`t4ZIOI}iL~G@1NOU8nz>h4JL?IxsIl z_2&Wge*@~j0@N?7+yK_!2h{%)sDB?&KQB-}tLfx#Yk>N{1N9$Cnf8?_dFod-tvaCn zHJ?j>`u_vM4%K5*#!2DJYx16+Ui*OS(h;qHg)2ik7~#QJ(w zpBR8)P@-A;;lEzPyGKslZxy90--Gne0K32Y>uH^*^_p`pwZ{#&>;#3E!?k_3umTy&+fD zvt4geZ-;zhTLj7ze%3jbHFrxBc^9olamF_I!P%*Z1w2PT#lx z`V+o=v7YfgbHe<6(v>aqYO?ZcFGR(pe)aYa`0wc8{NL2X{J(~}=6@|iyUUi1H;avW zzpvHr`Fcmc@7q0~{rfGZeoG8r_JgCOrk|mmxwH`f|DS;YgdYM82Vq4ttN`T0Km#KK!vlE+hCe_I(+2=Z CziV^= diff --git a/theme/more/pix/screenshot.jpg b/theme/more/pix/screenshot.jpg deleted file mode 100644 index e10dc4aef443def86bf97aa392795cf251c533c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51095 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
    =} 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 H|8D{S@nBP^ diff --git a/theme/more/settings.php b/theme/more/settings.php deleted file mode 100644 index 69c800fdee0..00000000000 --- a/theme/more/settings.php +++ /dev/null @@ -1,185 +0,0 @@ -. - -/** - * Theme More settings. - * - * Each setting that is defined in the parent theme Clean should be - * defined here too, and use the exact same config name. The reason - * is that theme_more does not define any layout files to re-use the - * ones from theme_clean. But as those layout files use the function - * {@link theme_clean_get_html_for_settings} that belong to Clean, - * we have to make sure it works as expected by having the same settings - * in our theme. - * - * @see theme_clean_get_html_for_settings - * @package theme_more - * @copyright 2014 Frédéric Massart - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -defined('MOODLE_INTERNAL') || die; - -if ($ADMIN->fulltree) { - - // @textColor setting. - $name = 'theme_more/textcolor'; - $title = get_string('textcolor', 'theme_more'); - $description = get_string('textcolor_desc', 'theme_more'); - $default = '#333366'; - $setting = new admin_setting_configcolourpicker($name, $title, $description, $default, null, false); - $setting->set_updatedcallback('theme_reset_all_caches'); - $settings->add($setting); - - // @linkColor setting. - $name = 'theme_more/linkcolor'; - $title = get_string('linkcolor', 'theme_more'); - $description = get_string('linkcolor_desc', 'theme_more'); - $default = '#FF6500'; - $setting = new admin_setting_configcolourpicker($name, $title, $description, $default, null, false); - $setting->set_updatedcallback('theme_reset_all_caches'); - $settings->add($setting); - - // @bodyBackground setting. - $name = 'theme_more/bodybackground'; - $title = get_string('bodybackground', 'theme_more'); - $description = get_string('bodybackground_desc', 'theme_more'); - $default = ''; - $setting = new admin_setting_configcolourpicker($name, $title, $description, $default, null, false); - $setting->set_updatedcallback('theme_reset_all_caches'); - $settings->add($setting); - - // Background image setting. - $name = 'theme_more/backgroundimage'; - $title = get_string('backgroundimage', 'theme_more'); - $description = get_string('backgroundimage_desc', 'theme_more'); - $setting = new admin_setting_configstoredfile($name, $title, $description, 'backgroundimage'); - $setting->set_updatedcallback('theme_reset_all_caches'); - $settings->add($setting); - - // Background repeat setting. - $name = 'theme_more/backgroundrepeat'; - $title = get_string('backgroundrepeat', 'theme_more'); - $description = get_string('backgroundrepeat_desc', 'theme_more');; - $default = 'repeat'; - $choices = array( - '0' => get_string('default'), - 'repeat' => get_string('backgroundrepeatrepeat', 'theme_more'), - 'repeat-x' => get_string('backgroundrepeatrepeatx', 'theme_more'), - 'repeat-y' => get_string('backgroundrepeatrepeaty', 'theme_more'), - 'no-repeat' => get_string('backgroundrepeatnorepeat', 'theme_more'), - ); - $setting = new admin_setting_configselect($name, $title, $description, $default, $choices); - $setting->set_updatedcallback('theme_reset_all_caches'); - $settings->add($setting); - - // Background position setting. - $name = 'theme_more/backgroundposition'; - $title = get_string('backgroundposition', 'theme_more'); - $description = get_string('backgroundposition_desc', 'theme_more'); - $default = '0'; - $choices = array( - '0' => get_string('default'), - 'left_top' => get_string('backgroundpositionlefttop', 'theme_more'), - 'left_center' => get_string('backgroundpositionleftcenter', 'theme_more'), - 'left_bottom' => get_string('backgroundpositionleftbottom', 'theme_more'), - 'right_top' => get_string('backgroundpositionrighttop', 'theme_more'), - 'right_center' => get_string('backgroundpositionrightcenter', 'theme_more'), - 'right_bottom' => get_string('backgroundpositionrightbottom', 'theme_more'), - 'center_top' => get_string('backgroundpositioncentertop', 'theme_more'), - 'center_center' => get_string('backgroundpositioncentercenter', 'theme_more'), - 'center_bottom' => get_string('backgroundpositioncenterbottom', 'theme_more'), - ); - $setting = new admin_setting_configselect($name, $title, $description, $default, $choices); - $setting->set_updatedcallback('theme_reset_all_caches'); - $settings->add($setting); - - // Background fixed setting. - $name = 'theme_more/backgroundfixed'; - $title = get_string('backgroundfixed', 'theme_more'); - $description = get_string('backgroundfixed_desc', 'theme_more'); - $setting = new admin_setting_configcheckbox($name, $title, $description, 0); - $setting->set_updatedcallback('theme_reset_all_caches'); - $settings->add($setting); - - // Main content background color. - $name = 'theme_more/contentbackground'; - $title = get_string('contentbackground', 'theme_more'); - $description = get_string('contentbackground_desc', 'theme_more'); - $default = '#FFFFFF'; - $setting = new admin_setting_configcolourpicker($name, $title, $description, $default, null, false); - $setting->set_updatedcallback('theme_reset_all_caches'); - $settings->add($setting); - - // Secondary background color. - $name = 'theme_more/secondarybackground'; - $title = get_string('secondarybackground', 'theme_more'); - $description = get_string('secondarybackground_desc', 'theme_more'); - $default = '#FFFFFF'; - $setting = new admin_setting_configcolourpicker($name, $title, $description, $default, null, false); - $setting->set_updatedcallback('theme_reset_all_caches'); - $settings->add($setting); - - // Invert Navbar to dark background. - $name = 'theme_more/invert'; - $title = get_string('invert', 'theme_more'); - $description = get_string('invertdesc', 'theme_more'); - $setting = new admin_setting_configcheckbox($name, $title, $description, 1); - $setting->set_updatedcallback('theme_reset_all_caches'); - $settings->add($setting); - - // Logo file setting. - $name = 'theme_more/logo'; - $title = get_string('logo','theme_more'); - $description = get_string('logodesc', 'theme_more'); - $setting = new admin_setting_configstoredfile($name, $title, $description, 'logo'); - $setting->set_updatedcallback('theme_reset_all_caches'); - $settings->add($setting); - - // Small logo file setting. - $name = 'theme_more/smalllogo'; - $title = get_string('smalllogo', 'theme_more'); - $description = get_string('smalllogodesc', 'theme_more'); - $setting = new admin_setting_configstoredfile($name, $title, $description, 'smalllogo'); - $setting->set_updatedcallback('theme_reset_all_caches'); - $settings->add($setting); - - // Show site name along with small logo. - $name = 'theme_more/sitename'; - $title = get_string('sitename', 'theme_more'); - $description = get_string('sitenamedesc', 'theme_more'); - $setting = new admin_setting_configcheckbox($name, $title, $description, 1); - $setting->set_updatedcallback('theme_reset_all_caches'); - $settings->add($setting); - - // Custom CSS file. - $name = 'theme_more/customcss'; - $title = get_string('customcss', 'theme_more'); - $description = get_string('customcssdesc', 'theme_more'); - $default = ''; - $setting = new admin_setting_configtextarea($name, $title, $description, $default); - $setting->set_updatedcallback('theme_reset_all_caches'); - $settings->add($setting); - - // Footnote setting. - $name = 'theme_more/footnote'; - $title = get_string('footnote', 'theme_more'); - $description = get_string('footnotedesc', 'theme_more'); - $default = ''; - $setting = new admin_setting_confightmleditor($name, $title, $description, $default); - $setting->set_updatedcallback('theme_reset_all_caches'); - $settings->add($setting); -} diff --git a/theme/more/style/custom.css b/theme/more/style/custom.css deleted file mode 100644 index 090e45bfe29..00000000000 --- a/theme/more/style/custom.css +++ /dev/null @@ -1,40 +0,0 @@ -/* Custom CSS --------------------------*/ -div.logo { - background: url([[setting:logo]]) 0 0 no-repeat; - display: block; - float: left; - height: 75px; - margin: 0; - padding: 0; - width: 100%; -} - -img.small-logo { - float: left; - height: 35px; - margin: 3px 10px 3px 0; -} - -@media (max-width: 767px) { - img.small-logo { - margin: 3px; - } -} - -@media (max-width: 480px) { - .navbar img.small-logo { - max-width: 150px; - } - /* Applying accesshide styles */ - .navbar .small-logo-container + .brand { - position: absolute; - left: -10000px; - font-size: 1em; - font-weight: normal; - } -} - -/* Custom CSS Settings --------------------------*/ -[[setting:customcss]] diff --git a/theme/more/version.php b/theme/more/version.php deleted file mode 100644 index 7fb6001c456..00000000000 --- a/theme/more/version.php +++ /dev/null @@ -1,33 +0,0 @@ -. - -/** - * Theme More version file. - * - * @package theme_more - * @copyright 2014 Frédéric Massart - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -defined('MOODLE_INTERNAL') || die; - -$plugin->version = 2018120300; -$plugin->requires = 2018112800; -$plugin->component = 'theme_more'; -$plugin->dependencies = array( - 'theme_bootstrapbase' => 2018112800, - 'theme_clean' => 2018112800, -);