einfache Farbkarte

Gesperrt
chpulat
Beiträge: 27
Registriert: Di 3. Mär 2009, 15:32
Kontaktdaten:

einfache Farbkarte

Beitrag von chpulat »

Hallo und vielen Dank an die, die schon bis hier hin gelesen haben.

Ich würde gerne eine Farbkarte entwickelt und alle Ideen, das mit verschiedensten Modulen in Kombination zu machen oder selbst zu schreiben, scheitern an mangelnden Kentnissen oder sehr verzweigten und somit bestimmt unperformaten Lösungen.

Meine Idee:

ein Modul das im input quasi ein Textfile, wie das folgende, hat. Herbei meine ich allerdings nicht direkt den "Inputcode" sondern das, was ich( oder der Redakteur) für HTML im wysiwyg-Editor reinschreibe.

Code: Alles auswählen

//Begin
0001,Rot,#ff0000,#000000;
0002,Blau,#0000ff,#000000;
0003,Grün,#00ff00,#000000;
0004,Schwarz,#000000,#ffffff;
[usw...]
//End
Das o.g. entspricht dann [nr],[name],[bgcolor],[textcolor]

Dann soll jede Zeile ein Blockelement <div> erzeugen mit der Farbe als Hintergrund und der Nummer sowie dem Namen im Vordergrund. Die Vordergrundfarbe erhält die Farbe schwarz oder weiss (weil schwarz auf schwarz so blöd lesbar ist).

Ein einfaches Textdokument vom Server zuladen, Zeilenweise auszulesen und dann iterativ die Blockelemente zu erzeugen, müsste ich noch - mit viel Recherche - hinbekommen, aber wie ich das beim Contenido einprogge, das das in die Datenbankspeicher, geht geht über "Nichtkönnen" hinaus.

Die Farbeigenschaften ließen sich ja einfach über die syle eigenschaften des div- oder p-Tags erzeugen.

Eine Modulhtml-könnte so aussehen:

Code: Alles auswählen

<div style="background-color:[bgcolor];width:100px;height:100px;">
	<p style="color:[textcolor];">[nr]<br>[name]</p>
</div>
Am liebsten wäre es mir noch, wenn immer soviele Elemente angezeigt werden wie die Seite breit ist und dann die nächste Zeile benutzt wird. (wie beim Span element)

Hat jemand anregungen oder kleine Bausteine/Infos? Ich bin für jede Hilfe dankbar.

Viele Grüße aus Berlin

Christian
idea-tec
Beiträge: 1242
Registriert: Do 19. Sep 2002, 14:41
Wohnort: Dichtelbach
Kontaktdaten:

Re: einfache Farbkarte

Beitrag von idea-tec »

Welche von denen soll es denn sein?
http://de.wikipedia.org/wiki/HTML-Farbcodes
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)
chpulat
Beiträge: 27
Registriert: Di 3. Mär 2009, 15:32
Kontaktdaten:

Re: einfache Farbkarte

Beitrag von chpulat »

idea-tec hat geschrieben:Welche von denen soll es denn sein?
http://de.wikipedia.org/wiki/HTML-Farbcodes
Naja im zweifel alle 256^3 Farben oder das bestmögliche css 3? und thoretisch will ich ja auch CMYK anzeigen aber das wird eh nix also reicht RGB.

Und sonst die, die der Redakteur grade anbieten will (den RGB-Code bekommt aus nem Grafikprogramm umgerechnet). Quasi wie eine Autolackirerei die ihre tollsten 10 Farbtöne zeigt. Das diese nicht Farbecht sind, weiß ich übrigens, es geht ja nur um eine Richtung. Anderes Beispiel man will die 20 möglichen Farben für ein TShirt darstellen.

Die Farben soll man übrigens nicht auswählen können (als frontenduser) nur anschauen.

MFG

Christian
idea-tec
Beiträge: 1242
Registriert: Do 19. Sep 2002, 14:41
Wohnort: Dichtelbach
Kontaktdaten:

Re: einfache Farbkarte

Beitrag von idea-tec »

wieso so kompliziert?
nimm den vorbereiteten code, pack in dir in eine excel-datei und ergänze spalte 1 mit der nummerierung und spalte 4 mit der textfarbe

Code: Alles auswählen

