Geen lege quotes

Hulp nodig bij een modificaties of op zoek naar een MOD? Bekijk ons archief. Support wordt helaas niet meer verleend.
Forumregels

Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
phpBB2.0.x
Gesloten
Apen-nootjes
Berichten: 2
Lid geworden op: 03 mar 2006, 15:21

Geen lege quotes

Bericht door Apen-nootjes » 03 mar 2006, 15:33

  • 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

Gebruikersavatar
Stef
Berichten: 9080
Lid geworden op: 04 jun 2003, 20:47

Bericht door Stef » 03 mar 2006, 16:26

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.

Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20316
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Bericht door Paul » 03 mar 2006, 16:29

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

Gebruikersavatar
Stef
Berichten: 9080
Lid geworden op: 04 jun 2003, 20:47

Bericht door Stef » 03 mar 2006, 16:33

Jaa, tuurlijk, zo kan het ook.

Apen-nootjes
Berichten: 2
Lid geworden op: 03 mar 2006, 15:21

Bericht door Apen-nootjes » 03 mar 2006, 16:48

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

Gesloten