MyBB.de Forum
Schon länger geplant - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Plugin-Diskussionen (https://www.mybb.de/forum/forum-38.html)
+--- Thema: Schon länger geplant (/thread-22046.html)

Seiten: Seiten: 1 2


Schon länger geplant - Plexxart - 06.02.2010

Servus Forum

Schon länger geplant war in meinem Forum beim Erstellen eines neuen Themas oder einer neuen Antwort eine zusätzliche Funktion die bewirkt, dass beim Uploaden eines Attachments ein kleines Gif aufgeht, welches dem User mitteilt, dass dieses auf dem Server geladen wird. Dieses habe ich selbst gebastelt, wenn wer will kann dies selbstverständlich für sein Forum verwenden.

[Bild: http://www.plexxart.at/Forum/mybb_129_de/Upload/images/Bild_laden.gif]

Ich hätte also gerne, dass beim Betätigen des Buttons "Attachment hinzufügen" dieses Bild im Browser geladen wird.
Ich weiss schon, dass dazu das Template "post_attachments_new" zu bearbeiten ist aber leider habe ich nicht die Kenntnis davon, wie dieses per Skript umzusetzen sei.

Ich weiss auch nicht, ob dies viel Arbeit ist oder nur ein paar Sätze.
Also wenn sich einer meiner erbarmen könnte, wärs feinWink

Danke schon mal für eure Antworten !

Grüsse
Walter


RE: Schon länger geplant - querschlaeger - 06.02.2010

Dann müsste das Bild per JavaScript angezeigt werden, da die Seite solange nicht neugeladen werden kann (und damit auch nicht die Grafik angezeigt werden kann), bis alle POST/FILE/GET-Elemente an den Server geschickt wurden.

Könnte man evtl. sehr einfach mit einem onclick-Event auf den Button "Attachment hinzufügen" lösen.


RE: Schon länger geplant - Plexxart - 06.02.2010

Hallo
Danke dir Querschläger für die rasche Antwort !
Nun so wirklich schwer ists ja für die Profis nicht, zumal ich das hier schon mal beim Downloaden von Plugins gesehen habe. Hier in diesem Forum sah das damals so aus:

[Bild: http://www.plexxart.at/Forum/mybb_129_de/Upload/images/spinner_big.gif]

Viel problematischer ist in meinem Forum beim Upload von grösseren Dateien. Dann dauert es halt und die User wissen nicht ob jetzt etwas passiert oder nicht. Da ists schon passiert, dass die nochmals den Button betätigt haben und die Datei dann 2 Mal am Server gestanden ist.

Zitat:Könnte man evtl. sehr einfach mit einem onclick-Event auf den Button "Attachment hinzufügen" lösen.

Nun ich kann das Skript sicher nicht schreiben, aber vielleicht hat das einer schon mal gemacht und das Skript fertig in der Lade liegen und würde es netterweise hier veröffentlichen.

Gruss
Walter


RE: Schon länger geplant - StefanT - 06.02.2010

Vielleicht hilft dir das: http://www.learntechnology.net/content/ajax/ajax_upload.jsp


RE: Schon länger geplant - querschlaeger - 06.02.2010

Wenn du auf die Grafik vezichten kannst, dann hänge einfach das an das Feld dran:

Code:
onclick="this.value='Bitte warten...';this.disabled=true"

Dann ändert sich der Button "Attachment hinzufügen" beim Draufklicken in "Bitte warten..." und wird ausgegraut (nicht mehr anklickbar).

Ist zumindest die einfachste Variante (und funktioniert auch nur, wenn der User JavaScript nicht deaktiviert hat!).

P.S.: Das funktioniert übrigens bei jeden Button (z.B. bei "Antwort schreiben" oder "Vorschau ansehen").


RE: Schon länger geplant - Plexxart - 06.02.2010

Servus

Ich danke euch für eure Hilfestellung !

querschlaeger schrieb:Wenn du auf die Grafik vezichten kannst, dann hänge einfach das an das Feld dran:

Code:
onclick="this.value='Bitte warten...';this.disabled=true"

Dieser Code funktioniert zwar von der Optik, sprich der Button verändert sich, aber es wird keine Datei hinaufgeladen.

Nun ich habe es jetzt mit folgenden Codeschnipsel versucht:

Code:
<a href="javascript:void(0);"onClick = "window.open('{$theme['imgdir']}/Bild_laden.gif','foo','width=400,height=200');"target="_self"></a>
Diesen kannte ich noch von meiner Homepage und er funktioniert auch, nur schliesst sich das Fenster nicht nach erfolgtem Upload. :undecided:

Auch hätte ich gerne, dass nur das Bild ohne Browserfenster angezeigt wird.

Hat da einer von euch noch ein paar Tipps wie ich das lösen kann.

Gruss Walter


RE: Schon länger geplant - querschlaeger - 06.02.2010

Okay, den Button zu deaktivieren legt auch die Übertragung der FILES-Parameter lahm. Wieder was gelernt.

Hier ist nun das, was du möchtest:

Öffne das Template post_attachments_new und suche nach (evtl. vorher das Template nach dem ganzen Experimentieren wieder zurücksetzen Wink ):
PHP-Code:
<input type="submit" class="button" name="newattachment" value="{$lang->add_attachment}"  tabindex="12" /> 

Ersetzte es hiermit:
PHP-Code:
<span style="display: none;" id="newattachment"><img src="{$theme['imgdir']}/spinner.gif" alt="" /> Bitte warten...</span><input type="submit" class="button" name="newattachment" value="{$lang->add_attachment}tabindex="12" onclick="document.getElementById('newattachment').style.display='inline'; this.style.display='none';" /> 

Nach dem Klick auf den Button, wird dieser unsichtbar (kann also keiner nochmal draufklicken) und direkt ersetzt mit der "Kreiselgrafik" von MyBB und den Worten "Bitte Warten..."

Der Upload funktioniert auch wunderbar (diesmal von mir überprüft).

P.S.: Du bist doch der, welcher noch MyBB 1.2 verwendet, oder? Evtl. heißt dort das Template anders und vielleicht ist auch der Button ist etwas anders mit HTML realisiert. Ich hoffe du kannst es trotzdem adaptieren.


RE: Schon länger geplant - Plexxart - 06.02.2010

Danke dir vielmals Querschläger ! [Bild: http://www.plexxart.at/Forum/mybb_129_de/Upload/images/smilies/dankeschoen.gif]

Das funktioniert jetzt pipifein, habe nur vor dem Spinner ein <br/> eingefügt weils in deiner Version nach dem Button "Attachment aktualisieren" lief.

Hab dir auch noch eine positive Bewertung verpasst Wink

Vielen Dank nochmals !

Liebe Grüe

Walter


RE: Schon länger geplant - querschlaeger - 06.02.2010

(06.02.2010, 19:24)Plexxart schrieb: Das funktioniert jetzt pipifein, habe nur vor dem Spinner ein <br/> eingefügt weils in deiner Version nach dem Button "Attachment aktualisieren" lief.

Die semantisch bessere Variante wäre einfach das öffnende und schließende span durch div zu ersetzen und anstelle
Code:
document.getElementById('newattachment').style.display='inline'

dies zu schreiben
Code:
document.getElementById('newattachment').style.display='block'

Freut mich, dass es klappt. Smile


RE: Schon länger geplant - querschlaeger - 08.02.2010

Ein kleiner Hinweis: Der Internet Explorer zeigt leider keine animierten Grafiken an, d.h. der Kreisel wird sich nicht drehen. Das liegt daran, dass er alle Animationen stoppt, sobald ein Forumlar abgesendet wird. Es gibt diverse Workarounds welche man im Netz finden kann, aber alle sehr unschön sind (mit iframe, innerHTML, ...) und irgendwie nicht immer funktionieren. Was ich auch versucht habe, dieses Problem zu umgehen, esl lief immer auf eine relativ komplexe JavaScript-Funktion hinaus.

Da ich wahrhaftig kein Experte bin was JS angeht (d.h. diese netten kleinen Browser-Workaround-Tricks nicht kenne, welche man durch Erfahrung lernt), kann ich leider keine Lösung dafür bieten.