anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Di 16 Apr, 2024 12:14

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Fr 13 Aug, 2010 14:28 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 02 Feb, 2009 21:11
Beiträge: 168
Geschlecht: Männlich
LoGD: salator.selfhost.de/lotgd
Ich möchte hier meine überarbeitete Version der grafbar-Funktion vorstellen. Die Standard-Farben wurden leicht verändert und man kann die Balken auch komplett selbst gestalten.

Hintergrundstory:
Am Anfang war der grafische Fortschrittsbalken. Und der Balken war trist und dreifarbig.
Als nächster Schritt wurde die Anzeige für 100% mit einer anderen Farbe versehen. Hier wurde jedoch unüberlegterweise ein dunkleres Grün genommen, während der Bereich 50-99% immernoch leuchtendgrün war.
Dies gefiel dem Salator nicht, also drehte er die Farben um. Doch die User hatten sich schon an die Farben gewöhnt und schimpften.
Also wurden die Farben komplett geändert. Da aber Rot/Gelb/Grün gängige Singnalfarben sind, konnte ich nicht allzu weit vom Bestehenden abrücken. Das Ergebnis war ein dezenteres rot/gelb/grün mit unterschiedlicher Intensität.
Doch auch damit waren nicht alle glücklich, die neuen Farben passten nicht zu den selbstgefärbten Biographien. Also wurde die Möglichkeit zur eigenen Farbgebung des Balkens eingebaut.
Und wenn wir den Balken schon selbst gestalten, kann das auch gleich richtig gemacht werden. Deswegen haben die Farb-Parameter jetzt eine Doppelbedeutung. Ist das erste Zeichen ein # wird davon ausgegangen, dass ein Farbcode in Hexadezimalschreibweise übergeben wird. Andernfalls wird der String als Style-Angabe interpretiert.

Einbau: Komplette Funktion in common.php (V0.9.7) bzw in output.lib.php (DS-Edition) ersetzen.


Achtung, DS3-Nutzer! Im Release hat die grafbar-Funktion einen 5. Parameter, mit dem man eine ID angeben kann. Dies wird meines Wissens einzig in Atrahor auf der Startseite mit Dawn-Skin verwendet. Deswegen habe ich diesen Parameter entfernt. Die zugehörige Codezeile in der output.lib.php müsst ihr entsprechend anpassen.
$this->bbcode_second_pass_code('', '
Suche:
$ret.=grafbar(getsetting('maxonline',10),(getsetting('maxonline',10)-$onlinecount),'100%',5,'onlinecount_grafbar');
ersetze mit:
$ret.=grafbar(getsetting('maxonline',10),(getsetting('maxonline',10)-$onlinecount),'95%',3);
')
Die pauschale Änderung auf 95% Breite sollte die ID-Angabe in Atrahor überflüssig machen. Ihr könnt den Serverauslastungs-Balken natürlich auch anders gestalten ;)

* @param float $full Max.wert
* @param float $left Aktueller Wert
* @param int $width Gesamtbreite
* @param int $height Gesamthöhe
* ENTFÄLLT! @param string $str_style Gibt eine ID für den Grafbar an, die per CSS weiter gestyled werden kann
* neu @param string $col Balkenfarbe HEX-Wert #rrggbb oder Style-Angaben
* neu @param string $col2 Hintergrundfarbe HEX-Wert #rrggbb oder Style-Angaben

* @return string HTML

