FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

v0.9 - CSS ColorScheme {{ color1 }} ?

 
Post new topic   Reply to topic    PyLucid - CMS - Forum Forum Index -> general
View previous topic :: View next topic  
Author Message
jens
Administrator


Joined: 12 Oct 2005
Posts: 972
Location: duisburg, germany

PostPosted: Fri 19 Jun, 2009 09:01    Post subject: v0.9 - CSS ColorScheme {{ color1 }} ? Reply with quote

Ich hab die Idee, das man in CSS Dateien Platzhalter wie {{ color1 }} Verweden kann. Diese Color Angaben kann man dann seperat direkt in der Web-Oberflächte ändern.

Das kann so aussehen, das man bei EditableHtmlHeadFile ein Flag setzten kann, ob darin Template Platzhalter sind oder nicht. So kann man z.B. schon mal JS Dateien ausschließen. Natürlich werden vor dem Cachen die Platzhalter ersetzt, sodas es mit caching keine Performance Einschränkungen gibt.

Im Design Model verknüpft man dann die Farbinformationen mit den EditableHtmlHeadFile's. Somit ist es möglich mehrere Designs mit den selben CSS Dateien aber unterschiedlichen Farben zu erstellen. Das dürfte den Usern gefallen, die ungern an den CSS Dateien rumschrauben wollen, aber dennoch eigene Farben wählen wollen.

Später wird man dann auch die Farben interaktiv mit einem jQuery Plugin ändern können:


Ich frage mich nun aber, wie die Farben abspeichern?
Mir fallen da zwei Ideen ein:
1. Ein Modell mit einer festen Anzahl von Faben (man muß nicht alle nutzten), Könnte ungefähr so aussehen:
Code:
class ColorScheme
   color1 = models.BlaBla # Hex Wert der Farbe
   color1name = model.BlaBla # Name des Platzhalters
   color2 = ...
   color2name = ...
   ...

Nachteil: Wir haben "nur" eine Feste Anzahl der Farben, sobei eigentlich jeder mit z.B. 10 auskommen sollte Wink
Vorteil: Läßt sich einfach per Admin Oberfläche editieren.

2. Idee: Wir nutzten DictField aus http://code.google.com/p/django-dbpreferences/ und speichern ein dict ab, könnte dann so aussehen:
Code:
{
   "hauptfarbe" : "#000000",
   "haupthintergrund": "#ffffff",
   ...
}

Key ist also der Platzhaltername in der CSS Datei...
Vorteil: Variable Anzahl der Farben.
Nachteil: Kann man erstmal nicht direkt im django Admin editieren (allerdings kann man das dict als Text editieren).

Welche Variante es auch geben wird, ich denke man kann um das "Basissystem" noch eine Menge drum rum bauen.
Sinnvoll ist z.B. das man die Platzhalternamen ändern kann. Mit einem replace(altername, neuername) sollte das kein Problem sein.
Ein public ColorScheme switcher wäre auch Lustig.

Ich denke beim Update werde ich automatisch alle Farbwerte aus den bestehenden CSS Dateien extrahieren, in ColorScheme eintragen und durch Platzhalter ersetzten lassen.
_________________

http://www.jensdiemer.de | http://www.htfx.de | http://www.python-forum.de
Back to top
View user's profile Send private message
sepharim



Joined: 27 Dec 2007
Posts: 180
Location: Germany

PostPosted: Fri 19 Jun, 2009 09:15    Post subject: Reply with quote

Code:

class ColorScheme:
    ID = models.ID
    Desc = blabla
class Color:
    ForeignKey(ColorScheme.ID)
    Name = blalba
    Color = #fff


Vorteil: Variable Anzahl an Farben, Läßt sich per Join in der AdminOberfläche editieren.

nur so nen schneller Gedanke
Back to top
View user's profile Send private message
jens
Administrator


Joined: 12 Oct 2005
Posts: 972
Location: duisburg, germany

PostPosted: Fri 19 Jun, 2009 09:28    Post subject: Reply with quote

Stimmt. Das wäre wohl das beste... Mal sehen, vielleicht versuche ich das später mal umzusetzen Wink
_________________

http://www.jensdiemer.de | http://www.htfx.de | http://www.python-forum.de
Back to top
View user's profile Send private message
jens
Administrator


Joined: 12 Oct 2005
Posts: 972
Location: duisburg, germany

PostPosted: Fri 19 Jun, 2009 17:01    Post subject: Reply with quote

Mit http://trac.pylucid.net/changeset/2052 habe ich die DB Modelle u.a. um die ColorSchmeme Sache erweitert.

In der Update sektion kann man auch automatisch alle existierenden CSS Farben extrahieren lassen.

Was nun noch fehlt sind tests und vor allem, das die CSS Farben aus der DB auch wirklich genutzt werden.

Btw.: Was dumm ist, wenn die vielen pygments CSS color Angaben sollte man rausfiltern, ansonsten wird es unübersichtlich Wink
Wenn man Farbnamen (Was der IE IMHO eh nicht mag) genutzt hat, werden die z.Z. ignoriert (Da die RE nur auf hex Werte matcht). Man könnte ein "Übersetzungs" dict bauen, siehe: http://www.w3schools.com/html/html_colornames.asp

Was auch cool wäre, wären "Automatischer Farbnamen für Web Farben (#00000 -> black)", siehe Python Forum Thread: http://www.python-forum.de/topic-19294.html
_________________

http://www.jensdiemer.de | http://www.htfx.de | http://www.python-forum.de
Back to top
View user's profile Send private message
sepharim



Joined: 27 Dec 2007
Posts: 180
Location: Germany

PostPosted: Sun 21 Jun, 2009 13:10    Post subject: Reply with quote

Ich weiß nicht ob das mit den Farbnamen so sinnvoll ist. Und war es nicht so das manche Farben nicht eindeutig definiert waren?

[quote=dein link]Note: The names above are not a part of the W3C web standard.

The W3C HTML and CSS standards have listed only 16 valid color names:
aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, white, and yellow.

If you want valid HTML or CSS use the HEX values instead.[/quote]

Von daher würde ich nur Hexwerte verwenden.
Back to top
View user's profile Send private message
jens
Administrator


Joined: 12 Oct 2005
Posts: 972
Location: duisburg, germany

PostPosted: Mon 22 Jun, 2009 13:20    Post subject: Reply with quote

Nein, es geht bei den Namen nur für die interne Anzeige bzw. für die Template Platzhalter Namen.

Ich meinte nicht diese "offiziellen Web-Farbnamen" Wink

In der aktuellen Version werden die Namen einfach nach dem Schema Generiert: "color_XX" (XX steht dabei für eine Zahl)
Schöner wäre es aber, wenn es dort einen Sinnvollen Namen geben würde, wie "Hell orange", "dunkel grau" usw... Halt auf basis von den gefundenen hex Werten...

Aber das ist erstmal nicht so wichtig.

Erstmal muß das System überhaupt laufen Smile
_________________

http://www.jensdiemer.de | http://www.htfx.de | http://www.python-forum.de
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    PyLucid - CMS - Forum Forum Index -> general All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

<< back to PyLucid CMS Homepage



Powered by phpBB © 2001, 2005 phpBB Group