Merge branch 'wip-MDL-36048-master' of git://github.com/marinaglancy/moodle

This commit is contained in:
Dan Poltawski 2012-11-14 09:58:27 +08:00
commit 2d0d36f219
26 changed files with 499 additions and 81 deletions

View File

@ -793,6 +793,73 @@ abstract class format_base {
*/
public function page_set_cm(moodle_page $page) {
}
/**
* Course-specific information to be output on any course page (usually above navigation bar)
*
* Example of usage:
* define
* class format_FORMATNAME_XXX implements renderable {}
*
* create format renderer in course/format/FORMATNAME/renderer.php, define rendering function:
* class format_FORMATNAME_renderer extends plugin_renderer_base {
* protected function render_format_FORMATNAME_XXX(format_FORMATNAME_XXX $xxx) {
* return html_writer::tag('div', 'This is my header/footer');
* }
* }
*
* Return instance of format_FORMATNAME_XXX in this function, the appropriate method from
* plugin renderer will be called
*
* @return null|renderable null for no output or object with data for plugin renderer
*/
public function course_header() {
return null;
}
/**
* Course-specific information to be output on any course page (usually in the beginning of
* standard footer)
*
* See {@link format_base::course_header()} for usage
*
* @return null|renderable null for no output or object with data for plugin renderer
*/
public function course_footer() {
return null;
}
/**
* Course-specific information to be output immediately above content on any course page
*
* See {@link format_base::course_header()} for usage
*
* @return null|renderable null for no output or object with data for plugin renderer
*/
public function course_content_header() {
return null;
}
/**
* Course-specific information to be output immediately below content on any course page
*
* See {@link format_base::course_header()} for usage
*
* @return null|renderable null for no output or object with data for plugin renderer
*/
public function course_content_footer() {
return null;
}
/**
* Returns instance of page renderer used by this plugin
*
* @param moodle_page $page
* @return renderer_base
*/
public function get_renderer(moodle_page $page) {
return $page->get_renderer('format_'. $this->get_format());
}
}
/**

View File

@ -759,6 +759,23 @@ class core_renderer extends renderer_base {
$header = $this->doctype() . $header;
}
// If this theme version is below 2.4 release and this is a course view page
if ((!isset($this->page->theme->settings->version) || $this->page->theme->settings->version < 2012101500) &&
$this->page->pagelayout === 'course' && $this->page->url->compare(new moodle_url('/course/view.php'), URL_MATCH_BASE)) {
// check if course content header/footer have not been output during render of theme layout
$coursecontentheader = $this->course_content_header(true);
$coursecontentfooter = $this->course_content_footer(true);
if (!empty($coursecontentheader)) {
// display debug message and add header and footer right above and below main content
// Please note that course header and footer (to be displayed above and below the whole page)
// are not displayed in this case at all.
// Besides the content header and footer are not displayed on any other course page
debugging('The current theme is not optimised for 2.4, the course-specific header and footer defined in course format will not be output', DEBUG_DEVELOPER);
$header .= $coursecontentheader;
$footer = $coursecontentfooter. $footer;
}
}
send_headers($this->contenttype, $this->page->cacheable);
$this->opencontainers->push('header/footer', $footer);
@ -845,6 +862,100 @@ class core_renderer extends renderer_base {
return $this->opencontainers->pop_all_but_last($shouldbenone);
}
/**
* Returns course-specific information to be output immediately above content on any course page
* (for the current course)
*
* @param bool $onlyifnotcalledbefore output content only if it has not been output before
* @return string
*/
public function course_content_header($onlyifnotcalledbefore = false) {
global $CFG;
if ($this->page->course->id == SITEID) {
// return immediately and do not include /course/lib.php if not necessary
return '';
}
static $functioncalled = false;
if ($functioncalled && $onlyifnotcalledbefore) {
// we have already output the content header
return '';
}
require_once($CFG->dirroot.'/course/lib.php');
$functioncalled = true;
$courseformat = course_get_format($this->page->course);
if (($obj = $courseformat->course_content_header()) !== null) {
return $courseformat->get_renderer($this->page)->render($obj);
}
return '';
}
/**
* Returns course-specific information to be output immediately below content on any course page
* (for the current course)
*
* @param bool $onlyifnotcalledbefore output content only if it has not been output before
* @return string
*/
public function course_content_footer($onlyifnotcalledbefore = false) {
global $CFG;
if ($this->page->course->id == SITEID) {
// return immediately and do not include /course/lib.php if not necessary
return '';
}
static $functioncalled = false;
if ($functioncalled && $onlyifnotcalledbefore) {
// we have already output the content footer
return '';
}
$functioncalled = true;
require_once($CFG->dirroot.'/course/lib.php');
$courseformat = course_get_format($this->page->course);
if (($obj = $courseformat->course_content_footer()) !== null) {
return $courseformat->get_renderer($this->page)->render($obj);
}
return '';
}
/**
* Returns course-specific information to be output on any course page in the header area
* (for the current course)
*
* @return string
*/
public function course_header() {
global $CFG;
if ($this->page->course->id == SITEID) {
// return immediately and do not include /course/lib.php if not necessary
return '';
}
require_once($CFG->dirroot.'/course/lib.php');
$courseformat = course_get_format($this->page->course);
if (($obj = $courseformat->course_header()) !== null) {
return $courseformat->get_renderer($this->page)->render($obj);
}
return '';
}
/**
* Returns course-specific information to be output on any course page in the footer area
* (for the current course)
*
* @return string
*/
public function course_footer() {
global $CFG;
if ($this->page->course->id == SITEID) {
// return immediately and do not include /course/lib.php if not necessary
return '';
}
require_once($CFG->dirroot.'/course/lib.php');
$courseformat = course_get_format($this->page->course);
if (($obj = $courseformat->course_footer()) !== null) {
return $courseformat->get_renderer($this->page)->render($obj);
}
return '';
}
/**
* Returns lang menu or '', this method also checks forcing of languages in courses.
*

View File

@ -91,13 +91,13 @@ $THEME->layouts = array(
'popup' => array(
'file' => 'default.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true, 'nologininfo'=>true),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true, 'nologininfo'=>true, 'nocourseheaderfooter'=>true),
),
// No blocks and minimal footer - used for legacy frame layouts only!
'frametop' => array(
'file' => 'default.php',
'regions' => array(),
'options' => array('nofooter'=>true),
'options' => array('nofooter'=>true, 'nocoursefooter'=>true),
),
// Embedded pages, like iframe/object embeded in moodleform - it needs as much space as possible
'embedded' => array(
@ -110,13 +110,13 @@ $THEME->layouts = array(
'maintenance' => array(
'file' => 'default.php',
'regions' => array(),
'options' => array('noblocks'=>true, 'nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true),
'options' => array('noblocks'=>true, 'nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true, 'nocourseheaderfooter'=>true),
),
// Should display the content and basic headers only.
'print' => array(
'file' => 'default.php',
'regions' => array(),
'options' => array('noblocks'=>true, 'nofooter'=>true, 'nonavbar'=>false, 'nocustommenu'=>true),
'options' => array('noblocks'=>true, 'nofooter'=>true, 'nonavbar'=>false, 'nocustommenu'=>true, 'nocourseheaderfooter'=>true),
),
// The pagelayout used when a redirection is occuring.
'redirect' => array(
@ -134,7 +134,7 @@ $THEME->layouts = array(
'file' => 'default.php',
'regions' => array('side-pre', 'side-post'),
'defaultregion' => 'side-pre',
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true, 'nologinlinks'=>true),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true, 'nologinlinks'=>true, 'nocourseheaderfooter'=>true),
),
);

View File

@ -15,6 +15,16 @@ $hascustommenu = (empty($PAGE->layout_options['nocustommenu']) && !empty($custom
$hasfootnote = (!empty($PAGE->theme->settings->footnote));
$courseheader = $coursecontentheader = $coursecontentfooter = $coursefooter = '';
if (empty($PAGE->layout_options['nocourseheaderfooter'])) {
$courseheader = $OUTPUT->course_header();
$coursecontentheader = $OUTPUT->course_content_header();
if (empty($PAGE->layout_options['nocoursefooter'])) {
$coursecontentfooter = $OUTPUT->course_content_footer();
$coursefooter = $OUTPUT->course_footer();
}
}
$bodyclasses = array();
if ($showsidepre && !$showsidepost) {
if (!right_to_left()) {
@ -47,9 +57,8 @@ echo $OUTPUT->doctype() ?>
<?php echo $OUTPUT->standard_top_of_body_html() ?>
<div id="page-wrapper">
<div id="page">
<?php if ($hasheading || $hasnavbar) { ?>
<div id="page-header">
<?php if ($hasheading) { ?>
<?php if ($hasheading) { ?>
<div id="page-header">
<a class="logo" href="<?php echo $CFG->wwwroot; ?>" title="<?php print_string('home'); ?>"></a>
<div class="headermenu"><?php
if ($haslogininfo) {
@ -60,9 +69,8 @@ echo $OUTPUT->doctype() ?>
}
echo $PAGE->headingmenu
?></div>
<?php } ?>
</div>
<?php } ?>
</div>
<?php } ?>
<!-- END OF HEADER -->
<!-- START CUSTOMMENU AND NAVBAR -->
<div id="navcontainer">
@ -72,6 +80,10 @@ echo $OUTPUT->doctype() ?>
</div>
<?php if (!empty($courseheader)) { ?>
<div id="course-header"><?php echo $courseheader; ?></div>
<?php } ?>
<?php if ($hasnavbar) { ?>
<div class="navbar clearfix">
<div class="breadcrumb"><?php echo $OUTPUT->navbar(); ?></div>
@ -85,7 +97,9 @@ echo $OUTPUT->doctype() ?>
<div id="region-pre-box">
<div id="region-main">
<div class="region-content">
<?php echo $coursecontentheader; ?>
<?php echo $OUTPUT->main_content() ?>
<?php echo $coursecontentfooter; ?>
</div>
</div>
@ -121,6 +135,9 @@ echo $OUTPUT->doctype() ?>
</div>
<!-- START OF FOOTER -->
<?php if (!empty($coursefooter)) { ?>
<div id="course-footer"><?php echo $coursefooter; ?></div>
<?php } ?>
<?php if ($hasfooter) { ?>
<div id="page-footer" class="clearfix">

View File

@ -85,19 +85,19 @@ $THEME->layouts = array(
'popup' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'noblocks'=>true),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'noblocks'=>true, 'nocourseheaderfooter'=>true),
),
// No blocks and minimal footer - used for legacy frame layouts only!
'frametop' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('nofooter', 'noblocks'=>true),
'options' => array('nofooter', 'noblocks'=>true, 'nocoursefooter'=>true),
),
// Embeded pages, like iframe embeded in moodleform
'embedded' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'noblocks'=>true),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'noblocks'=>true, 'nocourseheaderfooter'=>true),
),
// Used during upgrade and install, and for the 'This site is undergoing maintenance' message.
// This must not have any blocks, and it is good idea if it does not have links to
@ -105,13 +105,13 @@ $THEME->layouts = array(
'maintenance' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'noblocks'=>true),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'noblocks'=>true, 'nocourseheaderfooter'=>true),
),
// Should display the content and basic headers only.
'print' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'nonavbar'=>false, 'noblocks'=>true),
'options' => array('nofooter'=>true, 'nonavbar'=>false, 'noblocks'=>true, 'nocourseheaderfooter'=>true),
),
'report' => array(
'file' => 'report.php',

View File

@ -25,6 +25,16 @@ if ($hasnavbar) {
$bodyclasses[] = 'hasnavbar';
}
$courseheader = $coursecontentheader = $coursecontentfooter = $coursefooter = '';
if (empty($PAGE->layout_options['nocourseheaderfooter'])) {
$courseheader = $OUTPUT->course_header();
$coursecontentheader = $OUTPUT->course_content_header();
if (empty($PAGE->layout_options['nocoursefooter'])) {
$coursecontentfooter = $OUTPUT->course_content_footer();
$coursefooter = $OUTPUT->course_footer();
}
}
echo $OUTPUT->doctype() ?>
<html <?php echo $OUTPUT->htmlattributes() ?>>
<head>
@ -36,7 +46,7 @@ echo $OUTPUT->doctype() ?>
<?php echo $OUTPUT->standard_top_of_body_html() ?>
<div id="page">
<?php if ($hasheading || $hasnavbar) { ?>
<?php if ($hasheading || $hasnavbar || !empty($courseheader)) { ?>
<div id="page-header">
<div class="rounded-corner top-left"></div>
<div class="rounded-corner top-right"></div>
@ -50,8 +60,11 @@ echo $OUTPUT->doctype() ?>
echo $PAGE->headingmenu
?></div><?php } ?>
<?php if (!empty($courseheader)) { ?>
<div id="course-header"><?php echo $courseheader; ?></div>
<?php } ?>
<?php if ($hascustommenu) { ?>
<div id="custommenu"><?php echo $custommenu; ?></div>
<div id="custommenu"><?php echo $custommenu; ?></div>
<?php } ?>
<?php if ($hasnavbar) { ?>
@ -71,7 +84,9 @@ echo $OUTPUT->doctype() ?>
<div id="region-main-wrap">
<div id="region-main">
<div class="region-content">
<?php echo $coursecontentheader; ?>
<?php echo $OUTPUT->main_content() ?>
<?php echo $coursecontentfooter; ?>
</div>
</div>
</div>
@ -97,6 +112,9 @@ echo $OUTPUT->doctype() ?>
</div>
<!-- START OF FOOTER -->
<?php if (!empty($coursefooter)) { ?>
<div id="course-footer"><?php echo $coursefooter; ?></div>
<?php } ?>
<?php if ($hasfooter) { ?>
<div id="page-footer" class="clearfix">
<p class="helplink"><?php echo page_doc_link(get_string('moodledocslink')) ?></p>

View File

@ -19,6 +19,16 @@ if ($hasnavbar) {
$bodyclasses[] = 'hasnavbar';
}
$courseheader = $coursecontentheader = $coursecontentfooter = $coursefooter = '';
if (empty($PAGE->layout_options['nocourseheaderfooter'])) {
$courseheader = $OUTPUT->course_header();
$coursecontentheader = $OUTPUT->course_content_header();
if (empty($PAGE->layout_options['nocoursefooter'])) {
$coursecontentfooter = $OUTPUT->course_content_footer();
$coursefooter = $OUTPUT->course_footer();
}
}
echo $OUTPUT->doctype() ?>
<html <?php echo $OUTPUT->htmlattributes() ?>>
<head>
@ -44,6 +54,9 @@ echo $OUTPUT->doctype() ?>
echo $PAGE->headingmenu
?></div><?php } ?>
<?php if (!empty($courseheader)) { ?>
<div id="course-header"><?php echo $courseheader; ?></div>
<?php } ?>
<?php if ($hascustommenu) { ?>
<div id="custommenu"><?php echo $custommenu; ?></div>
<?php } ?>
@ -61,7 +74,9 @@ echo $OUTPUT->doctype() ?>
<div id="page-content" class="clearfix">
<div id="report-main-content">
<div class="region-content">
<?php echo $coursecontentheader; ?>
<?php echo $OUTPUT->main_content() ?>
<?php echo $coursecontentfooter; ?>
</div>
</div>
<?php if ($hassidepre) { ?>
@ -76,6 +91,9 @@ echo $OUTPUT->doctype() ?>
</div>
<!-- START OF FOOTER -->
<?php if (!empty($coursefooter)) { ?>
<div id="course-footer"><?php echo $coursefooter; ?></div>
<?php } ?>
<?php if ($hasfooter) { ?>
<div id="page-footer" class="clearfix">
<p class="helplink"><?php echo page_doc_link(get_string('moodledocslink')) ?></p>

View File

@ -143,29 +143,29 @@ $THEME->layouts = array(
'popup' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'noblocks'=>true, 'nonavbar'=>true, 'nocustommenu'=>true),
'options' => array('nofooter'=>true, 'noblocks'=>true, 'nonavbar'=>true, 'nocustommenu'=>true, 'nocourseheaderfooter'=>true),
),
'frametop' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('nofooter'=>true),
'options' => array('nofooter'=>true, 'nocoursefooter'=>true),
),
'maintenance' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true, 'nocourseheaderfooter'=>true),
),
'embedded' => array(
'theme' => 'canvas',
'file' => 'embedded.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true, 'nocourseheaderfooter'=>true),
),
// Should display the content and basic headers only.
'print' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'noblocks'=>true, 'nonavbar'=>false, 'nocustommenu'=>true),
'options' => array('nofooter'=>true, 'noblocks'=>true, 'nonavbar'=>false, 'nocustommenu'=>true, 'nocourseheaderfooter'=>true),
),
'report' => array(
'file' => 'report.php',

View File

@ -19,6 +19,16 @@ if ($hascustommenu) {
$bodyclasses[] = 'has-custom-menu';
}
$courseheader = $coursecontentheader = $coursecontentfooter = $coursefooter = '';
if (empty($PAGE->layout_options['nocourseheaderfooter'])) {
$courseheader = $OUTPUT->course_header();
$coursecontentheader = $OUTPUT->course_content_header();
if (empty($PAGE->layout_options['nocoursefooter'])) {
$coursecontentfooter = $OUTPUT->course_content_footer();
$coursefooter = $OUTPUT->course_footer();
}
}
echo $OUTPUT->doctype() ?>
<html <?php echo $OUTPUT->htmlattributes() ?>>
<head>
@ -36,7 +46,7 @@ echo $OUTPUT->doctype() ?>
<div id="page">
<?php if ($hasheading || $hasnavbar) { ?>
<?php if ($hasheading || $hasnavbar || !empty($courseheader) || !empty($coursefooter)) { ?>
<div id="wrapper" class="clearfix">
<!-- START OF HEADER -->
@ -57,6 +67,9 @@ echo $OUTPUT->doctype() ?>
<?php } ?>
</div>
</div>
<?php if (!empty($courseheader)) { ?>
<div id="course-header"><?php echo $courseheader; ?></div>
<?php } ?>
<?php if ($hasnavbar) { ?>
<div class="navbar">
<div class="wrapper clearfix">
@ -81,7 +94,9 @@ echo $OUTPUT->doctype() ?>
<div id="region-main-wrap">
<div id="region-main">
<div class="region-content">
<?php echo $coursecontentheader; ?>
<?php echo $OUTPUT->main_content() ?>
<?php echo $coursecontentfooter; ?>
</div>
</div>
</div>
@ -101,7 +116,11 @@ echo $OUTPUT->doctype() ?>
<!-- END OF CONTENT -->
<?php if ($hasheading || $hasnavbar) { ?>
<?php if (!empty($coursefooter)) { ?>
<div id="course-footer"><?php echo $coursefooter; ?></div>
<?php } ?>
<?php if ($hasheading || $hasnavbar || !empty($courseheader) || !empty($coursefooter)) { ?>
</div>
<?php } ?>

View File

@ -19,6 +19,16 @@ if ($hascustommenu) {
$bodyclasses[] = 'has-custom-menu';
}
$courseheader = $coursecontentheader = $coursecontentfooter = $coursefooter = '';
if (empty($PAGE->layout_options['nocourseheaderfooter'])) {
$courseheader = $OUTPUT->course_header();
$coursecontentheader = $OUTPUT->course_content_header();
if (empty($PAGE->layout_options['nocoursefooter'])) {
$coursecontentfooter = $OUTPUT->course_content_footer();
$coursefooter = $OUTPUT->course_footer();
}
}
echo $OUTPUT->doctype() ?>
<html <?php echo $OUTPUT->htmlattributes() ?>>
<head>
@ -36,7 +46,7 @@ echo $OUTPUT->doctype() ?>
<div id="page">
<?php if ($hasheading || $hasnavbar) { ?>
<?php if ($hasheading || $hasnavbar || !empty($courseheader) || !empty($coursefooter)) { ?>
<div id="wrapper" class="clearfix">
<!-- START OF HEADER -->
@ -57,6 +67,9 @@ echo $OUTPUT->doctype() ?>
<?php } ?>
</div>
</div>
<?php if (!empty($courseheader)) { ?>
<div id="course-header"><?php echo $courseheader; ?></div>
<?php } ?>
<?php if ($hasnavbar) { ?>
<div class="navbar">
<div class="wrapper clearfix">
@ -77,7 +90,9 @@ echo $OUTPUT->doctype() ?>
<div id="page-content" class="clearfix">
<div id="report-main-content">
<div class="region-content">
<?php echo $coursecontentheader; ?>
<?php echo $OUTPUT->main_content() ?>
<?php echo $coursecontentfooter; ?>
</div>
</div>
<?php if ($hassidepost) { ?>
@ -92,11 +107,13 @@ echo $OUTPUT->doctype() ?>
</div>
</div>
</div>
<!-- END OF CONTENT -->
<?php if ($hasheading || $hasnavbar) { ?>
<?php if (!empty($coursefooter)) { ?>
<div id="course-footer"><?php echo $coursefooter; ?></div>
<?php } ?>
<?php if ($hasheading || $hasnavbar || !empty($courseheader) || !empty($coursefooter)) { ?>
</div>
<?php } ?>

View File

@ -119,19 +119,19 @@ $THEME->layouts = array(
'popup' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true, 'nologininfo'=>true),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true, 'nologininfo'=>true, 'nocourseheaderfooter'=>true),
),
// No blocks and minimal footer - used for legacy frame layouts only!
'frametop' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('nofooter'=>true),
'options' => array('nofooter'=>true, 'nocoursefooter'=>true),
),
// Embeded pages, like iframe/object embeded in moodleform - it needs as much space as possible
'embedded' => array(
'file' => 'embedded.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true, 'nocourseheaderfooter'=>true),
),
// Used during upgrade and install, and for the 'This site is undergoing maintenance' message.
// This must not have any blocks, and it is good idea if it does not have links to
@ -139,19 +139,19 @@ $THEME->layouts = array(
'maintenance' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('noblocks'=>true, 'nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true),
'options' => array('noblocks'=>true, 'nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true, 'nocourseheaderfooter'=>true),
),
// Should display the content and basic headers only.
'print' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('noblocks'=>true, 'nofooter'=>true, 'nonavbar'=>false, 'nocustommenu'=>true),
'options' => array('noblocks'=>true, 'nofooter'=>true, 'nonavbar'=>false, 'nocustommenu'=>true, 'nocourseheaderfooter'=>true),
),
// The pagelayout used when a redirection is occuring.
'redirect' => array(
'file' => 'embedded.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true, 'nocourseheaderfooter'=>true),
),
// The pagelayout used for reports.
'report' => array(
@ -164,7 +164,7 @@ $THEME->layouts = array(
'file' => 'general.php',
'regions' => array('side-pre', 'side-post'),
'defaultregion' => 'side-pre',
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true, 'nologinlinks'=>true),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true, 'nologinlinks'=>true, 'nocourseheaderfooter'=>true),
),
);

View File

@ -13,6 +13,16 @@ $showsidepost = ($hassidepost && !$PAGE->blocks->region_completely_docked('side-
$custommenu = $OUTPUT->custom_menu();
$hascustommenu = (empty($PAGE->layout_options['nocustommenu']) && !empty($custommenu));
$courseheader = $coursecontentheader = $coursecontentfooter = $coursefooter = '';
if (empty($PAGE->layout_options['nocourseheaderfooter'])) {
$courseheader = $OUTPUT->course_header();
$coursecontentheader = $OUTPUT->course_content_header();
if (empty($PAGE->layout_options['nocoursefooter'])) {
$coursecontentfooter = $OUTPUT->course_content_footer();
$coursefooter = $OUTPUT->course_footer();
}
}
$bodyclasses = array();
if ($showsidepre && !$showsidepost) {
if (!right_to_left()) {
@ -43,7 +53,7 @@ echo $OUTPUT->doctype() ?>
<body id="<?php p($PAGE->bodyid) ?>" class="<?php p($PAGE->bodyclasses.' '.join(' ', $bodyclasses)) ?>">
<?php echo $OUTPUT->standard_top_of_body_html() ?>
<div id="page">
<?php if ($hasheading || $hasnavbar) { ?>
<?php if ($hasheading || $hasnavbar || !empty($courseheader)) { ?>
<div id="page-header">
<?php if ($hasheading) { ?>
<h1 class="headermain"><?php echo $PAGE->heading ?></h1>
@ -56,6 +66,9 @@ echo $OUTPUT->doctype() ?>
}
echo $PAGE->headingmenu
?></div><?php } ?>
<?php if (!empty($courseheader)) { ?>
<div id="course-header"><?php echo $courseheader; ?></div>
<?php } ?>
<?php if ($hascustommenu) { ?>
<div id="custommenu"><?php echo $custommenu; ?></div>
<?php } ?>
@ -76,7 +89,9 @@ echo $OUTPUT->doctype() ?>
<div id="region-main-wrap">
<div id="region-main">
<div class="region-content">
<?php echo $coursecontentheader; ?>
<?php echo $OUTPUT->main_content() ?>
<?php echo $coursecontentfooter; ?>
</div>
</div>
</div>
@ -113,6 +128,9 @@ echo $OUTPUT->doctype() ?>
</div>
<!-- START OF FOOTER -->
<?php if (!empty($coursefooter)) { ?>
<div id="course-footer"><?php echo $coursefooter; ?></div>
<?php } ?>
<?php if ($hasfooter) { ?>
<div id="page-footer" class="clearfix">
<p class="helplink"><?php echo page_doc_link(get_string('moodledocslink')) ?></p>

View File

@ -18,6 +18,15 @@ if (!$showsidepre) {
if ($hascustommenu) {
$bodyclasses[] = 'has_custom_menu';
}
$courseheader = $coursecontentheader = $coursecontentfooter = $coursefooter = '';
if (empty($PAGE->layout_options['nocourseheaderfooter'])) {
$courseheader = $OUTPUT->course_header();
$coursecontentheader = $OUTPUT->course_content_header();
if (empty($PAGE->layout_options['nocoursefooter'])) {
$coursecontentfooter = $OUTPUT->course_content_footer();
$coursefooter = $OUTPUT->course_footer();
}
}
echo $OUTPUT->doctype() ?>
<html <?php echo $OUTPUT->htmlattributes() ?>>
@ -29,7 +38,7 @@ echo $OUTPUT->doctype() ?>
<body id="<?php p($PAGE->bodyid) ?>" class="<?php p($PAGE->bodyclasses.' '.join(' ', $bodyclasses)) ?>">
<?php echo $OUTPUT->standard_top_of_body_html() ?>
<div id="page">
<?php if ($hasheading || $hasnavbar) { ?>
<?php if ($hasheading || $hasnavbar || !empty($courseheader)) { ?>
<div id="page-header">
<?php if ($hasheading) { ?>
<h1 class="headermain"><?php echo $PAGE->heading ?></h1>
@ -42,6 +51,9 @@ echo $OUTPUT->doctype() ?>
}
echo $PAGE->headingmenu
?></div><?php } ?>
<?php if (!empty($courseheader)) { ?>
<div id="course-header"><?php echo $courseheader; ?></div>
<?php } ?>
<?php if ($hascustommenu) { ?>
<div id="custommenu"><?php echo $custommenu; ?></div>
<?php } ?>
@ -58,7 +70,9 @@ echo $OUTPUT->doctype() ?>
<div id="page-content" class="clearfix">
<div id="report-main-content">
<div class="region-content">
<?php echo $coursecontentheader; ?>
<?php echo $OUTPUT->main_content() ?>
<?php echo $coursecontentfooter; ?>
</div>
</div>
<?php if ($hassidepre) { ?>
@ -73,6 +87,9 @@ echo $OUTPUT->doctype() ?>
</div>
<!-- START OF FOOTER -->
<?php if (!empty($coursefooter)) { ?>
<div id="course-footer"><?php echo $coursefooter; ?></div>
<?php } ?>
<?php if ($hasfooter) { ?>
<div id="page-footer" class="clearfix">
<p class="helplink"><?php echo page_doc_link(get_string('moodledocslink')) ?></p>
@ -87,4 +104,4 @@ echo $OUTPUT->doctype() ?>
</div>
<?php echo $OUTPUT->standard_end_of_body_html() ?>
</body>
</html>
</html>

View File

@ -154,6 +154,7 @@ a.skip:active {position: static;display: block;}
*/
.headermain {float:left;margin:15px;font-size:2.3em;}
.headermenu {float:right;margin:10px;font-size:0.8em;text-align:right;}
#course-header {clear:both;}
/**
* Navbar
@ -189,6 +190,8 @@ a.skip:active {position: static;display: block;}
.performanceinfo .cachesused .cache-store-stats {text-indent: 1em;}
.performanceinfo .cachesused .cache-total-stats {font-weight:bold;margin-top:0.3em;}
#course-footer {clear:both;}
/**
* Tabs
*/