Demo:
Ich habe mal eine Grafik mit einer Reihe von Balken vorbereitet. Diese kann unter http://www.wyndoria.de/images/screens/grafbar_new.gif angesehen werden.
Hier der Beispiel-Code, der dafür verwendet wurde:
$this->bbcode_second_pass_code('', '
//Standardansicht
for ($i=0;$i<=221;$i++)
{
output(grafbar(100,$i,200,3).'
');
}
//um eigene Farben mit Farbverlauf und gesondertem Grün-Bereich zu übergeben:
for ($i=0;$i<=100;$i++)
{
$col='#'.sprintf('%02s',dechex($i)).'0000';
$col2='#FF00FF';
if($i>36 && $i<40) $col='#008000';
if($i>=40) $col2='#FF0000';
output(grafbar(100,$i,200,3,$col,$col2).'
');
}
//Balken mit Grafiken
for ($i=0;$i<=100;$i++)
{
output(grafbar(100,$i,200,14,'background-image:url(images/chart.gif)','background-image:url(images/chart2.gif)').'
');
}
')


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
if(date("ymmd")=="10050502") echo("Der alte Sack wird heute 40");


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr 13 Aug, 2010 15:29 
Offline
Held
Held

Registriert: Fr 17 Okt, 2008 20:06
Beiträge: 253
Geschlecht: Männlich
LoGD: off
:wink:

Also wenn es wirklich so ist, wie ich die Beschreibung verstehe..

Dann nur tolle Arbeit ;)

Werde es mal bei gelegenheit Einbauen^^

Edit: Habs nun eingebaut.. Sieht super aus ;) Vorallem mit der Anzeige, wenn man schon über 100% raus ist^^

Kann das sein, dass aber nur.. hmm 199% angezeigt werden?^^

Klick mich

Wenn ich das hier per img Verlinken würde, würden mich macnhe fressen ;D

Edit2:

:bash: :bash: Manchmal hilft es den Code zu lesen

//bei 199% deckeln

War zuwar gut geraten die 199% aber es war beabsichtigt >.< :D

_________________
Wenn ihr mir sagt wie ich es als Datei hochlade, dann kann ich die Source hochladen die ihr wollt .D


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr 13 Aug, 2010 19:40 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 02 Feb, 2009 21:11
Beiträge: 168
Geschlecht: Männlich
LoGD: salator.selfhost.de/lotgd
Jep, das mit den 199% ist beabsichtigt. Irgendwo muss ja Schluss sein und diese Grenze bietet sich grad an.
Wenn es bei dir häufiger vorkommt, dass du mehr als das Doppelte anzuzeigen hast, kannst du den Code ja anpassen.

_________________
if(date("ymmd")=="10050502") echo("Der alte Sack wird heute 40");


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So 15 Aug, 2010 17:55 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 16 Jul, 2005 22:40
Beiträge: 693
Wohnort: /var/server/home/castle
Geschlecht: Männlich
LoGD: http://www.kokoto.de/
Skype: Apfelschokowodkakekskuchen
Hallo^^

erstmal, super teil gefällt mir mit der anzeige von über 100%

und ist es mögl. auch einfach die -1 weggzumachen das es dann bei 200% einfach aufhört? weil sieht doch nich hübsch aus wenn da nen stückhen nicht voll wird^^


nun zu meinem problem:

PHP:
<tr class="statline">
<td class="title">Erfahrung</td>
<td class="value"><table style="border: 1px solid rgb(0, 0, 0); height: 5px;" cellspacing="0" width="70">

<tbody><tr><td style="background-color: rgb(24, 24, 24);" width="0%"></td>
<td style="background-color: rgb(24, 24, 24);" width="100%"></td></tr>
</tbody></table></td>
</tr>

<tr class="statline">
<td class="title">Ansehen</td>
<td class="value"><table style="border: 1px solid rgb(0, 0, 0); height: 5px;" cellspacing="0" width="70">
<tbody><tr><td style="background-color: rgb(32, 224, 144);" width="100%"></td>
<td style="background-color: rgb(32, 224, 144);" width="0%"></td></tr>

</tbody></table></td>
</tr>


das da oben ist der generierte Quelltext den ich mir anzeigen ließ, mein problem ist das die Expbar ein geringfügiges fitzelchen vertikal breiter ist, klar normal ist es egal aber es nervt mich weil ich es weis ... xD der einzige unterschied ist das width in % aber das ist doch die füllung des balkens oder?

meine frage, wie kann es sein das es bei allem im Firefox die balken richtig anzeigt und ausgeführt werden nur bei der EXP bar nicht? in Chrome z.b. wird alles richtig angezeigt.

aber rein technisch ist es doch unmöglich das mehrfache aufrufe alle gleich sind bis auf 1 und der anders aussieht ... sonst stellt firefox den balken doch auch richtig dar??
grüße

EDIT: habe mal gescreent um einen vergleich zu zeigen, die auffälligkeit ist stärker wenn man es so weit wie möglich vergrößert.


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So 15 Aug, 2010 18:22 
Offline
Held
Held

Registriert: Fr 17 Okt, 2008 20:06
Beiträge: 253
Geschlecht: Männlich
LoGD: off
also bei mir sieht es aus, als ob der Balken für die Exp höher ist..

width dagegen gibt aber die größe in die Vertikale, nicht senkrechte an

Aber was mich verwirrt.. height: ist ja auch bei beiden gleich.. Spiel mal einfach mit den werten von heigth rum. vll. ändert das was. KA

Und wegen deiner Frage mit den 200%

Ich würde sagen ja, wenn ich den Code richtig verstehe, da hier

$this->bbcode_second_pass_code('', '$left=min($left-$full,$full-1); //bei 199% deckeln
$col='#44C050';
$col2='#20E090';
')

ja die Farbe für 199% angeben wird. Es wird aber keine Farbe mehr für 201% definiert.. Dat heißt, wenn du dass $full-1 wegmachst oder falls er die 2. Variable hier braucht $full-0 machst, wird der Balken aufgefüllt bis auf 200%. Da aber für mehr keine Farbe definiert ist, ändert sich genau so viel wie bei der alten grafbar wenn du mehr als 100% hattest.. nämlich nichts

_________________
Wenn ihr mir sagt wie ich es als Datei hochlade, dann kann ich die Source hochladen die ihr wollt .D


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So 15 Aug, 2010 20:22 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 16 Jul, 2005 22:40
Beiträge: 693
Wohnort: /var/server/home/castle
Geschlecht: Männlich
LoGD: http://www.kokoto.de/
Skype: Apfelschokowodkakekskuchen
hm habe jetz 70 6 eingestellt bei exp und ansehen nun ist die ansehensleiste extrem fetter als die für dei erfahrung, und irgendwie berechnet er bei mir die erfahrung nun mit dem balken nicht mehr richtig, er müsste jedesmal 0% rechnen da der balken schwarz bleibt ... keine ahnung wieso muss das mal ergründen...

aber irgendwie scheint es doch nicht ganz zu stimmen was da ausgegeben wird wenn es nicht die gleiche größe hat ... bei den ganz kleinen balken die ich für die schärfe nutze mit höhe 3 gibt es keine probleme oder man sieht es einfach nicht :(


EDIT: Kann es sein das in atrahor die expbar anders gestaltet wurde, irgendwie funktioniert das bei mir nur teilweise mit den berechnungen :>
EDIT2: Das mit der Erfahrung streichen, hat sich erledigt^^


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mo 16 Aug, 2010 15:58 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 02 Feb, 2009 21:11
Beiträge: 168
Geschlecht: Männlich
LoGD: salator.selfhost.de/lotgd
Hm, also das mit den 0% breiten Tabellenfeldern ist so eine Sache, das kann je nach verwendetem Browser unterschiedlich aussehen. Man könnte da einen Workaround machen und in dem Fall für <=0% und für 100% andere Breiten definieren, z.B. $left=50. Die Farbe ist ja ohnehin gleich.
Das selbe Problem tritt dann auch wieder mit 200% auf, hier wird trotzdem noch ganz rechts ein Pixel in der 2. Farbe angezeigt. Man müsste also für 200% eine weitere if-Abfrage machen.

Und ja, Atrahor hat eine ganz andere Version für den Erfahrungsbalken.

_________________
if(date("ymmd")=="10050502") echo("Der alte Sack wird heute 40");


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mo 16 Aug, 2010 17:01 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Schade, dass <meter /> noch von keinem Browser interpretiert wird. ;)


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mo 16 Aug, 2010 17:38 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 16 Jul, 2005 22:40
Beiträge: 693
Wohnort: /var/server/home/castle
Geschlecht: Männlich
LoGD: http://www.kokoto.de/
Skype: Apfelschokowodkakekskuchen
es geht eigentlich um die höhe also die 5/6 px die sich nicht immer gleich verhalten, unabhängig davon ob sie nun gefüllt ist oder nicht.

d.h. 5 grafbars mit 70 5 oder 70 6 und sie sind nunmal nicht alle gleich groß, und man sieht es halt auch wenn man nicht so genau hinschaut weil man eben untereinander die vergleiche hat und mit gutem augenmaß sieht man es, aber habe mich nun damit abgefunden sehe schon das ich der einzige bin den das stört :P


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr 03 Sep, 2010 17:19 
Offline
Eingeweihter
Eingeweihter

Registriert: Mo 31 Aug, 2009 09:26
Beiträge: 67
Geschlecht: Männlich
LoGD: http://nydoria.at
Gefällt mir sehr gut die neue grafbar, hab sie auch gleich eingebaut.
Später ist mir allerdings ein Fehler aufgefallen den ich schließlich auf die "function grafbar" zurückgeführt habe, nämlich dass bei der Spieleranzeige beim Login plötzlich immer ein `0 dahinter stand (Da wird die grafbar für eine Serverbefüllungsanzeige aufgerufen wenn ich das richtig verstanden hab).
Behoben hab ich das so:
$this->bbcode_second_pass_code('', 'Diese Zeile der function grafbar
$u = '`0<table cellspacing="0" style="border: solid 1px #000000; height: '.$height.'px;" width="'.$width.'">

habe ich durch diese ersetzt
$u = '<table cellspacing="0" style="border: solid 1px #000000; height: '.$height.'px;" width="'.$width.'">')
Allerdings weiß ich noch nicht welche sonstigen Konsequenzen das nach sich zieht, aber ich wollte es mal anmerken.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr 03 Sep, 2010 17:36 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 16 Jul, 2005 22:40
Beiträge: 693
Wohnort: /var/server/home/castle
Geschlecht: Männlich
LoGD: http://www.kokoto.de/
Skype: Apfelschokowodkakekskuchen
"behoben" würde ich das nicht nennen, was du gemacht hast ist, es rausgelöscht ;)

das `0 ist der farbtag für </span> um eine Farbe die vorher offen war zu schließen,...

dieses Problem hatte ich auch wenn ich die grafbar mit rawoutput aufgerufen habe, ersetze es vielmehr durch </span> wenn du von "beheben" sprechen willst.. ^^


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So 05 Sep, 2010 02:08 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 02 Feb, 2009 21:11
Beiträge: 168
Geschlecht: Männlich
LoGD: salator.selfhost.de/lotgd
Eigentlich steht das `0 nur an dieser Stelle um für korrektes html zu sorgen. Und damit steht man auf den meisten Servern sowieso auf verlorenem Posten.
Das Löschen von `0 überträgt die Aufgabe, das fehlende </span> einzusetzen, an den Browser.
Ein </span> hinschreiben ist aber auch nicht korrekt, weil die Formatierung dann unter Umgehung der appoencode-Funktion aufgehoben wird. Der html-Fehler wird also nur verschoben.
Ich würde in diesem Fall doch eher dazu raten, das `0 zu löschen. Denn es ist nicht Aufgabe der grafbar-Funktion, vorher vergessene Tags zu schließen.

_________________
if(date("ymmd")=="10050502") echo("Der alte Sack wird heute 40");


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 12 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
cron
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum