Seite 1 von 1

PHP5 "weißes" ACP und "FAQ Admin MOD"

Verfasst: 19.09.2006 22:14
von brummel
Hallo!
Nach der Umstellung auf PHP5 hatte ich zunächst auch einen weißen Frame links im ACP. Ein bisschen Suchen hier, hat den Hinweis erbracht, einfach die im /admin/ Verzeichnis liegenden Mod-Datein mal umzubenennen.
Das Testen hat ergeben, dass die Datei admin_faq.php des "FAQ Admin MOD"s die schuldige Datei war. Bevor ich die knapp 700 Zeilen dieser Datei hier hineinwerfe :wink: wollte ich mal fragen, ob es auch so einen Tipp gibt, wie man erreichen kann, dass die FAQ wieder per ACP zu bearbeiten geht.
Wenn ich die Datei direkt aufrufe, passiert erst eine ganze Weile nix und dann erscheint der Board-Index.
Danke!

Verfasst: 03.10.2006 13:19
von brummel
Da leider noch kein Tipp kam, schiebe ich dann doch mal die ganze admin_faq.php hier hinein. Vielleicht hat ja dann jemand eine Idee :wink:

Code: Alles auswählen

<?php

define('IN_PHPBB', 1);

// entries to be displayed in the ACP index
if (!empty($setmodules))
{
	$file = basename(__FILE__);
	$module['FAQ_Admin']['FAQ Admin'] = "$file";
	$module['FAQ_Admin']['BBCode Admin'] = "$file?type=bbcode";
	return;
}
$phpbb_root_path = "./../";
require($phpbb_root_path . 'extension.inc');
require('./pagestart.' . $phpEx);
include($phpbb_root_path . 'includes/functions_admin.'.$phpEx);

