Pagina 1 van 1
Eerste smilie in een quote wordt niet getoond.
Geplaatst: 03 feb 2009, 11:54
door marian0810
- Adres van je forum: http://www.atkinsforum.info/forum
Event. modificaties op je forum: Veel, maar niks relevants
Wanneer ontstond het probleem? Was er altijd al, is volgens mij een bug in phpBB
phpBB versie: 3.0.4
Heb je onlangs iets veranderd aan je forum? nvt
Wat is het probleem?
^^ Dit gebeurt dus iedere keer wanneer een bericht begint met een smilie en daarna wordt gequote. Ik begrijp wel waarom, door het quoten staat er geen spatie meer voor. Maar als het zelfs in phpBB2 wel kon moet er toch een oplossing voor te vinden zijn? Ik blijf hier steeds weer klachten over krijgen van leden, en terecht

Hebben jullie er geen last van dan?
Als niemand een directe oplossing weet, dan misschien via een omweg? Het zou bijvoorbeeld al helpen als ik kon vinden hoe ik elke quote (met of zonder smilie) standaard met een spatie kan laten beginnen...
Re: Eerste smilie in een quote wordt niet getoond.
Geplaatst: 03 feb 2009, 12:13
door Ger
Dat komt dan doordat een smilie altijd door whitespace voorafgegaan moet worden en ook opgevolgd moet worden (is nodig om onderscheid te maken tussen de code van de smilie en de rest). Als je klikt op een smilie uit de lijst wordt dit automatisch gedaan, maar als je het typt wordt dat nogal eens vergeten. Niet erg in een gewoon bericht (want dan staat er niets voor en is het dus ook goed), maar wel als je dat vervolgens quote (want dan staat er een blokhaak van de quote-bbcode voor).
Vergelijk dit maar eens:
Re: Eerste smilie in een quote wordt niet getoond.
Geplaatst: 03 feb 2009, 12:27
door marian0810
Ja dat zei ik, ik weet wel hoe het komt

