Pagina 1 van 1
Geen lege quotes
Geplaatst: 03 mar 2006, 15:33
door Apen-nootjes
- Wat is het probleem? Ik heb een forum waar je ook met een gast account berichten mag plaatsen, echter zijn er mensen die een bericht quoten en er verder niks bij posten. Ik wil dit oplossen door te kijken of er extra tekst bij de quote getypt is, ik kan vinden waar de query gedaan wordt om de gegevens die als quote getoont moeten worden weer te geven maar dan raak ik het spoor een beetje bijster... Heeft er iemand een schema van hoe een quote opgevraagd wordt, in welke variabelen dat gestopt wordt en waar deze weer gebruikt worden in het bericht en waar het bericht uiteindelijk in de DB gestopt wordt ?
Wanneer ontstond het probleem? nvt.
Adres van je forum: http://forum.stoomgroepholland.nl
Geïnstalleerde mods: een aantal maar weet niet precies welke
Huidige template: eigen template
phpBB versie: 2.0.12
Waar is je forum gehost: vuurwerk internet / versatel
Heb je onlangs iets verandert aan je forum? nope
Heb je gezocht naar een antwoord? (Ja, welke zoekwoorden? Nee, probeer eerst eens te zoeken) Ja, bij verschillende phpBB support forums en via google. Ik kom er echter niet uit 
Overige opmerkingen: Hoop dat jullie me kunnen helpen

Geplaatst: 03 mar 2006, 16:26
door Stef
Mm, je moet ervoor in functions_post.php zijn, daar worden ook gecontroleerd of een bericht niet leeg is. Maar ik heb mijn twijfels of het lukt. Dan zou je moeten kijken of er buiten [quote-][/quote] iets getypt is. Lijkt me lastig.
Geplaatst: 03 mar 2006, 16:29
door Paul
Zoek in functions_post.php:
Code: Selecteer alles
else
{
$message = preg_replace($html_entities_match, $html_entities_replace, $message);
}
Zet erna:
Code: Selecteer alles
$tmp = $message;
$tmp = preg_replace("#\[quote(.*?)\](.*?)\[/quote\]#","",$tmp);
if(empty($tmp)){
message_die(GENERAL_ERROR,"Geen bericht getypt na quote!");
}
Moet werken denk ik

Geplaatst: 03 mar 2006, 16:33
door Stef
Jaa, tuurlijk, zo kan het ook.
Geplaatst: 03 mar 2006, 16:48
door Apen-nootjes
Dankjewel Paul!
Dat stukje code had ik net nodig

Ik heb het op een iets andere manier aangepast (vindt ik netter

) namelijk op de volgende manier:
Zoek in functions_post.php
Code: Selecteer alles
if (!empty($message))
{
$bbcode_uid = ($bbcode_on) ? make_bbcode_uid() : '';
$message = prepare_message(trim($message), $html_on, $bbcode_on, $smilies_on, $bbcode_uid);
}
else if ($mode != 'delete' && $mode != 'poll_delete')
{
$error_msg .= (!empty($error_msg)) ? '<br />' . $lang['Empty_message'] : $lang['Empty_message'];
}
Verander dit in:
Code: Selecteer alles
if (!empty($message))
{
if (check_quote($message)) {
$bbcode_uid = ($bbcode_on) ? make_bbcode_uid() : '';
$message = prepare_message(trim($message), $html_on, $bbcode_on, $smilies_on, $bbcode_uid);
}else{
$error_msg .= (!empty($error_msg)) ? '<br />Je moet wel een antwoord op de quote typen' : 'Je moet wel een antwoord op de quote typen';
}
}
else if ($mode != 'delete' && $mode != 'poll_delete')
{
$error_msg .= (!empty($error_msg)) ? '<br />' . $lang['Empty_message'] : $lang['Empty_message'];
}
En voeg onderaan de pagina het volgende toe:
Code: Selecteer alles
// Function to check if the message is not only a quote
function check_quote($message) {
$tmp = $message;
$tmp = preg_replace("#\[quote(.*?)\](.*?)\[/quote\]#","",$tmp);
if(empty($tmp)){
return false;
}else{
return true;
}
}
En je hebt een goed werkende check
