2010-07-06 11:59:31 +00:00
|
|
|
<?php
|
|
|
|
|
2011-03-06 17:31:32 +01:00
|
|
|
defined('MOODLE_INTERNAL') || die();
|
|
|
|
|
2010-07-06 11:59:31 +00:00
|
|
|
/**
|
|
|
|
* Makes our changes to the CSS
|
|
|
|
*
|
|
|
|
* @param string $css
|
|
|
|
* @param theme_config $theme
|
|
|
|
* @return string
|
|
|
|
*/
|
2011-03-06 17:31:32 +01:00
|
|
|
function formal_white_user_settings($css, $theme) {
|
|
|
|
|
2011-05-23 15:05:03 +08:00
|
|
|
// Set the font reference size
|
|
|
|
if (empty($theme->settings->fontsizereference)) {
|
|
|
|
$fontsizereference = '13'; // default
|
|
|
|
} else {
|
|
|
|
$fontsizereference = $theme->settings->fontsizereference;
|
|
|
|
}
|
|
|
|
$css = formal_white_set_fontsizereference($css, $fontsizereference);
|
|
|
|
|
2012-01-19 09:15:04 +01:00
|
|
|
// Set the frame margin
|
|
|
|
if (!isset($theme->settings->framemargin)) {
|
|
|
|
$framemargin = 15; // default
|
|
|
|
} else {
|
|
|
|
$framemargin = $theme->settings->framemargin;
|
|
|
|
}
|
|
|
|
$css = formal_white_set_framemargin($css, $framemargin);
|
|
|
|
|
2011-03-07 15:29:08 +01:00
|
|
|
// Set the page header background color
|
|
|
|
if (empty($theme->settings->headerbgc)) {
|
2011-08-29 11:52:15 +12:00
|
|
|
$headerbgc = '#E3DFD4'; // default
|
2011-03-07 15:29:08 +01:00
|
|
|
} else {
|
|
|
|
$headerbgc = $theme->settings->headerbgc;
|
|
|
|
}
|
|
|
|
$css = formal_white_set_headerbgc($css, $headerbgc);
|
|
|
|
|
2011-03-06 17:31:32 +01:00
|
|
|
// Set the block content background color
|
|
|
|
if (empty($theme->settings->blockcontentbgc)) {
|
2011-05-23 15:05:03 +08:00
|
|
|
$blockcontentbgc = '#F6F6F6'; // default
|
2011-03-06 17:31:32 +01:00
|
|
|
} else {
|
|
|
|
$blockcontentbgc = $theme->settings->blockcontentbgc;
|
|
|
|
}
|
|
|
|
$css = formal_white_set_blockcontentbgc($css, $blockcontentbgc);
|
2010-07-06 11:59:31 +00:00
|
|
|
|
2011-05-23 15:05:03 +08:00
|
|
|
// Set the left block column background color
|
|
|
|
if (empty($theme->settings->lblockcolumnbgc)) {
|
|
|
|
$lblockcolumnbgc = '#E3DFD4'; // default
|
2010-07-06 11:59:31 +00:00
|
|
|
} else {
|
2011-05-23 15:05:03 +08:00
|
|
|
$lblockcolumnbgc = $theme->settings->lblockcolumnbgc;
|
2010-07-06 11:59:31 +00:00
|
|
|
}
|
2011-05-23 15:05:03 +08:00
|
|
|
$css = formal_white_set_lblockcolumnbgc($css, $lblockcolumnbgc);
|
2010-07-06 11:59:31 +00:00
|
|
|
|
2011-05-23 15:05:03 +08:00
|
|
|
// Set the right block column background color
|
|
|
|
if (empty($theme->settings->rblockcolumnbgc)) {
|
|
|
|
$rblockcolumnbgc = $lblockcolumnbgc; // default
|
2010-07-06 11:59:31 +00:00
|
|
|
} else {
|
2011-05-23 15:05:03 +08:00
|
|
|
$rblockcolumnbgc = $theme->settings->rblockcolumnbgc;
|
2010-07-06 11:59:31 +00:00
|
|
|
}
|
2011-05-23 15:05:03 +08:00
|
|
|
$css = formal_white_set_rblockcolumnbgc($css, $rblockcolumnbgc);
|
2010-07-06 11:59:31 +00:00
|
|
|
|
2011-05-23 15:05:03 +08:00
|
|
|
// set the width of the two blocks columns
|
2011-03-06 17:31:32 +01:00
|
|
|
if (!empty($theme->settings->blockcolumnwidth)) {
|
|
|
|
$blockcolumnwidth = $theme->settings->blockcolumnwidth;
|
2010-07-06 11:59:31 +00:00
|
|
|
} else {
|
2011-03-06 17:31:32 +01:00
|
|
|
$blockcolumnwidth = '200'; // default
|
2010-07-06 11:59:31 +00:00
|
|
|
}
|
2011-03-06 17:31:32 +01:00
|
|
|
$css = formal_white_set_blockcolumnwidth($css, $blockcolumnwidth);
|
2010-07-06 11:59:31 +00:00
|
|
|
|
2012-04-06 10:05:59 +02:00
|
|
|
// set blocks margin
|
|
|
|
if (!empty($theme->settings->blockpadding)) {
|
|
|
|
$blockpadding = $theme->settings->blockpadding;
|
|
|
|
} else {
|
|
|
|
$blockpadding = '8'; // default
|
|
|
|
}
|
2012-04-23 15:13:13 +02:00
|
|
|
$css = formal_white_set_blockpadding($css, $blockcolumnwidth, $blockpadding);
|
2012-04-06 10:05:59 +02:00
|
|
|
|
2011-05-23 15:05:03 +08:00
|
|
|
// set the customcss
|
|
|
|
if (!empty($theme->settings->customcss)) {
|
|
|
|
$customcss = $theme->settings->customcss;
|
|
|
|
} else {
|
|
|
|
$customcss = null;
|
|
|
|
}
|
|
|
|
$css = formal_white_set_customcss($css, $customcss);
|
|
|
|
|
2010-07-06 11:59:31 +00:00
|
|
|
return $css;
|
|
|
|
}
|
|
|
|
|
2011-03-06 17:31:32 +01:00
|
|
|
|
|
|
|
|
2010-07-06 11:59:31 +00:00
|
|
|
/**
|
2011-03-06 17:31:32 +01:00
|
|
|
* Sets the link color variable in CSS
|
2010-07-06 11:59:31 +00:00
|
|
|
*
|
|
|
|
*/
|
2011-05-23 15:05:03 +08:00
|
|
|
function formal_white_set_fontsizereference($css, $fontsizereference) {
|
|
|
|
$tag = '[[setting:fontsizereference]]';
|
|
|
|
$css = str_replace($tag, $fontsizereference.'px', $css);
|
|
|
|
return $css;
|
|
|
|
}
|
|
|
|
|
2012-01-19 09:15:04 +01:00
|
|
|
function formal_white_set_framemargin($css, $framemargin) {
|
|
|
|
$tag = '[[setting:framemargin]]';
|
|
|
|
$css = str_replace($tag, $framemargin.'px', $css);
|
|
|
|
|
2013-02-21 18:11:32 +01:00
|
|
|
// Set .headermenu margin
|
|
|
|
$calculated = $framemargin + 22; // 17px is the width of the frame; 5px to avoid to have all stuck
|
|
|
|
$tag = '[[calculated:headermenumargin]]';
|
2012-04-23 15:13:13 +02:00
|
|
|
$css = str_replace($tag, $calculated.'px', $css);
|
2012-01-19 09:15:04 +01:00
|
|
|
|
|
|
|
return $css;
|
|
|
|
}
|
|
|
|
|
2011-03-07 15:29:08 +01:00
|
|
|
function formal_white_set_headerbgc($css, $headerbgc) {
|
|
|
|
$tag = '[[setting:headerbgc]]';
|
|
|
|
$css = str_replace($tag, $headerbgc, $css);
|
|
|
|
return $css;
|
|
|
|
}
|
|
|
|
|
2011-03-06 17:31:32 +01:00
|
|
|
function formal_white_set_blockcontentbgc($css, $blockcontentbgc) {
|
|
|
|
$tag = '[[setting:blockcontentbgc]]';
|
|
|
|
$css = str_replace($tag, $blockcontentbgc, $css);
|
2010-07-06 11:59:31 +00:00
|
|
|
return $css;
|
|
|
|
}
|
|
|
|
|
2011-05-23 15:05:03 +08:00
|
|
|
function formal_white_set_lblockcolumnbgc($css, $lblockcolumnbgc) {
|
|
|
|
$tag = '[[setting:lblockcolumnbgc]]';
|
|
|
|
$css = str_replace($tag, $lblockcolumnbgc, $css);
|
2010-07-06 11:59:31 +00:00
|
|
|
return $css;
|
|
|
|
}
|
|
|
|
|
2011-05-23 15:05:03 +08:00
|
|
|
function formal_white_set_rblockcolumnbgc($css, $rblockcolumnbgc) {
|
|
|
|
$tag = '[[setting:rblockcolumnbgc]]';
|
|
|
|
$css = str_replace($tag, $rblockcolumnbgc, $css);
|
2011-03-07 15:29:08 +01:00
|
|
|
return $css;
|
2011-03-06 17:31:32 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
function formal_white_set_blockcolumnwidth($css, $blockcolumnwidth) {
|
2011-03-07 15:29:08 +01:00
|
|
|
$tag = '[[setting:blockcolumnwidth]]';
|
|
|
|
$css = str_replace($tag, $blockcolumnwidth.'px', $css);
|
2011-03-06 17:31:32 +01:00
|
|
|
|
2012-04-23 15:13:13 +02:00
|
|
|
$calculated = -2*$blockcolumnwidth;
|
|
|
|
$tag = '[[calculated:minusdoubleblockcolumnwidth]]';
|
|
|
|
$css = str_replace($tag, $calculated.'px', $css);
|
2011-03-06 17:31:32 +01:00
|
|
|
|
2012-04-23 15:13:13 +02:00
|
|
|
$calculated = 2*$blockcolumnwidth;
|
|
|
|
$tag = '[[calculated:doubleblockcolumnwidth]]';
|
|
|
|
$css = str_replace($tag, $calculated.'px', $css);
|
2011-03-06 17:31:32 +01:00
|
|
|
|
2012-01-19 09:15:04 +01:00
|
|
|
// set the min-width of the page to provide: content region min-width = block region width
|
|
|
|
// I do not care $framemargin because the min-width applies to #frametop that is free from $framemargin
|
|
|
|
// I need to add twice the width of the frame because it is inside #frametop
|
|
|
|
// (this code here because it HAS TO come later than $blockcolumnwidth definition)
|
2012-04-23 15:13:13 +02:00
|
|
|
$calculated = 3*$blockcolumnwidth + 34; // 34 = 2*17 (17px is the width of the frame)
|
|
|
|
$tag = '[[calculated:minwidth]]';
|
|
|
|
$css = str_replace($tag, $calculated.'px', $css);
|
2012-01-19 09:15:04 +01:00
|
|
|
|
2011-03-07 15:29:08 +01:00
|
|
|
return $css;
|
2011-05-23 15:05:03 +08:00
|
|
|
}
|
|
|
|
|
2012-04-23 15:13:13 +02:00
|
|
|
function formal_white_set_blockpadding($css, $blockcolumnwidth, $blockpadding) {
|
2012-04-06 10:05:59 +02:00
|
|
|
$tag = '[[setting:blockpadding]]';
|
|
|
|
$css = str_replace($tag, $blockpadding.'px', $css);
|
2012-04-23 15:13:13 +02:00
|
|
|
|
|
|
|
// I need to know the field width in pixel because width:100%; and width:auto; don't work as expected
|
|
|
|
// once $blockcolumnwidth and $blockpadding are known, $lb_fieldswidth can be applied
|
|
|
|
// the process has not been optimized at all but it is executed only once
|
|
|
|
$lb_fieldswidth = $blockcolumnwidth;
|
|
|
|
|
|
|
|
// #page-content .region-content {padding:[[setting:blockpadding]] [[setting:blockpadding]] 0 [[setting:blockpadding]];} in pagelayout.css
|
|
|
|
$lb_fieldswidth -= 2*$blockpadding;
|
|
|
|
|
|
|
|
// .block {border:[[static:lb_blockborderwidth]] solid #C6BDA8; [...] }
|
|
|
|
$lb_fieldsborderwidth = 1;
|
|
|
|
$tag = '[[static:lb_blockborderwidth]]'; // It is static, it is not a setting. I just hardcoded its definition here.
|
|
|
|
$css = str_replace($tag, $lb_fieldsborderwidth.'px', $css);
|
|
|
|
$lb_fieldswidth -= 2*$lb_fieldsborderwidth;
|
|
|
|
|
|
|
|
// .block_login .content {padding:[[static:lb_contentpadding]];}
|
|
|
|
$lb_fieldspadding = 4;
|
|
|
|
$tag = '[[static:lb_contentpadding]]'; // It is static, it is not a setting. I just hardcoded its definition here.
|
|
|
|
$css = str_replace($tag, $lb_fieldspadding.'px', $css);
|
|
|
|
$lb_fieldswidth -= 2*$lb_fieldspadding;
|
|
|
|
|
|
|
|
// .block_login #login_username, .block_login #login_password {margin:4px 0 4px [[static:lb_fieldsmargin]];}
|
|
|
|
$lb_fieldsmargin = 14;
|
|
|
|
$tag = '[[static:lb_fieldsmargin]]'; // It is static, it is not a setting. I just hardcoded its definition here.
|
|
|
|
$css = str_replace($tag, $lb_fieldsmargin.'px', $css);
|
|
|
|
$lb_fieldswidth -= $lb_fieldsmargin; // without 2* because it is only left margin
|
|
|
|
|
|
|
|
// fields default factory border: 3px
|
|
|
|
$lb_fieldswidth -= 2*3;
|
|
|
|
|
|
|
|
// leave few pixel on the right reducing once again the field length
|
|
|
|
$lb_fieldswidth -= 12;
|
|
|
|
|
|
|
|
$tag = '[[static:lb_fieldswidth]]';
|
|
|
|
$css = str_replace($tag, $lb_fieldswidth.'px', $css);
|
2012-04-06 10:05:59 +02:00
|
|
|
return $css;
|
|
|
|
}
|
|
|
|
|
2011-05-23 15:05:03 +08:00
|
|
|
function formal_white_set_customcss($css, $customcss) {
|
|
|
|
$tag = '[[setting:customcss]]';
|
|
|
|
$css = str_replace($tag, $customcss, $css);
|
|
|
|
return $css;
|
2011-08-29 11:52:15 +12:00
|
|
|
}
|