anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Do 28 Mär, 2024 16:44

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 471 Beiträge ]  Gehe zu Seite Vorherige  1 ... 20, 21, 22, 23, 24
Autor Nachricht
BeitragVerfasst: Fr 05 Aug, 2011 14:57 
Offline
Lehrling
Lehrling

Registriert: Di 01 Mai, 2007 11:51
Beiträge: 26
Ne da steht ja nix weiter drin... :hmpf:

$this->bbcode_second_pass_code('', 'function viewcommentary($section, $message = COMMENTARY_DEFAULTMESSAGE,$limit = COMMENTARY_DEFAULTLIMIT, $talkline = COMMENTARY_DEFAULTTALKLINE, $arg5 = false) {
global $session;

if(COMMENTARY_USE_COMPABILITY_MODE) {
$comment = new Commentary(&$session['user'],$section,$message,$limit,$talkline);
}
else {
$comment = new Commentary(&$session->user->data,$section,$message,$limit,$talkline);
}

/* Entklammere die Untere Funktion, wenn du die Standardfarben des Users injezieren willst
* Der Erste Parameter ist für die Sprechfarbe, der zweite Parameter für die /me-Farbe, der dritte für die /X-Farbe. */
$comment->ChangeDefaultColors('`%', '`5', '`^');

if(defined('COMMENTARY_ADD') && StrToLower($message) != 'x' && strToLower($message) != 'y') {
$comment->Add();
}



if(strToLower($message) == 'x') {
// Admin
if(empty($arg5)) {
$comment->SuView();
}
else {
$comment->SuView($arg5[0], $arg5[1]);
}
}
elseif(strToLower($message) == 'y') {
// View only, Idea from anpera.NET, thanks Leen
$comment->View(false);
}
else {
// Normal *g*
$comment->View();
}

unset($comment);
}

?>')


LG
Shendo


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr 05 Aug, 2011 17:11 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Es gibt hier 2 Möglichkeiten.

Die erste ist die Funktion viewcommentary() bearbeiten, und zwar nach: $this->bbcode_second_pass_code('', ' global $session;'), aber vor $this->bbcode_second_pass_code('', 'if(COMMENTARY_USE_COMPABILITY_MODE) {').
$limit muss dann einfach überschrieben werden mit dem Wert, welcher der User gesetzt hat.

Die zweite Möglichkeit (Die, die ich bei mir selbst verwendet habe) ist, darauf zu achten, dass die commentary.settings.php möglichst spät eingebunden wird (Was sie eigentlich sowieso werden sollte). Dann kann man nämlich an der Definition der Konstante rumspielen:
$this->bbcode_second_pass_code('', 'if(!empty($session['user']['prefs']['defaultcommentlimit'])) {
define('COMMENTARY_DEFAULTLIMIT', intval($session['user']['prefs']['defaultcommentlimit']));
}
else {
define('COMMENTARY_DEFAULTLIMIT', 5);
}')


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa 06 Aug, 2011 11:00 
Offline
Lehrling
Lehrling

Registriert: Di 01 Mai, 2007 11:51
Beiträge: 26
Sorry Eli, aber ich verstehe momentan nur Bahnhof, werde anscheinend doch alt... :cry:

Ich möchte was einbauen wo die User, halt in den Einstellungen, selber auswählen können wieviele Kommentare sie
sehen können, oder noch besser wäre es, so wie es in der V3 ist, dass man das direkt in der Village, Garden oder wo auch
immer auswählen kann...*


LG
Shendo


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa 06 Aug, 2011 11:12 
Offline
Profi
Profi

Registriert: Sa 15 Jan, 2011 23:15
Beiträge: 100
Weil du gerade von der V3 redest. Du weißt schon, dass das MIO Bundle für die 0.97er ist? und nicht für V2.5 Dragonslayer?


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa 06 Aug, 2011 11:15 
Offline
Lehrling
Lehrling

Registriert: Di 01 Mai, 2007 11:51
Beiträge: 26
Natürlich weiss ich das Jack, denn ansonsten, wenn ich das für die V3 bräuchte,
dann würde ich hier ja nicht nachfragen, denn da ist es gleich mit drin... ;)

