themes lib MDL-24895 Multiple fixes to better handle overflow.

Major tasks undertaken in this patch:
* New format_text argument, overflowdiv.
* New page layout Report.
* Review of all format_text calls.
* Added support for the report layout to all themes.
* Changed forum post display from tables to divs.
This commit is contained in:
Sam Hemelryk 2010-11-05 02:53:47 +00:00
parent 2412f8b882
commit 367a75fae4
125 changed files with 3366 additions and 2062 deletions

View file

@ -152,6 +152,12 @@ $THEME->layouts = array(
'regions' => array(),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true),
),
// The pagelayout used for reports
'report' => array(
'file' => 'report.php',
'regions' => array('side-pre'),
'defaultregion' => 'side-pre',
),
);
// We don't want the base theme to be shown on the theme selection screen, by setting

View file

@ -0,0 +1,89 @@
<?php
$hasheading = ($PAGE->heading);
$hasnavbar = (empty($PAGE->layout_options['nonavbar']) && $PAGE->has_navbar());
$hasfooter = (empty($PAGE->layout_options['nofooter']));
$hassidepre = (empty($PAGE->layout_options['noblocks']) && $PAGE->blocks->region_has_content('side-pre', $OUTPUT));
$haslogininfo = (empty($PAGE->layout_options['nologininfo']));
$showsidepre = ($hassidepre && !$PAGE->blocks->region_completely_docked('side-pre', $OUTPUT));
$custommenu = $OUTPUT->custom_menu();
$hascustommenu = (empty($PAGE->layout_options['nocustommenu']) && !empty($custommenu));
$bodyclasses = array();
if (!$showsidepre) {
$bodyclasses[] = 'content-only';
}
if ($hascustommenu) {
$bodyclasses[] = 'has_custom_menu';
}
echo $OUTPUT->doctype() ?>
<html <?php echo $OUTPUT->htmlattributes() ?>>
<head>
<title><?php echo $PAGE->title ?></title>
<link rel="shortcut icon" href="<?php echo $OUTPUT->pix_url('favicon', 'theme')?>" />
<?php echo $OUTPUT->standard_head_html() ?>
</head>
<body id="<?php echo $PAGE->bodyid ?>" class="<?php echo $PAGE->bodyclasses.' '.join(' ', $bodyclasses) ?>">
<?php echo $OUTPUT->standard_top_of_body_html() ?>
<div id="page">
<?php if ($hasheading || $hasnavbar) { ?>
<div id="page-header">
<?php if ($hasheading) { ?>
<h1 class="headermain"><?php echo $PAGE->heading ?></h1>
<div class="headermenu"><?php
if ($haslogininfo) {
echo $OUTPUT->login_info();
}
if (!empty($PAGE->layout_options['langmenu'])) {
echo $OUTPUT->lang_menu();
}
echo $PAGE->headingmenu
?></div><?php } ?>
<?php if ($hascustommenu) { ?>
<div id="custommenu"><?php echo $custommenu; ?></div>
<?php } ?>
<?php if ($hasnavbar) { ?>
<div class="navbar clearfix">
<div class="breadcrumb"><?php echo $OUTPUT->navbar(); ?></div>
<div class="navbutton"> <?php echo $PAGE->button; ?></div>
</div>
<?php } ?>
</div>
<?php } ?>
<!-- END OF HEADER -->
<div id="page-content" class="clearfix">
<div id="report-main-content">
<div class="region-content">
<?php echo core_renderer::MAIN_CONTENT_TOKEN ?>
</div>
</div>
<?php if ($hassidepre) { ?>
<div id="report-region-wrap">
<div id="report-region-pre" class="block-region">
<div class="region-content">
<?php echo $OUTPUT->blocks_for_region('side-pre') ?>
</div>
</div>
</div>
<?php } ?>
</div>
<!-- START OF FOOTER -->
<?php if ($hasfooter) { ?>
<div id="page-footer" class="clearfix">
<p class="helplink"><?php echo page_doc_link(get_string('moodledocslink')) ?></p>
<?php
echo $OUTPUT->login_info();
echo $OUTPUT->home_link();
echo $OUTPUT->standard_footer_html();
?>
</div>
<?php } ?>
</div>
<?php echo $OUTPUT->standard_end_of_body_html() ?>
</body>
</html>

View file

