Plugin User ignorieren
pid=foxumuserignor1
Version: 0.083
Autor: Mike48
Quelle: https://www.friends-of-xobor.de
Support: https://www.hpm-support.de/t545566f11769190-Plugin-User-ignorieren.html
Bitte geben Sie einen Grund für die Verwarnung an
Der Grund erscheint unter dem Beitrag.Bei einer weiteren Verwarnung wird das Mitglied automatisch gesperrt.
Entstehung des Plugin PN mit Historie
Postman
Es hat schon immer gestört, dass man nicht die Ursprungsnachricht sieht auf die geantwortet wird.
Die Idee war, wenn man auf den Speicher-Button klickt, dass dann die Ursprungsnachricht einfach an die Mail angehangen wird.
Die Ursprungsnachricht steht bei den meisten Templates beim Antworten unter dem Antwort-Formular.
Idee war (schon lange) da, jetzt ging es ans Plugin erstellen.
Benötigt wird dafür das Element Private Mails - Neue Nachricht.
Ich nehme dann gerne den Footer. Wenn der Footer geladen wird, ist in der Regel alles geladen was für das Plugin nötig ist und man kann sich das $( document ).ready( . . . ) sparen.
Als nächstes eine Config-Variable für die Gruppenrechte anlegen.
Postman
Mit der Elementuntersuchung ging ich auf die Suche um den Speicher-Button zu selektieren.
Im Business ist das der input-Tag mit der id=sendmailbutton.
Also eine Funktion geschrieben, die auf den Speicher-Button-Klick reagiert und das in der Konsole anzeigt.
2
3
$("#sendmailbutton").click(function() {
console.log("Speicher-Button gedrückt");
});
Den Klick konnte ich in auf der Konsole erst sehen, als ich die Option "Nicht leeren" aktiviert hatte, da beim Klick die Seite gewechselt wird und die Konsole sonst dabei geleert wurde.
Als nächstes kam das Problem dran, wie bekomme ich beim Speichern noch Text an die Nachricht gehangen.
Eine Variable deklarieren in die der Text der neuen Nachricht kommt. Also der Text aus der Textarea.
Dann an diese Variable noch etwas Zusätzliches anhängen.
Nach einigen Versuchen ist das dabei rausgekommen
2
3
4
5
6
var pn_textarea = ""; // Variable für den neuen Nachrichtentext
$("#sendmailbutton").click(function() { // Speicherbutton geklickt
pn_textarea = $('#messagetext').val(); // Text aus der Textarea in Variable schreiben
pn_textarea += "Hier kommt noch was Zusaetzliches dran"; // Zusaetzlichen Text anhaengen
$('#messagetext').val(pn_textarea); // alles in die neue Nachricht schreiben
});
und hat funktioniert. An der Antwort hing unten noch der Text dran, "Hier kommt noch was Zusaetzliches dran".
Postman
Da jetzt auch JS-Variablen und Funktionen zum Einzatz kommen, möchte ich den JS kapseln, um nicht mit anderen Scripten in Konflikt zu geraten. Dafür baue ich eine Funktion ein, die auch sofort ausgeführt wird
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<script>
(function () { // begin - Kapselung
/* Alles was zwischen begin - Kapselung und ende - Kapselung steht
* ist local und nur innerhalb dieser Funktion gueltig
* Das betrifft Variablen die mit var definiert sind
* und alle Funktionen
*/
var pn_textarea = ""; // Variable für den neuen Nachrichtentext
$("#sendmailbutton").click(function() { // begin - Speicherbutton geklickt
pn_textarea = $('#messagetext').val(); // Text aus der Textarea in Variable schreiben
pn_textarea += "Hier kommt noch was Zusaetzliches dran"; // Zusaetzlichen Text anhaengen
$('#messagetext').val(pn_textarea); // alles in die neue Nachricht schreiben
}); ende - Speicherbutton geklickt
})(); // ende - Kapselung
</script>
Als nächstes möchte ich die Ursprungsnachricht haben und wenn möglich, hinten anhängen.
Postman
Wenn man die Ursprungsnachricht aus dem HTML der Seite entnehmen will, dann steht der nur als HTML zur Verfügung. HTML kann aber nicht an die Nachricht gehangen werden.
Ich probiere Foren-Codes aus, so wie sie auch beim Nachrichten schreiben in der Iconbar zur Verfügung stehen und stelle fest, das funktioniert. Ich kann aber nicht die ganze Ursprungsnachricht von HTML in Foren-Code umwandeln. Vor allem nicht, wenn in den Nachrichten reichhaltiger Gebrauch von der Iconbar gemacht wurde. Ich erinnere mich an frühere Plugin Entwicklungen, dass es da wahrscheinlich eine reply-Funktion geben könnte, wo Werte von der Ursprungsnachricht enthalten sein könnten, die auch für das zitieren sein könnte. Ich mache mich in der Template Entwicklicklung im Element "Neue Nachricht" auf die Suche und werde fündig.
Beim durchforsten aller Templates (Business, Gaia, ProSilver, Standard) fand ich einige Forenvariablen. Ich schrieb also ein Script, mit dem ich alle Forenvariablen auf der Konsole ausgab, um zu sehen, was sie enthalten.
Da konnte man zB. den Unterschied zwischen reply_text und reply_quote sehen. reply_text war mit html-Code und reply_quote mit Foren-Code.
Diese Variablen habe ich gefunden
2
3
4
5
6
7
8
9
10
11
12
13
14
{{reply}} 0/1 wenn Ursprung vorhanden (beim antworten)
{{reply_text}} Ursprung in html
{{reply_quote}} Ursprung in Forencodes
{{reply_messagetime}} Zeitstempel 10stellig (1529944499)
{{reply_messagetime|dateformat}} "vor einer Minute" oder "25.06.2018 18:34"
{{reply_title}} Ursprungstitel
{[pn_message_original_by]} "Ursprüngliche Mail von mike48"
{{reply_avatar}} url zum Avatar
{{reply_user_link}} (u11_mike--.html)
{{reply_user}}
{{reply_uname}}
{[pm_reply_title]} "In Antwort auf"
{[new_reply_quote]} "Diesen Beitrag zitieren"
{{reply_username_quote}}
Als erstes habe ich die Variable {{reply}} ausgewertet. Neue Nachricht und Antworten ist dass gleiche Element. Unser Plugin soll nur bei Antworten funktionieren, da nur dort etwas angehangen werden soll. Bei einer neuen Nachricht gibt es ja noch nichts zum anhängen.
2
3
4
5
6
7
8
9
{{reply==1.start}}
/* hier kommt der Code hin zum anhängen wenn reply 1 ist
*
* wenn reply 0 ist, dann handelt sich um eine neue Nachricht
* wenn reply 1 ist, dann handelt sich um eine Antwort
*/
{{reply==1.end}}
Postman
Die angehangene Ursprungsnachricht soll so formiert ausgeben werden, dass man sieht von wem sie ist, von wann sie ist und welchen Betreff bzw Titel sie hat. Außerdem sollen alle Ursprungsnachrichten eine optische Trennung haben.
Da kein html funktioniert nehmen wir aus der Iconbar das Icon "[ line]" um eine Trennlinie zwischen die Nachrichten zu bekommen. Das Icon "[ line]" ist im Default der Iconbar in den unsichtbaren Icons aller Templates enthalten und müsste in jedem Forum verfügbar sein, sofern ein Admin es nicht gelöscht hat. Das ist aber dann das Problem des Admin.
Zur Formatierung benöten wir auch Zeilenumbrüche. "<br>" geht nicht, da kein html möglich. Mit der String-Funktion "String.fromCharCode(num1[, ...[, numN]])" kann man jedes UTF-16 Zeichen in einen String einfügen. Eine Zeilenschaltung hat den Code 13.
Wir erstellen eine Variable für eine Zeilenschaltung und für eine Trennlinie
2
var zeile = String.fromCharCode(13); // Zeilenschaltung mit CR
var line = "[line]"; // Trennline mit Icon line aus der Iconbar
Datum und Uhrzeit der Ursprungsnachricht.
Bei Tests mit der Forenvariablen und Datumsformatierun "{{reply_messagetime|dateformat}}" kamen keine brauchbaren Ergebniss zustande. Als Ergebnis hatte man wie im Forum auch, entweder Datum mit Urzeit im Format TT.MM.JJJJ SS:MM oder "vor xy Minaten. Das wird dann aber als Text eingebaut und im Gegenteil zu Forenbeiträgen nicht aktualisiert beim aufrufen der Nachricht.
{{reply_messagetime}} ergibt eine 10 stellige Zahl.
Mit new Date( {{reply_messagetime}} ) kam allerdings immer ein falsches Datum und falsch Zeit zurück oder es gab Fahler die auf ein falsches Format hin deuten. Für ein neues Dateobjekt new Date() wird ein Wert in Millisekunden benötigt. Dafür müsste die Zahl 13 stellig sein. Ich nahm an, dass {{reply_messagetime}} dann Sekunden sind und habe sie mit 1000 multipliziert um Millisekunden zu bekommen.
So bekam ich ein gültiges Datum mit Uhrzeit zB. dieses Sun Jul 08 2018 10:17:55 GMT+0200
var datestamp = new Date({{reply_messagetime}} * 1000); // millisec noch anhaengen sonst falsches Datum/Zeit
Aus dieser Variablen kann man nun mit dem Date-Objekt von JS die einzelnen Werte holen und zu einem Datum mit Urzeit formatieren.
2
3
4
5
6
7
8
9
var datestamp = new Date({{reply_messagetime}} * 1000); // millisec noch anhaengen sonst falsches Datum/Zeit
var tag = datestamp.getDate();
var monat = datestamp.getMonth();
var jahr = datestamp.getFullYear();
var stunde = datestamp.getHours();
var minute = datestamp.getMinutes();
var pn_zeit = tag + "." + monat + "." + jahr + " " + stunde + ":" + minute;
Oder gerkürzt
2
3
var datestamp = new Date({{reply_messagetime}} * 1000); // millisec noch anhaengen sonst falsches Datum/Zeit
var pn_zeit = datestamp.getDate() + "." + datestamp.getMonth() + "." + datestamp.getFullYear() + " " + datestamp.getHours() + ":" + datestamp.getMinutes();
Das ergab dann zB. 12.5.2018 9:2.
Das sah nicht schön aus und ich musste bei so einer Anzeige immer überlegen, um wieviel Uhr war das?
Der nächste Schritt war dann, außer das Jahr was immer vierstellig ist, alle anderen Werte auf zweistellig zu ändern.
Die Funktion für zweistellig
2
3
4
5
6
7
8
9
10
11
12
13
function zweistellig(tmp) {
// einstellige Werte von Tag, Monat, Std, Min, Sec in zweistellig
if (tmp < 10) {
// wenn keiner 10 dann von einstellig auf zweistellig
return "0" + tmp; // eine Null davor setzen
}else{
// wenn nicht kleiner 10 dann unbehandelt zurueck
return tmp;
}
}
// Datum und Uhrzeit mit zweistelligen Werten
var pn_zeit = zweistellig(datestamp.getDate()) + "." + zweistellig(datestamp.getMonth() +1 ) + "." + datestamp.getFullYear() + " " + zweistellig(datestamp.getHours()) + ":" + zweistellig(datestamp.getMinutes());
Postman
Betreff Zeile
In die Betreff Zeile soll der Titel der Nachricht, auf die geantwortet wird.
Für die Bezeichnung gibt es die Sprach-Variable {[name_subject]}. Die enthält im Business den Text Betreff.
Für den Betreff haben wird die Variable {{reply_title}}. Darin steht der Titel der Nachricht. Sonderzeichen und Umlaute sind als ESC-Sequenzen darin. Der Titel muss dekodiert werden.
Zum dekodieren verwenden wir wieder eine bewerte Funktion aus unseren anderen Plugins
2
3
4
5
6
function decodeString(encoded){ // escape Zeichen umwandeln in normale Zeichen.
var $helper = $("<div>").html(encoded);
return $helper.html();
}
var Titel = decodeString("{{reply_title}}")
Postman
Die Antwort mit den Ursprungsnachrichten verbinden und abschicken
Nachdem nun scheinbar alle Komponenten vorhanden waren, ging es darum, die Antwort mit der Ursprungsnachricht zu verbinden um sie dann abschicken zu können.
Unter die Antwort sollen folgende Komponenten
- 1 Leerzeile - var zeile
- Tennstrich - var linie
- 1 Leerzeile - var zeile
- Ursprüngliche Mail von . . . - Sprach-Variable {[pn_message_original_by]}
- Betreff: - Sprach-Variable {[name_subject]}
- Datum: - var pn_zeit
- Nachricht: - Foren-variable {{reply_quote}}
2
3
4
5
6
7
8
9
10
11
var datestamp = new Date({{reply_messagetime}} * 1000); // millisec noch anhaengen sonst falsches Datum/Zeit
// Datum und Uhrzeit in zweistelligem Format erstellen
var pn_zeit = zweistellig(datestamp.getDate()) + "." + zweistellig(datestamp.getMonth() +1 ) + "." + datestamp.getFullYear() + " " + zweistellig(datestamp.getHours()) + ":" + zweistellig(datestamp.getMinutes());
var zeile = String.fromCharCode(13); // 13 fuer Zeilenschaltung mit CR
var line = "[line]"; // Trennline mit Icon line aus der Iconbar
// Zusammensetzen der neuen Nachricht mit Angang
var txt = zeile + line + zeile + "[b]{[pn_message_original_by]}[/b]" + zeile + "[b]{[name_subject]}: [/b]"+decodeString("{{reply_title}}") + zeile + "[b]{[name_datetime]}: [/b]" + pn_zeit + zeile + "[b]Nachricht:[/b]" + zeile + "{{reply_quote}}";
Dann wurde festgestellt, dass in der Foren-Variable {{reply_quote}} alle Leerzeilen entfernt sind. Dadurch waren auch die Leerzeilen oberhalb und unterhalb der Trennline weg.
Durch die Erweiterung der Variable "Leerzeile" um ein geschütztes Leerzeichen "String.fromCharCode(160)" waren die Leerzeilen oberhalb und unterhalb der Trennline wieder da.
var zeile = String.fromCharCode(160,13); // geschütztes Leerzeichen (160) plus CR-Code (13)
Postman
Im den Kopfdaten der Ursprungsnachricht wollen wir Teile mit Fett hervorheben. Dafür fügen wir die Forencodes "[ b] . . . [ /b] ein, die in allen Foren vorhanden sein müssten.
Die Leerzeilen oberhalb der Trennlinie sind nicht immer vorhanden. Es wurde festgestellt, dass es darauf ankommt, ob die Nachricht mit einer Zeilenschaltung am Ende abschließt oder nicht. Schließt sie ohne ab, dann fehlt eine Leerzeile über der Trennlinie.
Durch hinzufügen einer zusätzlichen Zeilenschaltung vor das geschützte Leerzeichen kann man das beheben. Dadurch schließen die Nachrichten immer mit Zeilenschaltungen ab, entweder mit einer, oder wenn schon eine vorhanden war, mit zwei. Da in der Foren-Variable {{reply_quote}} alle Leerzeilen entfernt werden, bleiben nur die Zeilen übrig mit dem geschütztrn Lerrzeichen und wir haben oberhalb und unterhalb der Trennlinie eine Zeile nur mit einem Leerzeichen. Sieht aus wie Leerzeilen.
Die Variable line für den Trennstrich besteht aus
- einer Zeilenschaltung (CharCode 13),
- einem geschützten Leerzeichen (CharCode 13),
- einer Zeilenschaltung (CharCode 13),
- ForenCode line aus der Iconbar,
- einem geschützten Leerzeichen (CharCode 13),
- einer Zeilenschaltung (CharCode 13)
var line = String.fromCharCode(13,160, 13) + "[line]" + String.fromCharCode(160,13); // CR + Geschuetztes Leerzeichen + line + Geschuetztes Leerzeichen + CR
Wir umfassen unseren Code noch mit {{template==144.start}} und {{template==144.end}} damit er nur im Business ausgeführt wird.
Jetzt haben wir eine funktionierden Verson für das Business Templat.
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
{{template==144.start}}
{{reply==1.start}}
{{plugin_pnhistorie01_config_rechte==true.start}}
<script>
(function () { // begin Kapsel
function decodeString(encoded){ // escape Zeichen umwandeln in norame zeichen.
var $helper = $("<div>").html(encoded);
return $helper.html();
}
function zweistellig(tmp) {
// einstellige Werte von Tag, Monat, Std, Min, Sec in zweistellig
if (tmp < 10) {
return "0" + tmp;
}else{
return tmp;
}
}
function diceAndSend() {
// Button Speichern betaetigt
// Historie an PN anhaengen
var zeile = String.fromCharCode(13); // CR-Code
var line = String.fromCharCode(13,160, 13) + "[line]" + String.fromCharCode(160,13); // CR + Geschuetztes Leerzeichen + line + Geschuetztes Leerzeichen + CR
var datestamp = new Date({{reply_messagetime}} * 1000); // millisec noch anhaengen sonst falsches Datum/Zeit
console.log("Datum und Zeit Ursprungsnachricht: "+datestamp);
var pn_zeit = zweistellig(datestamp.getDate()) + "." + zweistellig(datestamp.getMonth() +1 ) + "." + datestamp.getFullYear() + " " + zweistellig(datestamp.getHours()) + ":" + zweistellig(datestamp.getMinutes());
var txt = line + "[b]{[pn_message_original_by]}[/b]" + zeile + "[b]{[name_subject]}: [/b]"+decodeString("{{reply_title}}") + zeile + "[b]{[name_datetime]}: [/b]" + pn_zeit + zeile + "[b]Nachricht:[/b]" + zeile + "{{reply_quote}}";
var pn_textarea = $('#messagetext').val(); // Nachricht aus Textarea lesen
$('#messagetext').val(pn_textarea += txt); // Nachricht mit angehangener Ursprungsnachricht abschicken
}
$("#sendmailbutton").click(function() {
diceAndSend(); // Vorherige Mail anhaengen als Historie
});
})(); // ende Kapsel
</script>
{{plugin_pnhistorie01_config_rechte==true.end}}
{{reply==1.end}}
{{template==144.end}}
Als nächstes erkunden wir die Möglichkeiten, das Plugin auch in der mobilen Ansicht zu benutzen, damit alle User des Business, unabhängig ihrer benutzten Geräte in den Genuss des Plugin kommen.
Postman
Mobile Ansicht
In der mobilen Ansicht müssen wir Vorsorge treffen, dass unser Code ausgefürt wird, wenn auch jQuery geladen ist. Dafür verwenden wir folgenden Code
2
3
4
5
6
{{footerjs.start}}
{{footerjs}}
// hier kommt der Code hin
{{footerjs.end}}
Die script-Tags entfallen, da sie schon vorgegeben sind.
Hinter die Forenvariable {{footerjs}} schreiben unser Script. Dadurch ist gewährleistet, dass jQuery schon verfügbar ist, bevor unser Script ausgeführt wird.
In der mobilen Ansicht hat der Button "Mail schicken" und die Textarea eine andere id. Wir können also das gleiche Script wie im Business verwenden und passen lediglich die beiden IDs an.
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
{{template==77.start}}
{{plugin_pnhistorie01_config_rechte==true.start}}
{{reply==1.start}}
console.log("reply_quote==true");
{{footerjs.start}}
{{footerjs}}
(function () { // begin Kapsel
function decodeString(encoded){ // escape Zeichen umwandeln in norame zeichen.
var $helper = $("<div>").html(encoded);
return $helper.html();
}
function zweistellig(tmp) {
// einstellige Werte von Tag, Monat, Std, Min, Sec in zweistellig
if (tmp < 10) {
return "0" + tmp;
}else{
return tmp;
}
}
function diceAndSend() {
// Button Speichern betaetigt
// Historie an PN anhaengen
var zeile = String.fromCharCode(13); // CR-Code
var line = String.fromCharCode(13,160, 13) + "[line]" + String.fromCharCode(160,13); // CR + Geschuetztes Leerzeichen + line + Geschuetztes Leerzeichen + CR
var datestamp = new Date({{reply_messagetime}} * 1000); // millisec noch anhaengen sonst falsches Datum/Zeit
var pn_zeit = zweistellig(datestamp.getDate()) + "." + zweistellig(datestamp.getMonth() +1 ) + "." + datestamp.getFullYear() + " " + zweistellig(datestamp.getHours()) + ":" + zweistellig(datestamp.getMinutes());
var txt = line + "[b]{[pn_message_original_by]}[/b]" + zeile + "[b]{[name_subject]}: [/b]"+decodeString("{{reply_title}}") + zeile + "[b]{[name_datetime]}: [/b]" + pn_zeit + zeile + "[b]Nachricht:[/b]" + zeile + "{{reply_quote}}";
var pn_textarea = $('#text').val(); // Nachricht aus Textarea lesen
$('#text').val(pn_textarea += txt); // Nachricht mit angehangener Ursprungsnachricht abschicken
}
$("#sendpm").click(function() {
diceAndSend(); // Vorherige Mail anhaengen als Historie
});
})(); // ende Kapsel
{{footerjs.end}}
{{reply==1.end}}
{{plugin_pnhistorie01_config_rechte==true.end}}
{{template==77.end}}
Damit das Script nur in der mobilen Ansicht ausgeführt wird, umfassen wir es mit {{template==77.start}} . . . {{template==77.end}}.
Der Code für Business wird mit {{template==144.start}} . . . {{template==144.end}} umfasst.
Die ID für den Button "Mail schicken ändern wir von #sendmailbutton in #sendpm, und für Textarea von #messagetext in #text.
Zusammengesetzt haben wir folgendes Script
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
{{template==144.start}}
{{reply==1.start}}
{{plugin_pnhistorie01_config_rechte==true.start}}
<script>
(function () { // begin Kapsel
function decodeString(encoded){ // escape Zeichen umwandeln in norame zeichen.
var $helper = $("<div>").html(encoded);
return $helper.html();
}
function zweistellig(tmp) {
// einstellige Werte von Tag, Monat, Std, Min, Sec in zweistellig
if (tmp < 10) {
return "0" + tmp;
}else{
return tmp;
}
}
function diceAndSend() {
// Button Speichern betaetigt
// Historie an PN anhaengen
var zeile = String.fromCharCode(13); // CR-Code
var line = String.fromCharCode(13,160, 13) + "[line]" + String.fromCharCode(160,13); // CR + Geschuetztes Leerzeichen + line + Geschuetztes Leerzeichen + CR
var datestamp = new Date({{reply_messagetime}} * 1000); // millisec noch anhaengen sonst falsches Datum/Zeit
console.log("Datum und Zeit Ursprungsnachricht: "+datestamp);
var pn_zeit = zweistellig(datestamp.getDate()) + "." + zweistellig(datestamp.getMonth() +1 ) + "." + datestamp.getFullYear() + " " + zweistellig(datestamp.getHours()) + ":" + zweistellig(datestamp.getMinutes());
var txt = line + "[b]{[pn_message_original_by]}[/b]" + zeile + "[b]{[name_subject]}: [/b]"+decodeString("{{reply_title}}") + zeile + "[b]{[name_datetime]}: [/b]" + pn_zeit + zeile + "[b]Nachricht:[/b]" + zeile + "{{reply_quote}}";
var pn_textarea = $('#messagetext').val(); // Nachricht aus Textarea lesen
$('#messagetext').val(pn_textarea += txt); // Nachricht mit angehangener Ursprungsnachricht abschicken
}
$("#sendmailbutton").click(function() {
diceAndSend(); // Vorherige Mail anhaengen als Historie
});
})(); // ende Kapsel
</script>
{{plugin_pnhistorie01_config_rechte==true.end}}
{{reply==1.end}}
{{template==144.end}}
{{template==77.start}}
{{plugin_pnhistorie01_config_rechte==true.start}}
{{reply==1.start}}
console.log("reply_quote==true");
{{footerjs.start}}
{{footerjs}}
(function () { // begin Kapsel
function decodeString(encoded){ // escape Zeichen umwandeln in norame zeichen.
var $helper = $("<div>").html(encoded);
return $helper.html();
}
function zweistellig(tmp) {
// einstellige Werte von Tag, Monat, Std, Min, Sec in zweistellig
if (tmp < 10) {
return "0" + tmp;
}else{
return tmp;
}
}
function diceAndSend() {
// Button Speichern betaetigt
// Historie an PN anhaengen
var zeile = String.fromCharCode(13); // CR-Code
var line = String.fromCharCode(13,160, 13) + "[line]" + String.fromCharCode(160,13); // CR + Geschuetztes Leerzeichen + line + Geschuetztes Leerzeichen + CR
var datestamp = new Date({{reply_messagetime}} * 1000); // millisec noch anhaengen sonst falsches Datum/Zeit
var pn_zeit = zweistellig(datestamp.getDate()) + "." + zweistellig(datestamp.getMonth() +1 ) + "." + datestamp.getFullYear() + " " + zweistellig(datestamp.getHours()) + ":" + zweistellig(datestamp.getMinutes());
var txt = line + "[b]{[pn_message_original_by]}[/b]" + zeile + "[b]{[name_subject]}: [/b]"+decodeString("{{reply_title}}") + zeile + "[b]{[name_datetime]}: [/b]" + pn_zeit + zeile + "[b]Nachricht:[/b]" + zeile + "{{reply_quote}}";
var pn_textarea = $('#text').val(); // Nachricht aus Textarea lesen
$('#text').val(pn_textarea += txt); // Nachricht mit angehangener Ursprungsnachricht abschicken
}
$("#sendpm").click(function() {
diceAndSend(); // Vorherige Mail anhaengen als Historie
});
})(); // ende Kapsel
{{footerjs.end}}
{{reply==1.end}}
{{plugin_pnhistorie01_config_rechte==true.end}}
{{template==77.end}}
- Friends of Xobor - kurz gesagt: FoX
- Gaststube
- Werkstatt
- Seminarraum
- Gast-Teststrecke User ignorieren
- Plugin-Schmiede
- Supported by FoX - PN mit Historie
- Supported by FoX - UserToGroup
- Supported by FoX - Account Switcher
- Schlag nach
- Archiv
- Subforum Ebene 2
- Unterforum Ebene 3
- Unterforum Ebene 4
- Unterforum Ebene 4 (Level 6)
- Unterforum Ebene 5 (Level 7)
Ähnliche Themen
Thema | Antworten | Aufrufe | Letzte Aktivität | |||
---|---|---|---|---|---|---|
Plugin Pfeile (Drop/Down) von TripleM xPlugin Pfeile (Drop/Down) von TripleM x |
2
Gabi
06.12.2020 |
1894 |
|
|||
PN mit Historie - Beschreibung des PluginPN mit Historie - Beschreibung des Plugin |
7
Mike48
03.09.2018 |
2070 |
|
Jetzt anmelden!
Jetzt registrieren!