Möchte ja nur eine ähnliche Lösung...*


LG
Shendo


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi 10 Aug, 2011 22:10 
Offline
Lehrling
Lehrling

Registriert: Di 01 Mai, 2007 11:51
Beiträge: 26
*sorry wegen Doppelpost*

Hmmm, niemand eine Idee oder Lösung?



MbG
Shendo


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi 10 Aug, 2011 22:51 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Shendo hat geschrieben:
*sorry wegen Doppelpost*

Hmmm, niemand eine Idee oder Lösung?

[..]


Doch, die hab ich dir ja präsentiert. Du könntest natürlich darauf eingehen und sagen, was du inwiefern nicht verstanden hast, dann kann ich dir die Idee besser erläutern - aber eine fixfertige Lösung werde ich dir nicht präsentieren. Es ist nicht schwer.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Do 11 Aug, 2011 08:40 
Offline
Lehrling
Lehrling

Registriert: Di 01 Mai, 2007 11:51
Beiträge: 26
Danke Eliwood, hat sich mittlerweile erledigt!


Nun habe ich aber noch eine andere Frage,
und zwar verwende ich dein Munch-Bundle!
Jetzt möchte ich gerne diesen Tool-Tip einbauen, welcher das Datum und Uhrzeit
anzeigt im jeweiligen Post, wenn man mit der Mouse drüberfährt!

Was muss ich dafür in der lib/commentary.php ändern,
denn da ist ja nun auch die "function viewcommentary" drin ?!?



LG
Shendo


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Do 11 Aug, 2011 10:26 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Sollte reichen, die Einstellung "COMMENTARY_TIMESTAMP_TYPE" auf "wz_tooltip" zu setzen und dieses dann einzubauen (http://www.walterzorn.de/tooltip/tooltip.htm). Ich weiss aber nicht, inwiefern die neue Version noch kompatibel ist mit dem Bundle. Zur Installation sollten die ersten beiden Schritte auf der genannten Seite ausreichen (Mit HTML-Datei ist hier das Template gemeint, du musst das für jedes Template wiederhohlen).


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Do 11 Aug, 2011 16:53 
Offline
Lehrling
Lehrling

Registriert: Di 01 Mai, 2007 11:51
Beiträge: 26
Danke nochmal Eliwood,
aber ich habe nun herumgetestet, die Uhrzeit habe ich zwar hinbekommen.
aber das onmouseout="UnTip() hat nicht funktioniert,sprich,
der Tooltip blieb ewig am Mauszeiger hängen bis man aktualisiert hat oder
halt den Ort gewechselt, ausserdem ist da nur die Uhrzeit mit zu sehen,
und ich hätte es auch gerne mit Datum gehabt...*

Aber mal eine Frage zu deiner lib/commentary.setting.php,
warum ist dort zweimal COMMENTARY_TIMESTAMP_TYPE drin?

LG
Shendo

edit: Hab es nun anders gelöst, aber danke nochmal für die Tipp´s Eliwood !


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Do 12 Nov, 2015 02:16 
Offline
Newbie

Registriert: So 15 Jan, 2012 09:59
Beiträge: 3
Drazaar hat geschrieben:
Laserian hat geschrieben:
Drazaar das Problem hab ich auch, und ich glaube ich weiß an was es liegt, aber nicht wie es zu beheben ist

$comment->ChangeDefaultColors($session['user']['prefs']['commenttalkcolor'], $session['user']['prefs']['commentemotecolor'], $session['user']['prefs']['commentemotecolor']);

ich schätze, dass du in der function viewcommentary in etwa so etwas stehen hast und das ist dafür verantwortlich, dass posts anderer spieler in deinen eigenen Farben angezeigt werden

Ich hab von oop aber nicht wirklich viel ahnung und weiß deshalb nicht ob ein ändern auf $row da was ändert und wenn obs auch funktioniert damit aber es müssten bei der funktion die standardfarben des postverfassers angegeben werden und nicht die des users der sie sich ansieht
Falls du damit mehr anfangen kannst und das entsprechend ändern kannst wär ich froh wenn du die Lösung hier posten könntest ;)

