Letzte Bearbeitung:

Test colorselection

via POST empfangene Werte
VordergrundfarbwertVG-Transparenz
#652a2a#ff
HintergrundfarbwertHG-Transparenz
#bdffd4#ff
Vordergrund


Hintergrund


Hier die Farben und Transparenz einstellen.
Farbe: Auf das jeweilige Farbfeld klicken und dann die neue Farbe auswählen.
Transparenz: am jeweiligen Schiebregler den gewünschten Wert einstellen.
(links: transparent, rechts: opak)

Beispieltext

Dies ist ein Text (z.B. mit Fettschrift),
der nur zur Veranschulichung dient.

Der Hintergrund - Farbverlauf (der äußere Rahmen) wird erst nach absenden der Eingaben aktualisiert.
Er wird mit background-image: linear-gradient(to top left, vordergrundfarbe 0%, hintergrundfarbe 100%) erzeugt.

Der mittlere weiße Rahmen zeigt die Basis - Zeichen- und Hintergrundfarbe des nächst inneren Feldes.

Der innere (schmalere) Rahmen wird mit border-left: 10px solid vordergrundfarbe; border-right: 10px solid hintergrundfarbe; border-top: 10px solid vordergrundfarbe; border-bottom: 10px solid hintergrundfarbe; erzeugt.

Das innerste Feld wird mit der Textfarbe des zusammengesetzten Wertes von Vordergrund und mit der Hintergrundfarbe des zusannengesetzten Wertes von Hintergrund angezeigt.
Zusammengesetzter Wert bedeutet hier: Farbe (hex, 6 Stellen) + Transparenz (hex, 2 Stellen)

Geänderte Werte
VordergrundfarbwertVG-Transparenz
 
HintergrundfarbwertHG-Transparenz
 

Ende der Funktion

 

 

Aufruf der Funktion (In der folgenden Zeile ist ein verstecktes Zeichen enthalten, damit die Funktion nicht ausgeführt wird. Aufruf nur abschreiben, nicht kopieren):

{­{{colorselection()}}}


Die Funktion ist in diesem Plugin enthalten:
SimplePlugins_xh-Edition-KRL-V1.5beta

Dies ist das Listing der Funktion:

Dateiname: plugins/simpleplugins_xh/simpleplugins_library/colorselection/index.php

<?php
/*****************************************************
* CMSimple Simple Plugin
*****************************************************
* Plugin name : colorselection
* File name : index.php
* Function : Stellt eine Farbauswahl zur Verfügung.
* Provides a color selection.
* Quelle des Codes : https://wiki.selfhtml.org/wiki/Farbw%C3%A4hler
* https://wiki.selfhtml.org/wiki/HTML/Tutorials/Formulare/input/Farbw%C3%A4hler#Farbw.C3.A4hler
* https://wiki.selfhtml.org/extensions/Selfhtml/frickl.php/Beispiel:Farbw%C3%A4hler.html#view_result
* https://wiki.selfhtml.org/extensions/Selfhtml/frickl.php/Beispiel:CSS_currentcolor2.html#view_result
*
* Websites mit Farbwaehlern:
* <a rel="nofollow" class="external text" href="https://encycolorpedia.com/">EncyColorPedia</a>
* <a rel="nofollow" class="external text" href="http://paletton.com/#uid=1000u0kllllaFw0g0qFqFg0w0aF">PalettOn</a>
* <a rel="nofollow" class="external text" href="http://www.color-picker.de/">pkColorPicker</a>
* <a rel="nofollow" class="external text" href="http://www.easyrgb.com/">easyRGB</a>
* <a rel="nofollow" class="external text" href="https://developer.mozilla.org/de/docs/Web/CSS/CSS_Colors/farbauswahl_werkzeug">Farbauswahl-Werkzeug</a>
*
* Variablenwerte übertragen (gefunden auf: https://falconbyte.net/blog-php-javascript-daten-uebertragen.php)
* JavaScript Variable an PHP übergeben – JQuery und AJAX (gefunden auf: https://www.traens.com/tipps/web/javascript-variable-php-uebergeben.html)
*
******************************************************/
/*
* Prevent direct access.
*/
if (!defined('CMSIMPLE_XH_VERSION')) {
header('HTTP/1.0 403 Forbidden');
exit;
}

