MyBB.de Forum

Normale Version: Ajax Shoutbox
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
das mit der unterschiedlichen Farbe liegt an meiner Faulheit Smile
Ich habe nämlich - anstatt ein Link zu benutzen - ein <u>-Tag benutzt und ein JS-Eventhandler reingeballert, da bei dem Klick auf den Link ständig die Scrollbar nach oben geflutscht ist ^^
Man könnte ja im Template nach "Shoutbox löschen" suchen und drum herum ein <font color=farbe> ... </font> einfügen
Ich hatte da schon gesucht allerdings nach einer Farbangabe, ok werde das noch schnell machen, - sollte ich hinbekomen. Danke für den Tipp!
So, ich habe das nun auch mal geschafft, den Code von XxAnimusxX einzubauen. Big Grin

Und der Link für das Löschen der Shouts erscheint auch in der richtigen Farbe. Wink

Dass nach dem Löschen der Shouts in der Box plötzlich wieder die alten Shouts erscheinen, war komischerweise nur beim aller ersten Mal. Danach kam das nicht wieder vor. Auch wenn ich die Shouts immer und immer wieder lösche.

Eine Frage habe ich aber noch: Nach dem Löschen der Shouts erscheint in der Box die Nachricht, dass z.Z. keine Shouts vorliegen. Wenn ich nun eine Nachricht los schicke, erscheint diese nicht in der Box. Da kann man noch so lange warten. Wenn ich jedoch in die Vollansicht gehe, steht sie dort drin. Zurück in der Shoutbox, ist die Nachricht plötzlich auch dort vorhanden und ab dem Zeitpunkt funktioniert alles wunderbar. Ist das Problem bekannt?
Ich vermute es hat was mit den AJAX-Befehlen zu tun, ich kann mir da leider keinen Reim drauf machen, da ich nicht allzu oft mit AJAX arbeite.
Nach der Syntax scheint der zusätzliche Code zu stimmen, was genau nun diesen Fehler verursacht kann ich auch nicht sagen, ich habe in den Originalcode der Shoutbox geschaut und nichts finden können, was die Funktion des Shout-Einfügens beeinflussen könnte...
Ich meine wenn es wirklich nicht klappt fügt man da einfach den Link "index.php?action=empty_shoutbox" ein und gut ist x'D
XxAnimusxX schrieb:Ich vermute es hat was mit den AJAX-Befehlen zu tun, ich kann mir da leider keinen Reim drauf machen, da ich nicht allzu oft mit AJAX arbeite.
na immerhin. Ich kenn das bislang nur im Zusammenhang mit Amsterdam. Smile

XxAnimusxX schrieb:Ich meine wenn es wirklich nicht klappt fügt man da einfach den Link "index.php?action=empty_shoutbox" ein und gut ist x'D
Nachdem die Shouts eh nur vom Admin gelöscht werden sollen und das zu einem Zeitpunkt, an dem das Forum kurzfristig geschlossen sein wird, ist das nicht sooo tragisch.

Nur Interesse halber: kann der von Dir genannten Link einfach als Ersatz für
Code:
index.php?action=full_shoutbox
gesetzt werden?
Man müsste aus meinem vorigen Template-Code folgendes suchen:
Code:
[<u onClick="deleteShouts();" style="cursor:pointer;">Shoutbox löschen</u>]
und mit diesem Code ersetzen:
Code:
[<a href="?action=empty_shoutbox" target="_parent">Shoutbox löschen</a>]
Darauf hin ist natürlich folgender Codebereich unnötig und kann ebenfalls entfernt werden:
Code:
function deleteShouts()
{
new ajax('index.php?action=empty_shoutbox',{postBody:"",onComplete:handle_shoutbox});
}

function handle_shoutbox(resp)
{
  if (/success/.test(resp.responseText))
  {
  document.getElementById("shoutbox_data").innerHTML = "Es gibt z.Z. keine Shouts.";
  }
}
Erst einmal vielen Dank für die Info! Smile

Nach den Änderungen musste ich merken, dass ich nach dem Löschen der Shouts in Ankes Hexenforum gelandet bin. Da wurden die Augen aber groß. Wink
Musste also noch Ankes Plugin-Datei bzgl. der Weiterleitung ändern.

Dann habe ich aber noch eine Änderung vorgenommen, damit nach dem Löschen der Shouts doch noch das "...Laden"-Zeichen erscheint.

Meine Fkt. sb_empty-_shout() sieht jetzt so aus:
PHP-Code:
function sb_empty_shout()
{
    global 
$db;

    if (
sb_can_delete()) {
        
$db->query("TRUNCATE ".TABLE_PREFIX."sf_shouts");
        
$db->query("INSERT INTO ".TABLE_PREFIX."sf_shouts VALUES (NULL, 1, 'Ein neuer Shout in einer geleerten Box. :augenroll:', ".time().", '127.0.0.1')");
        echo 
"success!<br><br><a href=http://www.zumeinerSeite.de/index.php>Zur&uuml;ck zur Startseite</a>";
    } else {
        echo 
"failed!";
    }

    exit;

Dann funktioniert es auch sofort mit dem Schreiben. Anderenfalls geht es mal und mal geht es nicht.

Jetzt probier ich noch, ob ich die Änderung hin bekomme, dass ein SuperMod zwar nicht die komplette Tabelle aber einzelne Shouts löschen kann.
Damit es zukünftig nicht zu verwechslungen kommt, kann man die Variable:
$mybb->settings[bburl] benutzen, diese beinhaltet die URL zum eigenen Forum. Also:
PHP-Code:
echo "success!<br><br><a href=".$mybb->settings[bburl]."/index.php>Zur&uuml;ck zur Startseite</a>"
ja, das ist besser. Danke Smile

Kann man so eine Änderung im Plugin eigentlich machen, ohne es vorher deaktivieren?
Änderungen, die nicht mit dem "pluginname_activate()" oder "pluginname_deactivate()" zu tun haben, können sofort durch das Ändern der Daten und anschließend Hochladen/Ersetzen des Plugins durchgeführt werden, da diese Funktionen/Eigenschaften in Echtzeit bei jedem Neuladen einer Seite aufgerufen werden - die oben genannten Initialisierungsfunktionen eines Plugins jedoch nur bei der jeweilig auszulösenden Aktion.
Seiten: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15