anpera.net
https://anpera.dyndns.org/phpbb3/

Status-Anzeige (Rp und Ooc)
https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=3747
Seite 1 von 2

Autor:  Song Sinen [ Mo 25 Jun, 2007 20:02 ]
Betreff des Beitrags:  Status-Anzeige (Rp und Ooc)

Kleine Bitte:
Hier eine kleine Erweiterung die ich heute mit einem Freund ausgetüftelt habe. 8) Es würde mich SEHR freuen wenn ihr das // Copyright im Source und den winzig kleinen Link "pp" drinlassen würdet. Ich kann euch nicht dazu zwingen doch war das hier ne echte Herrausforderung (andere hättens sicher schneller gemacht und sicher auch besser aber ich hab mir Mühe gegeben (und dazu gelernt^^)!)!

Was macht es?
- Sehr schöne Zeitanzeige, nicht als garstiges Prefix sondern mit onmouseover
- Ermöglicht es den Usern schnell und einfach einen Status für den Charakter und den Spieler (sprich 2 verschiedene) anzugeben den jeder mit einer Bewegung über den Namen im Chat lesen kann (auch onmouseover)

Was braucht es?
- Eliwood's herrlichen Chat-Pack!
Es geht auch ohne, doch dann müsst ihr das mit eurer viewcommentary in der common.php ausmachen. Man kanns sogar in den Wer-is-da-Mod und sonstwo integrieren, einfach in der Schleife den Status für den $row['name'] auslesen und mit <span title=\"$statusrp $statusot\" reinverpacken.

