Seite 1 von 1

Medals Mod weigert sich

Verfasst: 18.11.2005 18:11
von MAX-Driver
Hallo,

Und zwar weigert sich mein Medals-Mod in der Übersicht der Auszeichnungen, mehr als 2 Kategorien anzuzeigen.

Hier mal den interressanten Teil der medals.php zur Fehleranalyse:

Code: Alles auswählen

//
// Category
//
$sql = "SELECT cat_id, cat_title, cat_order
	FROM " . MEDAL_CAT_TABLE . "
	ORDER BY cat_order";
if( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Could not query medal categories list', '', __LINE__, __FILE__, $sql);
}

$category_rows = array();
while ($row = $db->sql_fetchrow($result) )
{
	$category_rows[] = $row;
}
$db->sql_freeresult($result);


	//
	// Okay, let's build the index
	//

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

		//
		// Should we display this category/medal set?
		//
		$display_medal = false;
		for($k = 0; $k < $total_categories; $k++)
		{
			if ( $medal_data[$k]['cat_id'] == $cat_id )
			{
				$display_medal = true;
			}
		}

		if ( $display_medal )
		{
			$template->assign_block_vars('catrow', array(
				'CAT_ID' => $cat_id,
				'CAT_DESC' => $category_rows[$i]['cat_title'])
			);

			for($j = 0; $j < $total_medals; $j++)
			{
				if ( $medal_data[$j]['cat_id'] == $cat_id )
				{
					$medal_id = $medal_data[$j]['medal_id'];

					if ( count($medal_moderators[$medal_id]) > 0 )
					{
						$moderator_list = implode(', ', $medal_moderators[$medal_id]);
					}
					else
					{
						$moderator_list = $lang['No_medal_mod'];
					}
					if ( count($medal_users[$medal_id]) > 0 )
					{
						$user_list = implode(', ', $medal_users[$medal_id]);
					}
					else
					{
						$user_list = $lang['No_medal_members'];
					}
					$template->assign_block_vars('catrow.medals', array(
						'MEDAL_ID' => $medal_data[$j]['medal_name'],
						'MEDAL_NAME' => $medal_data[$j]['medal_name'],
						'MEDAL_DESCRIPTION'  => $medal_data[$j]['medal_description'],
						'MEDAL_IMAGE' => ($medal_data[$j]['medal_image'] == '') ? '' : '<img src="'. $medal_data[$j]['medal_image'] . '" border="0" alt="' . $medal_data[$j]['medal_name'] . '" title="' . $medal_data[$j]['medal_name'] . '" align="center">',
						'MEDAL_MOD' => $moderator_list,
						'USERS_LIST' => $user_list,
						'U_MEDAL_CP' => append_sid("medalcp.$phpEx?" . POST_MEDAL_URL . "=".$medal_data[$j]['medal_id']."&sid=".$userdata['session_id']))
					);

					$is_moderator = check_medal_mod($medal_id);

					if ( $is_moderator || $userdata['user_level'] == ADMIN )
					{
						$template->assign_block_vars('catrow.medals.switch_mod_option', array());
					}
				}
			}
		}
	} // for ... categories

}// if ... total_categories
else
{
	message_die(GENERAL_MESSAGE, $lang['No_medal']);
}
Hoffe es sieht jemand den Fehler.
Kann ihn leider nirgendwo ausmachen.

Danke.

Gruß,
Floh

Verfasst: 18.11.2005 18:50
von easygo

Code: Alles auswählen

for($i = 0; $i < $total_categories; $i++) 
$total_categories woher? Versuchs mal so -->

Code: Alles auswählen

for($i = 0; $i < count($category_rows); $i++) 

Verfasst: 18.11.2005 19:02
von MAX-Driver
ne klappt nicht.

Muß an irgendwas anderem liegen.

Aber trotzdem danke!

Verfasst: 18.11.2005 19:45
von MAX-Driver
nach dem Suchen auf phpBB.com bin ich endlich fündig geworden.

folgender Code muß in der medals.php ersetzt werden (für alle die zukünftig dieses Problem haben):

Code: Alles auswählen

               // 
                // Should we display this category/medal set? 
                // 
                $display_medal = 0; 
                for($k = 0; $k < $total_medals; $k++) 
                { 
                        if ( $medal_data[$k]['cat_id'] == $cat_id ) 
                        { 
                                $display_medal = 1; 
                        } 
                } 

Verfasst: 18.11.2005 20:28
von easygo
easygo hat geschrieben:$total_categories woher?
Quelle: [BETA] Medal System MOD [ Latest: 2.2.3 ]

Code: Alles auswählen

//
// Category
//
$sql = "SELECT cat_id, cat_title, cat_order
	FROM " . MEDAL_CAT_TABLE . "
	ORDER BY cat_order";
if( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Could not query medal categories list', '', __LINE__, __FILE__, $sql);
}

$category_rows = array();
while ($row = $db->sql_fetchrow($result) ) 
{
	$category_rows[] = $row;
}
$db->sql_freeresult($result);

if( ( $total_categories = count($category_rows) ) )
daher also ^^ easy