View File

@ -142,29 +142,29 @@ $THEME->layouts = array(
'popup' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'noblocks'=>true, 'nonavbar'=>true, 'nocustommenu'=>true),
'options' => array('nofooter'=>true, 'noblocks'=>true, 'nonavbar'=>true, 'nocustommenu'=>true, 'nocourseheaderfooter'=>true),
),
'frametop' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('nofooter'=>true),
'options' => array('nofooter'=>true, 'nocoursefooter'=>true),
),
'maintenance' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true, 'nocourseheaderfooter'=>true),
),
'embedded' => array(
'theme' => 'canvas',
'file' => 'embedded.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true, 'nocourseheaderfooter'=>true),
),
// Should display the content and basic headers only.
'print' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'noblocks'=>true, 'nonavbar'=>false, 'nocustommenu'=>true),
'options' => array('nofooter'=>true, 'noblocks'=>true, 'nonavbar'=>false, 'nocustommenu'=>true, 'nocourseheaderfooter'=>true),
),
'report' => array(
'file' => 'report.php',

View File

@ -20,6 +20,16 @@ if ($hascustommenu) {
$bodyclasses[] = 'has-custom-menu';
}
$courseheader = $coursecontentheader = $coursecontentfooter = $coursefooter = '';
if (empty($PAGE->layout_options['nocourseheaderfooter'])) {
$courseheader = $OUTPUT->course_header();
$coursecontentheader = $OUTPUT->course_content_header();
if (empty($PAGE->layout_options['nocoursefooter'])) {
$coursecontentfooter = $OUTPUT->course_content_footer();
$coursefooter = $OUTPUT->course_footer();
}
}
echo $OUTPUT->doctype() ?>
<html <?php echo $OUTPUT->htmlattributes() ?>>
<head>
@ -33,7 +43,7 @@ echo $OUTPUT->doctype() ?>
<div id="page">
<?php if ($hasheading || $hasnavbar) { ?>
<?php if ($hasheading || $hasnavbar || !empty($courseheader) || !empty($coursefooter)) { ?>
<div id="wrapper" class="clearfix">
<!-- START OF HEADER -->
@ -56,7 +66,9 @@ echo $OUTPUT->doctype() ?>
<?php } ?>
</div>
</div>
<?php if (!empty($courseheader)) { ?>
<div id="course-header"><?php echo $courseheader; ?></div>
<?php } ?>
<?php if ($hasnavbar) { ?>
<div class="navbar">
<div class="wrapper clearfix">
@ -81,7 +93,9 @@ echo $OUTPUT->doctype() ?>
<div id="region-main-wrap">
<div id="region-main">
<div class="region-content">
<?php echo $coursecontentheader; ?>
<?php echo $OUTPUT->main_content() ?>
<?php echo $coursecontentfooter; ?>
</div>
</div>
</div>
@ -101,7 +115,11 @@ echo $OUTPUT->doctype() ?>
<!-- END OF CONTENT -->
<?php if ($hasheading || $hasnavbar) { ?>
<?php if (!empty($coursefooter)) { ?>
<div id="course-footer"><?php echo $coursefooter; ?></div>
<?php } ?>
<?php if ($hasheading || $hasnavbar || !empty($courseheader) || !empty($coursefooter)) { ?>
<div class="myclear"></div>
</div>
<?php } ?>

View File

@ -20,6 +20,16 @@ if ($hascustommenu) {
$bodyclasses[] = 'has-custom-menu';
}
$courseheader = $coursecontentheader = $coursecontentfooter = $coursefooter = '';
if (empty($PAGE->layout_options['nocourseheaderfooter'])) {
$courseheader = $OUTPUT->course_header();
$coursecontentheader = $OUTPUT->course_content_header();
if (empty($PAGE->layout_options['nocoursefooter'])) {
$coursecontentfooter = $OUTPUT->course_content_footer();
$coursefooter = $OUTPUT->course_footer();
}
}
echo $OUTPUT->doctype() ?>
<html <?php echo $OUTPUT->htmlattributes() ?>>
<head>
@ -33,7 +43,7 @@ echo $OUTPUT->doctype() ?>
<div id="page">
<?php if ($hasheading || $hasnavbar) { ?>
<?php if ($hasheading || $hasnavbar || !empty($courseheader) || !empty($coursefooter)) { ?>
<div id="wrapper" class="clearfix">
<!-- START OF HEADER -->
@ -56,6 +66,9 @@ echo $OUTPUT->doctype() ?>
<?php } ?>
</div>
</div>
<?php if (!empty($courseheader)) { ?>
<div id="course-header"><?php echo $courseheader; ?></div>
<?php } ?>
<?php if ($hasnavbar) { ?>
<div class="navbar">
@ -77,7 +90,9 @@ echo $OUTPUT->doctype() ?>
<div id="page-content" class="clearfix">
<div id="report-main-content">
<div class="region-content">
<?php echo $coursecontentheader; ?>
<?php echo $OUTPUT->main_content() ?>
<?php echo $coursecontentfooter; ?>
</div>
</div>
<?php if ($hassidepost) { ?>
@ -94,7 +109,11 @@ echo $OUTPUT->doctype() ?>
<!-- END OF CONTENT -->
<?php if ($hasheading || $hasnavbar) { ?>
<?php if (!empty($coursefooter)) { ?>
<div id="course-footer"><?php echo $coursefooter; ?></div>
<?php } ?>
<?php if ($hasheading || $hasnavbar || !empty($courseheader) || !empty($coursefooter)) { ?>
<div class="myclear"></div>
</div>
<?php } ?>

View File

@ -120,29 +120,29 @@ $THEME->layouts = array(
'popup' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('nofooter'=>true),
'options' => array('nofooter'=>true, 'nocourseheaderfooter'=>true),
),
'frametop' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('nofooter'=>true),
'options' => array('nofooter'=>true, 'nocoursefooter'=>true),
),
'maintenance' => array(
'theme' => 'boxxie',
'file' => 'general.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'noblocks'=>false, 'nocustommenu'=>true),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'noblocks'=>false, 'nocustommenu'=>true, 'nocourseheaderfooter'=>true),
),
'embedded' => array(
'file' => 'embedded.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'noblocks'=>false, 'nocustommenu'=>true),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'noblocks'=>false, 'nocustommenu'=>true, 'nocourseheaderfooter'=>true),
),
// Should display the content and basic headers only.
'print' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'noblocks'=>false, 'nocustommenu'=>true),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'noblocks'=>false, 'nocustommenu'=>true, 'nocourseheaderfooter'=>true),
),
);

View File

@ -22,6 +22,16 @@ if ($hascustommenu) {
$bodyclasses[] = 'has-custom-menu';
}
$courseheader = $coursecontentheader = $coursecontentfooter = $coursefooter = '';
if (empty($PAGE->layout_options['nocourseheaderfooter'])) {
$courseheader = $OUTPUT->course_header();
$coursecontentheader = $OUTPUT->course_content_header();
if (empty($PAGE->layout_options['nocoursefooter'])) {
$coursecontentfooter = $OUTPUT->course_content_footer();
$coursefooter = $OUTPUT->course_footer();
}
}
echo $OUTPUT->doctype() ?>
<html <?php echo $OUTPUT->htmlattributes() ?>>
<head>
@ -34,7 +44,7 @@ echo $OUTPUT->doctype() ?>
<?php echo $OUTPUT->standard_top_of_body_html() ?>
<?php if ($hasheading || $hasnavbar) { ?>
<?php if ($hasheading || $hasnavbar || !empty($courseheader) || !empty($coursefooter)) { ?>
<div id="page-wrapper">
<div id="page" class="clearfix">
@ -57,6 +67,10 @@ echo $OUTPUT->doctype() ?>
<div class="myclear"></div>
<?php if (!empty($courseheader)) { ?>
<div id="course-header"><?php echo $courseheader; ?></div>
<?php } ?>
<?php if ($hasnavbar) { ?>
<div class="navbar clearfix">
<div class="breadcrumb"><?php echo $OUTPUT->navbar(); ?></div>
@ -73,7 +87,9 @@ echo $OUTPUT->doctype() ?>
<div id="region-main-wrap">
<div id="region-main">
<div class="region-content">
<?php echo $coursecontentheader; ?>
<?php echo $OUTPUT->main_content() ?>
<?php echo $coursecontentfooter; ?>
</div>
</div>
</div>
@ -99,6 +115,9 @@ echo $OUTPUT->doctype() ?>
</div>
<div class="myclear"></div>
<?php if (!empty($coursefooter)) { ?>
<div id="course-footer"><?php echo $coursefooter; ?></div>
<?php } ?>
<?php if ($hasfooter) { ?>
<div id="page-footer" class="clearfix">
@ -108,7 +127,7 @@ echo $OUTPUT->doctype() ?>
<?php }
if ($hasheading || $hasnavbar) { ?>
if ($hasheading || $hasnavbar || !empty($courseheader) || !empty($coursefooter)) { ?>
<div class="myclear"></div>
</div> <!-- END #page -->

View File

@ -144,23 +144,23 @@ $THEME->layouts = array(
'popup' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'noblocks'=>true, 'nonavbar'=>true),
'options' => array('nofooter'=>true, 'noblocks'=>true, 'nonavbar'=>true, 'nocourseheaderfooter'=>true),
),
'frametop' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('nofooter'=>true),
'options' => array('nofooter'=>true, 'nocoursefooter'=>true),
),
'maintenance' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'nonavbar'=>true),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocourseheaderfooter'=>true),
),
'embedded' => array(
'theme' => 'canvas',
'file' => 'embedded.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'nonavbar'=>true),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocourseheaderfooter'=>true),
),
'report' => array(
'file' => 'general.php',

View File

@ -18,6 +18,16 @@ if ($showsidepost) {
$bodyclasses[] = 'content-only';
}
$courseheader = $coursecontentheader = $coursecontentfooter = $coursefooter = '';
if (empty($PAGE->layout_options['nocourseheaderfooter'])) {
$courseheader = $OUTPUT->course_header();
$coursecontentheader = $OUTPUT->course_content_header();
if (empty($PAGE->layout_options['nocoursefooter'])) {
$coursecontentfooter = $OUTPUT->course_content_footer();
$coursefooter = $OUTPUT->course_footer();
}
}
echo $OUTPUT->doctype() ?>
<html <?php echo $OUTPUT->htmlattributes() ?>>
<head>
@ -81,6 +91,9 @@ echo $OUTPUT->doctype() ?>
<div id="page">
<div id="wrapper" class="clearfix">
<?php if (!empty($courseheader)) { ?>
<div id="course-header"><?php echo $courseheader; ?></div>
<?php } ?>
<!-- START OF CONTENT -->
<div id="page-content-wrapper" class="wrapper clearfix">
@ -100,7 +113,9 @@ echo $OUTPUT->doctype() ?>
</div>
<?php } ?>
<?php echo $coursecontentheader; ?>
<?php echo $OUTPUT->main_content() ?>
<?php echo $coursecontentfooter; ?>
</div>
</div>
@ -128,6 +143,9 @@ echo $OUTPUT->doctype() ?>
</div>
<!-- END OF CONTENT -->
<?php if (!empty($coursefooter)) { ?>
<div id="course-footer"><?php echo $coursefooter; ?></div>
<?php } ?>
</div>

View File

@ -133,34 +133,34 @@ $THEME->layouts = array(
'popup' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'noblocks'=>true, 'nonavbar'=>true),
'options' => array('nofooter'=>true, 'noblocks'=>true, 'nonavbar'=>true, 'nocourseheaderfooter'=>true),
),
'frametop' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('nofooter'=>true),
'options' => array('nofooter'=>true, 'nocoursefooter'=>true),
),
'maintenance' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'nonavbar'=>true),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocourseheaderfooter'=>true),
),
'embedded' => array(
'file' => 'embedded.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'nonavbar'=>true),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocourseheaderfooter'=>true),
),
// Should display the content and basic headers only.
'print' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'nonavbar'=>false, 'noblocks'=>true),
'options' => array('nofooter'=>true, 'nonavbar'=>false, 'noblocks'=>true, 'nocourseheaderfooter'=>true),
),
// The pagelayout used when a redirection is occuring.
'redirect' => array(
'file' => 'embedded.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'nonavbar'=>true),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocourseheaderfooter'=>true),
),
'report' => array(
'file' => 'report.php',
@ -172,7 +172,7 @@ $THEME->layouts = array(
'file' => 'general.php',
'regions' => array('side-pre', 'side-post'),
'defaultregion' => 'side-pre',
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true, 'nologinlinks'=>true),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true, 'nologinlinks'=>true, 'nocourseheaderfooter'=>true),
),
);