Anmerkung
Ich füge noch ein kleines plugin von drweb.de ein.
Kopiert einfach
[php]output("<script type=\"text/javascript\" src=\"BubbleTooltips.js\"></script>
<script type=\"text/javascript\">window.onload=function()
{enableTooltips(null,'a')}; </script>",true);[/php]
gleich unter [php]require_once("common.php");[/php] in die /lib/commentary.php und die 3 files im erweiterung.zip in euer Root-Verzeichniss. ->Effekt siehe Screenshot erweiterungscreen.zip
Da man max. 3 Anhänge je Post machen darf, siehe meinen 2ten Post in diesem Thread.

Einbau
Schwierigkeit: Fortgeschritten

Und so gehts:

1. Führe das in der Datenbank aus:
[php]
ALTER TABLE `accounts` ADD statusrp varchar(50) NOT NULL default 'Unbekannt';
ALTER TABLE `accounts` ADD statusot varchar(50) NOT NULL default 'Unbekannt';[/php]

2.1. Lade status.php in dein Root-Verzeichnis

2.2. Lade status.gif in /images/

3.0. Öffne /lib/commentary.php

3.1. Suche
[php] $linktemplate = '`0<a href="bio.php?char={$LOGIN}&ret={$REQUESTURI}" style="text-decoration: none">'.endl.'`&{$NAME}`0</a>'.endl;
[/php]

3.2. Ersetze duch
[php] $linktemplate = '`0<a href="bio.php?char={$LOGIN}&ret={$REQUESTURI}" style="text-decoration: none" title="{$STATUSRP}">'.endl.'`&{$NAME}`0</a>'.endl; [/php]

3.3. Suche
[php] $sea4linktemplate = array('{$LOGIN}','{$REQUESTURI}','{$NAME}');
$rep4linktemplate = array(RawURLEncode($row['login']),RawURLEncode($REQUEST_URI),$row['name']);

$row['namebackup'] = $row['name'];
$row['name'] = str_replace($sea4linktemplate,$rep4linktemplate,$linktemplate);
addnav('','bio.php?char='.RawURLEncode($row['login']).'&ret='.RawURLEncode($REQUEST_URI));[/php]

3.4. Ersetze durch
[php]$sea4linktemplate = array('{$LOGIN}','{$REQUESTURI}','{$NAME}','{$STATUSRP}');
$rep4linktemplate = array(RawURLEncode($row['login']),RawURLEncode($REQUEST_URI),$row['name'],$statusrp);

$row['namebackup'] = $row['name'];
$vergl=$row['name'];
$sqlx = "SELECT statusrp, statusot FROM accounts WHERE `name` = '$vergl'";
db_query($sqlx);
$resultx = db_query($sqlx);
$rowx = db_fetch_assoc($resultx);
$statusrp=$rowx['statusrp'];
$statusot=$rowx['statusot'];
$statusrp="~$statusrp~ ~$statusot~";

$sea4linktemplate = array('{$LOGIN}','{$REQUESTURI}','{$NAME}','{$STATUSRP}');
$rep4linktemplate = array(RawURLEncode($row['login']),RawURLEncode($REQUEST_URI),$row['name'],$statusrp);

$row['name'] = str_replace($sea4linktemplate,$rep4linktemplate,$linktemplate);
addnav('','bio.php?char='.RawURLEncode($row['login']).'&ret='.RawURLEncode($REQUEST_URI));[/php]

3.5. Suche
[php] // Timestamp
if(COMMENTARY_TIMESTAMP_DISPLAY === true) {
$prefix .= '`0['.date(COMMENTARY_TIMESTAMP_FORMAT, strToTime($row['postdate'])).']`0';
}[/php]

3.6. Füge danach ein
[php] $postzeit=$row[postdate];
$postzeit=substr($postzeit, 11, 12);[/php]

3.7. Suche nach
[php] while (list($sec,$v)=each($comments)){
if(COMMENTARY_USEPARAGRAPHS === true) {
output('<p style="line-height: '.COMMENTARY_LINEHEIGHT.'em; margin-top: '.(COMMENTARY_PARAGRAPHS_MARGIN/2).'em; margin-bottom: '.(COMMENTARY_PARAGRAPHS_MARGIN/2).'em;">'.$v.'</p>',true);
}
else {
output($v.'<br />',true);
}
}[/php]

3.8 Ersetze mit
[php] while (list($sec,$v)=each($comments)){

if(COMMENTARY_USEPARAGRAPHS === true) {
output('<p title='.$postzeit.' style="line-height: '.COMMENTARY_LINEHEIGHT.'em; margin-top: '.(COMMENTARY_PARAGRAPHS_MARGIN/2).'em; margin-bottom: '.(COMMENTARY_PARAGRAPHS_MARGIN/2).'em;">'.$v.'</p>',true);
}
else {
output($v.'<br />',true);
}
}[/php]

4.0. Öffne common.php

4.1. Suche
[php] global $session;
$u =& $session[user];
if ($session[loggedin]){[/php]

4.2. Füge danach ein
[php] $status.="<a href='status.php' target='_blank' class='motd' onClick=\"".popup("status.php").";return false;\" title=\"Dein Status\" ><img src=\"./images/status.gif\" title=\"\" alt=\"lesen\" style=\"border: 0px solid ;\"></a>";
addnav("","status.php",false,true);
[/php]

4.3. Suche
[php] if (getsetting("dispnextday",0)){
$time = gametime();
$tomorrow = strtotime(date("Y-m-d H:i:s",$time)." + 1 day");
$tomorrow = strtotime(date("Y-m-d 00:00:00",$tomorrow));
$secstotomorrow = $tomorrow-$time;
$realsecstotomorrow = round($secstotomorrow / (int)getsetting("daysperday",4));
$charstat.=appoencode(templatereplace("statrow",array("title"=>"`GNächster Tag","value"=>date("G\\h, i\\m, s\\s \\",strtotime("2000-01-01 00:00:00 + $realsecstotomorrow seconds")))),true);
}[/php]

4.4. Füge danach ein
[php]$charstat.=appoencode(templatereplace("statrow",array("title"=>"`GVerschiedenes","value"=>$status)),true);[/php]

4.5. Suche
[php] $nopopups["about.php"]=1;
$nopopups["mail.php"]=1;
$nopopups["chat.php"]=1; [/php]

4.6. Füge danach ein
[php] $nopopups["status.php"]=1;[/php]

4.7. Suche
[php]"chat.php"=>true,"source.php"=>true,[/php]

4.8. Füge danach ein
[php]"status.php"=>true[/php]

5.0. Alles hochladen und freuen 8)

Sicher findet ihr LoGD-Gurus was zum verbessern, also mal her damit!^^
Und bitte bitte nich Kopf abreisen wenn was unsinnig erscheint.

EDIT:
Erweiterung-Update
(Siehe meinen 2ten Post in diesem Thread!)
Have fun! ;)

EDIT: Fehler mit Farben behoben.
Reperaturanleitung unten, Einbauanleitung aktualisiert.

Autor:  Horus [ Mo 25 Jun, 2007 20:35 ]
Betreff des Beitrags: 

