aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/SwiftThemeCreator/theme_creator.php
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/SwiftThemeCreator/theme_creator.php')
-rw-r--r--plugins/SwiftThemeCreator/theme_creator.php96
1 files changed, 71 insertions, 25 deletions
diff --git a/plugins/SwiftThemeCreator/theme_creator.php b/plugins/SwiftThemeCreator/theme_creator.php
index ab122d5fb..860b45097 100644
--- a/plugins/SwiftThemeCreator/theme_creator.php
+++ b/plugins/SwiftThemeCreator/theme_creator.php
@@ -43,6 +43,28 @@ function stc_hex2rgb($color)
}
return array(hexdec($r), hexdec($g), hexdec($b));
}
+/*
+ * lighten returns array of x% of lighter RGB values
+ */
+function lighten( $r, $g, $b, $percent)
+{
+ $r = min(round($r+(($percent*(255-$r))/100)),255);
+ $g = min(round($g+(($percent*(255-$g))/100)),255);
+ $b = min(round($b+(($percent*(255-$b))/100)),255);
+ return sprintf('#%02X%02X%02X', $r, $g, $b);
+}
+/*
+ * darken returns array of x% of darker RGB values
+ */
+function darken( $r, $g, $b, $percent)
+{
+ $r = max(round($r-(($percent*$r)/100)),0);
+ $g = max(round($g-(($percent*$g)/100)),0);
+ $b = max(round($b-(($percent*$b)/100)),0);
+ return sprintf('#%02X%02X%02X', $r, $g, $b);
+}
+
+
$errors = array();
$infos = array();
$available_templates = array();
@@ -115,15 +137,16 @@ if (isset($_POST['submit']) and (!is_adviser()))
l10n('Insufficient colour difference between Internal links and background. dif=') . $dif);
// 3 - Directory control
- $templatedir = PHPWG_ROOT_PATH . 'template/'
+ $main['templatedir'] = PHPWG_ROOT_PATH . 'template/'
. $available_templates[$_POST['template']];
- $themedir = $templatedir . '/' . $main['newtheme'];
+ $main['newtpl'] = $available_templates[$_POST['template']];
+ $themedir = $main['templatedir'] . '/' . $main['newtheme'];
if (is_dir( $themedir ))
array_push($errors,
'['.$themedir.'] : '.l10n('Invalid theme: This theme exists already (no override available).'));
- elseif (!is_writable($templatedir))
+ elseif (!is_writable($main['templatedir']))
array_push($errors,
- '['.$templatedir.'] : '.l10n('no_write_access'));
+ '['.$main['templatedir'].'] : '.l10n('no_write_access'));
// 4 - Picture URL control
if ( $_POST['background'] == 'fixed' and (is_dir($_POST['picture_url'])
@@ -132,18 +155,54 @@ if (isset($_POST['submit']) and (!is_adviser()))
l10n('Header picture is not found, check its path and name.'));
// 5 - Expected Width and Height limits control
- if ( !(is_numeric($_POST['picture_width']) and ($_POST['picture_width'] < 12
- or $_POST['picture_width'] > 4096 )) )
+ if ( !(ctype_digit($_POST['picture_width']) and $_POST['picture_width'] > 11
+ and $_POST['picture_width'] < 4097 ) )
array_push($errors,
'['.$_POST['picture_width'].'] : '
. l10n('incorrect width value [12-4096].'));
- if ( !(is_numeric($_POST['picture_height']) and ($_POST['picture_height'] < 12
- or $_POST['picture_height'] > 200 )) )
+ if ( !(ctype_digit($_POST['picture_height']) and $_POST['picture_height'] > 11
+ and $_POST['picture_height'] < 201 ) )
array_push($errors,
- '['.$_POST['picture_width'].'] : '
- . l10n('incorrect width value [12-4096].'));
+ '['.$_POST['picture_height'].'] : '
+ . l10n('incorrect width value [12-200].'));
// 6 - Generate missing colors values
+ list($r1,$g1,$b1) = stc_hex2rgb($main['color'][0]);
+ if ((( (($r1+1)/256)*(($g1+1)/256)*(($b1+1)/256) ) * 1000 ) < 125 )
+ $main['color6'] = lighten( $r1, $g1, $b1, 10);
+ else $main['color6'] = darken( $r1, $g1, $b1, 10);
+ list($r1,$g1,$b1) = stc_hex2rgb($main['color'][4]);
+ if ((( (($r1+1)/256)*(($g1+1)/256)*(($b1+1)/256) ) * 1000 ) < 125 )
+ $main['color7'] = lighten( $r1, $g1, $b1, 10);
+ else $main['color7'] = darken( $r1, $g1, $b1, 10);
+
+ /* en gros reste à faire:
+ * creation des différents fichiers
+ */
+
+ // Go ahead
+ if (count($errors) == 0) {
+ umask(0000);
+ // mkdir($themedir, 0777);
+ if (!is_dir( $themedir ))
+ array_push($errors,
+ l10n('Theme directory creation failure: it can\'t be created (for now en attendant la suite 8-) ).'));
+ }
+
+ /*
+ * Build themeconf.inc.php
+ **/
+ $plugin_tpl = new Template();
+ $plugin_tpl->set_filenames(array('themeconf'=>
+ dirname(__FILE__) . '/themeconf.inc.tpl'));
+ $plugin_tpl->assign('main',$main);
+ $main['themeconf_inc_php'] = $plugin_tpl->parse('themeconf', true);
+
+ // Smarty trace
+ $plugin_tpl->assign('main',$main);
+
+ // Interesting Graphic Charter
+ // http://accessites.org/site/2006/08/visual-vs-structural/
/*
* Build background image for titrePage or definition list (in #menubar)
@@ -169,22 +228,9 @@ if (isset($_POST['submit']) and (!is_adviser()))
imagedestroy ($img);
imagedestroy ($dest);
}
- /* en gros reste à faire:
- * creation de la directory
- * creation des différents fichiers
- * parse pour theme.css et ecriture directe pour les autres
- */
- // Lors du parse si le second arg est à true, on récupère le résultat
- // http://www.barelyfitz.com/projects/csscolor/csscolor.zip
- // Go ahead
- if (count($errors) == 0) {
- umask(0000);
- // mkdir($themedir, 0777);
- if (!is_dir( $themedir ))
- array_push($errors,
- l10n('Theme directory creation failure: it can\'t be created (for now en attendant la suite 8-) ).'));
- }
+
+
$swift_theme_creator->save_theme_config();
}