Maar ik heb dringend een oplossing nodig!!
Niemand die weet hoe ik standaard elke quote met een spatie kan laten beginnen?
Re: Eerste smilie in een quote wordt niet getoond.
Geplaatst: 05 feb 2009, 09:37
door Ger
Zou mogelijk moeten zijn... Je zou eens kunnen kijken in
/includes/message_parser.php
ZOEK
PLAATS DAARACHTER
Code: Selecteer alles
$this->message = preg_replace('#\[quote(.*?)\]#si', '[quote$1] ' , $this->message);
Geen garantie op succes, want ik heb het niet getest. Dit zal overigens alleen werken bij nieuwe berichten (of als je oude berichten edit, dan worden zo opnieuw geparsed).
Re: Eerste smilie in een quote wordt niet getoond.
Geplaatst: 05 feb 2009, 12:15
door marian0810
Ger ik kan je wel zoenen!!
Ik heb je oplossing niet eens nodig gehad, toen ik in dat bestand zat viel mijn oog op dit stukje:
Code: Selecteer alles
/**
* Prepare some bbcodes for better parsing
*/
function prepare_bbcodes()
{
// Ok, seems like users instead want the no-parsing of urls, smilies, etc. after and before and within quote tags being tagged as "not a bug".
// Fine by me ;) Will ease our live... but do not come back and cry at us, we won't hear you.
/* Add newline at the end and in front of each quote block to prevent parsing errors (urls, smilies, etc.)
if (strpos($this->message, '[quote') !== false && strpos($this->message, '[/quote]') !== false)
{
$this->message = str_replace("\r\n", "\n", $this->message);
// We strip newlines and spaces after and before quotes in quotes (trimming) and then add exactly one newline
$this->message = preg_replace('#\[quote(=".*?")?\]\s*(.*?)\s*\[/quote\]#siu', '[quote\1]' . "\n" . '\2' ."\n[/quote]", $this->message);
}
*/

WTF???
Ok, seems like users instead want the no-parsing of urls, smilies, etc. after and before and within quote tags being tagged as "not a bug".
Blijkbaar heeft een of andere %@$#$ gedacht dat gebruikers het zo beter vonden?? Nou niet dus!!

Dus gewoon comments weggehaald en nu werkt het als een zonnetje

Re: Eerste smilie in een quote wordt niet getoond.
Geplaatst: 05 feb 2009, 13:45
door Ger
Ah, ok. Dat zal inderdaad ook werken ja. Inderdaad een beetje vreemde redenering, want dit werkt dus standaard ook niet:

Magic url wordt dus niet geparsed door gebrek aan whitespace, net zoals een smilie/url er direct achter. Dit (entertjes) werkt dan weer wel:

Re: Eerste smilie in een quote wordt niet getoond.
Geplaatst: 05 feb 2009, 15:49
door marian0810
En dat heb ik nu dus ook meteen goed werkend

Re: Eerste smilie in een quote wordt niet getoond.
Geplaatst: 05 feb 2009, 19:36
door Mid
Goed werk, Marian en Ger, want het werkt bij mij ook perfect !

Re: Eerste smilie in een quote wordt niet getoond.
Geplaatst: 05 feb 2009, 20:11
door Tazmanian
Thanks, heb dit meteen ook toegepast want ik stoorde mij hier ook aan.
Re: Eerste smilie in een quote wordt niet getoond.
Geplaatst: 06 feb 2009, 12:13
door Kaza
Welk stukje zou precies moeten worden verwijderd. Had net een poging gedaan maar toen was edit niet meer mogelijk.
Re: Eerste smilie in een quote wordt niet getoond.
Geplaatst: 06 feb 2009, 12:34
door Ger
Je moet het stuk "uncommenten", dus je maakt van dit:
Code: Selecteer alles
/**
* Prepare some bbcodes for better parsing
*/
function prepare_bbcodes()
{
// Ok, seems like users instead want the no-parsing of urls, smilies, etc. after and before and within quote tags being tagged as "not a bug".
// Fine by me ;) Will ease our live... but do not come back and cry at us, we won't hear you.
/* Add newline at the end and in front of each quote block to prevent parsing errors (urls, smilies, etc.)
if (strpos($this->message, '[quote') !== false && strpos($this->message, '[/quote]') !== false)
{
$this->message = str_replace("\r\n", "\n", $this->message);
// We strip newlines and spaces after and before quotes in quotes (trimming) and then add exactly one newline
$this->message = preg_replace('#\[quote(=".*?")?\]\s*(.*?)\s*\[/quote\]#siu', '[quote\1]' . "\n" . '\2' ."\n[/quote]", $this->message);
}
*/
dit:
Code: Selecteer alles
/**
* Prepare some bbcodes for better parsing
*/
function prepare_bbcodes()
{
// Ok, seems like users instead want the no-parsing of urls, smilies, etc. after and before and within quote tags being tagged as "not a bug".
// Fine by me ;) Will ease our live... but do not come back and cry at us, we won't hear you.
// Add newline at the end and in front of each quote block to prevent parsing errors (urls, smilies, etc.)
if (strpos($this->message, '[quote') !== false && strpos($this->message, '[/quote]') !== false)
{
$this->message = str_replace("\r\n", "\n", $this->message);
// We strip newlines and spaces after and before quotes in quotes (trimming) and then add exactly one newline
$this->message = preg_replace('#\[quote(=".*?")?\]\s*(.*?)\s*\[/quote\]#siu', '[quote\1]' . "\n" . '\2' ."\n[/quote]", $this->message);
}
Re: Eerste smilie in een quote wordt niet getoond.
Geplaatst: 06 feb 2009, 12:38
door marian0810
Je bent me net voor
Ofwel: in dit regeltje
/* Add newline at the end and..etc.
vervang je de
/*
door
//
en onderaan verwijder je de
*/
Re: Eerste smilie in een quote wordt niet getoond.
Geplaatst: 06 feb 2009, 12:47
door Kaza
Duidelijk, en werkt prima! Bedankt voor de hulp