aboutsummaryrefslogtreecommitdiffstats
path: root/view/theme/redbasic/php
diff options
context:
space:
mode:
Diffstat (limited to 'view/theme/redbasic/php')
-rw-r--r--view/theme/redbasic/php/config.php149
-rw-r--r--view/theme/redbasic/php/style.php211
-rw-r--r--view/theme/redbasic/php/theme.php16
-rw-r--r--view/theme/redbasic/php/theme_init.php5
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');
+