Pagina 1 van 1

Fatal error: Call to a member function sql_query() on a...

Geplaatst: 18 sep 2005, 15:13
door flance
Helleuw,
ik was bezig om een artikel systeem te maken gebaseerd op phpBB. Ik loop alleen vast op 1 ding. Ik ben nu bezig met het stukje dat een admin artikelen goed moet keuren in het administratiepaneel. Het is dus mogelijk om deze artikelen in de admin te kunnen bekijken.
Het is dus de bedoeling dat alles netjes geparsed wordt door de bbcode en smilies etc. Maar ik loop nu vast.
Ik heb ../includes/bbcode.php ge-include om de functies daaruit te gebruiken, maar nu krijg ik deze error:
Fatal error: Call to a member function sql_query() on a non-object in C:\server\Apache2\htdocs\wr\includes\bbcode.php on line 751
Ik neem dus aan dat de database class op één of andere manier niet aangeroepen is. Bij het scripten in het admin paneeltje heb ik deze class ook niet gebruikt, dus ik weet het niet zeker.

Hoe kan ik dit voorkomen/oplossen?

Geplaatst: 18 sep 2005, 15:28
door Paul
geef regel 700 - 765 eens?

Geplaatst: 18 sep 2005, 18:28
door flance
Ik geef die functie wel gewoon:

Code: Selecteer alles

//
// Smilies code ... would this be better tagged on to the end of bbcode.php?
// Probably so and I'll move it before B2
//
function smilies_pass($message)
{
	static $orig, $repl;

	if (!isset($orig))
	{
		global $db, $board_config;
		$orig = $repl = array();

		$sql = 'SELECT * FROM ' . SMILIES_TABLE;
		if( !$result = $db->sql_query($sql) )
		{
			message_die(GENERAL_ERROR, "Couldn't obtain smilies data", "", __LINE__, __FILE__, $sql);
		}
		$smilies = $db->sql_fetchrowset($result);

		if (count($smilies))
		{
			usort($smilies, 'smiley_sort');
		}

		for ($i = 0; $i < count($smilies); $i++)
		{
			$orig[] = "/(?<=.\W|\W.|^\W)" . phpbb_preg_quote($smilies[$i]['code'], "/") . "(?=.\W|\W.|\W$)/";
			$repl[] = '<img src="'. $board_config['smilies_path'] . '/' . $smilies[$i]['smile_url'] . '" alt="' . $smilies[$i]['emoticon'] . '" border="0" />';
		}
	}

	if (count($orig))
	{
		$message = preg_replace($orig, $repl, ' ' . $message . ' ');
		$message = substr($message, 1, -1);
	}
	
	return $message;
}
maar daar gaat het niet om. De error zit hier:

Code: Selecteer alles

if( !$result = $db->sql_query($sql) )
en wat ik dus begrijp is dat $db helemaal niet bestaat en mijn vraag is dus: hoe maak ik dat ding aan?

edit:
in mijn bestandje in de admin heb ik dus dit, maar het wil niet baten:

Code: Selecteer alles

	$dbms = 'mysql4';
	include '../includes/db.php';
	include '../includes/bbcode.php';

Geplaatst: 18 sep 2005, 19:59
door Paul
Je hebt iets aan die functie veranderd :)
zet na:

Code: Selecteer alles

static $orig, $repl;
dit

Code: Selecteer alles

global $db;
:)

Geplaatst: 19 sep 2005, 17:44
door flance
Heeft geen nut. En het stond sowieso al in de functie...