Hallo, ich habe mir mal erlaub die essentials da rauszufiltern und habe einen normalen Hex-Color Regler an den Color Picker mit Ajax gekoppelt. Heißt man klickt auf dem Color Picker wohin und die Farbe am Hex Color ändert sich direkt mit.
Aufruf durch eine HTML String Variable wie bei dir. Einziger Unterschied, man muss die ID des Reglers mit zurückgeben:
<iframe src=„user/colorpicker/colorpicker.php?id=18300“ border=„0“ frameborder=„0“ style=„top: 0pt; bottom: 0pt; left: 0pt; right: 0pt; width: 100%; height: 130px;“/></iframe>
(Die Größe könnte man noch anpassen, da ich den Submit Button, sowie das Feld was den Hexocode enthält entfernt habe)
Dann wie gehabt die ganzen Datein in C:\ips\webfront\user\colorpicker.
Hier die neue colorpicker.php:
<?php
// v1.4 11.01.2012 Autor: NickBlue
// Colopicker Standalone Mod by Anti
// Wert aus dem GET arrey auslesen
$id = $_GET["id"];
?>
<!-- Ab hier steht der Formularcode und der jScript Aufruf nichts ändern-->
<html>
<head>
<script type="text/javascript" src="jscolor.js"></script>
<script type="text/javascript"><!--
function send (color) {
httpRequest = new XMLHttpRequest();
//httpRequest.onreadystatechange = getResponse;
httpRequest.open("POST", "colorpicker-receive.php", true);
httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
httpRequest.send("col="+color+"&id=<?php echo $id; ?>");
}
--></script>
<title>colorfader</title>
</head>
<body onLoad="document.getElementById('myColor').color.showPicker()">
<table width="410" border="0" align="right">
<tr>
<td width="410" align="left" valign="top"><p>
<input type = "hidden" onchange="send(this.color)" class="color {pickerOnfocus:true,pickerPosition:'right',pickerFaceColor:'transparent',pickerFace:3,pickerBorder:0,pickerInsetColor:'black'}" id="myColor" value="<?php echo $rgbhex; ?>" name="rgbwert" readonly>
</p>
<p>
</p></td>
</tr>
</table>
</body>
</html>
Und hier eine neue Namens colorpicker-receive.php
<?php
// Wert aus dem POST arrey auslesen
//@$rgbhex = $_GET["rgbwert"];
$rgbhex = $_POST["col"];
$id = $_POST["id"];
// funktionsauruf mit HEX wert des Color Pickers
//print_r ($rgbhex);
if (! empty($rgbhex)) {
$farb_rgb = hex2rgb($rgbhex);
// Setzen der Variablen aus dem Funktionsarray
$rot = $farb_rgb[0];
$gruen = $farb_rgb[1];
$blau = $farb_rgb[2];
$sum = $rot * 65536 + $gruen *256 + $blau;
SetValue(intval($id), $sum);// 18300
//echo "$rot, $gruen, $blau - $sum<br>";
}
// Funktion wandelt den RGB wert aus der RGB Fader Variable von Hex nach Dec und zerlegt sie in R G B Werte
function hex2rgb ( $hex )
{
$hex = preg_replace("/[^a-fA-F0-9]/", "", $hex);
$rgb = array();
$rgb[0] = hexdec ( $hex[0] . $hex[1] );
$rgb[1] = hexdec ( $hex[2] . $hex[3] );
$rgb[2] = hexdec ( $hex[4] . $hex[5] );
return $rgb;
}
?>
Ich brauch das nicht für Cromoflex deswegen von etwas „Ballast“ befreit, aber das kann man natürlich auch wieder einsetzen wenn man möchte Ich denke mal so ist die Nutzung noch schöner Und ein Installscript habe ich jetzt nicht gebastelt, aber das wäre fürs aufsetzen einer String Var und eines Hex Color vielleicht auch etwas übertrieben :).
Gruß,
Anti aka Jan