--- /dev/null
+
+ .-= Achtung Baustelle =-.
+
+ Das Script NICHT ungetestet auf Produktivsystemen laufen lassen !
+ Die Pfade sind sicher nicht richtig.
+ Hier kann noch ganz viel ganz übel schiefgehen.
+
+
+== WAS TUT ES ==
+
+Das Script erzeugt von dfde-theme abgeleitete Styles.
+
+Aktuell sind das:
+ dfde-dark : der "darkmode" des Forenstyles
+ dfde-kontrast : eine Version des hellen dfde-themes, mit etwas verbessertem Kontrast
+
+Beide Themes sind proof-of-concept work-in-progress Versionen, bei denen noch einiges an Arbeit nötig ist. Freiwillige vor.
+
+
+Wenn das Script erfolgreich durchgelaufen ist, sollte das "style" Verzeichnis in etwa so aussehen:
+
+.
+├── all
+│ ├── imgs
+│ │ └── svg
+│ └── template
+├── dfde-dark
+│ ├── template
+│ │ └── profilefields
+│ └── theme
+│ └── images
+├── dfde-kontrast
+│ ├── template
+│ │ └── profilefields
+│ └── theme
+│ └── images
+├── dfde-theme
+│ ├── template
+│ │ └── profilefields
+│ └── theme
+│ └── images
+└── prosilver
+ ├── template
+ │ └── profilefields
+ └── theme
+ ├── en
+ └── images
+ └── plupload
+
+D.h. einmal dfde-theme, diverse -zur Zeit 2- dfde-$irgendwas und das normale prosilver.
+
+
+== WIE GEHT ES ==
+
+Workflow, wenn man das Script benutzen will, um weitere Themes vom "dfde-theme" abzuleiten:
+
+* Zuerst den aktuellen Stand aus master von "dfde-theme" auschecken. Das Script erwartet die benötigten Dateien in $FORUM/styles/dfde-theme/ !
+* dfde/dfde-theme-extras clonen, in einen Bereich, welcher nicht im Web erreichbar ist.
+* Makefile anpassen? Das Makefile wird gegebenfalls dazu aufrufen, ein paar Änderungen zu machen, ....
+ TODO: will man hier hardcodierte Pfade vorgeben, wenn ja welche ? oder per Shell abfragen?
+ TODO: unter welchen Berechtigungen wäre das Script sinnvoll? grundsätzlich zu www-data switchen?
+ TODO: phpBB hat Versionierung für Styles, wie gehen wir damit um?
+* "make" aufrufen. Den Anweisungen des Scripts folgen.
+* über die neuen Versionen in $FORUM/styles/ freuen.
+
+* Für jedes neue Theme, muss dann einmal initial im Forum das Theme freigeschaltet werden:
+ 1. im ACP unter "Customise", "Style Management", "Install Styles" zuerst die neuen Styles erlauben
+ 2. im ACP unter "Customise", "Style Management", "Styles" und da gegebenenfalls aktivieren
+ Muss vermutlich nur einmal gemacht werden wenn ein neuer Style dazukommt.
+ Famous last words. Bugreports welcome ;)
+
+* Unter "General", "Board settings" sollten nun bei "Default style:" und "Guest style:" die neuen Themes auftauchen. Einstellung bei "Override user style:" überprüfen, muss auf "No" stehen.
+
+* Vielleicht muss nach jedem neuen Scriptlauf auch der Cache geklärt werden: "Purge the cache" auf der Seite "General" unter "Welcome to phpBB. Hängt von den Servereinstellungen ab. Eventuell auch noch anders. Bitte Doku anpassen, falls noch was beachtet werden muss.
+
+
+== TODO ==
+
+Diverses und zwar viel davon:
+
+
+=== TODO für dfde-dark: ===
+
+Ist nur ein proof-of-concept, und geht schöner. Macht mal ;)
+
+[ ] Der Hauptteil der Arbeit, sind die Grafiken. Die sind auf hellen Hintergrund optimiert.
+ Man kann mit convert draufkloppen, white und 50% fuzz, sieht dann wie im Bild aus.
+ Nicht optimal. Und im Dinotest bereits einmal durchgefallen.
+ Der Swirl will etwas mehr, die anderen Grafiken sehr viel weniger fuzzprozente.
+ Manche Grafiken macht man vielleicht sogar lieber ganz neu.
+ Also entweder mit etwas Geduld solange mit dem Parameter von convert rumspielen, bis man pro Bild den richtigen Wert für das Script gefunden hat. Oder einmal mit dem gimp durchgehen.
+ Herausragendes Negativbeispiel: die Smilies (siehe "UCP", "Profile", "Edit Signature").
+
+[ ] Die Buttons sind im normalen Theme mit nem silbernen Verlauf versehen.
+ Aktuell löscht das Script im Dark da nur den Gradient weg. Das geht besser.
+ Will man auch im Darktheme Verläufe an den Buttons? Falls ja, welche?
+
+[ ] Kräftiges rot und dessen Varianten werden zur Zeit vom Script nicht angefasst, sonst passiert das, was man auf den Beispielbildern von $Forenbewohner sieht: rot wird zu cyan. Diese Farben müsste man einmal per Hand nachjustieren. Via Ersetzungstabelle.
+
+[ ] Die Fassung von $andererForumbewohner ist aber viel schöner.
+Vielleicht helfen ja Bestechungskekse damit das Script doch noch den Weg in die Freiheit findet?
+
+
+=== TODO für dfde-kontrast: ===
+
+Wer mit dem "normalen" Skin gut klarkommt, ist NICHT Zielgruppe des Kontrast-Themes.
+Helfen könnt ihr trotzem, aber bitte nicht vergessen: Sehproblem != Sehproblem.
+Was für Alice perfekt funktioniert, wird für Bob gar keine Veränderung bringen, aber für Charlie alles schlimmer machen.
+
+Mehr Feedback wäre hilfreich, der Großteil der Betroffenen hat sich bisher vermutlich aus gutem Grund rausgehalten. Gerne auch anonymisiert über einen Mod Eures Vertrauens, falls man sich nicht in die öffentliche Kneipenschlägerei hineinbegeben will.
+
+Bisher nur ganz rudimentär mit der Umsetzung angefangen.
+
+Vorher müsste geklärt werden, was wirklich nützlich und nötig ist:
+
+[ ] Schript auf 100% schwarz: spricht wohl nichts dagegen
+[ ] Linie zwischen den Postings: war mit überschaubarem Aufwand machbar, schön ist das aber noch nicht.
+[ ] Hintergrundfarben aus den Beiträgen entfernen. Ka, ob das sinnvoll ist.
+ Irgendeine visuelle Trennung muss da sein.
+ Farben würde ich nur dann rausnehmen wollen, wenn das mit der Linie auch den anderen hilft.
+ Müsste man vermutlich mal ausprobieren.
+
+Evtl wäre es eh sehr viel besser, sich nochmal damit zu beschäftigen, wie die jetzigen Farben auf rot-grün/rot-blau/etc Fehlsichtige wirken. Es gibt Tools, die versuchen Colorblindness abzubilden. Wer will kann damit ja mal rumspielen und Ersetzungswerte vorschlagen, die ein kleinstes gemeinsammes Übel bringen. Eine perfekte Lösung für alle wird es vermutlich nicht geben können.
+
+
+
+=== TODO für die Scripte: ===
+
+unter anderem:
+
+[ ] Will man hardcodierte Pfade im Script vorgeben?
+ Wenn ja, welche ?
+ Config, wenn ja? wie?
+ Oder lieber auf der Cmdline mitgeben / durch das Script abfragen lassen?
+
+[ ] Unter welchen Berechtigungen wäre das Script sinnvoll?
+ Grundsätzlich zu www-data switchen? Wie am besten?
+
+[ ] phpBB hat Versionierung für Styles, ist yyyymmddvv sinnvoll?
+ Wie geht mit man damit um, dass man das bei zukünftigen Updates vermutlich anpassen werden muss?
+
+[ ] Wäre es sinnvoll, alle automatisch erzeugten Styles einfach vor dem Update zu löschen?
+ Wäre definitiv einfacher als Bestehendes zu updaten.
+ Sowas sollte aber vielleicht besser händisch gemacht werden und nicht durch nen möglicherweise amoklaufendes Script ;)
+
+[ ] Sprachen:
+ wie gehen mit Lokalisierung und "Du/Sie" um?
+ Gibts da irgendwas zu beachten? Diesmal wohl nicht.
+ (famous last words again)
+
+...
+
+
+== Sonstiges ==
+
+Alles sonstig relevante steht in der dfdeREADME.txt von dfde-theme und im Forum.
+
+
+
+== DANKSAGUNGEN ==
+
+Und wie üblich: diese Arbeit wäre ohne die Mithilfe und die umfangreichen Vorarbeiten von anderen so nicht möglich gewesen. Daher mit Dank unter anderem an: den Autor von Prosilver, auf dessen Style das dfde-theme auch zu grossen Teilen basiert, an Timo Salmen für dessen Forentemplate, an Christoph Haas für die Arbeit am Debian Live Template und an alle die sich konstruktiv beteiligen.
+
--- /dev/null
+#!/usr/bin/make
+
+STYLES=/var/www/html/phpBB3/styles
+
+
+DFDE=${STYLES}/dfde-theme
+DARK=${STYLES}/dfde-dark
+KONTRAST=${STYLES}/dfde-kontrast
+
+.PHONY: info templates dark kontrast other
+
+info:
+
+ @echo " "
+ @echo "Suche alte Styles in "
+ @echo "STYLES=${STYLES}"
+ @echo " "
+
+ @echo "Du musst alle zuvor automatisch generierten Themes von \n${STYLES} entfernen, abgesehn von dfde-theme. "
+
+ @echo "Gefunden wurden:"
+ @find /var/www/html/board/phpBB3/styles/ -maxdepth 1 -type d -name "dfde*" -printf " rm -rf %p\n" |grep -v dfde-theme || echo " Keine."
+ @echo ""
+
+ @echo "Nur wenn die Pfade stimmen und keine alten Styles gefunden wurden: "
+ @echo " \"make other\" ausführen"
+ @echo "vorher update von dfde-theme aus dem git nicht vergessen"
+ @echo ""
+
+unused:
+ #|grep dfde- |grep -v dfde-theme
+ #@find /var/www/html/board/phpBB3/styles/ -maxdepth 1 -type d -name "dfde*" -printf " %f\n" |grep dfde- | grep dfde-theme -v | wc -l
+
+other: templates dark kontrast
+ @echo "alles done."
+
+templates:
+ @echo "starte mit templates ..."
+ @# TODO testen ob alte Versionen vorhanden sind? falls ja abbrechen
+ @cp -R templates/* ${STYLES}
+ @cp -R ${DFDE}/* ${STYLES}/dfde-dark
+ @cp -R ${DFDE}/* ${STYLES}/dfde-kontrast
+ @cp -R templates/* ${STYLES}
+ @echo "templates done."
+
+dark:
+ @echo "starte mit dark ..."
+ echo ${DARK}
+ @# TODO testen ob alte Version vorhanden ist und falls ja abbrechen
+
+ # alle grafiken transparent machen
+ @ls ${DFDE}/theme/images/*.gif | awk -F '/' '{print $$NF}' | xargs -I{} convert ${DFDE}/theme/images/{} -fuzz 25% -transparent white ${DARK}/theme/images/{}
+ # swirl wuenscht sonderbehandlung
+ @convert ${DFDE}/theme/images/site_logo.gif -fuzz 50% -transparent white ${DARK}/theme/images/site_logo.gif
+
+ # farben austauschen
+ @python3 dark.py ${DFDE}/theme/colours.css > ${DARK}/theme/colours.css
+ @python3 dark.py ${DFDE}/theme/stylesheet.css > ${DARK}/theme/stylesheet.css
+ @python3 dark.py ${DFDE}/theme/content.css > ${DARK}/theme/content.css
+ @python3 dark.py ${DFDE}/theme/common.css > ${DARK}/theme/common.css
+ @python3 dark.py ${DFDE}/theme/debianforum.css > ${DARK}/theme/debianforum.css
+
+ # achtung: im richtigen file ersetzen
+ # ausgangsfile muss hier dark sein, weil es oben schon angepasst wurde
+ @awk 'BEGIN{INHRD=0; OT=""} INHRD==1{OT= OT "background-color:#0f0f0f;\n"; INHRD=2; OT= OT $$0; next } /^body/{INHRD=1} {OT= OT $$0 "\n"} END{print OT}' ${DARK}/theme/common.css >> ${DARK}/theme/common.css
+ @echo "dark done."
+
+kontrast:
+ @echo "starte mit kontrast ..."
+ @# TODO testen ob alte Version vorhanden ist und falls ja abbrechen
+ @awk 'BEGIN{INHRD=0} INHRD==1{print "height:5;"; INHRD=0; next} /hr.divider/{INHRD=1} {print $$0}' ${DFDE}/theme/common.css > ${KONTRAST}/theme/common.css
+
+ @sed -i "s_333333_000000_g" ${KONTRAST}/theme/*.css
+ @sed -i "s_645d5b_000000_g" ${KONTRAST}/theme/*.css
+ @echo "kontrast done."
+
--- /dev/null
+#!/usr/bin/python3
+import sys
+import re
+
+def soll_nicht_ersetzt_werden(was):
+ was = was.lower()
+ if was == "aa0040" or \
+ was == "ff0000" or \
+ was == "d3111a" or \
+ was == "730d44" or \
+ was == "74162c" or \
+ was == "774c5d" or \
+ was == "8c1c38" or \
+ was == "8c5c75" or \
+ was == "aa2346" or \
+ was == "b01310" or \
+ was == "b5196d" or \
+ was == "bc2a4d" or \
+ was == "bd5d8f" or \
+ was == "be1e4a" or \
+ was == "cc6699" or \
+ was == "d11a4e" or \
+ was == "d2368a" or \
+ was == "d31141" or \
+ was == "d70751" or \
+ was == "d91198" or \
+ was == "e41653" or \
+ was == "ea11a3" or \
+ was == "f31141" or \
+ was == "f81157" or \
+ was == "ff0000" or \
+ was == "ff6600":
+ return True
+
+ return False
+
+def replace_hex_value(string, hex_value):
+ r = hex_value
+ if (len(hex_value)==3):
+ r = hex_value[0] + hex_value[0] + hex_value[1] + hex_value[1] + hex_value[2] + hex_value[2]
+ if soll_nicht_ersetzt_werden(hex_value):
+ return string
+ return string.replace(hex_value, "0x%0.6X" % (0xffffff - int (r, 16))).replace("0x","").replace("##","#")
+
+
+filename = sys.argv[1]
+with open(filename) as f:
+ pattern = r"#\b[0-9abcdef]{3,6}\b"
+ i=0
+ for z in f.readlines():
+ i+=1
+ l = z.strip()
+ m = re.search(pattern, l, re.IGNORECASE)
+
+ if m:
+ string = l
+ hex_value = m[0].replace("#","")
+ new_string = replace_hex_value(string, hex_value)
+ print ("/* replaced: "+ str(l) + " */")
+ if "gradient" in new_string:
+ #skip all gradients TODO
+ pass
+ else:
+ print(new_string)
+ else:
+ print (l)