Kannst du vielleicht mal einen Screenshot machen, wie das aussieht? Will nichts einbauen, wo ich mir noch nicht viel drunter vorstellen kann, wies nachher aussieht ;) Die IDee klingt aber nett und komfortabel!

Autor:  Eliwood [ Di 26 Jun, 2007 17:46 ]
Betreff des Beitrags: 

Muss das mit Rar komprimiert sein? Nimm bitte zip, da kann man wenigstens sicher sein, dass man es auf allen Majorsystemen aufbekommt.

Edit: Dankeschön :)

Autor:  Auric [ Di 26 Jun, 2007 20:02 ]
Betreff des Beitrags: 

Interessante Idee, werde ich demnächst mal ausprobieren!

Autor:  Song Sinen [ Di 26 Jun, 2007 22:01 ]
Betreff des Beitrags: 

Hier die im 1. Thread erwähnte Erweiterung.
Siehe "Anmerkung"!

Autor:  Horus [ Di 26 Jun, 2007 22:43 ]
Betreff des Beitrags: 

Mal ne Frage:
Hast du auch ne Möglichkeit das Fenster
a)nur anzuzeigen wenn man auf den Namen klickt
und
b)an der Position zu bleiben und sich erst zuschließen, wenn sich der Mauszeiger zu weit entfernt? Damit man z.B. ein Auswahlmenü einbauen kann...

Und ist die größe der Sprechblase auch irgendwie abänderbar?

Autor:  Montekar [ Mi 27 Jun, 2007 08:29 ]
Betreff des Beitrags: 

Das ist cool :D Mir würds aber reichen, wenn nur der RPG-Status angezeigt wird... Ist sehr praktisch dann weiß man immer was wer macht :)

Autor:  Harthas [ Mi 27 Jun, 2007 08:33 ]
Betreff des Beitrags: 

@ Horus: Vermutlich könntest du die Grösse der Blase direkt in der .js-Datei ändern.

@ Eliwood: Hattest du auf Linux Probleme damit, .rar-Archive zu entpacken? *g* Klappt eigentlich ganz gut (Zumindest bei mir)

Autor:  Song Sinen [ Mi 27 Jun, 2007 15:07 ]
Betreff des Beitrags: 

Bei der Größe der Blase muss man unterscheiden. Stimmt, die Höhe richtet sich in erster Linie nach den Inhalten und dem js, wenn du aber die Breite ändern willst machst du das am besten im gif. (Sind aber n paar transparente Pixel drin die die Blase durchscheinen lassen. Du solltest aufpassen mit was du das gif bearbeitest!)

Hm, wie das mit dem Klick ist und dem wegbewegen... Bin leider ratlos, da fehlt es mir an Wortschatz... 8(

Den Ooc-Bereich kann man ja leicht rauslöschen. ;)

Autor:  Eliwood [ Mi 27 Jun, 2007 18:11 ]
Betreff des Beitrags: 

Harthas hat geschrieben:
@ Eliwood: Hattest du auf Linux Probleme damit, .rar-Archive zu entpacken? *g* Klappt eigentlich ganz gut (Zumindest bei mir)


Fedora liefert kein unrar mit :D
(Aus nachvollziehbaren Gründen. Rar ist und bleibt halt proprietär)

Autor:  Song Sinen [ Mi 27 Jun, 2007 21:18 ]
Betreff des Beitrags: 

Hm, 4 mal runtergeladen...
^^ Wie hats funktioniert? Klappt der Einbau oder hab ich was vergessen?
Was sagen eure User dazu?

Autor:  Horus [ Mi 27 Jun, 2007 21:43 ]
Betreff des Beitrags: 

Also, einbau hat gut funktioniert, funzt auch, werde es aber für was anderes nutzen, da ich sowas ähnliches wie eine Statusanzeige schon habe.
Bei meinem Spielern war wohl das Problem, dass wenn sie ihren Status geändert haben beim nächsten Akualisieren die Navs weg waren und auch nichts mehr gin. Würde ich vlt. mal abwarten, ob die anderen das selbe Problem hatten. Hab deine Gif-Grafik auch leeeicht verändert. Ist jetzt eher braun und die Ränder fast mit der selben Farbe, mcih haben die weissen Pixel an der Seite gestört, die etwas... Meiner Meinung nach unschön aussahen.