View File

@ -25,6 +25,16 @@ if ($hascustommenu) {
$bodyclasses[] = 'has_custom_menu';
}
$courseheader = $coursecontentheader = $coursecontentfooter = $coursefooter = '';
if (empty($PAGE->layout_options['nocourseheaderfooter'])) {
$courseheader = $OUTPUT->course_header();
$coursecontentheader = $OUTPUT->course_content_header();
if (empty($PAGE->layout_options['nocoursefooter'])) {
$coursecontentfooter = $OUTPUT->course_content_footer();
$coursefooter = $OUTPUT->course_footer();
}
}
echo $OUTPUT->doctype() ?>
<html <?php echo $OUTPUT->htmlattributes() ?>>
<head>
@ -39,12 +49,13 @@ echo $OUTPUT->doctype() ?>
<!-- START OF HEADER -->
<?php if ($hasheading || $hasnavbar) { ?>
<div id="wrapper" class="clearfix">
<?php if ($hasheading || $hasnavbar || !empty($courseheader) || !empty($coursefooter)) { ?>
<div id="wrapper" class="clearfix">
<?php } ?>
<?php if ($hasheading) { ?>
<div id="page-header">
<div id="page-header-wrapper" class="clearfix">
<?php if ($hasheading) { ?>
<h1 class="headermain"><?php echo $PAGE->heading ?></h1>
<div class="headermenu">
<?php
@ -55,14 +66,18 @@ echo $OUTPUT->doctype() ?>
echo $PAGE->headingmenu;
?>
</div>
<?php } ?>
</div>
</div>
<?php } ?>
<?php if ($hascustommenu) { ?>
<div id="custommenu"><?php echo $custommenu; ?></div>
<?php } ?>
<?php if (!empty($courseheader)) { ?>
<div id="course-header"><?php echo $courseheader; ?></div>
<?php } ?>
<?php if ($hasnavbar) { ?>
<div class="navbar clearfix">
<div class="breadcrumb"><?php echo $OUTPUT->navbar(); ?></div>
@ -70,8 +85,6 @@ echo $OUTPUT->doctype() ?>
</div>
<?php } ?>
<?php } ?>
<!-- END OF HEADER -->
<!-- START OF CONTENT -->
@ -84,7 +97,9 @@ echo $OUTPUT->doctype() ?>
<div id="region-main-wrap">
<div id="region-main">
<div class="region-content">
<?php echo $coursecontentheader; ?>
<?php echo $OUTPUT->main_content() ?>
<?php echo $coursecontentfooter; ?>
</div>
</div>
</div>
@ -114,6 +129,9 @@ echo $OUTPUT->doctype() ?>
<!-- START OF FOOTER -->
<?php if (!empty($coursefooter)) { ?>
<div id="course-footer"><?php echo $coursefooter; ?></div>
<?php } ?>
<?php if ($hasfooter) { ?>
<div id="page-footer" class="clearfix">
<p class="helplink"><?php echo page_doc_link(get_string('moodledocslink')) ?></p>
@ -125,7 +143,7 @@ echo $OUTPUT->doctype() ?>
</div>
<?php } ?>
<?php if ($hasheading || $hasnavbar) { ?>
<?php if ($hasheading || $hasnavbar || !empty($courseheader) || !empty($coursefooter)) { ?>
</div> <!-- END #wrapper -->
<?php } ?>

View File

@ -21,6 +21,16 @@ if ($hascustommenu) {
$bodyclasses[] = 'has_custom_menu';
}
$courseheader = $coursecontentheader = $coursecontentfooter = $coursefooter = '';
if (empty($PAGE->layout_options['nocourseheaderfooter'])) {
$courseheader = $OUTPUT->course_header();
$coursecontentheader = $OUTPUT->course_content_header();
if (empty($PAGE->layout_options['nocoursefooter'])) {
$coursecontentfooter = $OUTPUT->course_content_footer();
$coursefooter = $OUTPUT->course_footer();
}
}
echo $OUTPUT->doctype() ?>
<html <?php echo $OUTPUT->htmlattributes() ?>>
<head>
@ -35,12 +45,13 @@ echo $OUTPUT->doctype() ?>
<!-- START OF HEADER -->
<?php if ($hasheading || $hasnavbar) { ?>
<?php if ($hasheading || $hasnavbar || !empty($courseheader) || !empty($coursefooter)) { ?>
<div id="wrapper" class="clearfix">
<?php } ?>
<?php if ($hasheading) { ?>
<div id="page-header">
<div id="page-header-wrapper" class="clearfix">
<?php if ($hasheading) { ?>
<h1 class="headermain"><?php echo $PAGE->heading ?></h1>
<div class="headermenu">
<?php
@ -51,14 +62,18 @@ echo $OUTPUT->doctype() ?>
echo $PAGE->headingmenu;
?>
</div>
<?php } ?>
</div>
</div>
<?php } ?>
<?php if ($hascustommenu) { ?>
<div id="custommenu"><?php echo $custommenu; ?></div>
<?php } ?>
<?php if (!empty($courseheader)) { ?>
<div id="course-header"><?php echo $courseheader; ?></div>
<?php } ?>
<?php if ($hasnavbar) { ?>
<div class="navbar clearfix">
<div class="breadcrumb"><?php echo $OUTPUT->navbar(); ?></div>
@ -66,8 +81,6 @@ echo $OUTPUT->doctype() ?>
</div>
<?php } ?>
<?php } ?>
<!-- END OF HEADER -->
<!-- START OF CONTENT -->
@ -77,7 +90,9 @@ echo $OUTPUT->doctype() ?>
<div id="page-content">
<div id="report-main-content">
<div class="region-content">
<?php echo $coursecontentheader; ?>
<?php echo $OUTPUT->main_content() ?>
<?php echo $coursecontentfooter; ?>
</div>
</div>
<?php if ($hassidepre) { ?>
@ -91,12 +106,14 @@ echo $OUTPUT->doctype() ?>
<?php } ?>
</div>
</div>
</div>
<!-- END OF CONTENT -->
<!-- START OF FOOTER -->
<?php if (!empty($coursefooter)) { ?>
<div id="course-footer"><?php echo $coursefooter; ?></div>
<?php } ?>
<?php if ($hasfooter) { ?>
<div id="page-footer" class="clearfix">
<p class="helplink"><?php echo page_doc_link(get_string('moodledocslink')) ?></p>
@ -108,7 +125,7 @@ echo $OUTPUT->doctype() ?>
</div>
<?php } ?>
<?php if ($hasheading || $hasnavbar) { ?>
<?php if ($hasheading || $hasnavbar || !empty($courseheader) || !empty($coursefooter)) { ?>
</div> <!-- END #wrapper -->
<?php } ?>

View File

@ -292,6 +292,7 @@ table#tag-management-list {margin: 10px auto;width: 80%;}
.navbar .navbutton {margin:5px;}
.mform fieldset {border-color:#DDD;}
#course-footer, #course-header {margin:0px 10px;}
/**
* Tabs
*/

View File

@ -3,6 +3,9 @@ information provided here is intended especially for theme designer.
=== 2.4 ===
required changes:
* output course and course content header/footer that may be returned by course format (see MDL-36048)
optional changes:
* new optional boolean parameter $withlinks for public function login_info() in lib/outputrenderers.php (MDL-31365)
* new layout option "nologinlinks" and new page layout "secure" e.g. for safebrowser and securewindow (MDL-31365)