@ -98,6 +98,11 @@ form.popupform,
form.popupform div {display: inline;}
.arrow_button input {overflow:hidden;}
.no-overflow {overflow:auto;}
.pagelayout-report .no-overflow {overflow:visible;}
.no-overflow > .generaltable {margin-bottom:0;}
.ie6 .no-overflow {width:100%;}
/** IE6 float + background bug solution **/
.ie6 li.section {line-height:1.2em;width:100%;}
@ -649,10 +654,12 @@ body.tag .managelink {padding: 5px;}
.restore-course-search .rcs-results {width:70%;min-width:400px;border:1px solid #ddd;margin:5px 0;}
.restore-course-search .rcs-results table {width:100%;margin:0;border-width:0;}
.restore-course-search .rcs-results table .no-overflow {max-width:600px;}
.restore-course-search .rcs-results .paging {text-align:left;margin:0;background-color:#eee;padding:3px;}
.restore-course-category .rcs-results {width:70%;min-width:400px;border:1px solid #ddd;margin:5px 0;}
.restore-course-category .rcs-results table {width:100%;margin:0;border-width:0;}
.restore-course-category .rcs-results table .no-overflow {max-width:600px;}
.restore-course-category .rcs-results .paging {text-align:left;margin:0;background-color:#eee;padding:3px;}
.corelightbox {background-color:#CCC;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;}

View file

@ -32,37 +32,62 @@ body {margin:auto 0px;width:auto;}
#page-header {float:left;width:100%;}
#page-content {clear:both;float:left;overflow:hidden;position:relative;width:100%;min-width:900px;}
#page-content #region-main-box {float:left;left:200px;position:relative;width:200%;}
#page-content #region-main-box #region-post-box {float:left;left:50%;margin-left:-400px;position:relative;width:100%;}
#page-content #region-main-box #region-post-box #region-main-wrap {float:right;position:relative;right:100%;width:50%;}
#page-content #region-main-box #region-post-box #region-main-wrap #region-main {margin-right:0px;margin-left:400px;overflow:hidden;}
#page-content #region-main-box #region-post-box #region-pre {float:left;left:200px;overflow:hidden;position:relative;width:200px;margin-left:-50%;}
#page-content #region-main-box #region-post-box #region-post {float:left;left:0px;overflow:hidden;position:relative;width:200px;}
#page-content #region-main-box .region-content {overflow:hidden;padding:10px;}
#page-content #region-post-box {float:left;left:50%;margin-left:-400px;position:relative;width:100%;}
#page-content #region-main-wrap {float:right;position:relative;right:100%;width:50%;}
#page-content #region-main {margin-right:0px;margin-left:400px;overflow:hidden;}
#page-content #region-pre {float:left;left:200px;overflow:hidden;position:relative;width:200px;margin-left:-50%;}
#page-content #region-post {float:left;left:0px;overflow:hidden;position:relative;width:200px;}
#page-content .region-content {overflow:hidden;padding:10px;}
#page-footer {clear:both;float:left;width:100%;}
/** Only side pre **/
.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:0px;}
.side-pre-only #page-content #region-main-box #region-post-box #region-post {width:0px;}
.side-pre-only #page-content #region-post-box {margin-left:-200px;}
.side-pre-only #page-content #region-main {margin-left:200px;}
.side-pre-only #page-content #region-pre {left:0px;}
.side-pre-only #page-content #region-post {width:0px;}
/** Only side post **/
.side-post-only #page-content #region-main-box {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-pre {width:0px;}
.has_dock.side-post-only .page-middle #region-main-box #region-post-box #region-main-wrap #region-main {margin-left:200px;}
.side-post-only #page-content #region-post-box {margin-left:-200px;}
.side-post-only #page-content #region-main {margin-left:200px;}
.side-post-only #page-content #region-pre {width:0px;}
.has_dock.side-post-only .page-middle #region-main {margin-left:200px;}
/** No blocks whatsoever **/
.content-only #page-content {min-width:0;}
.content-only #page-content #region-main-box {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 {left:0;width:0px;}
.content-only #page-content #region-main-box #region-post-box #region-post {width:0;}
.content-only #page-content #region-post-box {margin-left:0px;}
.content-only #page-content #region-main {margin-left:0px;}
.content-only #page-content #region-pre {left:0;width:0px;}
.content-only #page-content #region-post {width:0;}
/** Stabalise some IE6 behaviour **/
.ie6 #region-pre .region-content,
.ie6 #region-post .region-content {padding:0 !important;width:100%;float:none;}
.ie6 #region-pre .region-content .block,
.ie6 #region-post .region-content .block {width:auto;padding:0;margin:10px;}
.ie6 #region-post .region-content .block {width:auto;padding:0;margin:10px;}
/** Report layout **/
.pagelayout-report #page {width:auto;position:relative;}
.pagelayout-report #page-header {float:none;}
.pagelayout-report #page-content {float:none;overflow:visible;width:auto;}
.pagelayout-report #report-main-content {float:left;width:100%;}
.pagelayout-report #report-main-content .region-content {margin-left:200px;}
.pagelayout-report #report-main-content .region-content table {background-color:#FFF;}
.pagelayout-report #report-region-wrap {width:0;float:right;position:relative;left:-100%;}
.pagelayout-report #report-region-pre {width:200px;}
.pagelayout-report #page-footer {float:none;}
.pagelayout-report #page-content .region-content {overflow:visible;}
/** Correct for content only **/
.pagelayout-report.content-only #report-main-content .region-content {margin-left:0;}
/** Correct for right to left languages **/
.dir-rtl.pagelayout-report #report-main-content .region-content {margin-left:0;margin-right:200px;}
.dir-rtl.pagelayout-report #report-region-wrap {left:0;}
/** Stabalise IE6 behaviour on the report layout **/
.ie6.pagelayout-report #report-main-content {float:none;width:auto;}
.ie6.pagelayout-report #report-region-wrap {float:none;width:200px;left:auto;position:absolute;top:0;}
.ie6.pagelayout-report #report-region-pre,
.ie6.pagelayout-report #report-region-pre .block {width:100%;}