Autor:  Song Sinen [ Do 28 Jun, 2007 14:42 ]
Betreff des Beitrags: 

Der Badnav beim Status-Aktualisieren dürfte daran liegen dass du das
Status-Popup in der common.php nicht richtig eingefügt hast. Schau mal ob
du die Punkte 4.6 bis 4.8 richtig gemacht hast. Hm, könntest du die neue
Sprechblase mal hochladen, würd mich interessieren?^^

Autor:  Song Sinen [ Fr 29 Jun, 2007 17:01 ]
Betreff des Beitrags: 

Offenbar ist mein Status-Mod schuld daran, dass bei einigen Usern die Farbe im Namen nicht mehr dargestellt wird.

Eliwood hat es hier aufgeschlüsselt:

http://anpera.homeip.net/forum/viewtopi ... 6681#36681

Sollte das Problem bei euch auftauchen wisst ihr woher es kommt.
^^ Ich versuchs zu fixen.

Sry,

Song Sinen

EDIT:

Eliwood sei Dank ist der Fehler behoben.
Die Einbauanleitung wird aktualisiert und hier ist die Reperaturanleitung für alle die ihn schon haben:

1.0. Öffne /lib/commentary.php

1.1. Suche
[php] if(COMMENTARY_USEPARAGRAPHS === true) {
output('<p style="line-height: '.COMMENTARY_LINEHEIGHT.'em; margin-top: '.(COMMENTARY_PARAGRAPHS_MARGIN/2).'em; margin-bottom: '.(COMMENTARY_PARAGRAPHS_MARGIN/2).'em;">'.$v.'</p></span>',true);
}
else {
output($v.'<br /></span>',true);
}
}[/php]

1.2. Ersetze mit
[php] if(COMMENTARY_USEPARAGRAPHS === true) {
output('<p title='.$postzeit.' style="line-height: '.COMMENTARY_LINEHEIGHT.'em; margin-top: '.(COMMENTARY_PARAGRAPHS_MARGIN/2).'em; margin-bottom: '.(COMMENTARY_PARAGRAPHS_MARGIN/2).'em;">'.$v.'</p>',true); //</span> nach </p>
}
else {
output($v.'<br />',true);
}
}[/php]

1.3. Suche und entferne
[php]$prefix="<span title='$postzeit'>$prefix";[/php]

2.0. commentary.php hochladen

^^ Das wars auch schon.

Autor:  Song Sinen [ Sa 30 Jun, 2007 13:07 ]
Betreff des Beitrags: 

Hab mich wegen Horus Fragen nochmal umgesehen:

http://www.walterzorn.de/tooltip/tooltip.htm

Hier findest du die nötigen Befehle um die Fenster zu positionieren.
z.B.
[php]CLICKCLOSE // Schließt das Tooltip, sobald der Benutzer irgendwo in das Tooltip oder in das Dokument klickt. Wert: true, false.[/php]

Damit kann man sich die Anzeige so zurechtbasteln wie man sie haben will, ganz individuell.

Autor:  Horus [ Sa 30 Jun, 2007 17:03 ]
Betreff des Beitrags: 

Hey, danke, schau ich mir gleich mal an.
Bild ist im Anhang. HAbs wirklich nur leicht geändert. Liegt daran, dass diese Farbe bei mir ins Dorf eher reinpasst als das blaue ;)

Autor:  Song Sinen [ Sa 30 Jun, 2007 17:42 ]
Betreff des Beitrags: 

8) Da dank ich doch!

Autor:  Squall [ Mi 18 Jul, 2007 07:09 ]
Betreff des Beitrags: 

Morgen!

Nach 3 Stunden manuelles absuchen meiner common, nach den Codestücken die ja in der Anleitung gepostet wurden, fand ich weder per maunelles suchen, noch unter suche von 3 verschiedenen php-editoren..
und gab es genervt auf..zumal ich ich nicht mal eine lib/commentray besitze...blieb mir ja nur meine common von oben bis unten zu durchsuchen..

da dein script aber nicht auf eine eine standartcommon ausgelegt ist, und ich nun leider keine lust mehr habe :baeh: ..weiter wien blöder zu suchen :D ..hab ich es aufgegeben.. :pein:

PS:aber anstonsten ein nettes Feature..

mfg

