diff --git a/theme/overlay/config.php b/theme/overlay/config.php new file mode 100644 index 0000000000000..a3d32258a0d19 --- /dev/null +++ b/theme/overlay/config.php @@ -0,0 +1,256 @@ +. + +/** + * Configuration for Moodle's overlay theme. + * + * DO NOT MODIFY THIS THEME! + * COPY IT FIRST, THEN RENAME THE COPY AND MODIFY IT INSTEAD. + * + * For full information about creating Moodle themes, see: + * http://docs.moodle.org/en/Development:Themes_2.0 + * + * @package moodlecore + * @copyright 2008 NodeThirtyThree (http://nodethirtythree.com/) + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +$THEME->name = 'overlay'; + +//////////////////////////////////////////////////// +// Name of the theme. Most likely the name of +// the directory in which this file resides. +//////////////////////////////////////////////////// + + +$THEME->parents = array( + 'canvas', + 'base', +); + +///////////////////////////////////////////////////// +// Which existing theme(s) in the /theme/ directory +// do you want this theme to extend. A theme can +// extend any number of themes. Rather than +// creating an entirely new theme and copying all +// of the CSS, you can simply create a new theme, +// extend the theme you like and just add the +// changes you want to your theme. +//////////////////////////////////////////////////// + + +$THEME->sheets = array( + 'core', + 'settings', + 'pagelayout', +); + +//////////////////////////////////////////////////// +// Name of the stylesheet(s) you've including in +// this theme's /styles/ directory. +//////////////////////////////////////////////////// + +$THEME->parents_exclude_sheets = array( + 'base'=>array( + 'pagelayout', + ), + 'canvas'=>array( + 'pagelayout', + ), +); + + +$THEME->enable_dock = true; + +//////////////////////////////////////////////////// +// Do you want to use the new navigation dock? +//////////////////////////////////////////////////// + + +// $THEME->editor_sheets + +//////////////////////////////////////////////////// +// An array of stylesheets to include within the +// body of the editor. +//////////////////////////////////////////////////// + +$THEME->layouts = array( + 'base' => array( + 'file' => 'general.php', + 'regions' => array('side-pre', 'side-post'), + 'defaultregion' => 'side-post', + ), + 'standard' => array( + 'file' => 'general.php', + 'regions' => array('side-pre', 'side-post'), + 'defaultregion' => 'side-post', + ), + 'course' => array( + 'file' => 'general.php', + 'regions' => array('side-pre', 'side-post'), + 'defaultregion' => 'side-post' + ), + 'coursecategory' => array( + 'file' => 'general.php', + 'regions' => array('side-pre', 'side-post'), + 'defaultregion' => 'side-post', + ), + 'incourse' => array( + 'file' => 'general.php', + 'regions' => array('side-pre', 'side-post'), + 'defaultregion' => 'side-post', + ), + 'frontpage' => array( + 'file' => 'frontpage.php', + 'regions' => array('side-pre', 'side-post'), + 'defaultregion' => 'side-post', + ), + 'admin' => array( + 'file' => 'general.php', + 'regions' => array('side-pre'), + 'defaultregion' => 'side-pre', + ), + 'mydashboard' => array( + 'file' => 'general.php', + 'regions' => array('side-pre', 'side-post'), + 'defaultregion' => 'side-post', + 'options' => array('langmenu'=>true), + ), + 'mypublic' => array( + 'file' => 'general.php', + 'regions' => array('side-pre', 'side-post'), + 'defaultregion' => 'side-post', + ), + 'login' => array( + 'file' => 'general.php', + 'regions' => array(), + 'options' => array('langmenu'=>true), + ), + 'popup' => array( + 'file' => 'general.php', + 'regions' => array(), + 'options' => array('nofooter'=>true, 'noblocks'=>true, 'nonavbar'=>true), + ), + 'frametop' => array( + 'file' => 'general.php', + 'regions' => array(), + 'options' => array('nofooter'=>true), + ), + 'maintenance' => array( + 'file' => 'general.php', + 'regions' => array(), + 'options' => array('nofooter'=>true, 'nonavbar'=>true), + ), + 'embedded' => array( + 'theme' => 'canvas', + 'file' => 'embedded.php', + 'regions' => array(), + 'options' => array('nofooter'=>true, 'nonavbar'=>true), + ), + +); + +/////////////////////////////////////////////////////////////// +// These are all of the possible layouts in Moodle. The +// simplest way to do this is to keep the theme and file +// variables the same for every layout. Including them +// all in this way allows some flexibility down the road +// if you want to add a different layout template to a +// specific page. +/////////////////////////////////////////////////////////////// + +$THEME->csspostprocess = 'overlay_process_css'; + +//////////////////////////////////////////////////// +// Allows the user to provide the name of a function +// that all CSS should be passed to before being +// delivered. +//////////////////////////////////////////////////// + +// $THEME->filter_mediaplugin_colors + +//////////////////////////////////////////////////// +// Used to control the colours used in the small +// media player for the filters +//////////////////////////////////////////////////// + +// $THEME->javascripts + +//////////////////////////////////////////////////// +// An array containing the names of JavaScript files +// located in /javascript/ to include in the theme. +// (gets included in the head) +//////////////////////////////////////////////////// + +// $THEME->javascripts_footer + +//////////////////////////////////////////////////// +// As above but will be included in the page footer. +//////////////////////////////////////////////////// + +// $THEME->larrow + +//////////////////////////////////////////////////// +// Overrides the left arrow image used throughout +// Moodle +//////////////////////////////////////////////////// + +// $THEME->rarrow + +//////////////////////////////////////////////////// +// Overrides the right arrow image used throughout Moodle +//////////////////////////////////////////////////// + +// $THEME->layouts + +//////////////////////////////////////////////////// +// An array setting the layouts for the theme +//////////////////////////////////////////////////// + +// $THEME->parents_exclude_javascripts + +//////////////////////////////////////////////////// +// An array of JavaScript files NOT to inherit from +// the themes parents +//////////////////////////////////////////////////// + +// $THEME->parents_exclude_sheets + +//////////////////////////////////////////////////// +// An array of stylesheets not to inherit from the +// themes parents +//////////////////////////////////////////////////// + +// $THEME->plugins_exclude_sheets + +//////////////////////////////////////////////////// +// An array of plugin sheets to ignore and not +// include. +//////////////////////////////////////////////////// + +// $THEME->renderfactory + +//////////////////////////////////////////////////// +// Sets a custom render factory to use with the +// theme, used when working with custom renderers. +//////////////////////////////////////////////////// + +// $THEME->resource_mp3player_colors + +//////////////////////////////////////////////////// +// Controls the colours for the MP3 player +//////////////////////////////////////////////////// diff --git a/theme/overlay/lang/en/theme_overlay.php b/theme/overlay/lang/en/theme_overlay.php new file mode 100644 index 0000000000000..edc843b0e9080 --- /dev/null +++ b/theme/overlay/lang/en/theme_overlay.php @@ -0,0 +1,41 @@ +. + +/** + * Strings for component 'theme_overlay', language 'en', branch 'MOODLE_20_STABLE' + * + * @package moodlecore + * @copyright 2010 John Stabinger + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +$string['pluginname'] = 'overlay'; +$string['region-side-post'] = 'Right'; +$string['region-side-pre'] = 'Left'; +$string['choosereadme'] = '

overlay

Theme Discussion Forum:

http://moodle.org/mod/forum/view.php?id=46

Theme Credits

http://docs.moodle.org/en/Theme_credits

Theme Documentation:

http://docs.moodle.org/en/Themes

Report a bug:

http://tracker.moodle.org

About

overlay is a nontraditional, three-column, fluid-width theme for Moodle. It\'s nontraditional in the sense that it uses a fresh three-column layout that displays the content to the left of both block columns.

Tweaks

This theme is built upon both Base and Canvas, two parent themes included in the Moodle core. If you want to modify this theme, we recommend that you first duplicate it, then rename it before making your changes. This will prevent your customized theme from being overwritten by future Moodle upgrades, and you\'ll still have the original files if you make a mess. More information on modifying themes can be found in the MoodleDocs.

License

This, and all other themes included in the Moodle core, are licensed under the GNU General Public License.

'; + +// Config + +$string['linkcolor'] = 'Link Color'; +$string['linkcolordesc'] = 'This sets the link color for the theme.'; +$string['configtitle'] = 'Overlay settings'; +$string['customcss'] = 'Custom CSS'; +$string['customcssdesc'] = 'Any CSS you enter here will be added to every page allowing your to easily customise this theme.'; +$string['headercolor'] = 'Headercolor'; +$string['headercolordesc'] = 'Header background color.'; +$string['footertext'] = 'Footertext'; +$string['footertextdesc'] = 'Set a footnote or footer text.'; \ No newline at end of file diff --git a/theme/overlay/layout/frontpage.php b/theme/overlay/layout/frontpage.php new file mode 100644 index 0000000000000..0e8a6173ac485 --- /dev/null +++ b/theme/overlay/layout/frontpage.php @@ -0,0 +1,134 @@ +heading); +$hasnavbar = (empty($PAGE->layout_options['nonavbar']) && $PAGE->has_navbar()); +$hasfooter = (empty($PAGE->layout_options['nofooter'])); + +$hassidepre = $PAGE->blocks->region_has_content('side-pre', $OUTPUT); +$hassidepost = $PAGE->blocks->region_has_content('side-post', $OUTPUT); + +$showsidepre = ($hassidepre && !$PAGE->blocks->region_completely_docked('side-pre', $OUTPUT)); +$showsidepost = ($hassidepost && !$PAGE->blocks->region_completely_docked('side-post', $OUTPUT)); + +$custommenu = $OUTPUT->custom_menu(); +$hascustommenu = (empty($PAGE->layout_options['nocustommenu']) && !empty($custommenu)); + +$bodyclasses = array(); +if ($showsidepre && !$showsidepost) { + $bodyclasses[] = 'side-pre-only'; +} else if ($showsidepost && !$showsidepre) { + $bodyclasses[] = 'side-post-only'; +} else if (!$showsidepost && !$showsidepre) { + $bodyclasses[] = 'content-only'; +} + +if (!empty($PAGE->theme->settings->footertext)) { + $footnote = $PAGE->theme->settings->footertext; +} else { + $footnote = ''; +} + +echo $OUTPUT->doctype() ?> +htmlattributes() ?>> + + <?php echo $PAGE->title ?> + + + standard_head_html() ?> + + + +standard_top_of_body_html() ?> + +
+ + + + + + + +
+ +
+
+
+
+ +
+ +
+
+
+

heading ?>

+ +
+
+ + + + +
+
+
+ + +
+
+ blocks_for_region('side-pre') ?> +
+
+ + + +
+
+ blocks_for_region('side-post') ?> +
+
+ + +
+
+
+
+ +
+ + + +
+ + + + + + +standard_end_of_body_html() ?> + + \ No newline at end of file diff --git a/theme/overlay/layout/general.php b/theme/overlay/layout/general.php new file mode 100644 index 0000000000000..52231fb0de475 --- /dev/null +++ b/theme/overlay/layout/general.php @@ -0,0 +1,147 @@ +heading); +$hasnavbar = (empty($PAGE->layout_options['nonavbar']) && $PAGE->has_navbar()); +$hasfooter = (empty($PAGE->layout_options['nofooter'])); + +$hassidepre = $PAGE->blocks->region_has_content('side-pre', $OUTPUT); +$hassidepost = $PAGE->blocks->region_has_content('side-post', $OUTPUT); + +$showsidepre = ($hassidepre && !$PAGE->blocks->region_completely_docked('side-pre', $OUTPUT)); +$showsidepost = ($hassidepost && !$PAGE->blocks->region_completely_docked('side-post', $OUTPUT)); + +$custommenu = $OUTPUT->custom_menu(); +$hascustommenu = (empty($PAGE->layout_options['nocustommenu']) && !empty($custommenu)); + +$bodyclasses = array(); +if ($showsidepre && !$showsidepost) { + $bodyclasses[] = 'side-pre-only'; +} else if ($showsidepost && !$showsidepre) { + $bodyclasses[] = 'side-post-only'; +} else if (!$showsidepost && !$showsidepre) { + $bodyclasses[] = 'content-only'; +} + +if (!empty($PAGE->theme->settings->footertext)) { + $footnote = $PAGE->theme->settings->footertext; +} else { + $footnote = ''; +} + +echo $OUTPUT->doctype() ?> +htmlattributes() ?>> + + <?php echo $PAGE->title ?> + + + standard_head_html() ?> + + + +standard_top_of_body_html() ?> + +
+ + + + + + + +
+ +
+
+
+
+ +
+ +
+
+
+

heading ?>

+ + + + +
+ + + + + +
+ + + + +
+
+
+ + +
+
+ blocks_for_region('side-pre') ?> +
+
+ + + +
+
+ blocks_for_region('side-post') ?> +
+
+ + +
+
+
+
+ +
+ + + +
+ + + + + + +standard_end_of_body_html() ?> + + \ No newline at end of file diff --git a/theme/overlay/lib.php b/theme/overlay/lib.php new file mode 100644 index 0000000000000..dccb3795b82a7 --- /dev/null +++ b/theme/overlay/lib.php @@ -0,0 +1,69 @@ +settings->linkcolor)) { + $linkcolor = $theme->settings->linkcolor; + } else { + $linkcolor = null; + } + $css = overlay_set_linkcolor($css, $linkcolor); + + if (!empty($theme->settings->headercolor)) { + $headercolor = $theme->settings->headercolor; + } else { + $headercolor = null; + } + $css = overlay_set_headercolor($css, $headercolor); + + if (!empty($theme->settings->customcss)) { + $customcss = $theme->settings->customcss; + } else { + $customcss = null; + } + $css = overlay_set_customcss($css, $customcss); + + return $css; + + + +} + diff --git a/theme/overlay/pix/favicon.ico b/theme/overlay/pix/favicon.ico new file mode 100644 index 0000000000000..5a7a36a68e695 Binary files /dev/null and b/theme/overlay/pix/favicon.ico differ diff --git a/theme/overlay/pix/header.png b/theme/overlay/pix/header.png new file mode 100644 index 0000000000000..059647257f1aa Binary files /dev/null and b/theme/overlay/pix/header.png differ diff --git a/theme/overlay/pix/screenshot.png b/theme/overlay/pix/screenshot.png new file mode 100644 index 0000000000000..97cdb7342f012 Binary files /dev/null and b/theme/overlay/pix/screenshot.png differ diff --git a/theme/overlay/settings.php b/theme/overlay/settings.php new file mode 100644 index 0000000000000..ca86d411df5a3 --- /dev/null +++ b/theme/overlay/settings.php @@ -0,0 +1,40 @@ +add($setting); + + +// Tag line setting +$name = 'theme_overlay/headercolor'; +$title = get_string('headercolor','theme_overlay'); +$description = get_string('headercolordesc', 'theme_overlay'); +$default = '#2a4c7b'; +$previewconfig = NULL; +$setting = new admin_setting_configcolourpicker($name, $title, $description, $default, $previewconfig); +$temp->add($setting); + +// Foot note setting +$name = 'theme_overlay/footertext'; +$title = get_string('footertext','theme_overlay'); +$description = get_string('footertextdesc', 'theme_overlay'); +$setting = new admin_setting_confightmleditor($name, $title, $description, ''); +$temp->add($setting); + +// Custom CSS file +$name = 'theme_overlay/customcss'; +$title = get_string('customcss','theme_overlay'); +$description = get_string('customcssdesc', 'theme_overlay'); +$setting = new admin_setting_configtextarea($name, $title, $description, ''); +$temp->add($setting); + +// Add our page to the structure of the admin tree +$ADMIN->add('themes', $temp); \ No newline at end of file diff --git a/theme/overlay/style/core.css b/theme/overlay/style/core.css new file mode 100644 index 0000000000000..da5b8bb0b64fb --- /dev/null +++ b/theme/overlay/style/core.css @@ -0,0 +1,257 @@ +/* Global +--------------------------*/ + +body { + background: #fff; + margin: 0; + padding: 0; + color: #281f18; +} + +html { + height: 100%; +} +body { + margin: 0; + padding: 0; + height: 100%; +} + +body,h1,h2,h3,h4,h5,h6,p,ul,ol,dl,input,textarea { + font-family: 'Myriad Pro', 'Myriad', helvetica, arial, sans-serif; +} + +.wrapper { + margin: 0 35px; + min-width: 910px; +} + +a:hover,a:active { + color: #000; +} + +a img { + border: none; +} + +a:active { + outline: none; +} + +/* Header +---------------------------*/ + +#page-header { + background: #333; + color: #fff; + height: 30px; + z-index: 99999; + position: relative; +} + +#page-header div.headermenu { + height: 30px; + padding-bottom: 0px; + margin-bottom: 0px; + padding-top: 0px; + margin-top: 0px; + line-height: 30px; +} +#page-header a:link, +#page-header a:visited { + color: #fff; + text-decoration: underline; +} + + +#newheader { + height: 100px; + position: relative; +} + +#newheaderleft { + height: 100px; + width: 50px; + position: absolute; + left: -50px; +} +h1.headermain { + margin-left: 0px; + padding-left: 0px; + color: #fff; + margin-top: 35px; + font-family: 'Myriad Pro', 'Myriad', helvetica, arial, sans-serif; + text-shadow: 2px 3px 3px #292929; + letter-spacing: -1px; + -webkit-text-stroke: 1px white; +} + +#region-main-box { + background: #eee; +} + +#region-post-box { + background: #fff; +} + +#page-footer { + background: #333; + color: #fff; +} + +#page-content, #region-main-box, #region-main-wrap, #page-content-wrapper, #top, div.region-content { + min-height: 100%; + position: relative; +} + +#region-main-box { + -webkit-box-shadow: 6px 0px 8px #ccc; + -moz-box-shadow: 6px 0px 8px #ccc; + box-shadow: 6px 0px 8px #ccc; + } + + #region-main { + -webkit-box-shadow: 6px 0px 8px #ccc; + -moz-box-shadow: 6px 0px 8px #ccc; + box-shadow: 6px 0px 8px #ccc; + } + +.side-pre-only #region-main, .content-only #region-main, .content-only #region-main-box { + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + } + +/* Navbar +--------------------------*/ + +.navbar { + margin-top: 10px; + +} + +.navbar .wrapper { + margin-left: 0px !important; + padding-left: 0px !important; + +} + +.breadcrumb .sep { + color: #777; + font-size: 0.8em; +} + +.navbutton { + margin-top: 40px; + margin-right: 10px; + font-size: 12px; +} + + +/* Blocks +---------------------------*/ + +.block { + border: none; + margin-bottom: 25px; +} + +.block .header { + border-bottom:none; + text-transform: uppercase; +} + +.block.hidden .header { + border-top: 1px solid #dadada; + border-bottom: 1px solid #dadada; +} +.block .title h2 { + font-weight: normal; + font-size: 1.1em; + margin: 0; +} + +.block .content { + font-size: 0.95em; +} + +. +/* Forums +---------------------------*/ + +.forumpost .subject { + font-size: 1.2em; +} + +.forumpost .author { + font-size: 0.9em; +} + +.forumpost .content { + border-bottom:5px solid #aaa; + padding:5px 7px 10px 7px; +} + +.forumpost .topic { + background: #eee; + border-bottom: 1px solid #aaa; +} + +/* Course +-------------------------------*/ + +.course-content .main { + border: 1px solid #eee; + background: #eee; +} + +.course-content .current { + background: #1f5480; + color: #fff; +} + +.course-content .main .content { + background: #fff; +} + +/* YUI Menu +-------------------------------*/ + +#custommenu { + width: 70%; + float: left; +} + +div.yui3-menu-content { + border: none !important; +} + +.yui3-menu-content li a { + font-size: 11px; + font-weight: 200; + line-height: 30px; + text-transform: uppercase; + cursor: pointer; + border-right: none !important; + border-top: none !important; + border-bottom: none !important; + text-decoration: none !important; + margin-left: 0px !important; + padding-left: 0px !important; + margin-right: 10px !important; +} + +.yui3-menu-content li a:hover { + text-decoration: underline; +} + +div.custom_menu_submenu li a { + line-height: 30px; + text-shadow: none !important; + color: #333 !important; + margin-left: 5px !important; +} + +div.firstdockitem { + margin-top: 30px; +} \ No newline at end of file diff --git a/theme/overlay/style/pagelayout.css b/theme/overlay/style/pagelayout.css new file mode 100644 index 0000000000000..a0c495228bea1 --- /dev/null +++ b/theme/overlay/style/pagelayout.css @@ -0,0 +1,140 @@ +/** Path: theme pagelayout **/ + + + +body {margin:auto 0px;width:auto; height: 100%} +#page {width:100%;overflow:hidden; min-height: 100%;} +#page-content { + clear: both; + position: relative; + width: 100%;min-height: 100%; +} + +#page-content #region-main-box { + float: left; + margin-left: -200px; + position: relative; + width: 200%; + right: 100%;min-height: 100%; +} + +#page-content #region-main-box #region-post-box { + float: left; + margin-left: -200px; + width: 100%;min-height: 100%; +} + +#page-content #region-main-box #region-post-box #region-main-wrap { + float: left; + width: 50%;min-height: 100%; +} + +#page-content #region-main-box #region-post-box #region-main-wrap #region-main { + + position: relative; + margin-left: 400px; + left: 100%;min-height: 100%; +} + +#page-content #region-main-box #region-post-box #region-pre { + float: right; + position: relative; + width: 200px; + left: 200px; + min-height: 100%; + +} + +#page-content #region-main-box #region-post-box #region-post { + float: right; + position: relative; + left: 600px; + width: 200px;min-height: 100%; +} + +#page-content #region-main-box #region-post-box #region-main-wrap #region-main .region-content { + overflow: hidden; + padding: 20px 20px 20px 0;min-height: 100%; +} + +#page-content #region-main-box #region-post-box #region-pre .region-content, +#page-content #region-main-box #region-post-box #region-post .region-content { + overflow: hidden; + padding: 20px 10px;min-height: 100%; +} + +#page-footer { + clear: both; + float: left; + width: 100%; +} + +/** Only side pre **/ + +.side-pre-only #page-content #region-main-box { + margin-left: 0px; +} + +.side-pre-only #page-content #region-main-box #region-post-box { + margin-left: -200px; +} + +.side-pre-only #page-content #region-main-box #region-post-box #region-main-wrap #region-main { + margin-left: 200px; +} + +.side-pre-only #page-content #region-main-box #region-post-box #region-pre { + left: 200px; + width: 200px; +} + +.side-pre-only #page-content #region-main-box #region-post-box #region-post { + width: 0%; +} + +/** Only side post **/ + +.side-post-only #page-content #region-main-box { + margin-left: 0px; + +} + +.side-post-only #page-content #region-main-box #region-post-box { + margin-left: -200px; +} + +.side-post-only #page-content #region-main-box #region-post-box #region-main-wrap #region-main { + margin-left: 200px; + +} + +.side-post-only #page-content #region-main-box #region-post-box #region-post { + left: 400px; + width: 200px; +} + +.has_dock.side-post-only .page-middle #region-main-box #region-post-box #region-main-wrap #region-main { + margin-left: 200px; +} + +/** No blocks whatsoever **/ + +.content-only #page-content #region-main-box { + margin-left: 0px; +} + +.content-only #page-content #region-main-box #region-post-box { + margin-left: 0px; +} + +.content-only #page-content #region-main-box #region-post-box #region-main-wrap #region-main { + margin-left: 0px; +} + +.content-only #page-content #region-main-box #region-post-box #region-pre { + width: 0px; +} + +.content-only #page-content #region-main-box #region-post-box #region-post { + width: 0px; +} \ No newline at end of file diff --git a/theme/overlay/style/settings.css b/theme/overlay/style/settings.css new file mode 100644 index 0000000000000..83a2e9daf8413 --- /dev/null +++ b/theme/overlay/style/settings.css @@ -0,0 +1,10 @@ +#newheaderleft, #newheader { + background: [[setting:headercolor]] url([[pix:theme|header]]) repeat-x 0 100%; +} + +a:link,a:visited { + color: [[setting:linkcolor]]; +} + +/** Custom CSS **/ +[[setting:customcss]] \ No newline at end of file