AliceBlue;#F0F8FF;
AntiqueWhite;#FAEBD7;
Aqua;#00FFFF;
Aquamarine;#7FFFD4;
Azure;#F0FFFF;
Beige;#F5F5DC;
Bisque;#FFE4C4;
Black;#000000;
BlanchedAlmond;#FFEBCD;
Blue;#0000FF;
BlueViolet;#8A2BE2;
Brown;#A52A2A;
BurlyWood;#DEB887;
CadetBlue;#5F9EA0;
Chartreuse;#7FFF00;
Chocolate;#D2691E;
Coral;#FF7F50;
CornflowerBlue;#6495ED;
Cornsilk;#FFF8DC;
Crimson;#DC143C;
Cyan;#00FFFF;
DarkBlue;#00008B;
DarkCyan;#008B8B;
DarkGoldenrod;#B8860B;
DarkGray;#A9A9A9;
DarkGreen;#006400;
DarkKhaki;#BDB76B;
DarkMagenta;#8B008B;
DarkOliveGreen;#556B2F;
DarkOrange;#FF8C00;
DarkOrchid;#9932CC;
DarkRed;#8B0000;
DarkSalmon;#E9967A;
DarkSeaGreen;#8FBC8F;
DarkSlateBlue;#483D8B;
DarkSlateGray;#2F4F4F;
DarkTurquoise;#00CED1;
DarkViolet;#9400D3;
DeepPink;#FF1493;
DeepSkyBlue;#00BFFF;
DimGray;#696969;
DodgerBlue;#1E90FF;
FireBrick;#B22222;
FloralWhite;#FFFAF0;
ForestGreen;#228B22;
Fuchsia;#FF00FF;
Gainsboro;#DCDCDC;
GhostWhite;#F8F8FF;
Gold;#FFD700;
Goldenrod;#DAA520;
Gray;#808080;
Green;#008000;
GreenYellow;#ADFF2F;
Honeydew;#F0FFF0;
HotPink;#FF69B4;
IndianRed;#CD5C5C;
Indigo;#4B0082;
Ivory;#FFFFF0;
Khaki;#F0E68C;
Lavender;#E6E6FA;
LavenderBlush;#FFF0F5;
LawnGreen;#7CFC00;
LemonChiffon;#FFFACD;
LightBlue;#ADD8E6;
LightCoral;#F08080;
LightCyan;#E0FFFF;
LightGoldenrodYellow;#FAFAD2;
LightGreen;#90EE90;
LightGrey;#D3D3D3;
LightPink;#FFB6C1;
LightSalmon;#FFA07A;
LightSeaGreen;#20B2AA;
LightSkyBlue;#87CEFA;
LightSlateGray;#778899;
LightSteelBlue;#B0C4DE;
LightYellow;#FFFFE0;
Lime;#00FF00;
LimeGreen;#32CD32;
Linen;#FAF0E6;
Magenta;#FF00FF;
Maroon;#800000;
MediumAquamarine;#66CDAA;
MediumBlue;#0000CD;
MediumOrchid;#BA55D3;
MediumPurple;#9370DB;
MediumSeaGreen;#3CB371;
MediumSlateBlue;#7B68EE;
MediumSpringGreen;#00FA9A;
MediumTurquoise;#48D1CC;
MediumVioletRed;#C71585;
MidnightBlue;#191970;
MintCream;#F5FFFA;
MistyRose;#FFE4E1;
Moccasin;#FFE4B5;
NavajoWhite;#FFDEAD;
Navy;#000080;
OldLace;#FDF5E6;
Olive;#808000;
OliveDrab;#6B8E23;
Orange;#FFA500;
OrangeRed;#FF4500;
Orchid;#DA70D6;
PaleGoldenrod;#EEE8AA;
PaleGreen;#98FB98;
PaleTurquoise;#AFEEEE;
PaleVioletRed;#DB7093;
PapayaWhip;#FFEFD5;
PeachPuff;#FFDAB9;
Peru;#CD853F;
Pink;#FFC0CB;
Plum;#DDA0DD;
PowderBlue;#B0E0E6;
Purple;#800080;
Red;#FF0000;
RosyBrown;#BC8F8F;
RoyalBlue;#4169E1;
SaddleBrown;#8B4513;
Salmon;#FA8072;
SandyBrown;#F4A460;
SeaGreen;#2E8B57;
Seashell;#FFF5EE;
Sienna;#A0522D;
Silver;#C0C0C0;
SkyBlue;#87CEEB;
SlateBlue;#6A5ACD;
SlateGray;#708090;
Snow;#FFFAFA;
SpringGreen;#00FF7F;
SteelBlue;#4682B4;
Tan;#D2B48C;
Teal;#008080;
Thistle;#D8BFD8;
Tomato;#FF6347;
Turquoise;#40E0D0;
Violet;#EE82EE;
Wheat;#F5DEB3;
White;#FFFFFF;
WhiteSmoke;#F5F5F5;
Yellow;#FFFF00;
YellowGreen;#9ACD32;
danach haust du das in die DB und importierst die csv-datei aus Excel