Autor:  Song Sinen [ Mi 18 Jul, 2007 07:57 ]
Betreff des Beitrags: 

Hm, ich hab mir hier mal die common.php runtergeladen.

[php]global $session;
$u =& $session[user];
if ($session[loggedin]){ [/php]
in den Zeilen 626 bis 628

[php]if (getsetting("dispnextday",0)){
$time = gametime();
$tomorrow = strtotime(date("Y-m-d H:i:s",$time)." + 1 day");
$tomorrow = strtotime(date("Y-m-d 00:00:00",$tomorrow));
$secstotomorrow = $tomorrow-$time;
$realsecstotomorrow = round($secstotomorrow / (int)getsetting("daysperday",4));
$charstat.=appoencode(templatereplace("statrow",array("title"=>"`GNächster Tag","value"=>date("G\\h, i\\m, s\\s \\",strtotime("2000-01-01 00:00:00 + $realsecstotomorrow seconds")))),true);
} [/php]
in den Zeilen 683 bis 690

[php] $nopopups["about.php"]=1;
$nopopups["mail.php"]=1;
$nopopups["chat.php"]=1;[/php]
in den Zeilen 1005 bis 1007

[php]"chat.php"=>true,"source.php"=>true, [/php]
in der Zeile 1768

Die Suchenfunktion in den meisten (so ziemlich in allen) Editoren ist leider nicht die schlauste, bis auf Groß- Klein- Schreibung ignorieren kann sie nichts als blos vergleichen. Wenn du aus einem <php> Feld </php> hier was rauskopierst hast du automatisch hinter jeder Zeile ein -> <- Leerzeichen, da dies aber nicht im Source steht wird er es nicht finden. Am besten du nimmst dir einfach immer eine Zeile aus meinen Sourcebeispielen raus und achtest dass bei der Suche am Schluss kein leerzeichen steht, dann findet er's auch. ;)

Lg,
Song Sinen

Autor:  Squall [ Mi 18 Jul, 2007 17:28 ]
Betreff des Beitrags: 

Song Sinen hat geschrieben:
Hm, ich hab mir hier mal die common.php runtergeladen.

[php]global $session;
$u =& $session[user];
if ($session[loggedin]){ [/php]
in den Zeilen 626 bis 628

[php]if (getsetting("dispnextday",0)){
$time = gametime();
$tomorrow = strtotime(date("Y-m-d H:i:s",$time)." + 1 day");
$tomorrow = strtotime(date("Y-m-d 00:00:00",$tomorrow));
$secstotomorrow = $tomorrow-$time;
$realsecstotomorrow = round($secstotomorrow / (int)getsetting("daysperday",4));
$charstat.=appoencode(templatereplace("statrow",array("title"=>"`GNächster Tag","value"=>date("G\\h, i\\m, s\\s \",strtotime("2000-01-01 00:00:00 + $realsecstotomorrow seconds")))),true);
} [/php]
in den Zeilen 683 bis 690

[php] $nopopups["about.php"]=1;
$nopopups["mail.php"]=1;
$nopopups["chat.php"]=1;[/php]
in den Zeilen 1005 bis 1007

[php]"chat.php"=>true,"source.php"=>true, [/php]
in der Zeile 1768

Die Suchenfunktion in den meisten (so ziemlich in allen) Editoren ist leider nicht die schlauste, bis auf Groß- Klein- Schreibung ignorieren kann sie nichts als blos vergleichen. Wenn du aus einem <php> Feld </php> hier was rauskopierst hast du automatisch hinter jeder Zeile ein -> <- Leerzeichen, da dies aber nicht im Source steht wird er es nicht finden. Am besten du nimmst dir einfach immer eine Zeile aus meinen Sourcebeispielen raus und achtest dass bei der Suche am Schluss kein leerzeichen steht, dann findet er's auch. ;)

Lg,
Song Sinen


danke, die beiden oberen fand ich bereits heut morgen nach langem suchen..

den einzigen code den ich nicht fand ist der hier:

$this->bbcode_second_pass_code('', '$linktemplate = '`0<a href="bio.php?char={$LOGIN}&ret={$REQUESTURI}" style="text-decoration: none" title="{$STATUSRP}">'.endl.'`&{$NAME}`0</a>'.endl;')

ka...wo der sich versteckt...selbst unter suche findet mein blöder php-editor den nicht..dat miss ding lol

Seite 1 von 2 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/