diff options
Diffstat (limited to 'view/theme/redbasic/php')
-rw-r--r-- | view/theme/redbasic/php/config.php | 149 | ||||
-rw-r--r-- | view/theme/redbasic/php/style.php | 211 | ||||
-rw-r--r-- | view/theme/redbasic/php/theme.php | 16 | ||||
-rw-r--r-- | view/theme/redbasic/php/theme_init.php | 5 |
4 files changed, 276 insertions, 105 deletions
diff --git a/view/theme/redbasic/php/config.php b/view/theme/redbasic/php/config.php index ad5df57ce..20355197f 100644 --- a/view/theme/redbasic/php/config.php +++ b/view/theme/redbasic/php/config.php @@ -1,80 +1,111 @@ <?php -/** - * Theme settings - */ function theme_content(&$a) { - if(!local_user()) { return; } + if(!local_user()) { return;} - $font_size = get_pconfig(local_user(),'redbasic', 'font_size' ); - $line_height = get_pconfig(local_user(), 'redbasic', 'line_height' ); - $colour = get_pconfig(local_user(), 'redbasic', 'colour' ); - - return redbasic_form($a, $font_size, $line_height, $colour); + $arr = array(); + + $arr['schema'] = get_pconfig(local_user(),'redbasic', 'schema' ); + $arr['nav_colour'] = get_pconfig(local_user(),'redbasic', 'nav_colour' ); + $arr['banner_colour'] = get_pconfig(local_user(),'redbasic', 'banner_colour' ); + $arr['bgcolour'] = get_pconfig(local_user(),'redbasic', 'background_colour' ); + $arr['background_image'] = get_pconfig(local_user(),'redbasic', 'background_image' ); + $arr['item_colour'] = get_pconfig(local_user(),'redbasic', 'item_colour' ); + $arr['item_opacity'] = get_pconfig(local_user(),'redbasic', 'item_opacity' ); + $arr['toolicon_colour'] = get_pconfig(local_user(),'redbasic','toolicon_colour'); + $arr['toolicon_activecolour'] = get_pconfig(local_user(),'redbasic','toolicon_activecolour'); + $arr['font_size'] = get_pconfig(local_user(),'redbasic', 'font_size' ); + $arr['body_font_size'] = get_pconfig(local_user(),'redbasic', 'body_font_size' ); + $arr['font_colour'] = get_pconfig(local_user(),'redbasic', 'font_colour' ); + $arr['radius'] = get_pconfig(local_user(),'redbasic', 'radius' ); + $arr['shadow'] = get_pconfig(local_user(),'redbasic', 'photo_shadow' ); + $arr['converse_width']=get_pconfig(local_user(),"redbasic","converse_width"); + $arr['nav_min_opacity']=get_pconfig(local_user(),"redbasic","nav_min_opacity"); + $arr['top_photo']=get_pconfig(local_user(),"redbasic","top_photo"); + $arr['reply_photo']=get_pconfig(local_user(),"redbasic","reply_photo"); + $arr['sloppy_photos']=get_pconfig(local_user(),"redbasic","sloppy_photos"); + return redbasic_form($a, $arr); } function theme_post(&$a) { - if(!local_user()) { return; } - + if(!local_user()) { return;} + if (isset($_POST['redbasic-settings-submit'])) { + set_pconfig(local_user(), 'redbasic', 'schema', $_POST['redbasic_schema']); + set_pconfig(local_user(), 'redbasic', 'nav_colour', $_POST['redbasic_nav_colour']); + set_pconfig(local_user(), 'redbasic', 'background_colour', $_POST['redbasic_background_colour']); + set_pconfig(local_user(), 'redbasic', 'banner_colour', $_POST['redbasic_banner_colour']); + set_pconfig(local_user(), 'redbasic', 'background_image', $_POST['redbasic_background_image']); + set_pconfig(local_user(), 'redbasic', 'item_colour', $_POST['redbasic_item_colour']); + set_pconfig(local_user(), 'redbasic', 'item_opacity', $_POST['redbasic_item_opacity']); + set_pconfig(local_user(), 'redbasic', 'toolicon_colour', $_POST['redbasic_toolicon_colour']); + set_pconfig(local_user(), 'redbasic', 'toolicon_activecolour', $_POST['redbasic_toolicon_activecolour']); set_pconfig(local_user(), 'redbasic', 'font_size', $_POST['redbasic_font_size']); - set_pconfig(local_user(), 'redbasic', 'line_height', $_POST['redbasic_line_height']); - set_pconfig(local_user(), 'redbasic', 'colour', $_POST['redbasic_colour']); + set_pconfig(local_user(), 'redbasic', 'body_font_size', $_POST['redbasic_body_font_size']); + set_pconfig(local_user(), 'redbasic', 'font_colour', $_POST['redbasic_font_colour']); + set_pconfig(local_user(), 'redbasic', 'radius', $_POST['redbasic_radius']); + set_pconfig(local_user(), 'redbasic', 'photo_shadow', $_POST['redbasic_shadow']); + set_pconfig(local_user(), 'redbasic', 'converse_width', $_POST['redbasic_converse_width']); + set_pconfig(local_user(), 'redbasic', 'nav_min_opacity', $_POST['redbasic_nav_min_opacity']); + set_pconfig(local_user(), 'redbasic', 'top_photo', $_POST['redbasic_top_photo']); + set_pconfig(local_user(), 'redbasic', 'reply_photo', $_POST['redbasic_reply_photo']); + set_pconfig(local_user(), 'redbasic', 'sloppy_photos', $_POST['redbasic_sloppy_photos']); } } -function theme_admin(&$a) { - $font_size = get_config('redbasic', 'font_size' ); - $line_height = get_config('redbasic', 'line_height' ); - $colour = get_config('redbasic', 'colour' ); - - return redbasic_form($a, $font_size, $line_height, $colour); -} -function theme_admin_post(&$a) { - if (isset($_POST['redbasic-settings-submit'])) { - set_config('redbasic', 'font_size', $_POST['redbasic_font_size']); - set_config('redbasic', 'line_height', $_POST['redbasic_line_height']); - set_config('redbasic', 'colour', $_POST['redbasic_colour']); - } -} -function redbasic_form(&$a, $font_size, $line_height, $colour) { - $line_heights = array( - "1.3" => "1.3", - "---" => "---", - "1.6" => "1.6", - "1.5" => "1.5", - "1.4" => "1.4", - "1.2" => "1.2", - "1.1" => "1.1", - ); - $font_sizes = array( - '12' => '12', - '14' => '14', - "---" => "---", - "16" => "16", - "15" => "15", - '13.5' => '13.5', - '13' => '13', - '12.5' => '12.5', - '12' => '12', - ); - $colours = array( - 'light' => 'light', - 'dark' => 'dark', - ); +function redbasic_form(&$a, $arr) { + - $t = get_markup_template('theme_settings.tpl'); - $o .= replace_macros($t, array( + $scheme_choices = array(); + $scheme_choices["---"] = t("Default"); + $files = glob('view/theme/redbasic/schema/*.php'); + if($files) { + foreach($files as $file) { + $f = basename($file, ".php"); + $scheme_name = $f; + $scheme_choices[$f] = $scheme_name; + } + } + + + $nav_colours = array ( + '' => t('Scheme Default'), + 'red' => t('red'), + 'black' => t('black'), + 'silver' => t('silver'), + ); + +if(feature_enabled(local_user(),'expert')) + $expert = 1; + + $t = get_markup_template('theme_settings.tpl'); + $o .= replace_macros($t, array( '$submit' => t('Submit'), '$baseurl' => $a->get_baseurl(), + '$expert' => $expert, '$title' => t("Theme settings"), - '$font_size' => array('redbasic_font_size', t('Set font-size for posts and comments'), $font_size, '', $font_sizes), - '$line_height' => array('redbasic_line_height', t('Set line-height for posts and comments'), $line_height, '', $line_heights), - '$colour' => array('redbasic_colour', t('Set colour scheme'), $colour, '', $colours), - )); + '$schema' => array('redbasic_schema', t('Set scheme'), $arr['schema'], '', $scheme_choices), + '$nav_colour' => array('redbasic_nav_colour', t('Navigation bar colour'), $arr['nav_colour'], '', $nav_colours), + '$banner_colour' => array('redbasic_banner_colour', t('Set font-colour for banner'), $arr['banner_colour']), + '$bgcolour' => array('redbasic_background_colour', t('Set the background colour'), $arr['bgcolour']), + '$background_image' => array('redbasic_background_image', t('Set the background image'), $arr['background_image']), + '$item_colour' => array('redbasic_item_colour', t('Set the background colour of items'), $arr['item_colour']), + '$item_opacity' => array('redbasic_item_opacity', t('Set the opacity of items'), $arr['item_opacity']), + '$toolicon_colour' => array('redbasic_toolicon_colour',t('Set the basic colour for item icons'),$arr['toolicon_colour']), + '$toolicon_activecolour' => array('redbasic_toolicon_activecolour',t('Set the hover colour for item icons'),$arr['toolicon_activecolour']), + '$body_font_size' => array('redbasic_body_font_size', t('Set font-size for the entire application'), $arr['body_font_size']), + '$font_size' => array('redbasic_font_size', t('Set font-size for posts and comments'), $arr['font_size']), + '$font_colour' => array('redbasic_font_colour', t('Set font-colour for posts and comments'), $arr['font_colour']), + '$radius' => array('redbasic_radius', t('Set radius of corners'), $arr['radius']), + '$shadow' => array('redbasic_shadow', t('Set shadow depth of photos'), $arr['shadow']), + '$converse_width' => array('redbasic_converse_width',t('Set maximum width of conversation regions'),$arr['converse_width']), + '$nav_min_opacity' => array('redbasic_nav_min_opacity',t('Set minimum opacity of nav bar - to hide it'),$arr['nav_min_opacity']), + '$top_photo' => array('redbasic_top_photo', t('Set size of conversation author photo'), $arr['top_photo']), + '$reply_photo' => array('redbasic_reply_photo', t('Set size of followup author photos'), $arr['reply_photo']), + '$sloppy_photos' => array('redbasic_sloppy_photos',t('Sloppy photo albums'),$arr['sloppy_photos'],t('Are you a clean desk or a messy desk person?')), + )); return $o; } - diff --git a/view/theme/redbasic/php/style.php b/view/theme/redbasic/php/style.php index 99ad06c55..9956ccd31 100644 --- a/view/theme/redbasic/php/style.php +++ b/view/theme/redbasic/php/style.php @@ -1,46 +1,175 @@ <?php - $line_height = false; - $redbasic_font_size = false; - $resolution = false; - $colour = false; - $site_line_height = get_config("redbasic","line_height"); - $site_redbasic_font_size = get_config("redbasic", "font_size" ); - $site_colour = get_config("redbasic", "colour" ); - - if (local_user()) { - $line_height = get_pconfig(local_user(), "redbasic","line_height"); - $redbasic_font_size = get_pconfig(local_user(), "redbasic", "font_size"); - $colour = get_pconfig(local_user(), "redbasic", "colour"); - } - - if ($line_height === false) { - $line_height = $site_line_height; - } - if ($line_height === false) { - $line_height = "1.2"; - } - if ($redbasic_font_size === false) { - $redbasic_font_size = $site_redbasic_font_size; - } - if ($redbasic_font_size === false) { - $redbasic_font_size = "12"; - } - if ($colour === false) { - $colour = $site_colour; +// Get the UID of the channel owner + $uid = get_theme_uid(); + + if($uid) + load_pconfig($uid,'redbasic'); + +// Nav colours are mess. Set $nav_colour as a single word for the sake of letting folk pick one +// but it actually consists of at least two colours to form a gradient - $nav_bg_1 and $nav_bg_2 +// A further two - $nav_bg_3 and $nav_bg_4 are used to create the hover, if any particular scheme +// wants to implement that + $nav_colour = get_pconfig($uid, "redbasic", "nav_colour"); + +// Load the owners pconfig + $banner_colour = get_pconfig($uid,'redbasic','banner_colour'); + $schema = get_pconfig($uid,'redbasic','schema'); + $bgcolour = get_pconfig($uid, "redbasic", "background_colour"); + $background_image = get_pconfig($uid, "redbasic", "background_image"); + $toolicon_colour = get_pconfig($uid,'redbasic','toolicon_colour'); + $toolicon_activecolour = get_pconfig($uid,'redbasic','toolicon_activecolour'); + $item_colour = get_pconfig($uid, "redbasic", "item_colour"); + $item_opacity = get_pconfig($uid, "redbasic", "item_opacity"); + $body_font_size = get_pconfig($uid, "redbasic", "body_font_size"); + $font_size = get_pconfig($uid, "redbasic", "font_size"); + $font_colour = get_pconfig($uid, "redbasic", "font_colour"); + $radius = get_pconfig($uid, "redbasic", "radius"); + $shadow = get_pconfig($uid,"redbasic","photo_shadow"); + $converse_width=get_pconfig($uid,"redbasic","converse_width"); + $nav_min_opacity=get_pconfig($uid,'redbasic','nav_min_opacity'); + $sloppy_photos=get_pconfig($uid,'redbasic','sloppy_photos'); + $top_photo=get_pconfig($uid,'redbasic','top_photo'); + $reply_photo=get_pconfig($uid,'redbasic','reply_photo'); + +// Now load the scheme. If a value is changed above, we'll keep the settings +// If not, we'll keep those defined by the schema +// Setting $scheme to '' wasn't working for some reason, so we'll check it's +// not --- like the mobile theme does instead. + + if (($schema) && ($schema != '---')) { + // Check it exists, because this setting gets distributed to clones + if(file_exists('view/theme/redbasic/schema/' . $schema . '.php')) { + $schemefile = 'view/theme/redbasic/schema/' . $schema . '.php'; + require_once ($schemefile); + } } - if($colour === false) { - $colour = "light"; + // If we haven't got a schema, load the default. We shouldn't touch this - we + // should leave it for admins to define for themselves. + if (! $schema) { + if(file_exists('view/theme/redbasic/schema/default.php')) { + $schemefile = 'view/theme/redbasic/schema/' . 'default.php'; + require_once ($schemefile); + } + } + + +//Set some defaults - we have to do this after pulling owner settings, and we have to check for each setting +//individually. If we don't, we'll have problems if a user has set one, but not all options. + + if (! $nav_colour) { + $nav_colour = "red"; + $nav_bg_1 = "#f88"; + $nav_bg_2 = "#b00"; + $nav_bg_3 = "#f00"; + $nav_bg_4 = "#b00"; + } + if (! $banner_colour) + $banner_colour = "fff"; + if (! $bgcolour) + $bgcolour = "#fdfdfd"; + if (! $background_image) + $background_image =''; + if (! $item_colour) + $item_colour = "#fdfdfd"; + if (! $toolicon_colour) + $toolicon_colour = '#777777'; + if (! $toolicon_activecolour) + $toolicon_activecolour = '#000'; + if (! $item_opacity) + $item_opacity = "1"; + if (! $font_size) + $font_size = "1.0em"; + if (! $body_font_size) + $body_font_size = "11px"; + if (! $font_colour) + $font_colour = "#4D4D4D"; + if (! $radius) + $radius = "0"; + if (! $shadow) + $shadow = "0"; + if(! $active_colour) + $active_colour = '#FFFFFF'; + if (! $converse_width) + $converse_width="1024px"; + if(! $top_photo) + $top_photo = '64px'; + $pmenu_top = intval($top_photo) - 16 . 'px'; + $wwtop = intval($top_photo) - 15 . 'px'; + $comment_indent = intval($top_photo) + 10 . 'px'; + + if(! $reply_photo) + $reply_photo = '32px'; + $pmenu_reply = intval($reply_photo) - 16 . 'px'; + + if($nav_min_opacity === false || $nav_min_opacity === '') { + $nav_float_min_opacity = 1.0; + $nav_percent_min_opacity = 100; } - - if(file_exists('view/theme/' . current_theme() . '/css/style.css')) { - echo file_get_contents('view/theme/' . current_theme() . '/css/style.css'); - } - echo "\r\n"; - - if(($redbasic_font_size >= 10.0) && ($redbasic_font_size <= 16.0)) { - echo ".wall-item-content { font-size: $redbasic_font_size; }\r\n"; + else { + $nav_float_min_opacity = (float) $nav_min_opacity; + $nav_percent_min_opacity = (int) 100 * $nav_min_opacity; } + + +// Nav colours have nested values, so we have to define the actual variables +// used in the CSS from the higher level "red", "black", etc here + if ($nav_colour == "red") { + $nav_bg_1 = $nav_bg_3 = "#ba002f"; + $nav_bg_2 = $nav_bg_4 = "#ad002c"; + $search_background = "#EEEEEE"; + $active_colour = '#444444'; + } + + if ($nav_colour == "black") { + $nav_bg_1 = $nav_bg_3 = "#000"; + $nav_bg_2 = $nav_bg_4 = "#222"; + $search_background = '#EEEEEE'; + $active_colour = '#AAAAAA'; + } + if ($nav_colour == "silver") { + $nav_bg_1 = $nav_bg_2 = $nav_bg_3 = $nav_bg_4 = "silver"; + $search_background = '#EEEEEE'; + } + + +// Apply the settings + if(file_exists('view/theme/redbasic/css/style.css')) { + $x = file_get_contents('view/theme/redbasic/css/style.css'); + +$options = array ( +'$nav_bg_1' => $nav_bg_1, +'$nav_bg_2' => $nav_bg_2, +'$nav_bg_3' => $nav_bg_3, +'$nav_bg_4' => $nav_bg_4, +'$banner_colour' => $banner_colour, +'$search_background' => $search_background, +'$bgcolour' => $bgcolour, +'$background_image' => $background_image, +'$item_colour' => $item_colour, +'$item_opacity' => $item_opacity, +'$toolicon_colour' => $toolicon_colour, +'$toolicon_activecolour' => $toolicon_activecolour, +'$font_size' => $font_size, +'$font_colour' => $font_colour, +'$body_font_size' => $body_font_size, +'$radius' => $radius, +'$shadow' => $shadow, +'$active_colour' => $active_colour, +'$converse_width' => $converse_width, +'$nav_float_min_opacity' => $nav_float_min_opacity, +'$nav_percent_min_opacity' => $nav_percent_min_opacity, +'$top_photo' => $top_photo, +'$reply_photo' => $reply_photo, +'$pmenu_top' => $pmenu_top, +'$pmenu_reply' => $pmenu_reply, +'$wwtop' => $wwtop, +'$comment_indent' => $comment_indent +); + +echo str_replace(array_keys($options), array_values($options), $x); + +} - if(($line_height >= 1.0) && ($line_height <= 1.5)) { - echo ".wall-item-content { line-height: $line_height; }\r\n"; - } +if($sloppy_photos && file_exists('view/theme/redbasic/css/sloppy_photos.css')) { + echo file_get_contents('view/theme/redbasic/css/sloppy_photos.css'); +} diff --git a/view/theme/redbasic/php/theme.php b/view/theme/redbasic/php/theme.php index 3d69a7e22..e68533bb4 100644 --- a/view/theme/redbasic/php/theme.php +++ b/view/theme/redbasic/php/theme.php @@ -1,9 +1,15 @@ <?php +/** + * * Name: Redbasic + * * Description: RedMatrix standard theme + * * Version: 1.0 + * * Author: Fabrixxm + * * Maintainer: Mike Macgirvin + * * Compat: Red [*] + * + */ + function redbasic_init(&$a) { - if($a->config['system']['theme_engine']) - $a->set_template_engine($a->config['system']['theme_engine']); - else - $a->set_template_engine('smarty3'); -// head_add_js('redbasic.js'); + } diff --git a/view/theme/redbasic/php/theme_init.php b/view/theme/redbasic/php/theme_init.php new file mode 100644 index 000000000..ccb85a070 --- /dev/null +++ b/view/theme/redbasic/php/theme_init.php @@ -0,0 +1,5 @@ +<?php + +head_add_css('library/font_awesome/css/font-awesome.min.css'); +require_once('view/php/theme_init.php'); + |