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

@ -156,6 +156,11 @@ $THEME->layouts = array(
'regions' => array(),
'options' => array('nofooter'=>true, 'nonavbar'=>false, 'noblocks'=>true),
),
'report' => array(
'file' => 'report.php',
'regions' => array('side-pre'),
'defaultregion' => 'side-pre'
),
);
$THEME->rendererfactory = 'theme_overridden_renderer_factory';

View file

@ -0,0 +1,127 @@
<?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));
$hassidepost = (empty($PAGE->layout_options['noblocks']) && $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 ($hascustommenu) {
$bodyclasses[] = 'has_custom_menu';
}
if (!empty($PAGE->theme->settings->logo)) {
$logourl = $PAGE->theme->settings->logo;
} else {
$logourl = $OUTPUT->pix_url('logo', 'theme');
}
if (!empty($PAGE->theme->settings->footnote)) {
$footnote = $PAGE->theme->settings->footnote;
} else {
$footnote = '<!-- There was no custom footnote set -->';
}
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">
<div id="page2">
<div id="headerleft" class="headerleft"><div>&nbsp;</div></div>
<div id="bodyleft" class="bodyleft">
<div id="bodyright" class="bodyright">
<div id="header-i3" class="i3">
<?php if ($hasheading || $hasnavbar) { // This is what gets printed on the home page only
?>
<div id="header-home" class="clearfix">
<div id="headerenvelop">
<!-- //echo '<h1 class="logo headermain">'.$PAGE->heading.'</h1>'; -->
<?php echo '<div id="logo"><img class="sitelogo" src="'.$logourl.'" alt="Custom logo here" /></div>';
echo '<div class="headermenu">';
echo $OUTPUT->login_info();
if (!empty($PAGE->theme->settings->alwayslangmenu)) {
echo $OUTPUT->lang_menu();
}
echo $PAGE->headingmenu;
echo '</div>'; // closes: <div class="headermenu">
echo '</div>'; // closes: <div id="headerenvelop">
echo '</div>'; // closes: <div id="header-home" class="clearfix">
if ($hascustommenu) {
echo '<div id="custommenu">'.$custommenu.'</div>';
}
//Accessibility: breadcrumb trail/navbar now a DIV, not a table.
if ($hasnavbar) {
echo '<div class="navbar clearfix">';
echo ' <div class="breadcrumb">'.$OUTPUT->navbar().'</div>';
echo ' <div class="navbutton">'.$PAGE->button.'</div>';
echo '</div>';
}
} ?>
<!-- END OF HEADER -->
<div id="page-content" class="clearfix shrinker">
<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>
</div> <!-- closes: <div id="header-i3" class="i3"> -->
</div> <!-- closes: <div id="bodyright" class="bodyright"> -->
</div> <!-- closes: <div id="bodyleft" class="bodyleft"> -->
<div id="contentfooter" class="contentfooter"><div>&nbsp;</div></div>
</div> <!-- closes: <div id="page2"> -->
</div> <!-- closes:<div id="page"> -->
<!-- START OF FOOTER -->
<?php if ($hasfooter) { ?>
<div id="page-footer" class="clearfix">
<?php echo $footnote; ?>
<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 } ?>
<?php echo $OUTPUT->standard_end_of_body_html() ?>
</body>
</html>

View file

@ -64,12 +64,14 @@ function formalwhite_set_backgroundcolor($css, $backgroundcolor) {
function formalwhite_set_regionwidth($css, $regionwidth) {
$tag = '[[setting:regionwidth]]';
$doubletag = '[[setting:regionwidthdouble]]';
$tagplus10 = '[[setting:regionwidthplus10]]';
$replacement = $regionwidth;
if (is_null($replacement)) {
$replacement = 200;
}
$css = str_replace($tag, $replacement.'px', $css);
$css = str_replace($doubletag, ($replacement*2).'px', $css);
$css = str_replace($tag, ($replacement+10).'px', $css);
return $css;
}

View file

@ -162,13 +162,16 @@ img.iconhelp {vertical-align:middle;}
/** Forum **/
.forumheaderlist,
.forumpost {margin-top:15px;border:1px solid #DDD;border-collapse:separate;}
.forumpost td {border-width:0px;}
.forumpost .topic {background-color:#C8C9C7;}
.forumpost {margin-top:15px;border:1px solid #DDD;background-color:#EEE;}
.forumpost .header {background-color:#C8C9C7;}
.forumpost .topic {padding:7px;}
.forumpost .topic .subject {font-weight:bold;}
.forumpost .topic .author {font-size:0.8em;}
.forumpost .left {background-color:#EEE;padding:4px;text-align:center;vertical-align:top;width:35px;}
.forumpost .content .commands {font-size:0.9em;clear:both;padding-top:0.5em;text-align:right;}
.forumpost .left {background-color:#EEE;}
.forumpost .content {background-color:#FFF;border-top:1px solid #333;}
.forumpost .content .posting {padding:4px;}
.forumpost .options {background-color:#FFF;}
.forumpost .options .commands {font-size:0.9em;clear:both;padding:0.5em 5px 5px;text-align:right;}
.forumpost .content .link {font-size:0.9em;}
.forumpost .content .footer {font-size:0.9em;padding-top:0.5em;text-align:right;}

View file

@ -1,13 +1,11 @@
.block .content {background-color:[[setting:backgroundcolor]];}
#page-content #region-main-box {left:[[setting:regionwidth]];}
#page-content #region-main-box #region-post-box {margin-left:-[[setting:regionwidthdouble]];}
#page-content #region-main-box #region-post-box #region-pre {width:[[setting:regionwidth]];left:[[setting:regionwidth]];}
#page-content #region-main-box #region-post-box #region-post {width:[[setting:regionwidth]];}
#page-content #region-main-box #region-post-box #region-main-wrap #region-main {margin-left:[[setting:regionwidthdouble]];}
.side-pre-only #page-content #region-main-box #region-post-box {margin-left:-[[setting:regionwidth]];}
.side-pre-only #page-content #region-main-box #region-post-box #region-main-wrap #region-main {margin-left:[[setting:regionwidth]];}
/* #page {width:[[setting:regionwidth]]%;margin:15px (100-[[setting:regionwidth])/2% 0;} */
/* #page {min-width: 934px;} */
#page-content #region-main-box {left:[[setting:regionwidthplus10]];}
#page-content #region-post-box {margin-left:-[[setting:regionwidthdouble]];}
#page-content #region-pre {width:[[setting:regionwidth]];left:[[setting:regionwidth]];}
#page-content #region-post {width:[[setting:regionwidth]];}
#page-content #region-main {margin-left:[[setting:regionwidthdouble]];}
.side-pre-only #page-content #region-post-box {margin-left:-[[setting:regionwidth]];}
.side-pre-only #page-content #region-main {margin-left:[[setting:regionwidth]];}
/** Custom CSS **/
[[setting:customcss]]