Code: Alles auswählen

DROP TABLE IF EXISTS `farben`;
CREATE TABLE `farben` (
  `idfarbe` int(10) NOT NULL default '0',
  `bez` varchar(20) NOT NULL default '',
  `back` varchar(7) NOT NULL default '',
  `text` varchar(7) NOT NULL default '',
  PRIMARY KEY  (`idfarbe`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
nun nur noch ein modul schreiben, das zeug auslesen und anzeigen, kannst du bei ordentlicher konzeptionierung sogar für artikel in einem shop verwenden
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)
chpulat
Beiträge: 27
Registriert: Di 3. Mär 2009, 15:32
Kontaktdaten:

Re: einfache Farbkarte

Beitrag von chpulat »

Danke schonmal dafür. Werde mich morgen mal dransetzten.

Das was du machst, ist zwar ein ganz anderer Ansatz aber bietet viel mehr möglichkeiten!

Danke. Wenn ich das was zusammengehackt habe poste ich das dann mal.

GRuß

Chris
chpulat
Beiträge: 27
Registriert: Di 3. Mär 2009, 15:32
Kontaktdaten:

Re: einfache Farbkarte

Beitrag von chpulat »

So hallo leute.

Mein Modul erzeugt jetzt einfache Farbkästen mit schwarzem Rand (für dne besseren Kontrast) und Beschriftung. Die Daten zu den Farben kommen aus der Tabelle "con_farben".

Die Tabelle in der Datenbank muss man natürlich selber anlegen.

leider habe ich alles "hardgecodet", sodass falls ich jmd damit helfen kann er alles anpassen muss. Ist halt nicht so komfortabel.

Edit: ja und mit kommentaren hab ich es auch bei so kleinen Sachen nicht so...

Input:

Code: Alles auswählen

?>
<table>
  <tr>
    <td><?php echo mi18n("Farbkarte zeigen?");?></td>
    <td><input type="text" name="<?php echo "CMS_VAR[0]"; ?>" value="<?php echo "CMS_VALUE[0]"; ?>"></td>
  </tr>
  <tr>
    <td colspan=2>Farbkarte zeigen: "zeigen" eintragen</td>
  </tr>
   <tr>
    <td colspan=2>Farbkarte nicht zeigen: Feld leer lassen</td>
  </tr>
</table>
<?php
Output:

Code: Alles auswählen

<?php
$activ= "CMS_VALUE[0]";
echo $activ;
  if (!($activ=="")){
  $db = new DB_Contenido; // ist innerhalb von Contenido nicht mehr nötig

  $db->query("SELECT * FROM con_farben ORDER BY idfarbe ASC");

  // Ausgabe aller Resultate
  while ($db->next_record())
  {  echo "<div style=\"float:left;background-color:#".$db->f("back").";width:100px;height:100px;border: 10px solid #000000\"><p style=\"color:#".$db->f("text").";\">".$db->f("idfarbe")."<br>".$db->f("bez")."</p></div>\n";
  }
  echo "<div style=\"clear: both;\"></div><br>";}
?>
ggf. kann man hier per "if ($edit) {}" die anderungen vornehmen die ich über eine einfach php datei gelöst habe.

meine PHP datei für Änderungen

Code: Alles auswählen

<?php

$DB_Host   = "PFADZURDB";
$DB_Name   = "DBNAME";
$DB_User   = "BENUTZERNAME";
$DB_Passwd = "PASSWORT";

$db = @ mysql_connect($DB_Host, $DB_User, $DB_Passwd);
$db_select = @ mysql_select_db($DB_Name);
			
if (isset($_GET["submit"])){

  $DatenOK = 1;

  $error = "";

  if ((!isset($_GET["idfarbe"])) || (!isset($_GET["bez"])) || (!isset($_GET["back"])) || (!isset($_GET["text"])) || (!isset($_GET["waszutun"]))){
    $DatenOK = 0;
    $error .= "FEHLER - EINTRAG NICHT MOEGLICH";
	}
  else {
      $daten = array (
		"idfarbe"=>$_GET["idfarbe"],
		"bez"=>$_GET["bez"],
		"back"=>$_GET["back"],
		"text"=>$_GET["text"],
	);
	}

 if ($DatenOK==1){
	$sql='';
	if ($_GET["waszutun"]=="hinzu") {
	    $sql = 'INSERT INTO `con_farben` (`idfarbe`,`bez`,`back`,`text`) VALUES (\''.intval($daten["idfarbe"]).'\',\''.addslashes($daten["bez"]).'\',\''.addslashes($daten["back"]).'\',\''.addslashes($daten["text"]).'\');';
		}

	if ($_GET["waszutun"]=="aendern") {
	    $sql = 'UPDATE `con_farben` SET `bez`=\''.addslashes($daten["bez"]).'\',`back`=\''.addslashes($daten["back"]).'\',`text`=\''.addslashes($daten["front"]).'\' WHERE `idfarbe`='.intval($daten["idfarbe"]).';';
		}

	if ($_GET["waszutun"]=="loeschen") {
	    $sql = 'DELETE FROM `con_farben` WHERE `idfarbe`='.intval($daten["idfarbe"]).';';
		}	
	echo mysql_error();
	$wurst = mysql_query($sql);	
	echo $sql;
	}
	}

echo "<html>";
echo "<head>";
echo "<title>Aenderung der Farben und so...</title>";
echo "</head>";
echo "<body>";
echo "<div class=\"farbtabelle\">";
echo "<p>Farben konfigurieren</p>";
echo "<p>Was m&ouml;chten sie tun?</p>";
echo "<form action=\"imba.php\" method=\"GET\"><p><input type=\"radio\"  name=\"waszutun\" value=\"hinzu\">Farbe hinzuf&uuml;gen<br>";
echo "<input type=\"radio\"  name=\"waszutun\" value=\"aendern\">Farbe &auml;ndern<br>";
echo "<input type=\"radio\"  name=\"waszutun\" value=\"loeschen\">Farbe l&ouml;schen<p>";
echo "<p>Farbnummer: <input type=\"text\" name=\"idfarbe\" size=\"20\" maxlength=\"30\" value=\"\"><br>";
echo "Farbname: <input type=\"text\" name=\"bez\" size=\"20\" maxlength=\"30\" value=\"\"><br>";
echo "Farbcode: <input type=\"text\" name=\"back\" size=\"20\" maxlength=\"6\" value=\"\"><br>";
echo "Der Farbcode ist OHNE die # als Hexandezimaler RGB-Code einzugeben!<br>";
echo "Schriftfarbe: <input type=\"text\" name=\"text\" size=\"20\" maxlength=\"6\" value=\"\"></p>";
echo "<p><input type=\"submit\" value=\"OK\" name=\"submit\" onclick=\"\"><input type=\"reset\" value=\"Abbrechen\"></p>";
echo "<p>(c) 2009 - Programmiert und Erstellt durch chpulat aus dem condenidoforum</p>";
echo "</form>";
echo "</div>";
echo "</body>";
echo "</html>";
?> 
Achso und noch ein Sicherheitshinweis: Ich überprüfe keine Eingaben, daher ist natürlich sogut wie jede manipulation meiner DB möglich und somit ein erster Schritt getan, dass sich jmd die Welltherschaft an sich reißen kann - glaube ich zumindest. Aber die Datei werde ich in einem per .htaccess geschützten Bereich platzieren, sodass da eh nur Befugte randürfen.

Und naja fürs "schönen" Code schreiben werde ich hier als Praktikant nicht vergütet. Da reicht es, wenns funzzt.

Fragen, Optimierungen, Verbesserungen, konstruktive oder destruktive Kritik - gern ;-D

MFG

Chris

EDIT: Jetzt isses auch an/abschaltbar ;-D, nicht anschauen ist echt schlecht programmiert...
Zuletzt geändert von chpulat am Do 19. Mär 2009, 12:28, insgesamt 1-mal geändert.
idea-tec
Beiträge: 1242
Registriert: Do 19. Sep 2002, 14:41
Wohnort: Dichtelbach
Kontaktdaten:

Re: einfache Farbkarte

Beitrag von idea-tec »

schön, dass ich einen lösungsansatz zuwerfen konnte. :-)
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)
Gesperrt