function colorselection(){

global $sl, $pth;
// Texte für das Dialogfenster einlesen
// include $pth['folder']['template'].'languages/'.$sl.'.php';
include $pth['folder']['plugins'].'simpleplugins_xh/simpleplugins_library/colorselection/'.$sl.'.php';
$farbwert = '#652a2a';
$transluzenzwert = 1;
$hintergrundwert = '#bdffd4';
$bgtransparenzwert = 1;

if(isset($_POST['color'])){
$farbwert = $_POST['color'];
}
if(isset($_POST[transluzenz])){
$transluzenzwert = $_POST[transluzenz];
}
if(isset($_POST['bgcolor'])){
$hintergrundwert = $_POST['bgcolor'];
}
if(isset($_POST['bgtransparenz'])){
$bgtransparenzwert = $_POST['bgtransparenz'];
}
$hextransluzenz = dechex(intval($transluzenzwert*255+0.5));
$hextransparenz = dechex(intval($bgtransparenzwert*255+0.5));


$outputstring = "
<script>
'use strict';";
// definiert JavaScript - Variablen sobald das Document Object Model ganz geladen und aufgebaut ist
$outputstring .= "
document.addEventListener('DOMContentLoaded', function () {
var color = document.querySelector('#color'),
color_val = document.querySelector('#color_val'),
transluzenz = document.querySelector('#transluzenz'),
transluzenz_val = document.querySelector('#transluzenz_val'),
luzenzhex = document.querySelector('#luzenzhex'),
luzenzhex_val = document.querySelector('#luzenzhex_val'),
background = document.querySelector('#background'),
background_val = document.querySelector('#background_val'),
bgtransparenz = document.querySelector('#bgtransparenz'),
bgtranshex = document.querySelector('#bgtranshex'),
bgtranshex_val = document.querySelector('#bgtranshex_val'),
output = document.querySelector('output');";

// ruft die Funktion auf sobald an den überwachten Werten eine Änderung eintritt
$outputstring .= "
color.addEventListener('change', changeStyle);
background.addEventListener('change', changeStyle);
transluzenz.addEventListener('change', changeStyle);
bgtransparenz.addEventListener('change', changeStyle);

function changeStyle() {
color_val.innerHTML = color.value;
luzenzhex = '0' + Math.round(transluzenz.value * 255).toString(16);
luzenzhex = luzenzhex.substr(luzenzhex.length-2, 2);
luzenzhex_val.innerHTML = '#' + luzenzhex;
background_val.innerHTML = background.value;
bgtranshex = '0' + Math.round(bgtransparenz.value * 255).toString(16);
bgtranshex = bgtranshex.substr(bgtranshex.length-2, 2);
bgtranshex_val.innerHTML = '#' + bgtranshex;

output.style.background = 'linear-gradient(to top left, '+color.value+' 0%, '+background.value+' 100%)';
demobox.style.color = color.value + luzenzhex;
demobox.style.backgroundColor = background.value + bgtranshex;
demobox.style.borderLeftColor = color.value;
demobox.style.borderRightColor = background.value;
demobox.style.borderTopColor = color.value;
demobox.style.borderBottomColor = background.value;
}
});
</script>

<style type='text/css'>
main #farbwahl{
margin: 0em;
}
fieldset {
margin-right: 2em;
padding:0.5em;
float: left;
min-width: 10em;
white-space: nowrap;
}
div.vgcolor, div.vgtransp {
margin-top: .2em;
padding: .25em;
float: left;
min-height: 3.5em;
}
legend {
padding: 0 0.4em 0 0.4em;
}
label {
white-space: nowrap;
}
input#color, input#transluzenz, input#background, input#bgtransparenz {
min-width: 4em;
height: 3em;
padding: 0em;
}

output {
float: left;
margin-right: 2em;
clear: both;
padding: 2em;
background-position: 0 0, 100% 100%;
background-repeat: no-repeat;
background-size: 100% 100%;
background-image: linear-gradient(to top left, ".$farbwert." 0%, ".$hintergrundwert." 100%);
}
div#demobox {
padding: 1em;
border-left: 10px solid ".$farbwert.";
border-right: 10px solid ".$hintergrundwert.";
border-top: 10px solid ".$farbwert.";
border-bottom: 10px solid ".$hintergrundwert.";
background-color: ".$hintergrundwert.$hextransparenz.";
color: ".$farbwert.$hextransluzenz.";
}
table, th, td, caption {
border: thin solid #a0a0a0;
}
table {
border-collapse: separate;
border-spacing: 5px 5px;
margin: 0 0 1em;
table-layout: auto;
/* Prevents HTML tables from becoming too wide */
max-width: 100%;
}
th, td {
font-weight: normal;
text-align: center;
}
th, caption {
background-color: #f1f3f4;
font-weight: 700;
}
th, td, caption {
padding: .15em .5em;
}
caption {
text-align: center;
border-width: thin thin 0 thin;
}
</style>

