Index: extensions/pwgCumulus/CHANGELOG
===================================================================
--- extensions/pwgCumulus/CHANGELOG (revision 5323)
+++ extensions/pwgCumulus/CHANGELOG (revision 5405)
@@ -3,4 +3,5 @@
* traduction en espagnol, hongrois
* préparation pour gettext (les clés de traduction sont les valeurs en anglais)
+* colorpicker pour choisir les couleurs de l'animation
pwgCumulus 0.3.0 - 2009-02-28
Index: extensions/pwgCumulus/MANIFEST
===================================================================
--- extensions/pwgCumulus/MANIFEST (revision 5323)
+++ extensions/pwgCumulus/MANIFEST (revision 5405)
@@ -6,6 +6,6 @@
./template/tags.tpl
./template/admin.tpl
+./js/colorpicker.js
./js/swfobject.js
-./js/farbtastic.js
./main.inc.php
./default_values.inc.php
@@ -19,4 +19,40 @@
./language/hu_HU/plugin.lang.php
./CHANGELOG
+./.dist/CREDITS
+./.dist/imgs/cumulus3d.png
+./.dist/MANIFEST
+./.dist/maintain.inc.php
+./.dist/rsync_exclude.txt
+./.dist/template/tags.tpl
+./.dist/template/admin.tpl
+./.dist/js/swfobject.js
+./.dist/js/farbtastic.js
+./.dist/js/farbtastic.packed.js
+./.dist/js/swfobject.packed.js
+./.dist/main.inc.php
+./.dist/default_values.inc.php
+./.dist/language/fr_FR/description.txt
+./.dist/language/fr_FR/plugin.lang.php
+./.dist/language/templates/plugin.lang.php
+./.dist/language/en_UK/plugin.lang.php
+./.dist/language/es_ES/description.txt
+./.dist/language/es_ES/plugin.lang.php
+./.dist/language/hu_HU/description.txt
+./.dist/language/hu_HU/plugin.lang.php
+./.dist/CHANGELOG
+./.dist/include/pwgCumulusContent.class.php
+./.dist/include/pwgCumulusConfig.class.php
+./.dist/swf/tagcloud.swf
+./.dist/admin.php
+./.dist/Makefile
+./.dist/COPYING
+./.dist/css/admin.css
+./.dist/css/imgs/wheel.png
+./.dist/css/imgs/mask.png
+./.dist/css/imgs/marker.png
+./.dist/css/farbtastic.css
+./.dist/init.php
+./.dist/public.php
+./.dist/TODO
./include/pwgCumulusContent.class.php
./include/pwgCumulusConfig.class.php
@@ -26,9 +62,17 @@
./COPYING
./css/admin.css
-./css/imgs/wheel.png
-./css/imgs/mask.png
-./css/imgs/marker.png
-./css/farbtastic.css
+./css/imgs/colorpicker_hex.png
+./css/imgs/colorpicker_hsb_b.png
+./css/imgs/colorpicker_rgb_g.png
+./css/imgs/colorpicker_overlay.png
+./css/imgs/colorpicker_rgb_b.png
+./css/imgs/colorpicker_submit.png
+./css/imgs/colorpicker_select.gif
+./css/imgs/colorpicker_hsb_h.png
+./css/imgs/colorpicker_indic.gif
+./css/imgs/colorpicker_rgb_r.png
+./css/imgs/colorpicker_hsb_s.png
+./css/imgs/colorpicker_background.png
+./css/colorpicker.css
./init.php
./public.php
-./TODO
Index: extensions/pwgCumulus/TODO
===================================================================
--- extensions/pwgCumulus/TODO (revision 5323)
+++ (revision )
@@ -1,6 +1,0 @@
-Paramétrages :
-- couleur de fond
-- couleur texte1
-- couleur texte2
-- couleur au survol
-- vitesse de rotation
Index: extensions/pwgCumulus/admin.php
===================================================================
--- extensions/pwgCumulus/admin.php (revision 5323)
+++ extensions/pwgCumulus/admin.php (revision 5405)
@@ -23,6 +23,4 @@
die('Hacking attempt!');
}
-
-add_event_handler('loc_end_page_header', 'pwg_cumulus_addAssets');
load_language('plugin.lang', PWG_CUMULUS_PLUGIN_LANG);
@@ -71,4 +69,6 @@
$GLOBALS['template']->set_filenames(array('plugin_admin_content' => PWG_CUMULUS_PLUGIN_TEMPLATE . '/admin.tpl'));
+$GLOBALS['template']->assign('PWG_CUMULUS_PLUGIN_CSS', PWG_CUMULUS_PLUGIN_CSS);
+$GLOBALS['template']->assign('PWG_CUMULUS_PLUGIN_JS', PWG_CUMULUS_PLUGIN_JS);
$GLOBALS['template']->assign('PWG_CUMULUS_WIDTH', $me->pwg_cumulus_width);
$GLOBALS['template']->assign('PWG_CUMULUS_HEIGHT', $me->pwg_cumulus_height);
@@ -78,28 +78,3 @@
$GLOBALS['template']->assign('PWG_CUMULUS_HICOLOR', $me->pwg_cumulus_hicolor);
$GLOBALS['template']->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
-
-function pwg_cumulus_addAssets() {
- $css_format = ''."\n";
- $js_format = ''."\n";
-
- $GLOBALS['template']->append('head_elements',
- sprintf($css_format,
- PWG_CUMULUS_PLUGIN_CSS,
- 'admin'
- )
- );
- $GLOBALS['template']->append('head_elements',
- sprintf($css_format,
- PWG_CUMULUS_PLUGIN_CSS,
- 'farbtastic'
- )
- );
- $GLOBALS['template']->func_known_script(array('id' => 'farbtastic',
- 'src' => PWG_CUMULUS_PLUGIN_JS. '/farbtastic.js'
- ),
- $GLOBALS['template']->smarty
- );
-
-
-}
?>
Index: extensions/pwgCumulus/css/colorpicker.css
===================================================================
--- extensions/pwgCumulus/css/colorpicker.css (revision 5405)
+++ extensions/pwgCumulus/css/colorpicker.css (revision 5405)
@@ -0,0 +1,184 @@
+.colorpicker {
+ width: 356px;
+ height: 176px;
+ overflow: hidden;
+ position: absolute;
+ background: url(imgs/colorpicker_background.png);
+ font-family: Arial, Helvetica, sans-serif;
+ display: none;
+}
+
+.colorpicker_color {
+ width: 150px;
+ height: 150px;
+ left: 14px;
+ top: 13px;
+ position: absolute;
+ background: #f00;
+ overflow: hidden;
+ cursor: crosshair;
+}
+
+.colorpicker_color div {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 150px;
+ height: 150px;
+ background: url(imgs/colorpicker_overlay.png);
+}
+
+.colorpicker_color div div {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 11px;
+ height: 11px;
+ overflow: hidden;
+ background: url(imgs/colorpicker_select.gif);
+ margin: -5px 0 0 -5px;
+}
+
+.colorpicker_hue {
+ position: absolute;
+ top: 13px;
+ left: 171px;
+ width: 35px;
+ height: 150px;
+ cursor: n-resize;
+}
+
+.colorpicker_hue div {
+ position: absolute;
+ width: 35px;
+ height: 9px;
+ overflow: hidden;
+ background: url(imgs/colorpicker_indic.gif) left top;
+ margin: -4px 0 0 0;
+ left: 0px;
+}
+
+.colorpicker_new_color {
+ position: absolute;
+ width: 60px;
+ height: 30px;
+ left: 213px;
+ top: 13px;
+ background: #f00;
+}
+
+.colorpicker_current_color {
+ position: absolute;
+ width: 60px;
+ height: 30px;
+ left: 283px;
+ top: 13px;
+ background: #f00;
+}
+
+.colorpicker input {
+ background-color: transparent;
+ border: 1px solid transparent;
+ position: absolute;
+ font-size: 10px;
+ font-family: Arial, Helvetica, sans-serif;
+ color: #898989;
+ top: 4px;
+ right: 11px;
+ text-align: right;
+ margin: 0;
+ padding: 0;
+ height: 11px;
+}
+
+.colorpicker_hex {
+ position: absolute;
+ width: 72px;
+ height: 22px;
+ background: url(imgs/colorpicker_hex.png) top;
+ left: 212px;
+ top: 142px;
+}
+
+.colorpicker_hex input {
+ right: 6px;
+}
+
+.colorpicker_field {
+ height: 22px;
+ width: 62px;
+ background-position: top;
+ position: absolute;
+}
+
+.colorpicker_field span {
+ position: absolute;
+ width: 12px;
+ height: 22px;
+ overflow: hidden;
+ top: 0;
+ right: 0;
+ cursor: n-resize;
+}
+
+.colorpicker_rgb_r {
+ background-image: url(imgs/colorpicker_rgb_r.png);
+ top: 52px;
+ left: 212px;
+}
+
+.colorpicker_rgb_g {
+ background-image: url(imgs/colorpicker_rgb_g.png);
+ top: 82px;
+ left: 212px;
+}
+
+.colorpicker_rgb_b {
+ background-image: url(imgs/colorpicker_rgb_b.png);
+ top: 112px;
+ left: 212px;
+}
+
+.colorpicker_hsb_h {
+ background-image: url(imgs/colorpicker_hsb_h.png);
+ top: 52px;
+ left: 282px;
+}
+
+.colorpicker_hsb_s {
+ background-image: url(imgs/colorpicker_hsb_s.png);
+ top: 82px;
+ left: 282px;
+}
+
+.colorpicker_hsb_b {
+ background-image: url(imgs/colorpicker_hsb_b.png);
+ top: 112px;
+ left: 282px;
+}
+
+.colorpicker_submit {
+ position: absolute;
+ width: 22px;
+ height: 22px;
+ background: url(imgs/colorpicker_submit.png) top;
+ left: 322px;
+ top: 142px;
+ overflow: hidden;
+}
+
+.colorpicker_focus {
+ background-position: center;
+}
+
+.colorpicker_hex.colorpicker_focus {
+ background-position: bottom;
+}
+
+.colorpicker_submit.colorpicker_focus {
+ background-position: bottom;
+}
+
+.colorpicker_slider {
+ background-position: bottom;
+}
Index: extensions/pwgCumulus/css/farbtastic.css
===================================================================
--- extensions/pwgCumulus/css/farbtastic.css (revision 5323)
+++ (revision )
@@ -1,43 +1,0 @@
-.farbtastic {
- position: relative;
-}
-.farbtastic * {
- position: absolute;
- cursor: crosshair;
-}
-.farbtastic, .farbtastic .wheel {
- width: 195px;
- height: 195px;
-}
-.farbtastic .color, .farbtastic .overlay {
- top: 47px;
- left: 47px;
- width: 101px;
- height: 101px;
-}
-.farbtastic .wheel {
- background: url(imgs/wheel.png) no-repeat;
- width: 195px;
- height: 195px;
-}
-.farbtastic .overlay {
- background: url(imgs/mask.png) no-repeat;
-}
-.farbtastic .marker {
- width: 17px;
- height: 17px;
- margin: -8px 0 0 -8px;
- overflow: hidden;
- background: url(imgs/marker.png) no-repeat;
-}
-
-.colorwell {
- border: 2px solid #fff;
- width: 6em;
- text-align: center;
- cursor: pointer;
-}
-body .colorwell-selected {
- border: 2px solid #000;
- font-weight: bold;
-}
Index: extensions/pwgCumulus/default_values.inc.php
===================================================================
--- extensions/pwgCumulus/default_values.inc.php (revision 5323)
+++ extensions/pwgCumulus/default_values.inc.php (revision 5405)
@@ -24,6 +24,6 @@
$default_values['pwg_cumulus_coeff'] = 10;
-$default_values['color1'] = "#333333";
-$default_values['color2'] = "#FF3363";
-$default_values['hicolor'] = "#00CC00";
+$default_values['color1'] = "333333";
+$default_values['color2'] = "FF3363";
+$default_values['hicolor'] = "00CC00";
?>
Index: extensions/pwgCumulus/include/pwgCumulusContent.class.php
===================================================================
--- extensions/pwgCumulus/include/pwgCumulusContent.class.php (revision 5323)
+++ extensions/pwgCumulus/include/pwgCumulusContent.class.php (revision 5405)
@@ -46,7 +46,7 @@
$GLOBALS['template']->assign('PWG_CUMULUS_HREF', get_root_url().'tags.php?display_mode=cumulus');
- $GLOBALS['template']->assign('PWG_CUMULUS_COLOR1', '0x'.substr($this->plugin_config->pwg_cumulus_color1,1));
- $GLOBALS['template']->assign('PWG_CUMULUS_COLOR2', '0x'.substr($this->plugin_config->pwg_cumulus_color2,1));
- $GLOBALS['template']->assign('PWG_CUMULUS_HICOLOR', '0x'.substr($this->plugin_config->pwg_cumulus_hicolor,1));
+ $GLOBALS['template']->assign('PWG_CUMULUS_COLOR1', '0x'.$this->plugin_config->pwg_cumulus_color1);
+ $GLOBALS['template']->assign('PWG_CUMULUS_COLOR2', '0x'.$this->plugin_config->pwg_cumulus_color2);
+ $GLOBALS['template']->assign('PWG_CUMULUS_HICOLOR', '0x'.$this->plugin_config->pwg_cumulus_hicolor);
if (!empty($GLOBALS['template']->smarty->_tpl_vars['tags'])) {
Index: extensions/pwgCumulus/js/colorpicker.js
===================================================================
--- extensions/pwgCumulus/js/colorpicker.js (revision 5405)
+++ extensions/pwgCumulus/js/colorpicker.js (revision 5405)
@@ -0,0 +1,484 @@
+/**
+ *
+ * Color picker
+ * Author: Stefan Petre www.eyecon.ro
+ *
+ * Dual licensed under the MIT and GPL licenses
+ *
+ */
+(function ($) {
+ var ColorPicker = function () {
+ var
+ ids = {},
+ inAction,
+ charMin = 65,
+ visible,
+ tpl = '
',
+ defaults = {
+ eventName: 'click',
+ onShow: function () {},
+ onBeforeShow: function(){},
+ onHide: function () {},
+ onChange: function () {},
+ onSubmit: function () {},
+ color: 'ff0000',
+ livePreview: true,
+ flat: false
+ },
+ fillRGBFields = function (hsb, cal) {
+ var rgb = HSBToRGB(hsb);
+ $(cal).data('colorpicker').fields
+ .eq(1).val(rgb.r).end()
+ .eq(2).val(rgb.g).end()
+ .eq(3).val(rgb.b).end();
+ },
+ fillHSBFields = function (hsb, cal) {
+ $(cal).data('colorpicker').fields
+ .eq(4).val(hsb.h).end()
+ .eq(5).val(hsb.s).end()
+ .eq(6).val(hsb.b).end();
+ },
+ fillHexFields = function (hsb, cal) {
+ $(cal).data('colorpicker').fields
+ .eq(0).val(HSBToHex(hsb)).end();
+ },
+ setSelector = function (hsb, cal) {
+ $(cal).data('colorpicker').selector.css('backgroundColor', '#' + HSBToHex({h: hsb.h, s: 100, b: 100}));
+ $(cal).data('colorpicker').selectorIndic.css({
+ left: parseInt(150 * hsb.s/100, 10),
+ top: parseInt(150 * (100-hsb.b)/100, 10)
+ });
+ },
+ setHue = function (hsb, cal) {
+ $(cal).data('colorpicker').hue.css('top', parseInt(150 - 150 * hsb.h/360, 10));
+ },
+ setCurrentColor = function (hsb, cal) {
+ $(cal).data('colorpicker').currentColor.css('backgroundColor', '#' + HSBToHex(hsb));
+ },
+ setNewColor = function (hsb, cal) {
+ $(cal).data('colorpicker').newColor.css('backgroundColor', '#' + HSBToHex(hsb));
+ },
+ keyDown = function (ev) {
+ var pressedKey = ev.charCode || ev.keyCode || -1;
+ if ((pressedKey > charMin && pressedKey <= 90) || pressedKey == 32) {
+ return false;
+ }
+ var cal = $(this).parent().parent();
+ if (cal.data('colorpicker').livePreview === true) {
+ change.apply(this);
+ }
+ },
+ change = function (ev) {
+ var cal = $(this).parent().parent(), col;
+ if (this.parentNode.className.indexOf('_hex') > 0) {
+ cal.data('colorpicker').color = col = HexToHSB(fixHex(this.value));
+ } else if (this.parentNode.className.indexOf('_hsb') > 0) {
+ cal.data('colorpicker').color = col = fixHSB({
+ h: parseInt(cal.data('colorpicker').fields.eq(4).val(), 10),
+ s: parseInt(cal.data('colorpicker').fields.eq(5).val(), 10),
+ b: parseInt(cal.data('colorpicker').fields.eq(6).val(), 10)
+ });
+ } else {
+ cal.data('colorpicker').color = col = RGBToHSB(fixRGB({
+ r: parseInt(cal.data('colorpicker').fields.eq(1).val(), 10),
+ g: parseInt(cal.data('colorpicker').fields.eq(2).val(), 10),
+ b: parseInt(cal.data('colorpicker').fields.eq(3).val(), 10)
+ }));
+ }
+ if (ev) {
+ fillRGBFields(col, cal.get(0));
+ fillHexFields(col, cal.get(0));
+ fillHSBFields(col, cal.get(0));
+ }
+ setSelector(col, cal.get(0));
+ setHue(col, cal.get(0));
+ setNewColor(col, cal.get(0));
+ cal.data('colorpicker').onChange.apply(cal, [col, HSBToHex(col), HSBToRGB(col)]);
+ },
+ blur = function (ev) {
+ var cal = $(this).parent().parent();
+ cal.data('colorpicker').fields.parent().removeClass('colorpicker_focus');
+ },
+ focus = function () {
+ charMin = this.parentNode.className.indexOf('_hex') > 0 ? 70 : 65;
+ $(this).parent().parent().data('colorpicker').fields.parent().removeClass('colorpicker_focus');
+ $(this).parent().addClass('colorpicker_focus');
+ },
+ downIncrement = function (ev) {
+ var field = $(this).parent().find('input').focus();
+ var current = {
+ el: $(this).parent().addClass('colorpicker_slider'),
+ max: this.parentNode.className.indexOf('_hsb_h') > 0 ? 360 : (this.parentNode.className.indexOf('_hsb') > 0 ? 100 : 255),
+ y: ev.pageY,
+ field: field,
+ val: parseInt(field.val(), 10),
+ preview: $(this).parent().parent().data('colorpicker').livePreview
+ };
+ $(document).bind('mouseup', current, upIncrement);
+ $(document).bind('mousemove', current, moveIncrement);
+ },
+ moveIncrement = function (ev) {
+ ev.data.field.val(Math.max(0, Math.min(ev.data.max, parseInt(ev.data.val + ev.pageY - ev.data.y, 10))));
+ if (ev.data.preview) {
+ change.apply(ev.data.field.get(0), [true]);
+ }
+ return false;
+ },
+ upIncrement = function (ev) {
+ change.apply(ev.data.field.get(0), [true]);
+ ev.data.el.removeClass('colorpicker_slider').find('input').focus();
+ $(document).unbind('mouseup', upIncrement);
+ $(document).unbind('mousemove', moveIncrement);
+ return false;
+ },
+ downHue = function (ev) {
+ var current = {
+ cal: $(this).parent(),
+ y: $(this).offset().top
+ };
+ current.preview = current.cal.data('colorpicker').livePreview;
+ $(document).bind('mouseup', current, upHue);
+ $(document).bind('mousemove', current, moveHue);
+ },
+ moveHue = function (ev) {
+ change.apply(
+ ev.data.cal.data('colorpicker')
+ .fields
+ .eq(4)
+ .val(parseInt(360*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.y))))/150, 10))
+ .get(0),
+ [ev.data.preview]
+ );
+ return false;
+ },
+ upHue = function (ev) {
+ fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+ fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+ $(document).unbind('mouseup', upHue);
+ $(document).unbind('mousemove', moveHue);
+ return false;
+ },
+ downSelector = function (ev) {
+ var current = {
+ cal: $(this).parent(),
+ pos: $(this).offset()
+ };
+ current.preview = current.cal.data('colorpicker').livePreview;
+ $(document).bind('mouseup', current, upSelector);
+ $(document).bind('mousemove', current, moveSelector);
+ },
+ moveSelector = function (ev) {
+ change.apply(
+ ev.data.cal.data('colorpicker')
+ .fields
+ .eq(6)
+ .val(parseInt(100*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.pos.top))))/150, 10))
+ .end()
+ .eq(5)
+ .val(parseInt(100*(Math.max(0,Math.min(150,(ev.pageX - ev.data.pos.left))))/150, 10))
+ .get(0),
+ [ev.data.preview]
+ );
+ return false;
+ },
+ upSelector = function (ev) {
+ fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+ fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+ $(document).unbind('mouseup', upSelector);
+ $(document).unbind('mousemove', moveSelector);
+ return false;
+ },
+ enterSubmit = function (ev) {
+ $(this).addClass('colorpicker_focus');
+ },
+ leaveSubmit = function (ev) {
+ $(this).removeClass('colorpicker_focus');
+ },
+ clickSubmit = function (ev) {
+ var cal = $(this).parent();
+ var col = cal.data('colorpicker').color;
+ cal.data('colorpicker').origColor = col;
+ setCurrentColor(col, cal.get(0));
+ cal.data('colorpicker').onSubmit(col, HSBToHex(col), HSBToRGB(col), cal.data('colorpicker').el);
+ },
+ show = function (ev) {
+ var cal = $('#' + $(this).data('colorpickerId'));
+ cal.data('colorpicker').onBeforeShow.apply(this, [cal.get(0)]);
+ var pos = $(this).offset();
+ var viewPort = getViewport();
+ var top = pos.top + this.offsetHeight;
+ var left = pos.left;
+ if (top + 176 > viewPort.t + viewPort.h) {
+ top -= this.offsetHeight + 176;
+ }
+ if (left + 356 > viewPort.l + viewPort.w) {
+ left -= 356;
+ }
+ cal.css({left: left + 'px', top: top + 'px'});
+ if (cal.data('colorpicker').onShow.apply(this, [cal.get(0)]) != false) {
+ cal.show();
+ }
+ $(document).bind('mousedown', {cal: cal}, hide);
+ return false;
+ },
+ hide = function (ev) {
+ if (!isChildOf(ev.data.cal.get(0), ev.target, ev.data.cal.get(0))) {
+ if (ev.data.cal.data('colorpicker').onHide.apply(this, [ev.data.cal.get(0)]) != false) {
+ ev.data.cal.hide();
+ }
+ $(document).unbind('mousedown', hide);
+ }
+ },
+ isChildOf = function(parentEl, el, container) {
+ if (parentEl == el) {
+ return true;
+ }
+ if (parentEl.contains) {
+ return parentEl.contains(el);
+ }
+ if ( parentEl.compareDocumentPosition ) {
+ return !!(parentEl.compareDocumentPosition(el) & 16);
+ }
+ var prEl = el.parentNode;
+ while(prEl && prEl != container) {
+ if (prEl == parentEl)
+ return true;
+ prEl = prEl.parentNode;
+ }
+ return false;
+ },
+ getViewport = function () {
+ var m = document.compatMode == 'CSS1Compat';
+ return {
+ l : window.pageXOffset || (m ? document.documentElement.scrollLeft : document.body.scrollLeft),
+ t : window.pageYOffset || (m ? document.documentElement.scrollTop : document.body.scrollTop),
+ w : window.innerWidth || (m ? document.documentElement.clientWidth : document.body.clientWidth),
+ h : window.innerHeight || (m ? document.documentElement.clientHeight : document.body.clientHeight)
+ };
+ },
+ fixHSB = function (hsb) {
+ return {
+ h: Math.min(360, Math.max(0, hsb.h)),
+ s: Math.min(100, Math.max(0, hsb.s)),
+ b: Math.min(100, Math.max(0, hsb.b))
+ };
+ },
+ fixRGB = function (rgb) {
+ return {
+ r: Math.min(255, Math.max(0, rgb.r)),
+ g: Math.min(255, Math.max(0, rgb.g)),
+ b: Math.min(255, Math.max(0, rgb.b))
+ };
+ },
+ fixHex = function (hex) {
+ var len = 6 - hex.length;
+ if (len > 0) {
+ var o = [];
+ for (var i=0; i -1) ? hex.substring(1) : hex), 16);
+ return {r: hex >> 16, g: (hex & 0x00FF00) >> 8, b: (hex & 0x0000FF)};
+ },
+ HexToHSB = function (hex) {
+ return RGBToHSB(HexToRGB(hex));
+ },
+ RGBToHSB = function (rgb) {
+ var hsb = {
+ h: 0,
+ s: 0,
+ b: 0
+ };
+ var min = Math.min(rgb.r, rgb.g, rgb.b);
+ var max = Math.max(rgb.r, rgb.g, rgb.b);
+ var delta = max - min;
+ hsb.b = max;
+ if (max != 0) {
+
+ }
+ hsb.s = max != 0 ? 255 * delta / max : 0;
+ if (hsb.s != 0) {
+ if (rgb.r == max) {
+ hsb.h = (rgb.g - rgb.b) / delta;
+ } else if (rgb.g == max) {
+ hsb.h = 2 + (rgb.b - rgb.r) / delta;
+ } else {
+ hsb.h = 4 + (rgb.r - rgb.g) / delta;
+ }
+ } else {
+ hsb.h = -1;
+ }
+ hsb.h *= 60;
+ if (hsb.h < 0) {
+ hsb.h += 360;
+ }
+ hsb.s *= 100/255;
+ hsb.b *= 100/255;
+ return hsb;
+ },
+ HSBToRGB = function (hsb) {
+ var rgb = {};
+ var h = Math.round(hsb.h);
+ var s = Math.round(hsb.s*255/100);
+ var v = Math.round(hsb.b*255/100);
+ if(s == 0) {
+ rgb.r = rgb.g = rgb.b = v;
+ } else {
+ var t1 = v;
+ var t2 = (255-s)*v/255;
+ var t3 = (t1-t2)*(h%60)/60;
+ if(h==360) h = 0;
+ if(h<60) {rgb.r=t1; rgb.b=t2; rgb.g=t2+t3}
+ else if(h<120) {rgb.g=t1; rgb.b=t2; rgb.r=t1-t3}
+ else if(h<180) {rgb.g=t1; rgb.r=t2; rgb.b=t2+t3}
+ else if(h<240) {rgb.b=t1; rgb.r=t2; rgb.g=t1-t3}
+ else if(h<300) {rgb.b=t1; rgb.g=t2; rgb.r=t2+t3}
+ else if(h<360) {rgb.r=t1; rgb.g=t2; rgb.b=t1-t3}
+ else {rgb.r=0; rgb.g=0; rgb.b=0}
+ }
+ return {r:Math.round(rgb.r), g:Math.round(rgb.g), b:Math.round(rgb.b)};
+ },
+ RGBToHex = function (rgb) {
+ var hex = [
+ rgb.r.toString(16),
+ rgb.g.toString(16),
+ rgb.b.toString(16)
+ ];
+ $.each(hex, function (nr, val) {
+ if (val.length == 1) {
+ hex[nr] = '0' + val;
+ }
+ });
+ return hex.join('');
+ },
+ HSBToHex = function (hsb) {
+ return RGBToHex(HSBToRGB(hsb));
+ },
+ restoreOriginal = function () {
+ var cal = $(this).parent();
+ var col = cal.data('colorpicker').origColor;
+ cal.data('colorpicker').color = col;
+ fillRGBFields(col, cal.get(0));
+ fillHexFields(col, cal.get(0));
+ fillHSBFields(col, cal.get(0));
+ setSelector(col, cal.get(0));
+ setHue(col, cal.get(0));
+ setNewColor(col, cal.get(0));
+ };
+ return {
+ init: function (opt) {
+ opt = $.extend({}, defaults, opt||{});
+ if (typeof opt.color == 'string') {
+ opt.color = HexToHSB(opt.color);
+ } else if (opt.color.r != undefined && opt.color.g != undefined && opt.color.b != undefined) {
+ opt.color = RGBToHSB(opt.color);
+ } else if (opt.color.h != undefined && opt.color.s != undefined && opt.color.b != undefined) {
+ opt.color = fixHSB(opt.color);
+ } else {
+ return this;
+ }
+ return this.each(function () {
+ if (!$(this).data('colorpickerId')) {
+ var options = $.extend({}, opt);
+ options.origColor = opt.color;
+ var id = 'collorpicker_' + parseInt(Math.random() * 1000);
+ $(this).data('colorpickerId', id);
+ var cal = $(tpl).attr('id', id);
+ if (options.flat) {
+ cal.appendTo(this).show();
+ } else {
+ cal.appendTo(document.body);
+ }
+ options.fields = cal
+ .find('input')
+ .bind('keyup', keyDown)
+ .bind('change', change)
+ .bind('blur', blur)
+ .bind('focus', focus);
+ cal
+ .find('span').bind('mousedown', downIncrement).end()
+ .find('>div.colorpicker_current_color').bind('click', restoreOriginal);
+ options.selector = cal.find('div.colorpicker_color').bind('mousedown', downSelector);
+ options.selectorIndic = options.selector.find('div div');
+ options.el = this;
+ options.hue = cal.find('div.colorpicker_hue div');
+ cal.find('div.colorpicker_hue').bind('mousedown', downHue);
+ options.newColor = cal.find('div.colorpicker_new_color');
+ options.currentColor = cal.find('div.colorpicker_current_color');
+ cal.data('colorpicker', options);
+ cal.find('div.colorpicker_submit')
+ .bind('mouseenter', enterSubmit)
+ .bind('mouseleave', leaveSubmit)
+ .bind('click', clickSubmit);
+ fillRGBFields(options.color, cal.get(0));
+ fillHSBFields(options.color, cal.get(0));
+ fillHexFields(options.color, cal.get(0));
+ setHue(options.color, cal.get(0));
+ setSelector(options.color, cal.get(0));
+ setCurrentColor(options.color, cal.get(0));
+ setNewColor(options.color, cal.get(0));
+ if (options.flat) {
+ cal.css({
+ position: 'relative',
+ display: 'block'
+ });
+ } else {
+ $(this).bind(options.eventName, show);
+ }
+ }
+ });
+ },
+ showPicker: function() {
+ return this.each( function () {
+ if ($(this).data('colorpickerId')) {
+ show.apply(this);
+ }
+ });
+ },
+ hidePicker: function() {
+ return this.each( function () {
+ if ($(this).data('colorpickerId')) {
+ $('#' + $(this).data('colorpickerId')).hide();
+ }
+ });
+ },
+ setColor: function(col) {
+ if (typeof col == 'string') {
+ col = HexToHSB(col);
+ } else if (col.r != undefined && col.g != undefined && col.b != undefined) {
+ col = RGBToHSB(col);
+ } else if (col.h != undefined && col.s != undefined && col.b != undefined) {
+ col = fixHSB(col);
+ } else {
+ return this;
+ }
+ return this.each(function(){
+ if ($(this).data('colorpickerId')) {
+ var cal = $('#' + $(this).data('colorpickerId'));
+ cal.data('colorpicker').color = col;
+ cal.data('colorpicker').origColor = col;
+ fillRGBFields(col, cal.get(0));
+ fillHSBFields(col, cal.get(0));
+ fillHexFields(col, cal.get(0));
+ setHue(col, cal.get(0));
+ setSelector(col, cal.get(0));
+ setCurrentColor(col, cal.get(0));
+ setNewColor(col, cal.get(0));
+ }
+ });
+ }
+ };
+ }();
+ $.fn.extend({
+ ColorPicker: ColorPicker.init,
+ ColorPickerHide: ColorPicker.hidePicker,
+ ColorPickerShow: ColorPicker.showPicker,
+ ColorPickerSetColor: ColorPicker.setColor
+ });
+})(jQuery)
Index: extensions/pwgCumulus/js/farbtastic.js
===================================================================
--- extensions/pwgCumulus/js/farbtastic.js (revision 5323)
+++ (revision )
@@ -1,347 +1,0 @@
-// $Id: farbtastic.js,v 1.2 2007/01/08 22:53:01 unconed Exp $
-// Farbtastic 1.2
-
-jQuery.fn.farbtastic = function (callback) {
- $.farbtastic(this, callback);
- return this;
-};
-
-jQuery.farbtastic = function (container, callback) {
- var container = $(container).get(0);
- return container.farbtastic || (container.farbtastic = new jQuery._farbtastic(container, callback));
-}
-
- jQuery._farbtastic = function (container, callback) {
- // Store farbtastic object
- var fb = this;
-
- // Insert markup
- $(container).html('');
- var e = $('.farbtastic', container);
- fb.wheel = $('.wheel', container).get(0);
- // Dimensions
- fb.radius = 84;
- fb.square = 100;
- fb.width = 194;
-
- // Fix background PNGs in IE6
- if (navigator.appVersion.match(/MSIE [0-6]\./)) {
- $('*', e).each(function () {
- if (this.currentStyle.backgroundImage != 'none') {
- var image = this.currentStyle.backgroundImage;
- image = this.currentStyle.backgroundImage.substring(5, image.length - 2);
- $(this).css({
- 'backgroundImage': 'none',
- 'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=crop, src='" + image + "')"
- });
- }
- });
- }
-
- /**
- * Link to the given element(s) or callback.
- */
- fb.linkTo = function (callback) {
- // Unbind previous nodes
- if (typeof fb.callback == 'object') {
- $(fb.callback).unbind('keyup', fb.updateValue);
- }
-
- // Reset color
- fb.color = null;
-
- // Bind callback or elements
- if (typeof callback == 'function') {
- fb.callback = callback;
- }
- else if (typeof callback == 'object' || typeof callback == 'string') {
- fb.callback = $(callback);
- fb.callback.bind('keyup', fb.updateValue);
- if (fb.callback.get(0).value) {
- fb.setColor(fb.callback.get(0).value);
- }
- }
- return this;
- }
- fb.updateValue = function (event) {
- if (this.value && this.value != fb.color) {
- fb.setColor(this.value);
- }
- }
-
- /**
- * Change color with HTML syntax #123456
- */
- fb.setColor = function (color) {
- var unpack = fb.unpack(color);
- if (fb.color != color && unpack) {
- fb.color = color;
- fb.rgb = unpack;
- fb.hsl = fb.RGBToHSL(fb.rgb);
- fb.updateDisplay();
- }
- return this;
- }
-
- /**
- * Change color with HSL triplet [0..1, 0..1, 0..1]
- */
- fb.setHSL = function (hsl) {
- fb.hsl = hsl;
- fb.rgb = fb.HSLToRGB(hsl);
- fb.color = fb.pack(fb.rgb);
- fb.updateDisplay();
- return this;
- }
-
- /////////////////////////////////////////////////////
-
- /**
- * Retrieve the coordinates of the given event relative to the center
- * of the widget.
- */
- fb.widgetCoords = function (event) {
- var x, y;
- var el = event.target || event.srcElement;
- var reference = fb.wheel;
-
- if (typeof event.offsetX != 'undefined') {
- // Use offset coordinates and find common offsetParent
- var pos = { x: event.offsetX, y: event.offsetY };
-
- // Send the coordinates upwards through the offsetParent chain.
- var e = el;
- while (e) {
- e.mouseX = pos.x;
- e.mouseY = pos.y;
- pos.x += e.offsetLeft;
- pos.y += e.offsetTop;
- e = e.offsetParent;
- }
-
- // Look for the coordinates starting from the wheel widget.
- var e = reference;
- var offset = { x: 0, y: 0 }
- while (e) {
- if (typeof e.mouseX != 'undefined') {
- x = e.mouseX - offset.x;
- y = e.mouseY - offset.y;
- break;
- }
- offset.x += e.offsetLeft;
- offset.y += e.offsetTop;
- e = e.offsetParent;
- }
-
- // Reset stored coordinates
- e = el;
- while (e) {
- e.mouseX = undefined;
- e.mouseY = undefined;
- e = e.offsetParent;
- }
- }
- else {
- // Use absolute coordinates
- var pos = fb.absolutePosition(reference);
- x = (event.pageX || 0*(event.clientX + $('html').get(0).scrollLeft)) - pos.x;
- y = (event.pageY || 0*(event.clientY + $('html').get(0).scrollTop)) - pos.y;
- }
- // Subtract distance to middle
- return { x: x - fb.width / 2, y: y - fb.width / 2 };
- }
-
- /**
- * Mousedown handler
- */
- fb.mousedown = function (event) {
- // Capture mouse
- if (!document.dragging) {
- $(document).bind('mousemove', fb.mousemove).bind('mouseup', fb.mouseup);
- document.dragging = true;
- }
-
- // Check which area is being dragged
- var pos = fb.widgetCoords(event);
- fb.circleDrag = Math.max(Math.abs(pos.x), Math.abs(pos.y)) * 2 > fb.square;
-
- // Process
- fb.mousemove(event);
- return false;
- }
-
- /**
- * Mousemove handler
- */
- fb.mousemove = function (event) {
- // Get coordinates relative to color picker center
- var pos = fb.widgetCoords(event);
-
- // Set new HSL parameters
- if (fb.circleDrag) {
- var hue = Math.atan2(pos.x, -pos.y) / 6.28;
- if (hue < 0) hue += 1;
- fb.setHSL([hue, fb.hsl[1], fb.hsl[2]]);
- }
- else {
- var sat = Math.max(0, Math.min(1, -(pos.x / fb.square) + .5));
- var lum = Math.max(0, Math.min(1, -(pos.y / fb.square) + .5));
- fb.setHSL([fb.hsl[0], sat, lum]);
- }
- return false;
- }
-
- /**
- * Mouseup handler
- */
- fb.mouseup = function () {
- // Uncapture mouse
- $(document).unbind('mousemove', fb.mousemove);
- $(document).unbind('mouseup', fb.mouseup);
- document.dragging = false;
- }
-
- /**
- * Update the markers and styles
- */
- fb.updateDisplay = function () {
- // Markers
- var angle = fb.hsl[0] * 6.28;
- $('.h-marker', e).css({
- left: Math.round(Math.sin(angle) * fb.radius + fb.width / 2) + 'px',
- top: Math.round(-Math.cos(angle) * fb.radius + fb.width / 2) + 'px'
- });
-
- $('.sl-marker', e).css({
- left: Math.round(fb.square * (.5 - fb.hsl[1]) + fb.width / 2) + 'px',
- top: Math.round(fb.square * (.5 - fb.hsl[2]) + fb.width / 2) + 'px'
- });
-
- // Saturation/Luminance gradient
- $('.color', e).css('backgroundColor', fb.pack(fb.HSLToRGB([fb.hsl[0], 1, 0.5])));
-
- // Linked elements or callback
- if (typeof fb.callback == 'object') {
- // Set background/foreground color
- $(fb.callback).css({
- backgroundColor: fb.color,
- color: fb.hsl[2] > 0.5 ? '#000' : '#fff'
- });
-
- // Change linked value
- $(fb.callback).each(function() {
- if (this.value && this.value != fb.color) {
- this.value = fb.color;
- }
- });
- }
- else if (typeof fb.callback == 'function') {
- fb.callback.call(fb, fb.color);
- }
- }
-
- /**
- * Get absolute position of element
- */
- fb.absolutePosition = function (el) {
- var r = { x: el.offsetLeft, y: el.offsetTop };
- // Resolve relative to offsetParent
- if (el.offsetParent) {
- var tmp = fb.absolutePosition(el.offsetParent);
- r.x += tmp.x;
- r.y += tmp.y;
- }
- return r;
- };
-
- /* Various color utility functions */
- fb.pack = function (rgb) {
- var r = Math.round(rgb[0] * 255);
- var g = Math.round(rgb[1] * 255);
- var b = Math.round(rgb[2] * 255);
- return '#' + (r < 16 ? '0' : '') + r.toString(16) +
- (g < 16 ? '0' : '') + g.toString(16) +
- (b < 16 ? '0' : '') + b.toString(16);
- }
-
- fb.unpack = function (color) {
- if (color.length == 7) {
- return [parseInt('0x' + color.substring(1, 3)) / 255,
- parseInt('0x' + color.substring(3, 5)) / 255,
- parseInt('0x' + color.substring(5, 7)) / 255];
- }
- else if (color.length == 4) {
- return [parseInt('0x' + color.substring(1, 2)) / 15,
- parseInt('0x' + color.substring(2, 3)) / 15,
- parseInt('0x' + color.substring(3, 4)) / 15];
- }
- }
-
- fb.HSLToRGB = function (hsl) {
- var m1, m2, r, g, b;
- var h = hsl[0], s = hsl[1], l = hsl[2];
- m2 = (l <= 0.5) ? l * (s + 1) : l + s - l*s;
- m1 = l * 2 - m2;
- return [this.hueToRGB(m1, m2, h+0.33333),
- this.hueToRGB(m1, m2, h),
- this.hueToRGB(m1, m2, h-0.33333)];
- }
-
- fb.hueToRGB = function (m1, m2, h) {
- h = (h < 0) ? h + 1 : ((h > 1) ? h - 1 : h);
- if (h * 6 < 1) return m1 + (m2 - m1) * h * 6;
- if (h * 2 < 1) return m2;
- if (h * 3 < 2) return m1 + (m2 - m1) * (0.66666 - h) * 6;
- return m1;
- }
-
- fb.RGBToHSL = function (rgb) {
- var min, max, delta, h, s, l;
- var r = rgb[0], g = rgb[1], b = rgb[2];
- min = Math.min(r, Math.min(g, b));
- max = Math.max(r, Math.max(g, b));
- delta = max - min;
- l = (min + max) / 2;
- s = 0;
- if (l > 0 && l < 1) {
- s = delta / (l < 0.5 ? (2 * l) : (2 - 2 * l));
- }
- h = 0;
- if (delta > 0) {
- if (max == r && max != g) h += (g - b) / delta;
- if (max == g && max != b) h += (2 + (b - r) / delta);
- if (max == b && max != r) h += (4 + (r - g) / delta);
- h /= 6;
- }
- return [h, s, l];
- }
-
- // Install mousedown handler (the others are set on the document on-demand)
- $('*', e).mousedown(fb.mousedown);
-
- // Init color
- fb.setColor('#000000');
-
- // Set linked elements/callback
- if (callback) {
- fb.linkTo(callback);
- }
- };
-
-$(function() {
- var f = $.farbtastic('#picker');
- var p = $('#picker').hide().css('opacity', 0.25);
- var selected;
- $('.colorwell')
- .each(function () { f.linkTo(this); $(this).css('opacity', 0.75); })
- .focus(function(e) {
- p.slideDown();
- if (selected) {
- $(selected)
- .css('opacity', 0.75).removeClass('colorwell-selected');
- }
- f.linkTo(this);
- p.css('opacity', 1);
- $(selected = this).css('opacity', 1).addClass('colorwell-selected');
- });
- });
Index: extensions/pwgCumulus/language/fr_FR/plugin.lang.php
===================================================================
--- extensions/pwgCumulus/language/fr_FR/plugin.lang.php (revision 5323)
+++ extensions/pwgCumulus/language/fr_FR/plugin.lang.php (revision 5405)
@@ -32,4 +32,5 @@
$lang['Coefficient for tags size updated'] = "Le coefficient multiplicateur des tags a été mis à jour";
$lang['Show tag cloud in cumulus mode'] = "Utiliser le mode cumulus pour afficher le nuage de tags";
+$lang['Animation colors'] = "Couleurs de l'animation";
$lang['Color 1'] = "Couleur 1";
$lang['Color 2'] = "Couleur 2";
Index: extensions/pwgCumulus/language/templates/plugin.lang.php
===================================================================
--- extensions/pwgCumulus/language/templates/plugin.lang.php (revision 5323)
+++ extensions/pwgCumulus/language/templates/plugin.lang.php (revision 5405)
@@ -32,4 +32,5 @@
$lang['pwg_cumulus_coeff_changed'] = "Coefficient for tags size updated";
$lang['show tag cloud in cumulus mode'] = "Show tag cloud in cumulus mode";
+$lang['pwg_cumulus_color'] = "Animation colors";
$lang['pwg_cumulus_color1'] = "Color 1";
$lang['pwg_cumulus_color2'] = "Color 2";
Index: extensions/pwgCumulus/template/admin.tpl
===================================================================
--- extensions/pwgCumulus/template/admin.tpl (revision 5323)
+++ extensions/pwgCumulus/template/admin.tpl (revision 5405)
@@ -1,2 +1,34 @@
+{html_head}
+
+
+{known_script id="jquery" src=$ROOT_URL|cat:"themes/default/js/jquery.packed.js"}
+{known_script id="colorpicker" src="$PWG_CUMULUS_PLUGIN_JS/colorpicker.js"}
+{literal}
+
+{/literal}
+{/html_head}
+