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 :D

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 :)