Daten aus CSS in PHP Script übernhemen

PHP, Ajax, CSS, HTML, Javascript
Eben für die wirklich Harten, die alles selber machen.
Antworten
MADxHAWK
Beiträge: 132
Registriert: Mi 15.Nov, 2006 13:40
Wohnort: Bonn
Kontaktdaten:

Daten aus CSS in PHP Script übernhemen

Beitrag von MADxHAWK »

Hi,

Ich weiss ich stell viele fragen momentan. ^a

Ok ich habe folgendes Problem, ich generiere eine dynamsiche Grafik für einen MOD an dem ich gerade schreibe. Nun würde ich gerne den Hintergrund der Grafik ( ein Balkendiagramm ) dem Hintergrund der Seite anbassen und die Balken ebenfalls in den Farben wie sie im CSS definiert sind darstellen. Das Ganze ist für einen phpBB / Orion mod.

Gibt es eine Möglichkeit die farbdaten die z.B. im CSS für row1-row3 definiert sind irgendwie aus dem CSS auszulesen und als variable in php zur verfügung zu stellen ?

die umwandlung von #00ff00 in 0x00, 0xff, 0x00 würde ich dabei noch selber hinbekommen denke ich.

danke schonmal im vorraus :)

Gruss
Martin
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Wenn die Grafik in HTML-Tags erstellt werden, stehen die Farben mit class="..." zur Verfügung.
Ansonsten kannst Du nur diese anhand der Einträge in der CSS-Datei hardcoded eintragen.
Oder vielleicht (und dann schon komplizieter) in der Datenbank für das aktuelle Style speichern und beim Erstellen der Grafik auslesen und verwenden...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
MADxHAWK
Beiträge: 132
Registriert: Mi 15.Nov, 2006 13:40
Wohnort: Bonn
Kontaktdaten:

Beitrag von MADxHAWK »

Hmm ich hab die daten z.b mit file(path/to/css) als array oder mit read_file als string einlesen können, das problem ist, wie kann ich die notwendigen daten rausfiltern ?

wenn ich das file als array einlese hab ich es mit array_search() versucht, doch hier muss der suchbegriff 100% übereinstimmen wenn ich nach .row1 suche gibt er mir leider kein ergebnis zurück weil hinter dem .row1 wohl noch einige leerzeichen folgen.
gibt es denn die möglichkeit bei der suche in einem array wildcards zu verwenden ?

Gruss
Martin
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Jetzt verstehe ich nur noch Bahnhof.

Mal langsam zum mitdenken:
Du willst die Formatierungen, die in der css-Datei definiert sind, im Diagramm verwenden. Richtig?

Dann gibt es 3 Möglichkeiten, eben je nachdem, wie das Diagramm erstellt wird:
- Wird das Diagramm mittels HTML-Codes erstellt, kannst Du die Klassen, die in der css-Datei definiert sind, als Formatierung im Diagramm verwenden. Also z. B. class="forumline" für den Hintergrund (im Forum der allgemeine Tabellenhintergrund).
- Wird das Diagramm mittels Grafikroutine erstellt (oder sollte es so werden), dann kann man entweder die Farbdefinitionen fest verdrahten (was dann für jedes Template gelten würde!) oder eben diese Informationen zum Template in der Datenbank speichern (sind es ja auch schon) und während der Erstellung der Grafik mittels $theme-Array (steht auch bereits überall im phpBB zur Verfügung!) diese Werte verwenden.

Aber frag mich jetzt bitte nicht, wie man das alles macht, denn ich weiß ja noch nicht einmal, wie Du das Diagramm erstellst (erstellen lassen willst)!
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
MADxHAWK
Beiträge: 132
Registriert: Mi 15.Nov, 2006 13:40
Wohnort: Bonn
Kontaktdaten:

Beitrag von MADxHAWK »

Hi,

also das Diagramm ist eine png grafik die dynamisch erstellt wird.
hab mir die datenbank mal angesehen, leider stehen bei vielen templates nurnoch die farben für Admin, Moderator und Supermod zur verfügung, jedenfalls beim Orion. Die daten für .row1 - .row3 sind leider nicht in der DB, zumindest bei den 3 templates die ich habe. Ich hatte nun vor die daten direkt aus der template.css auszulesen, was mir mittlerweile auch mittels file_get_contend() und
strstr() und substr() gelungen ist. Ich denke aber mittlerweile das der aufwand nur um 2-3 farben zu ändern viel zu hoch ist da das script an sich eh schon genug resourcen frisst.
Ausserdem müsste ich dann Prüfen welchen Style der User eingestellt hat und ob dieser eventuell durch den Standard Boardstyle überschrieben wird usw.

Das ganze wird mal ein Topsite MOD ähnlich dem Aardvark Topsites PHP 5.1.2 ( http://www.aardvarktopsitesphp.com/ ) jedoch voll integriert ins Orion / phpBB mit administration übers ACP usw. ich hab jedoch einige funktionen wie werbeeinblendung weggelassen und dafür sinvollere hinzugefügt ;)


Danke Dir jedenfalls für die Hilfe, falls es jemand interessiert wie er daten aus der CSS auslesen kann kann ich den code mal posten.

Gruss
Martin
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

falls es jemand interessiert wie er daten aus der CSS auslesen kann kann ich den code mal posten.
Ja, mach mal. Denn die Idee ist nicht Uninteressant.
Ich denke aber mal das die Verwendung von strstr() und substr() recht schnell zu Fehlern führen kann. Denn nicht jede CSS-datei ist gleich aufgebaut. ;)

Vielleicht hätte ich dafür sogar eine Lösung im Hinterkopf. Die kann ich allerdings nicht so ohne weiteres Erklären und für eine Umsetzung bzw. nähere Tests fehlt mir die Zeit. ^6
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
MADxHAWK
Beiträge: 132
Registriert: Mi 15.Nov, 2006 13:40
Wohnort: Bonn
Kontaktdaten:

Beitrag von MADxHAWK »

Hi,

sorry das ich erst jetzt antworte, war etwas im dauerstress.

der code ist leider einen hdcrash zum opfer gefallen, war aber letztendlich recht simpel aufgebaut,

die datei öffnen und in ein array einlesen,
die farbinformationen in der css suchen
die infos aus dem format #000000 in 0x00, 0x00. 0x00 umwandeln.

Greetz
Martin
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Das Grundprinzip ist mir schon klar. ;)
Dein Lösungsweg wäre Interessant gewesen. Denn vielleicht hätte ich dir (darauf Basierend) sagen können, wie du die Fehleranfälligkeit bei veränderten CSS-Dateien minimieren kannst. :)
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Antworten