Mfg
Laserian

Ja, das sehe ich auch so, aber warum funktionieren dann die die restlichen Emotes? Eigentlich müsste ich doch dann auch bei : und /X falsche Farben sehen, bzw. meine eigenen Standardfarben?
Ich peil den Sinn dieser Funktion eigentlich nicht, denn alles was sie tut ist die in der prefs hinterlegten Standardfarben in drei Variablen abzuspeichern. WArum nicht gleich $this->user['prefs']['commentemotecolor'] benutzen, statt $this->coloremote? Weil kürzer?^^

Andererseits, wo ist der doofe Schritt, der die richtigen Farben bei den restlichen Emotes herholt, denn eigentlich wird ja alles richtig angezeigt, außer bei $emote = 0.

Der Fehler ist eigentlich ganz einfach zu beheben. In der Funktion processComment wird $row mitgeliefert. Man sollte sichergehen, dass auch die prefs in der accounts ausgelesen wird und sich somit in $row befindet. Also entweder in der Funktion fetch() hinzufügen oder in der Funktion GuildPrefixes(), wenn man denn ein Gildensystem nutzt.
Dann noch den Code hier rein
ersetze:
$this->bbcode_second_pass_code('', '
case 0: {
$post = $this->playernamecolor.substr($row['name'], 0, -2).$this->coloremote." sagt: «".$this->colorspeak.trim($this->nl2paragraph($row['comment'])).$this->coloremote."»`0".endl;
')
durch
$this->bbcode_second_pass_code('', 'case 0: {
$prefs = unserialize($row['prefs']);
$color_speak = $prefs['commenttalkcolor'];
if($color_speak == '')
$color_speak = '`#';
$color_emote = $prefs['commentemotecolor'];
if($color_emote == '')
$color_emote = '`3';

$post = $this->playernamecolor.substr($row['name'], 0, -2).$color_emote." sagt: «".$color_speak.trim($this->nl2paragraph($row['comment'])).$this->coloremote."»`0".endl;
')
Die Sache ist nur, dass das halt den Fehler übertüncht. Ich würde ihn aber gerne verstehen...


Auch wenn das etwas alt ist. Falls ich einen Post dazu überlesen haben sollte der das erklärt. Ich habe eine Theorie. Kann es aber zur Zeit nicht testen, da ich das logd gerade für private Zwecke wieder aufbaue und es noch nicht läuft. Ich aber gerade dabei bin alles zu installieren was ich will bin ich hier drüber gestolpert

Aber ich habe folgende Theorie:

Die Standardfarbe für die direkte Rede (emote = 0) wird NICHT mit in die Datenbank übergeben. Sobald du ein Emote nutzt (emote > 0) wird in der public function Add() die Funktion interpretQuotationMarks($commentary) aufgerufen. Diese fügt die Farbcodes dem Kommentar selbst hinzu und dadurch werden diese in der Datenbank selbst gespeichert. Man kann es so lösen wie du es getan hast.. Was aber vermutlich auch hilft ist

man suche in der commentary.php

$this->bbcode_second_pass_code('', '# Anführungszeichen interpretieren, sofern nicht direkte Rede
if($this->emote > 0) {
$commentary = $this->interpretQuotationMarks($commentary);
}')

und fügt danach ein
$this->bbcode_second_pass_code('', 'if ($this->emote == 0) {
$commentary = $this->colorspeak . $commentary;
}')

Theoretisch sollte das auch schon helfen. Denn jetzt wird an den Anfang des Kommentars der Farbcode der Sprache eingefügt und dieser wird dann auch in der Datenbank gespeichert. (wie oben erwähnt ist ungetestet, da es lokal noch nicht läuft und falls ich eine Antwort überlesen habe die das erklärt und meine sogar total falsch ist. Sorry)

Edit: Gegeben den Umständen, dass man vorher über die ChangeDefaultColor() die entsprechenden Farben anpasst aus den prefs falls du die dort für die User zwischenspeicherst


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 471 Beiträge ]  Gehe zu Seite Vorherige  1 ... 20, 21, 22, 23, 24

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 35 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