diff --git a/theme/arialist/config.php b/theme/arialist/config.php new file mode 100644 index 00000000000..4eff12af527 --- /dev/null +++ b/theme/arialist/config.php @@ -0,0 +1,255 @@ +. + +/** + * Configuration for Moodle's arialist 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 2010 Patrick Malley (http://newschoollearning.com/) + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +$THEME->name = 'arialist'; + +//////////////////////////////////////////////////// +// 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', + 'pagelayout', + 'settings', +); + +//////////////////////////////////////////////////// +// 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-post'), + 'defaultregion' => 'side-post', + ), + 'general' => array( + 'file' => 'general.php', + 'regions' => array('side-post'), + 'defaultregion' => 'side-post', + ), + 'course' => array( + 'file' => 'general.php', + 'regions' => array('side-post'), + 'defaultregion' => 'side-post' + ), + 'coursecategory' => array( + 'file' => 'general.php', + 'regions' => array('side-post'), + 'defaultregion' => 'side-post', + ), + 'incourse' => array( + 'file' => 'general.php', + 'regions' => array('side-post'), + 'defaultregion' => 'side-post', + ), + 'frontpage' => array( + 'file' => 'frontpage.php', + 'regions' => array('side-post'), + 'defaultregion' => 'side-post', + ), + 'admin' => array( + 'file' => 'general.php', + 'regions' => array('side-post'), + 'defaultregion' => 'side-post', + ), + 'mydashboard' => array( + 'file' => 'general.php', + 'regions' => array('side-post'), + 'defaultregion' => 'side-post', + 'options' => array('langmenu'=>true), + ), + 'mypublic' => array( + 'file' => 'general.php', + 'regions' => array('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 = 'arialist_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/arialist/lang/en/theme_arialist.php b/theme/arialist/lang/en/theme_arialist.php new file mode 100644 index 00000000000..101f1c3590a --- /dev/null +++ b/theme/arialist/lang/en/theme_arialist.php @@ -0,0 +1,41 @@ +. + +/** + * Strings for component 'theme_arialist', language 'en', branch 'MOODLE_20_STABLE' + * + * @package moodlecore + * @copyright 2010 Patrick Malley + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +$string['pluginname'] = 'Arialist'; +$string['region-side-post'] = 'Right'; +$string['region-side-pre'] = 'Left'; +$string['choosereadme'] = '

Arialist

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

Arialist is a very clean and simple two-column, fluid-width theme for Moodle 2.0.

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.

'; + +$string['linkcolor'] = 'Link Color'; +$string['linkcolordesc'] = 'This sets the link color for the theme.'; +$string['configtitle'] = 'Arialist 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['tagline'] = 'Tagline'; +$string['taglinedesc'] = 'A short tagline to be displayed under the site name on the front page.
(Will not be displayed with logo.)'; +$string['logo'] = 'Logo'; +$string['logodesc'] = 'Enter the URL to an image to use as the logo for this site. Should be http://www.yoursite.com/path/to/logo.png'; +$string['regionwidth'] = 'Column width'; +$string['regionwidthdesc'] = 'This sets the width of the two block regions that form the left and right columns.'; diff --git a/theme/arialist/layout/frontpage.php b/theme/arialist/layout/frontpage.php new file mode 100644 index 00000000000..0d9e09a60d2 --- /dev/null +++ b/theme/arialist/layout/frontpage.php @@ -0,0 +1,115 @@ +heading); +$hasnavbar = (empty($PAGE->layout_options['nonavbar']) && $PAGE->has_navbar()); +$hasfooter = (empty($PAGE->layout_options['nofooter'])); +$hassidepost = $PAGE->blocks->region_has_content('side-post', $OUTPUT); +$showsidepost = ($hassidepost && !$PAGE->blocks->region_completely_docked('side-post', $OUTPUT)); + +$bodyclasses = array(); +if ($showsidepost) { + $bodyclasses[] = 'side-post-only'; +} else if (!$showsidepost) { + $bodyclasses[] = 'content-only'; +} + +if (!empty($PAGE->theme->settings->tagline)) { + $tagline = '

'.$PAGE->theme->settings->tagline.'

'; +} else { + $tagline = ''; +} +if (!empty($PAGE->theme->settings->logo)) { + $logourl = $PAGE->theme->settings->logo; +} + +echo $OUTPUT->doctype() ?> +htmlattributes() ?>> + + <?php echo $PAGE->title ?> + + + standard_head_html() ?> + + + +standard_top_of_body_html() ?> + +
+ +
+ + + + + + + + + +
+
+
+
+ +
+
+
+ +
+
+
+ + +
+
+ blocks_for_region('side-post') ?> +
+
+ + +
+
+
+
+ + + +
+ + + + + + +
+ +standard_end_of_body_html() ?> + + \ No newline at end of file diff --git a/theme/arialist/layout/general.php b/theme/arialist/layout/general.php new file mode 100644 index 00000000000..950dcc09f47 --- /dev/null +++ b/theme/arialist/layout/general.php @@ -0,0 +1,117 @@ +heading); +$hasnavbar = (empty($PAGE->layout_options['nonavbar']) && $PAGE->has_navbar()); +$hasfooter = (empty($PAGE->layout_options['nofooter'])); +$hassidepost = $PAGE->blocks->region_has_content('side-post', $OUTPUT); +$showsidepost = ($hassidepost && !$PAGE->blocks->region_completely_docked('side-post', $OUTPUT)); + +$bodyclasses = array(); +if ($showsidepost) { + $bodyclasses[] = 'side-post-only'; +} else if (!$showsidepost) { + $bodyclasses[] = 'content-only'; +} + +echo $OUTPUT->doctype() ?> +htmlattributes() ?>> + + <?php echo $PAGE->title ?> + + standard_head_html() ?> + + + +standard_top_of_body_html() ?> + +
+ + +
+ + + + + + + + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+
+
+ + +
+
+ blocks_for_region('side-post') ?> +
+
+ + +
+
+
+
+ + + + +
+ + + + + + + + +
+standard_end_of_body_html() ?> + + \ No newline at end of file diff --git a/theme/arialist/lib.php b/theme/arialist/lib.php new file mode 100644 index 00000000000..9ed5f6e6c00 --- /dev/null +++ b/theme/arialist/lib.php @@ -0,0 +1,92 @@ +settings->linkcolor)) { + $linkcolor = $theme->settings->linkcolor; + } else { + $linkcolor = null; + } + $css = arialist_set_linkcolor($css, $linkcolor); + + // Set the region width + if (!empty($theme->settings->regionwidth)) { + $regionwidth = $theme->settings->regionwidth; + } else { + $regionwidth = null; + } + $css = arialist_set_regionwidth($css, $regionwidth); + + // Set the custom CSS + if (!empty($theme->settings->customcss)) { + $customcss = $theme->settings->customcss; + } else { + $customcss = null; + } + $css = arialist_set_customcss($css, $customcss); + + // Return the CSS + return $css; +} + +/** + * Sets the background colour variable in CSS + * + * @param string $css + * @param mixed $backgroundcolor + * @return string + */ +function arialist_set_linkcolor($css, $linkcolor) { + $tag = '[[setting:linkcolor]]'; + $replacement = $linkcolor; + if (is_null($replacement)) { + $replacement = '#f25f0f'; + } + $css = str_replace($tag, $replacement, $css); + return $css; +} + +/** + * Sets the region width variable in CSS + * + * @param string $css + * @param mixed $regionwidth + * @return string + */ + +function arialist_set_regionwidth($css, $regionwidth) { + $tag = '[[setting:regionwidth]]'; + $doubletag = '[[setting:regionwidthdouble]]'; + $replacement = $regionwidth; + if (is_null($replacement)) { + $replacement = 250; + } + $css = str_replace($tag, $replacement.'px', $css); + $css = str_replace($doubletag, ($replacement*2).'px', $css); + return $css; +} + +/** + * Sets the custom css variable in CSS + * + * @param string $css + * @param mixed $customcss + * @return string + */ +function arialist_set_customcss($css, $customcss) { + $tag = '[[setting:customcss]]'; + $replacement = $customcss; + if (is_null($replacement)) { + $replacement = ''; + } + $css = str_replace($tag, $replacement, $css); + return $css; +} \ No newline at end of file diff --git a/theme/arialist/pix/screenshot.png b/theme/arialist/pix/screenshot.png new file mode 100644 index 00000000000..6f852c10f7f Binary files /dev/null and b/theme/arialist/pix/screenshot.png differ diff --git a/theme/arialist/settings.php b/theme/arialist/settings.php new file mode 100644 index 00000000000..e310fccdc44 --- /dev/null +++ b/theme/arialist/settings.php @@ -0,0 +1,50 @@ +add($setting); + +// Tagline setting +$name = 'theme_arialist/tagline'; +$title = get_string('tagline','theme_arialist'); +$description = get_string('taglinedesc', 'theme_arialist'); +$setting = new admin_setting_configtext($name, $title, $description, ''); +$temp->add($setting); + +// Link colour setting +$name = 'theme_arialist/linkcolor'; +$title = get_string('linkcolor','theme_arialist'); +$description = get_string('linkcolordesc', 'theme_arialist'); +$default = '#f25f0f'; +$previewconfig = array('selector'=>'.block .content', 'style'=>'linkcolor'); +$setting = new admin_setting_configcolourpicker($name, $title, $description, $default, $previewconfig); +$temp->add($setting); + +// Block region width +$name = 'theme_arialist/regionwidth'; +$title = get_string('regionwidth','theme_arialist'); +$description = get_string('regionwidthdesc', 'theme_arialist'); +$default = 250; +$choices = array(180=>'180px', 190=>'190px', 200=>'200px', 210=>'210px', 220=>'220px', 240=>'240px', 250=>'250px'); +$setting = new admin_setting_configselect($name, $title, $description, $default, $choices); +$temp->add($setting); + +// Custom CSS file +$name = 'theme_arialist/customcss'; +$title = get_string('customcss','theme_arialist'); +$description = get_string('customcssdesc', 'theme_arialist'); +$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/arialist/style/core.css b/theme/arialist/style/core.css new file mode 100644 index 00000000000..64f273a73dd --- /dev/null +++ b/theme/arialist/style/core.css @@ -0,0 +1,238 @@ +/* Global +---------------------------*/ + +body,h1,h2,h3,h4,h5,h6,p,ul,ol,dl,input,textarea { + font-family: arial, verdana, sans-serif; + line-height: 1.5; + color: #333; +} + +a:hover { + color: #333; +} + +#wrapper { + padding:0 100px; + border-top:15px solid #eee; +} + +h2,h3,h4,h5,h6 { + color: #999; + font-weight: normal; +} + +blockquote { + border-left:1px solid #eee; + padding-left:15px; + color:#666; +} + +fieldset#general { + border-color: #eee; +} + +fieldset#general legend { + color: #555; + font-weight: normal; + font-size: 1.2em; + border: 1px solid #eee; + padding: 2px 5px; + background: #fff; +} + +/* Header +----------------------------*/ + +#page-header { + padding: 50px 0 25px; +} + +#page-site-index #page-header { + padding-bottom: 10px; +} + +#header-left { + float: left; +} + +.headermain, +.headermenu { + margin: 0; +} + +#page-header h1 { + float: none; + font-size: 2.25em; + line-height: 1; +} + +#page-header h1.inside { + color: #666; + font-size: 2em; +} + +#page-header p { + color:#999; +} + +/* Navbar +----------------------------*/ + +.navbar { + background: #f1f1f1; + padding: 5px 10px; + border: 1px solid #ddd; +} + +.breadcrumb .sep { + padding-left: 5px; +} + +/* Blocks +----------------------------*/ + +.block { + border: none; +} + +.block .header h2 { + color:#999; + font-size: 1.25em; + border-bottom:1px solid #eee; + padding-bottom:5px; +} + +/* Courses +----------------------------*/ + +h2.headingblock { + font-weight: normal; + color:#999; + font-size: 1.5em; + border-bottom:1px solid #eee; + padding-bottom:2px; +} + +.coursebox { + border-color: #eee; +} + +.coursebox .info { + width: 35%; +} + +.coursebox .info .name { + margin-bottom: 0; +} + +.coursebox .info .teachers { + font-size: 0.9em; + color: #888; +} + +.coursebox .summary { + width: 63%; +} + +.course-content .section.main { + border-bottom: 1px solid #eee; +} + +.course-content .section.main .content { + padding: 5px 5px 10px; +} + +.course-content .weeks .section.main .content { + margin-left: 0; +} + +.course-content .weeks .section.main .left { + display: none; +} + +.course-content .section.main.current { + background:#fffcdc; +} + +.course-content .weeks .section.main h3.weekdates { + color: #999; +} + +.course-content .current .left, +.course-content .current h3.weekdates { + color: #f25f0f !important; +} +/* Forum +--------------------------*/ + +.forumpost .topic { + background: #eee; + border-width: 0; + padding: 0 10px 0; +} + +.forumpost .subject { + font-size: 1.25em; +} + +.forumpost .author { + font-size: 0.9em; + font-style: italic; +} + +.forumpost .content { + border-width: 0 1px 10px; + border-style: solid; + border-color: #aaa #eee #eee; + padding: 5px 10px 10px; +} + +/* Dock */ + +#dock { + background: #eee; + border: none; +} + +#dock .firstdockitem { + margin-top: 15px; +} + +#dock .dockeditem { + background-color: #fff; + border: 1px solid #eee; + border-width: 0 1px 1px 0; + padding: 3px 0; +} + +#dock .dockeditem .dockedtitle { + border: none; +} + +#dock .dockeditem .dockedtitle h2 { + margin: 12px 0 12px 7px; + color: #666; +} + +#dockeditempanel .dockeditempanel_content { + border-color: #eee; +} + +#dockeditempanel .dockeditempanel_hd { + border-bottom: none; + padding: 3px 5px; + background: #eee; + text-align: left; +} + +#dockeditempanel .dockeditempanel_hd h2 { + color: #333; + text-align: right; + font-weight: normal; + font-size: 0.8em; + padding: 0 2px; +} + +#dockeditempanel .dockeditempanel_hd .commands { + float: right; +} diff --git a/theme/arialist/style/pagelayout.css b/theme/arialist/style/pagelayout.css new file mode 100644 index 00000000000..f0090fe48ee --- /dev/null +++ b/theme/arialist/style/pagelayout.css @@ -0,0 +1,103 @@ +/********************************************************************************************* + + left column: 250px + right column: 250px + padding left/right column: 10px + padding center column: 30px + +**********************************************************************************************/ + +body { + margin: auto 0px; + width: auto; +} + +#page { + width: 100%; + overflow: hidden; +} + +#page-header { + float: left; + width: 100%; +} + +#page-content { + clear: both; + float: left; + overflow: hidden; + position: relative; + width: 100%; +} + +#page-content #region-main-box { + float: left; + margin-left: 0; + position: relative; + width: 200%; + right: 100%; +} + +#page-content #region-main-box #region-post-box { + float: left; + width: 100%; +} + +#page-content #region-main-box #region-post-box #region-main-wrap { + float: left; + width: 50%; +} + +#page-content #region-main-box #region-post-box #region-main-wrap #region-main { + overflow: hidden; + position: relative; + left: 100%; +} + +#page-content #region-main-box #region-post-box #region-post { + float: right; + position: relative; +} + +#page-content #region-main-box #region-post-box #region-main-wrap #region-main .region-content { + overflow: hidden; + padding: 20px 30px 20px 0; +} + +#page-content #region-main-box #region-post-box #region-post .region-content { + overflow: hidden; + padding: 20px 0 20px 10px; +} + +#page-footer { + clear: both; + float: left; + width: 100%; +} + + +.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/arialist/style/settings.css b/theme/arialist/style/settings.css new file mode 100644 index 00000000000..0390eef1169 --- /dev/null +++ b/theme/arialist/style/settings.css @@ -0,0 +1,18 @@ +a { + color:[[setting:linkcolor]]; +} + +#page-content #region-main-box #region-post-box { + margin-left: -[[setting:regionwidth]]; +} + +#page-content #region-main-box #region-post-box #region-main-wrap #region-main { + margin-left: [[setting:regionwidth]]; +} + +#page-content #region-main-box #region-post-box #region-post { + left: [[setting:regionwidth]]; + width: [[setting:regionwidth]]; + +/** Custom CSS **/ +[[setting:customcss]] \ No newline at end of file