<table>
<caption>via POST empfangene Werte</caption>
<tr>
<th>".$text['foregroundcolorvalue']."</th><th>".$text['foregroundtransparency']."</th>
</tr>
<tr>
<td>".$farbwert."</td><td>#".$hextransluzenz."</td>
</tr>
<tr>
<th>".$text['backgroundcolorvalue']."</th><th>".$text['backgroundtransparency']."</th>
</tr>
<tr>
<td>".$hintergrundwert."</td><td>#".$hextransparenz."</td>
</tr>
</table>
<main id='farbwahl'>
<form method='post'>
<fieldset>
<legend>".$text['foreground']."</legend>
<div class='vgcolor'>
<label for='color'>".$text['color']."</label><br>
<input name='color' id='color' type='color' value='".$farbwert."'>
</div>
<div class='vgtransp'>
<label for='transluzenz'>".$text['transparency']."</label><br>
<input name='transluzenz' id='transluzenz' type='range' min='0' max='1' step='0.01' value='".($transluzenzwert)."'/>
</div>
</fieldset>

<fieldset>
<legend>".$text['background']."</legend>
<div class='vgcolor'>
<label for='color'>".$text['color']."</label><br>
<input name='bgcolor' id='background' type='color' value='".$hintergrundwert."'>
</div>
<div class='vgtransp'>
<label for='transluzenz'>".$text['transparency']."</label><br>
<input name='bgtransparenz' id='bgtransparenz' type='range' min='0' max='1' step='0.01' value='".($bgtransparenzwert)."'/>
</div>
</fieldset>
<p>Hier die Farben und Transparenz einstellen.<br>
Farbe: Auf das jeweilige Farbfeld klicken und dann die neue Farbe auswählen.<br>
Transparenz: am jeweiligen Schiebregler den gewünschten Wert einstellen. <br>(links: transparent, rechts: opak)</p>
<p style='clear: both;'></p>
<output>
<div style='color: #ffffff; background-color: #ffffff; padding: 3px;'>
<div id='demobox'>
<p style='font-weight: 900; font-size: 2em;'><u>Beispieltext</u></p>
<p>Dies ist ein Text <b>(z.B. mit Fettschrift)</b>,<br>der nur zur Veranschulichung dient.</p>
</div>
</div>
</output>
<p>Der Hintergrund - Farbverlauf (der äußere Rahmen) wird erst nach absenden der Eingaben aktualisiert.<br>
Er wird mit <i>background-image: linear-gradient(to top left, vordergrundfarbe 0%, hintergrundfarbe 100%)</i> erzeugt.</p>
<p>Der mittlere weiße Rahmen zeigt die Basis - Zeichen- und Hintergrundfarbe des nächst inneren Feldes.</p>
<p>Der innere (schmalere) Rahmen wird mit <i>border-left: 10px solid vordergrundfarbe; border-right: 10px solid hintergrundfarbe; border-top: 10px solid vordergrundfarbe; border-bottom: 10px solid hintergrundfarbe;</i> erzeugt.</p>
<p>Das innerste Feld wird mit der Textfarbe des zusammengesetzten Wertes von <b>Vordergrund</b> und mit der Hintergrundfarbe des zusannengesetzten Wertes von <b>Hintergrund</b> angezeigt.<br>
Zusammengesetzter Wert bedeutet hier: Farbe (hex, 6 Stellen) + Transparenz (hex, 2 Stellen)</p>
<p style='clear: both;'></p>
<table>
<caption>Geänderte Werte</caption>
<tr>
<th>".$text['foregroundcolorvalue']."</th><th>".$text['foregroundtransparency']."</th>
</tr>
<tr>
<td>&nbsp;<span id='color_val'></span></td>
<td><span id='luzenzhex_val'></span></td>
</tr>
<tr>
<th>".$text['backgroundcolorvalue']."</th><th>".$text['backgroundtransparency']."</th>
</tr>
<tr>
<td>&nbsp;<span id='background_val'></span></td>
<td><span id='bgtranshex_val'></span></td>
</tr>
</table>
<button type='submit' style='border-radius: 1ex;'>Eingaben absenden</button>
</form>
</main>
";

return $outputstring;
}
?>

Bildquellen

Slideshowbilder von https://www.cmsimple-xh.org/
Logo: http://cmsimple.lembach-kr.de/?Template-fhs-basic-all2