//
// Load the appropriate sql-statement
//
if( isset($HTTP_GET_VARS['type']) || isset($HTTP_POST_VARS['type']) )
{
	$type = ( isset($HTTP_GET_VARS['type']) ) ? $HTTP_GET_VARS['type'] : $HTTP_POST_VARS['type'];
	switch( $type )
	{
		case 'bbcode':
			$lang_sql = '1';
			$l_title = $lang['bbcode_admin'];
			$cat_table = BBCODE_TABLE;
			$text_table = BBCODE_TEXT_TABLE;
			$faq_type = 'bbcode';
			break;
		default:
			$lang_sql = '0';
			$l_title = $lang['Faq_admin'];
			$cat_table = FAQ_TABLE;
			$text_table = FAQ_TEXT_TABLE;
			$faq_type = 'faq';
			break;
	}
}
else
{
	$lang_sql = '0';
	$l_title = $lang['Faq_admin'];
	$cat_table = FAQ_TABLE;
	$text_table = FAQ_TEXT_TABLE;
}
if ( isset($HTTP_POST_VARS['l']) || isset($HTTP_GET_VARS['l']) )
{
	$faq_lang = ( isset($HTTP_POST_VARS['l']) ) ? $HTTP_POST_VARS['l'] : $HTTP_GET_VARS['l'];
}
else
{
	$faq_lang = $userdata['user_lang'];
}
if( isset($HTTP_POST_VARS['mode']) || isset($HTTP_GET_VARS['mode']) )
{
	$mode = ( isset($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode'];
}
else
{
	$mode = "";
}

// ------------------
// Begin function block
//
function get_info($mode, $id)
{
	global $db, $faq_lang, $cat_table, $text_table;

	switch($mode)
	{
		case 'cat':
			$table = $cat_table;
			$idfield = 'faq_id';
			$namefield = 'faq_title';
			break;

		case 'faq':
			$table = $text_table;
			$idfield = 'q_id';
			$namefield = 'q';
			break;

		default:
			message_die(GENERAL_ERROR, "Wrong mode for generating select list", "", __LINE__, __FILE__);
			break;
	}
	$sql = "SELECT count(*) as total
		FROM " . $table . " WHERE lang_id = '" . $faq_lang . "'";
	if( !$result = $db->sql_query($sql) )
	{
		message_die(GENERAL_ERROR, "Couldn't get Faq/Category information", "", __LINE__, __FILE__, $sql);
	}
	$count = $db->sql_fetchrow($result);
	$count = $count['total'];

	$sql = "SELECT *
		FROM " . $table . "
		WHERE " . $idfield . " = " . $id . " AND lang_id = '" . $faq_lang . "'"; 

	if( !$result = $db->sql_query($sql) )
	{
		message_die(GENERAL_ERROR, "Couldn't get Faq/Category information", "", __LINE__, __FILE__, $sql);
	}

	if( $db->sql_numrows($result) != 1 )
	{
		message_die(GENERAL_ERROR, "Faq/Category doesn't exist or multiple faq/categories with ID $id and " . $sql, "", __LINE__, __FILE__);
	}

	$return = $db->sql_fetchrow($result);
	$return['number'] = $count;
	return $return;
}

function get_list($mode, $id, $select)
{
	global $db, $faq_lang, $cat_table, $text_table;

	switch($mode)
	{
		case 'cat':
			$table = $cat_table;
			$idfield = 'faq_id';
			$namefield = 'faq_title';
			break;

		case 'faq':
			$table = $text_table;
			$idfield = 'q_id';
			$namefield = 'q';
			break;

		default:
			message_die(GENERAL_ERROR, "Wrong mode for generating select list", "", __LINE__, __FILE__);
			break;
	}

	$sql = "SELECT *
		FROM " . $table . " WHERE lang_id = '" . $faq_lang . "'";
	if( $select == 0 )
	{
		$sql .= " AND " . $idfield . " <> " . $id . "";
	}

	if( !$result = $db->sql_query($sql) )
	{
		message_die(GENERAL_ERROR, "Couldn't get list of Categories/Faq", "", __LINE__, __FILE__, $sql);
	}

	$cat_list = "";

	while( $row = $db->sql_fetchrow($result) )
	{
		$s = "";
		if ($row[$idfield] == $id)
		{
			$s = " selected=\"selected\"";
		}
		$catlist .= "<option value=\"$row[$idfield]\"$s>" . $row[$namefield] . "</option>\n";
	}

	return($catlist);
}


function get_lang_list($id)
{
	global $db, $cat_table;

	$sql = "SELECT lang_id, count(faq_id) AS faq_count FROM " . $cat_table . " GROUP BY lang_id";
	if( !$result = $db->sql_query($sql) )
	{
		message_die(GENERAL_ERROR, "Couldn't get list of Languages", "", __LINE__, __FILE__, $sql);
	}
	$cat_list = "";
	while( $row = $db->sql_fetchrow($result) )
	{
		$s = "";
		if ($row['lang_id'] == $id)
		{
			$s = " selected=\"selected\"";
		}
		$catlist .= "<option value=\"" . $row['lang_id'] . "\"$s>" . $row['lang_id'] . "</option>\n";
	}

	return($catlist);
}

//
// End function block
// ------------------
if( isset($HTTP_POST_VARS['addfaq']) || isset($HTTP_POST_VARS['addcategory']) )
{
	$mode = ( isset($HTTP_POST_VARS['addfaq']) ) ? "addfaq" : "addcat";

	if( $mode == "addfaq" )
	{
		list($faq_id) = each($HTTP_POST_VARS['addfaq']);
		// 
		// stripslashes needs to be run on this because slashes are added when the forum name is posted
		//
		$faqname = stripslashes($HTTP_POST_VARS['faqname'][$faq_id]);
	}
}

if( !empty($mode) ) 
{
	switch($mode)
	{
		case 'addfaq':
		case 'editfaq':
			//
			// Show form to create/modify a forum
			//
			if ($mode == 'editfaq')
			{
				// $newmode determines if we are going to INSERT or UPDATE after posting?

				$l_title = $lang['Edit_faq'];
				$newmode = 'modfaq';
				$buttonvalue = $lang['Update'];

				$faq_id = intval($HTTP_GET_VARS[POST_FORUM_URL]);

				$row = get_info('faq', $faq_id);

				$faq_id = $row['q_id'];
				$faq_name = $row['q'];
				$faq_desc = $row['a'];
				$cat_id = $row['faq_id'];
			}
			else
			{
				$l_title = $lang['Create_faq'];
				$newmode = 'createfaq';
				$buttonvalue = $lang['Create_faq'];

				$faq_name = $faqname;
				$faq_desc = '';
				$foo = array_keys($HTTP_POST_VARS['addfaq']);
				$cat_id = $foo[0];
			}

			$catlist = get_list('cat', $cat_id, TRUE);

			$template->set_filenames(array(
				"body" => "admin/faq_edit_body.tpl")
			);

			$s_hidden_fields = '<input type="hidden" name="mode" value="' . $newmode .'" /><input type="hidden" name="' . POST_FORUM_URL . '" value="' . $faq_id . '" /><input type="hidden" name="' . POST_FAQ_LANG . '" value="' . $faq_lang . '" /><input type="hidden" name="' . POST_FAQ_TYPE . '" value="' . $faq_type . '" />';

			$template->assign_vars(array(
				'S_FAQ_ACTION' => append_sid("admin_faq.$phpEx"),
				'S_HIDDEN_FIELDS' => $s_hidden_fields,
				'S_SUBMIT_VALUE' => $buttonvalue, 
				'S_CAT_LIST' => $catlist,
				'S_STATUS_LIST' => $statuslist,

				'L_FAQ_TITLE' => $l_title, 
				'L_FAQ_EXPLAIN' => $lang['Faq_edit_delete_explain'], 
				'L_FAQ_SETTINGS' => $lang['Faq_settings'], 
				'L_FAQ_NAME' => $lang['Faq_name'], 
				'L_CATEGORY' => $lang['Category'], 
				'L_FAQ_DESCRIPTION' => $lang['Faq_desc'],

				'FAQ_NAME' => $faq_name,
				'DESCRIPTION' => $faq_desc)
			);
			$template->pparse("body");
			break;

		case 'createfaq':
			//
			// Create a faq in the DB
			//
			if( trim($HTTP_POST_VARS['faqname']) == "" )
			{
				message_die(GENERAL_ERROR, "Can't create a faq without a name");
			}
			$sql = "SELECT q_id FROM " . $text_table . " WHERE lang_id = '" . $faq_lang . "' ORDER BY q_id DESC";
			if( !$q_questions = $db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, "Could not query faq list", "", __LINE__, __FILE__, $sql);
			}
			$questions_rows = $db->sql_fetchrowset($q_questions);
			$q_id = $questions_rows[0]['q_id']+1;
			// There is no problem having duplicate faq names so we won't check for it.
			$sql = "INSERT INTO " . $text_table . " (lang_id, q_id, faq_id, q, a)
				VALUES ('" . $faq_lang . "', '$q_id', " . intval($HTTP_POST_VARS[POST_CAT_URL]) . ",'" . str_replace("\'", "''", $HTTP_POST_VARS['faqname']) . "', '" . str_replace("\'", "''", $HTTP_POST_VARS['faqdesc']) . "')";
			if( !$result = $db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, "Couldn't insert row in faq table", "", __LINE__, __FILE__, $sql);
			}

			$message = $lang['Faqs_updated'] . "<br /><br />" . sprintf($lang['Click_return_faqadmin'], "<a href=\"" . append_sid("admin_faq.$phpEx") . "&l=" . $faq_lang . "&type=" . $faq_type . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");

			message_die(GENERAL_MESSAGE, $message);
			break;

		case 'modfaq':
			// Modify a faq in the DB
			$sql = "UPDATE " . $text_table . "
				SET faq_id = " . intval($HTTP_POST_VARS[POST_CAT_URL]) . ", q = '" . str_replace("\'", "''", $HTTP_POST_VARS['faqname']) . "', a = '" . str_replace("\'", "''", $HTTP_POST_VARS['faqdesc']) . "'
				WHERE q_id = " . intval($HTTP_POST_VARS[POST_FORUM_URL]) . " AND lang_id = '". $faq_lang . "'";
			if( !$result = $db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, "Couldn't update faq information", "", __LINE__, __FILE__, $sql);
			}

			$message = $lang['Faqs_updated'] . "<br /><br />" . sprintf($lang['Click_return_faqadmin'], "<a href=\"" . append_sid("admin_faq.$phpEx") . "&l=" . $faq_lang . "&type=" . $faq_type . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");
			message_die(GENERAL_MESSAGE, $message);

			break;
			
		case 'addcat':
			// Create a category in the DB
			if( trim($HTTP_POST_VARS['categoryname']) == '')
			{
				message_die(GENERAL_ERROR, "Can't create a category without a name");
			}
			$sql = "SELECT faq_id FROM " . $cat_table . " WHERE lang_id = '" . $faq_lang . "' ORDER BY faq_id DESC";
			if( !$q_categories = $db->sql_query($sql) )
			{
			        message_die(GENERAL_ERROR, "Could not query categories list", "", __LINE__, __FILE__, $sql);
			}
			$category_rows = $db->sql_fetchrowset($q_categories);
			$cat_id = $category_rows[0]['faq_id']+1;
			//
			// There is no problem having duplicate faq names so we won't check for it.
			//
			$sql = "INSERT INTO " . $cat_table . " (lang_id,faq_id,faq_title)
				VALUES ('" . $faq_lang . "','$cat_id', '" . str_replace("\'", "''", $HTTP_POST_VARS['categoryname']) . "')";
			if( !$result = $db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, "Couldn't insert row in categories table", "", __LINE__, __FILE__, $sql);
			}

			$message = $lang['Faqs_updated'] . "<br /><br />" . sprintf($lang['Click_return_faqadmin'], "<a href=\"" . append_sid("admin_faq.$phpEx") . "&l=" . $faq_lang . "&type=" . $faq_type . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");

			message_die(GENERAL_MESSAGE, $message);

			break;
			
		case 'editcat':
			//
			// Show form to edit a category
			//
			$newmode = 'modcat';
			$buttonvalue = $lang['Update'];

			$faq_id = intval($HTTP_GET_VARS[POST_CAT_URL]);

			$row = get_info('cat', $faq_id);
			$faq_title = $row['faq_title'];

			$template->set_filenames(array(
				"body" => "admin/category_edit_body.tpl")
			);

			$s_hidden_fields = '<input type="hidden" name="mode" value="' . $newmode . '" /><input type="hidden" name="' . POST_CAT_URL . '" value="' . $faq_id . '" /><input type="hidden" name="' . POST_FAQ_LANG . '" value="' . $faq_lang . '" /><input type="hidden" name="' . POST_FAQ_TYPE . '" value="' . $faq_type . '" />';

			$template->assign_vars(array(
				'CAT_TITLE' => $faq_title,

				'L_EDIT_CATEGORY' => $lang['Edit_Category'], 
				'L_EDIT_CATEGORY_EXPLAIN' => $lang['Edit_Category_explain'], 
				'L_CATEGORY' => $lang['Category'], 

				'S_HIDDEN_FIELDS' => $s_hidden_fields, 
				'S_SUBMIT_VALUE' => $buttonvalue, 
				'S_FORUM_ACTION' => append_sid("admin_faq.$phpEx"))
			);

			$template->pparse("body");
			break;

		case 'modcat':
			// Modify a category in the DB
			$sql = "UPDATE " . $cat_table . "
				SET faq_title = '" . str_replace("\'", "''", $HTTP_POST_VARS['cat_title']) . "'
				WHERE faq_id = " . intval($HTTP_POST_VARS[POST_CAT_URL]) . " AND lang_id = '". $faq_lang . "'";
			if( !$result = $db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, "Couldn't update forum information", "", __LINE__, __FILE__, $sql);
			}

			$message = $lang['Faqs_updated'] . "<br /><br />" . sprintf($lang['Click_return_faqadmin'], "<a href=\"" . append_sid("admin_faq.$phpEx") . "&l=" . $faq_lang . "&type=" . $faq_type . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");

			message_die(GENERAL_MESSAGE, $message);

			break;
			
		case 'deletefaq':
			// Show form to delete a faq
			$faq_id = intval($HTTP_GET_VARS[POST_FORUM_URL]);

			$buttonvalue = $lang['Delete'];

			$newmode = 'movedelfaq';

			$faqinfo = get_info('faq', $faq_id);
			$name = $faqinfo['q'];

			$template->set_filenames(array(
				"body" => "admin/forum_delete_body.tpl")
			);

			$s_hidden_fields = '<input type="hidden" name="mode" value="' . $newmode . '" /><input type="hidden" name="from_id" value="' . $faq_id . '" /><input type="hidden" name="' . POST_FAQ_LANG . '" value="' . $faq_lang . '" /><input type="hidden" name="' . POST_FAQ_TYPE . '" value="' . $faq_type . '" />';

			$template->assign_vars(array(
				'NAME' => $name, 

				'L_FORUM_DELETE' => $lang['Faq_delete'], 
				'L_FORUM_DELETE_EXPLAIN' => $lang['Faq_delete_explain'], 
				'L_FORUM_NAME' => $lang['Faq_name'], 

				"S_HIDDEN_FIELDS" => $s_hidden_fields,
				'S_FORUM_ACTION' => append_sid("admin_faq.$phpEx"), 
				'S_SUBMIT_VALUE' => $buttonvalue)
			);

			$template->pparse("body");
			break;

		case 'movedelfaq':
			//
			// Delete a faq in the DB
			//
			$from_id = intval($HTTP_POST_VARS['from_id']);

			// Delete faq

			$sql = "DELETE FROM " . $text_table . "
				WHERE q_id = $from_id AND lang_id = '" . $faq_lang . "'";
			if( !$result = $db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, "Couldn't delete faq", "", __LINE__, __FILE__, $sql);
			}
			$message = $lang['Faqs_updated'] . "<br /><br />" . sprintf($lang['Click_return_faqadmin'], "<a href=\"" . append_sid("admin_faq.$phpEx") . "&l=" . $faq_lang . "&type=" . $faq_type . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");

			message_die(GENERAL_MESSAGE, $message);

			break;
			
		case 'deletecat':
			//
			// Show form to delete a category
			//
			$faq_id = intval($HTTP_GET_VARS[POST_CAT_URL]);

			$buttonvalue = $lang['Move_and_Delete'];
			$newmode = 'movedelcat';
			$faqinfo = get_info('cat', $faq_id);
			$name = $faqinfo['faq_title'];

			if ($catinfo['number'] == 1)
			{
				$sql = "SELECT count(*) as total
					FROM ". $text_table;
				if( !$result = $db->sql_query($sql) )
				{
					message_die(GENERAL_ERROR, "Couldn't get Faq count", "", __LINE__, __FILE__, $sql);
				}
				$count = $db->sql_fetchrow($result);
				$count = $count['total'];

				if ($count > 0)
				{
					message_die(GENERAL_ERROR, $lang['Must_delete_faqs']);
				}
				else
				{
					$select_to = $lang['Nowhere_to_move'];
				}
			}
			else
			{
				$select_to = '<select name="to_id">';
				$select_to .= get_list('cat', $faq_id, 0);
				$select_to .= '</select>';
			}

			$template->set_filenames(array(
				"body" => "admin/forum_delete_body.tpl")
			);

			$s_hidden_fields = '<input type="hidden" name="mode" value="' . $newmode . '" /><input type="hidden" name="from_id" value="' . $faq_id . '" /><input type="hidden" name="' . POST_FAQ_LANG . '" value="' . $faq_lang . '" /><input type="hidden" name="' . POST_FAQ_TYPE . '" value="' . $faq_type . '" />';

			$template->assign_vars(array(
				'NAME' => $name, 

				'L_FORUM_DELETE' => $lang['Faq_delete'], 
				'L_FORUM_DELETE_EXPLAIN' => $lang['Faq_delete_explain'], 
				'L_MOVE_CONTENTS' => $lang['Move_contents'], 
				'L_FORUM_NAME' => $lang['Faq_name'], 
				
				'S_HIDDEN_FIELDS' => $s_hidden_fields,
				'S_FORUM_ACTION' => append_sid("admin_faq.$phpEx"), 
				'S_SELECT_TO' => $select_to,
				'S_SUBMIT_VALUE' => $buttonvalue)
			);

			$template->pparse("body");
			break;

		case 'movedelcat':
			//
			// Move or delete a category in the DB
			//
			$from_id = intval($HTTP_POST_VARS['from_id']);
			$to_id = intval($HTTP_POST_VARS['to_id']);

			if (!empty($to_id))
			{
				$sql = "SELECT *
					FROM " . $cat_table . "
					WHERE faq_id IN ($from_id, $to_id) AND lang_id = '" . $faq_lang . "'";
				if( !$result = $db->sql_query($sql) )
				{
					message_die(GENERAL_ERROR, "Couldn't verify existence of categories", "", __LINE__, __FILE__, $sql);
				}
				if($db->sql_numrows($result) != 2)
				{
					message_die(GENERAL_ERROR, "Ambiguous category ID's", "", __LINE__, __FILE__);
				}

				$sql = "UPDATE " . $text_table . "
					SET faq_id = $to_id
					WHERE faq_id = $from_id AND lang_id = '" . $faq_lang . "'";
				if( !$result = $db->sql_query($sql) )
				{
					message_die(GENERAL_ERROR, "Couldn't move faqs to other category", "", __LINE__, __FILE__, $sql);
				}
			}

			$sql = "DELETE FROM " . $cat_table ."
				WHERE faq_id = $from_id AND lang_id = '" . $faq_lang . "'";
				
			if( !$result = $db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, "Couldn't delete category", "", __LINE__, __FILE__, $sql);
			}

			$message = $lang['Faqs_updated'] . "<br /><br />" . sprintf($lang['Click_return_faqadmin'], "<a href=\"" . append_sid("admin_faq.$phpEx") . "&l=" . $faq_lang . "&type=" . $faq_type . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");

			message_die(GENERAL_MESSAGE, $message);

			break;

		default:
			message_die(GENERAL_MESSAGE, $lang['No_mode'].' '.$mode);
			break;
	}

	if ($show_index != TRUE)
	{
		include('./page_footer_admin.'.$phpEx);
		exit;
	}
}

// 
// Start output of page 
// 
$page_title = $lang['Index'];
include($phpbb_root_path . 'admin/page_header_admin.'.$phpEx);

$template->set_filenames(array(
	"body" => "admin/admin_faq.tpl")
);

$catlist = get_lang_list($faq_lang);
if ( $faq_type == 'bbcode' )
{
	$typelist = "<option value=\"bbcode\">" . $lang['bbcode'] . "</option>\n<option value=\"faq\">" . $lang['FAQ'] . "</option>\n";
}
else
{
	$typelist = "<option value=\"bbcode\">" . $lang['bbcode'] . "</option>\n<option value=\"faq\" selected=\"selected\">" . $lang['FAQ'] . "</option>\n";
}
if ( isset($HTTP_GET_VARS['type']) )
{
	$s_hidden_fields = '<input type="hidden" name="' . POST_FAQ_TYPE . '" value="' . $faq_type . '" />';
}

$template->assign_vars(array( 
	'S_FAQ_ACTION' => append_sid("admin_faq.$phpEx"), 
	'S_LANG_LIST' => $catlist, 
	'S_TYPE_LIST' => $typelist, 
	'S_HIDDEN_FIELDS' => $s_hidden_fields, 
	'L_LANGUAGE' => $lang['Language'], 
	'L_TYPE' => $lang['Type'], 
	'L_FAQ_TITLE' => $l_title, 
	'L_FAQ_EXPLAIN' => $lang['Faq_admin_explain'], 
	'L_CREATE_FAQ' => $lang['Create_faq'], 
	'L_CREATE_CATEGORY' => $lang['Create_category'], 
	'L_EDIT' => $lang['Edit'], 
	'SPACER' => './../' . $images['spacer'], 
	'L_DELETE' => $lang['Delete'])
);


//
// lolzor from admin_forums.php
//
$sql = "SELECT faq_id, faq_title FROM " . $cat_table . " WHERE lang_id = '" . $faq_lang . "' ORDER BY faq_id";
if( !$q_categories = $db->sql_query($sql) )
{
	message_die(GENERAL_ERROR, "Could not query categories list", "", __LINE__, __FILE__, $sql);
}

if( $total_categories = $db->sql_numrows($q_categories) )
{
	$category_rows = $db->sql_fetchrowset($q_categories);

	$sql = "SELECT * FROM " . $text_table . " WHERE lang_id = '" . $faq_lang . "' ORDER BY faq_id,q_id";
	if(!$q_forums = $db->sql_query($sql))
	{
		message_die(GENERAL_ERROR, "Could not query forums information", "", __LINE__, __FILE__, $sql);
	}

	if( $total_forums = $db->sql_numrows($q_forums) )
	{
		$forum_rows = $db->sql_fetchrowset($q_forums);
	}

	//
	// Okay, let's build the index
	//
	$gen_cat = array();

	for($i = 0; $i < $total_categories; $i++)
	{
		$faq_id = $category_rows[$i]['faq_id'];

		$template->assign_block_vars("catrow", array( 
			'S_ADD_FAQ_SUBMIT' => "addfaq[$faq_id]", 
			'S_ADD_FAQ_NAME' => "faqname[$faq_id]", 

			'CAT_ID' => $faq_id,
			'CAT_DESC' => $category_rows[$i]['faq_title'],

			'U_CAT_EDIT' => append_sid("admin_faq.$phpEx?mode=editcat&" . POST_CAT_URL . "=$faq_id&type=" . $faq_type . "&l=" . $faq_lang . ""),
			'U_CAT_DELETE' => append_sid("admin_faq.$phpEx?mode=deletecat&" . POST_CAT_URL . "=$faq_id&type=" . $faq_type . "&l=" . $faq_lang . ""),
			'U_VIEWCAT' => append_sid($phpbb_root_path."faq.$phpEx?" . POST_CAT_URL . "=$faq_id"))
		);

		for($j = 0; $j < $total_forums; $j++)
		{
			$q_id = $forum_rows[$j]['q_id'];
			
			if ($forum_rows[$j]['faq_id'] == $faq_id && $forum_rows[$j]['lang_id'] = $userdata['user_lang'])
			{

				$template->assign_block_vars("catrow.faqrow", array(
					'FAQ_NAME' => $forum_rows[$j]['q'],
					'FAQ_DESC' => substr($forum_rows[$j]['a'], 0, 150),
					'ROW_COLOR' => $row_color,

					'U_VIEWFAQ' => append_sid($phpbb_root_path."faq.$phpEx").'#'.$q_id,
					'U_FAQ_EDIT' => append_sid("admin_faq.$phpEx?mode=editfaq&" . POST_FORUM_URL . "=$q_id&type=" . $faq_type . "&l=" . $faq_lang . ""),
					'U_FAQ_DELETE' => append_sid("admin_faq.$phpEx?mode=deletefaq&" . POST_FORUM_URL . "=$q_id&type=" . $faq_type . "&l=" . $faq_lang . ""))
				);

			}// if ... forumid == catid
			
		} // for ... forums

	} // for ... categories

}// if ... total_categories

// 
// Generate the page 
// 
$template->pparse('body');

include($phpbb_root_path . 'admin/page_footer_admin.'.$phpEx); 
?>

Verfasst: 03.10.2006 13:35
von habbi
Eine PHP Datei zum Download bereitstellen
Hmm.. bei mir läuft auch die v5 aber hab kP was bei dir nicht läuft..

Verfasst: 03.10.2006 14:06
von Olli Oberhausen
Versuchs mal so:
Ersetze:

Code: Alles auswählen

// ------------------
// Begin function block
//
mit

Code: Alles auswählen

if (empty($setmodules))
{
// ------------------
// Begin function block
//
UND
Ersetze:

Code: Alles auswählen

//
// End function block
// ------------------
mit:

Code: Alles auswählen

//
// End function block
// ------------------
}
Kann allerdings nicht versprechen obs hilft - bei mir hilfts so manchmal

Verfasst: 03.10.2006 14:26
von SoLo1905
und nicht zu vergessen

KB:knigge (Bumping)

@habbi must net url machen für PHP Datei zum Download bereitstellen.. Mach demnächst so

Code: Alles auswählen

KB:datei
dann macht es gleich anklickbar und past den titel direkt an ;)

Verfasst: 03.10.2006 15:34
von brummel
@Olli_Moers: Danke! Hat bei mir auch funktioniert :grin:

@habbi: Sorry, werde ich demnächst beachten!

@SoLo1905: Da war mir zu wenig Deutsch in Deinem Beitrag, hab's nicht verstanden und die Übersetzungsprogramme sind auch gescheitert. Problem konnte durch die anderen Tipps aber gelöst werden.