Ich würde gerne alles Blau der Standardinstallation auf eine andere Farbe ändern (zB. dunkelgrün).
Dafür habe ich alle *.ccs und css.php Dateien mal nach #0078ac durchsucht und die Werte dort geändert:
autocomplete.css - 900 Bytes - \elgg-3.3.11\Vendor\Elgg\Elgg\Views\Default\Elements\components\
625 color: #0078ac;
Menus.css - 7.990 Bytes - \elgg-3.3.11\Vendor\Elgg\Elgg\Views\Default\Elements\components\
7.112 color: #0078ac;
progressbar.css - 377 Bytes - \elgg-3.3.11\Vendor\Elgg\Elgg\Views\Default\Elements\components\
244 background: #0078ac;
und anschliessend die Caches gelöscht.
Leider ohne Ergebnis.
Suche ich nach der falschen Farbe? die Info #0078ac habe ich vom Web-Developer Plugin (Firefox).
Wo verstecken sich die Farben für die Menüs und die Schriften?
info@elgg.org
Security issues should be reported to security@elgg.org!
©2014 the Elgg Foundation
Elgg is a registered trademark of Thematic Networks.
Cover image by Raül Utrera is used under Creative Commons license.
Icons by Flaticon and FontAwesome.
- iionly@iionly
iionly - 0 likes
- Karsten Schulze@frinx
Karsten Schulze - 0 likes
- iionly@iionly
iionly - 0 likes
- Karsten Schulze@frinx
Karsten Schulze - 0 likes
- iionly@iionly
iionly - 0 likes
You must log in to post replies.Bei Elgg 3 werden CSS-Variablen verwendet, um bestimmte Einstellungen (z.B. Farben und Schriftgrößen) zu definieren. Diese sind in der Datei vendor/elgg/elgg/engine/theme.php definiert (zumindest die von Elgg-Core). Um die Werte der Variablen zu ändern, steht ein Plugin-Hook zur Verfügung (http://learn.elgg.org/en/stable/guides/themes.html#css-variables). Ich würde empfehlen, nicht die Werte in dieser Datei zu ändern sondern wirklich den Plugin-Hook zu verwenden. Falls Du es nicht allein hinbekommst, kann ich vielleicht mehr dazu schreiben (hab allerdings selbst für Elgg 3 noch kein Theme erstellt aber es ist nicht so kompliziert).
Besten Dank für die schnelle Hilfe - wenn ich weiß, wo es steht, ist es plötzlich ganz simpel.
Die offizielle Gebrauchsanweisung (http://learn.elgg.org/en/stable/guides/themes.html#css-variables) hat mich allerdings nicht wirklich schlau gemacht, aber wie das mit den Hooks funktioniert und wo der Unterschied zur Registrierung eines Plugins und eines Themes besteht, bekomme ich schon noch raus.
Als Beispiel zum Basteln habe ich mal die custom-index genommen und umbenannt. Mal sehen, wie ich die um die Theme-Registrierung ergänzen kann.
Wie muss denn die Unterstruktur in meinem eigenen mod aussehen, damit ich damit nicht nur die Elgg Core Module, sondern auch die CSS eines anderen mods (zB. die von Tidypics) überscheiben kann?
\mod\MyModule\tidypics\views\default\photos\css.php - würde das so funktionieren (Du hast da auch ein blau drin)?
Ein Theme(-Plugin) wird von Elgg nicht anders behandelt als ein "normales" Plugin. Registrieren mußt Du ein Plugin nicht.
Ich habe mich auf den Mechanismus der "Plugin-Hooks" bezogen, bei dem man eine Funktion für einen bestimmten Hook registriert und damit das Verhalten von Elgg (und/oder Plugins) anpassen kann. Vorschlag: schau Dir mal den Code meines Album Link-Plugins an (https://elgg.org/plugins/1156536). Da ist im Prinzip nichts anderes drin als eine Funktion, die für einen Plugin-Hook registriert wird. Und in diesem Plugin hab ich das "richtig" gemacht, wie es erst ab Elgg 3.3 (oder vielleicht schon 3.1) empfohlen wird. Leider kann man diese Methode noch nicht in allen Fällen verwenden, da in manchen Fällen aus Kompatibilitätsgründen noch die "alte" Methode verwendet werden muss (die auch noch in den Docs erklärt wird).
Bei Elgg 3.3 bräuchte man nicht mehr zwingend die start.php-Datei. Falls Du nur den Hook registrieren mußt, geht das wie im Beispiel des Album Link-Plugins über elgg-plugin.php. Die Funktion, die der Hook aufruft, ist in einer Klasse definiert. Du müßtest ausgehend vom bestehenden Code nur die Funktions-, Datei- und Verzeichnisnamen an deinen Fall anpassen und Elgg findet alles automatisch.
Der Plugin-Hook in deinem Fall wäre dann vars:compiler, css (statt register, menu:user_hover). In der Funktion selbst bekommst Du aller Wahrscheinlichkeit nach mit $hook->getValue() das Array, in dem die CSS-Variablen drin sind:
Dann kannst Du die Werte existierenden Elemente ändern oder auch neue hinzufügen.
Falls Du eine View (nicht nur CSS sondern alles was unterhalb des views-Verzeichnis liegt ) in deinem Plugin überschreiben willst, muss die Unterstruktur in deinem Plugin die Original-Unterstruktur des anderen Plugins (oder von Elgg-Core) wiederspiegeln, z.B.
kannst Du überschreiben mit
Du mußt nur darauf achten, dass dein Plugin unterhalb des oder der Plugins in der Liste der aktivierten Plugins angeordnet ist:
Dann kann dein Plugin alle Views überschreiben, die von den darüber liegenden Plugin geliefert werden (und eventuell ihrerseits schon von einem anderen Plugin überschrieben werden). Daher sind Theme-Plugins in der Regel ganz unten in der Liste einsortiert.
Ich kann mich nur nochmals bedanken!
Vielleicht solltest Du demnächst die Doku schreiben, anhand Deines Beispiels konnte ich das sofort umsetzen.
Ich hab zwar noch nicht verstanden, weshalb die Inhalte unterhalb des Directories /classes durch elgg-plugin.php automatisch gefunden werden, welche Kombinationen von [siehe: vars:compiler, css (statt register, menu:user_hover)] Parametern möglich sind und warum das mit dem Doppelpunkt mal als erster und mal als zweiter Parameter steht, aber das kann ja noch werden. Die offizielle Doku macht mich jedenfalls wahnsinnig.
Auf jeden Fall hat es funkioniert!
Das mit den Doppelpunkten ist jetzt bei diesen beiden Plugin-Hooks eher Zufall. Es gibt auch Hooks ohne Doppelpunkt in den beiden Parametern (http://learn.elgg.org/en/stable/guides/hooks-list.html). Man muss sich da sicherlich auch nicht alle Hooks merken (richtig oft werden wahrscheinlich sowieso nur wenige verwendet).
Ich befürchte, wirlich alles läßt sich in der Doku schwerlich ausführlich abhandeln. Es ist zu einem gewissen Teil eher auch zum Nachschlagen geeignet. Zum Teil ist es wohl leider auch so, dass die Doku von einem professionellen Entwickler für andere professionelle Entwickler geschrieben wurde (was ich beispielsweise auch nicht bin!). Wenn man mit den Konzepten schon vertraut ist, versteht man es wahrscheinlich ohne lange Erklärungen. Wenn man die Grundlagen nicht kennt, kann man sich schon mal blöd vorkommen. Ich versuche da meistens, in anderen Plugins den Code direkt zu verstehen. Das ist ganz am Anfang zwar auch nicht einfach. Aber es macht dann irgendwann "Klick", wenn man die immergleichen Muster / Strukturen usw. wiedererkennt.
Basis-Aufbau eines Plugins: http://learn.elgg.org/en/stable/guides/plugins/plugin-skeleton.html. Da wird auch das automatische Laden der Klassen erwähnt (mit Link zu mehr Infos).