Seite 1 von 1
Anzahl Zeichen in einem Beitrag
Verfasst: 14.04.2015 05:17
von redbull254
Hallo erstmal,
es geht um diese Einstellung im ACP:
Minimale Anzahl von Zeichen pro Beitrag/Nachricht:
Die minimale Anzahl von Zeichen, die ein Benutzer in einem Beitrag/einer Nachricht mindestens eingeben muss. Der Wert muss 1 oder größer sein
An sich eine feine Funktion, um schreibfaule User ein bissel zu beeinflussen, damit sie mehr Text schreiben. Leider werden beim Einfügen von Dateianhängen (Bilder) auch die Bezeichnungen mit dazu gezählt. Wenn also jemand ein Bild einfügt und einen langen Bildnamen wählt, braucht er nur noch minimal Text einfügen. Das hebelt den Sinn der Funktion völlig aus. Daher suche ich ein Snippet, dass es ermöglicht, dass nur der eigentliche Text in einem Beitrag gezählt wird und die Bezeichnung der Dateianhänge völlig unberücksichtigt bleibt. Idealerweise gilt das Gleiche bei Smilies, auch deren Kurznamen werden berücksichtigt.

Re: Anzahl Zeichen in einem Beitrag
Verfasst: 14.04.2015 12:51
von Elsensee
Sowas ähnliches dachten wir uns auch.
Deswegen haben wir die Funktion
strip_bbcode()
verwendet, die aber
leider anders funktioniert als man es erst erwartet.
Was soll's... Hier das Snippet:
Öffne: includes/message_parser.php
Finde:Code: Alles auswählen
$message_length = ($mode == 'post') ? utf8_strlen($this->message) : utf8_strlen(preg_replace('#\[\/?[a-z\*\+\-]+(=[\S]+)?\]#ius', ' ', $this->message));
Ersetzen mit:Code: Alles auswählen
$stripped_text = $this->message;
strip_bbcode($stripped_text);
$message_length = ($mode == 'post') ? utf8_strlen($stripped_text) : utf8_strlen(preg_replace('#\[\/?[a-z\*\+\-]+(=[\S]+)?\]#ius', ' ', $stripped_text));
Re: Anzahl Zeichen in einem Beitrag
Verfasst: 14.04.2015 18:29
von redbull254
Hallo @Elsensee
erst einmal vielen Dank für die schnelle Hilfe. Leider funktioniert es bei mir nicht. Es wird trotz Änderung weiterhin alles gezählt.
Beim Einfügen eines Bildes ohne beigefügten Text :
[_attachment=0]2 DSC_0525 EBV.jpg[/attachment_]
//Die Unterstriche dienen nur dazu, dass hier die "attachment" angezeigt werden.
erscheint folgende Meldung, wenn ich die Vorschau anklicke:
Deine Nachricht enthält 45 Zeichen. Es müssen jedoch mindestens 50 Zeichen verwendet werden
Re: Anzahl Zeichen in einem Beitrag
Verfasst: 15.04.2015 12:46
von Elsensee
Argh, stimmt. Ich hatte vergessen, dass der Dateiname ja in die Tags eingeschlossen wird.
Dann machen wir folgendes: (wir bleiben bei der Zeile

)
Öffne: includes/message_parser.php
Finde:Code: Alles auswählen
$message_length = ($mode == 'post') ? utf8_strlen($this->message) : utf8_strlen(preg_replace('#\[\/?[a-z\*\+\-]+(=[\S]+)?\]#ius', ' ', $this->message));
Ersetze mit:Code: Alles auswählen
$stripped_text = preg_replace('#\[attachment=([0-9]+)\](.*?)\[/attachment\]#ius', '', $this->message);
strip_bbcode($stripped_text);
$message_length = ($mode == 'post') ? utf8_strlen($stripped_text) : utf8_strlen(preg_replace('#\[\/?[a-z\*\+\-]+(=[\S]+)?\]#ius', ' ', $stripped_text));
Dies entfernt nun die attachment-BBCodes inklusive Inhalt sowie alle anderen BBCode-Tags (aber da natürlich nur die Tags und nicht den Inhalt

)
Wenn du nicht willst, dass die Tags der anderen BBCodes mitentfernt werden, dann kannst du die mittlere Zeile
strip_bbcode($stripped_text);
einfach weglassen.
Re: Anzahl Zeichen in einem Beitrag
Verfasst: 15.04.2015 23:25
von redbull254
Danke für die Änderung, nun funktioniert es.
Ich habe es ausgiebig getestet und kann nicht feststellen, ob die Änderung irgendwelche Nachteile hat, außer dem Vorteil, dass nun die Zeichenzählung so funktioniert, wie ich es erwartet habe. Nun frage ich mich, ob es einen Nachteil gibt, den ich nicht bemerke oder warum haben die Entwickler diese Änderung nicht von vornherein gemacht?