Categories Hierachy error im acp unter Forum

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
Kevinq
Mitglied
Beiträge: 138
Registriert: 12.05.2005 22:26
Wohnort: Rellingen
Kontaktdaten:

Categories Hierachy error im acp unter Forum

Beitrag von Kevinq »

habe nen blankes deutsches phpbb 2.0.20 installiert, und dann mit dem em den Categories Hierachy Mod, gab nen paar Fehler, wo ich die install anpassen musste (wahrscheinlich is der mod für ne ältere phpbb version) aber schluss entlich lief alles glat, scheint auch alles zu funktionieren, aber wenn ich im acp unter Forum auf Management, Styles, Pruning oder Autom. Löschen gehe, kommt immer das
Parse error: syntax error, unexpected T_ELSE in /usr/export/www/vhosts/funnetwork/hosting/kevinq/dr2o/includes/functions_admin.php on line 341
die Zeile sieht so aus

Code: Alles auswählen

//-- fin mod : categories hierarchy --------------------------------------------
				else
				{
ich habe hier mal die functions_admin.php

Code: Alles auswählen

<?php
//-- mod : categories hierarchy ------------------------------------------------
/***************************************************************************
 *                            functions_admin.php
 *                            -------------------
 *   begin                : Saturday, Feb 13, 2001
 *   copyright            : (C) 2001 The phpBB Group
 *   email                : support@phpbb.com
 *
 *   $Id: functions_admin.php,v 1.5.2.5 2005/09/14 19:16:21 acydburn Exp $
 *
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 *
 ***************************************************************************/

//
// Simple version of jumpbox, just lists authed forums
//
function make_forum_select($box_name, $ignore_forum = false, $select_forum = '')
{
//-- mod : categories hierarchy ------------------------------------------------
//-- delete
/*
	global $db, $userdata;

	$is_auth_ary = auth(AUTH_READ, AUTH_LIST_ALL, $userdata);

	$sql = 'SELECT f.forum_id, f.forum_name
		FROM ' . CATEGORIES_TABLE . ' c, ' . FORUMS_TABLE . ' f
		WHERE f.cat_id = c.cat_id 
		ORDER BY c.cat_order, f.forum_order';
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Couldn not obtain forums information', '', __LINE__, __FILE__, $sql);
	}

	$forum_list = '';
	while( $row = $db->sql_fetchrow($result) )
	{
		if ( $is_auth_ary[$row['forum_id']]['auth_read'] && $ignore_forum != $row['forum_id'] )
		{
			$selected = ( $select_forum == $row['forum_id'] ) ? ' selected="selected"' : '';
			$forum_list .= '<option value="' . $row['forum_id'] . '"' . $selected .'>' . $row['forum_name'] . '</option>';
		}
	}

	$forum_list = ( $forum_list == '' ) ? '<option value="-1">-- ! No Forums ! --</option>' : '<select name="' . $box_name . '">' . $forum_list . '</select>';
*/
//-- add
	global $config, $forums, $user;

	$front_pic = $forums->get_front_pic();
	if ( !empty($front_pic) )
	{
		$forum_list = '';
		foreach ( $front_pic as $cur_id => $front )
		{
			$selected = !empty($select_forum) && ($select_forum == $cur_id) ? ' selected="selected"' : '';
			$forum_list .= '<option value="' . (($cur_id >= 0) ? $cur_id : -1) . '"' . $selected . '>';
			$count_front = strlen($front);
			for ( $i = 0; $i < $count_front; $i++ )
			{
				$forum_list .= $user->lang('tree_pic_' . $front[$i]);
			}
			if ( $cur_id >= 0 )
			{
				$forum_list .= $user->lang($forums->data[$cur_id]['forum_name']);
			}
			$forum_list .= '</option>';
		}
	}
	else
	{
		$forum_list = '<option value="-1">' . $user->lang('None') . '</option>';
	}
	$forum_list = '<select name="' . $box_name . '">' . $forum_list . '</select>';
//-- fin mod : categories hierarchy --------------------------------------------

	return $forum_list;
}

//
// Synchronise functions for forums/topics
//
//-- mod : categories hierarchy ------------------------------------------------
// here we added
//	, $differ=false
//-- modify
function sync($type, $id = false, $differ=false)
//-- fin mod : categories hierarchy --------------------------------------------
{
	global $db;

	switch($type)
	{
		case 'all forums':
			$sql = "SELECT forum_id
				FROM " . FORUMS_TABLE;
			if ( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, 'Could not get forum IDs', '', __LINE__, __FILE__, $sql);
			}

			while( $row = $db->sql_fetchrow($result) )
			{
				sync('forum', $row['forum_id']);
			}
		   	break;

		case 'all topics':
			$sql = "SELECT topic_id
				FROM " . TOPICS_TABLE;
			if ( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, 'Could not get topic ID', '', __LINE__, __FILE__, $sql);
			}

			while( $row = $db->sql_fetchrow($result) )
			{
				sync('topic', $row['topic_id']);
			}
			break;

	  	case 'forum':
//-- mod : categories hierarchy ------------------------------------------------
//-- delete
/*
			$sql = "SELECT MAX(post_id) AS last_post, COUNT(post_id) AS total 
				FROM " . POSTS_TABLE . "  
				WHERE forum_id = $id";
			if ( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, 'Could not get post ID', '', __LINE__, __FILE__, $sql);
			}

			if ( $row = $db->sql_fetchrow($result) )
			{
				$last_post = ( $row['last_post'] ) ? $row['last_post'] : 0;
				$total_posts = ($row['total']) ? $row['total'] : 0;
			}
			else
			{
				$last_post = 0;
				$total_posts = 0;
			}

			$sql = "SELECT COUNT(topic_id) AS total
				FROM " . TOPICS_TABLE . "
				WHERE forum_id = $id";
			if ( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, 'Could not get topic count', '', __LINE__, __FILE__, $sql);
			}

			$total_topics = ( $row = $db->sql_fetchrow($result) ) ? ( ( $row['total'] ) ? $row['total'] : 0 ) : 0;

			$sql = "UPDATE " . FORUMS_TABLE . "
				SET forum_last_post_id = $last_post, forum_posts = $total_posts, forum_topics = $total_topics
				WHERE forum_id = $id";
			if ( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, 'Could not update forum', '', __LINE__, __FILE__, $sql);
			}
*/
//-- add
			if ( empty($id) )
			{
				global $config;

				// count topics
				$sql = 'SELECT COUNT(topic_id) AS total_topics
							FROM ' . TOPICS_TABLE;
				$result = $db->sql_query($sql, false, __LINE__, __FILE__);
				$row = $db->sql_fetchrow($result);
				$total_topics = intval($row['total_topics']);

				// count posts
				$sql = 'SELECT COUNT(post_id) AS total_posts
							FROM ' . POSTS_TABLE;
				$result = $db->sql_query($sql, false, __LINE__, __FILE__);
				$row = $db->sql_fetchrow($result);
				$total_posts = intval($row['total_posts']);

				$config->set('stat_total_topics', $total_topics);
				$config->set('stat_total_posts', $total_posts);
			}
			else
			{
				// count topics
				$sql = 'SELECT COUNT(topic_id) AS total_topics
							FROM ' . TOPICS_TABLE . '
							WHERE forum_id = ' . $id;
				$result = $db->sql_query($sql, false, __LINE__, __FILE__);
				$row = $db->sql_fetchrow($result);
				$total_topics = intval($row['total_topics']);

				// count posts
				$sql = 'SELECT COUNT(post_id) AS total_posts
							FROM ' . POSTS_TABLE . '
							WHERE forum_id = ' . $id;
				$result = $db->sql_query($sql, false, __LINE__, __FILE__);
				$row = $db->sql_fetchrow($result);
				$total_posts = intval($row['total_posts']);

				// get last post
				$sql = 'SELECT t.topic_last_post_id, t.topic_title, t.topic_last_poster, t.topic_last_username, t.topic_last_time, u.username
							FROM ' . TOPICS_TABLE . ' t
								LEFT JOIN ' . USERS_TABLE . ' u ON u.user_id = t.topic_last_poster
							WHERE forum_id = ' . $id . '
								AND topic_moved_id = 0
							ORDER BY topic_last_post_id DESC
							LIMIT 1';
				$result = $db->sql_query($sql, false, __LINE__, __FILE__);
				$row = $db->sql_fetchrow($result);
				$fields = array(
					'forum_topics' => $total_topics,
					'forum_posts' => $total_posts,
					'forum_last_post_id' => intval($row['topic_last_post_id']),
					'forum_last_title' => $row['topic_title'],
					'forum_last_poster' => intval($row['topic_last_poster']),
					'forum_last_username' => (($row['topic_last_poster'] != ANONYMOUS) && !empty($row['username'])) ? $row['username'] : $row['topic_last_username'],
					'forum_last_time' => intval($row['topic_last_time']),
				);
				$db->sql_statement($fields);
				$sql = 'UPDATE ' . FORUMS_TABLE . '
							SET ' . $db->sql_update . '
							WHERE forum_id = ' . $id;
				$db->sql_query($sql, false, __LINE__, __FILE__);
				if ( !$differ )
				{
					sync('forum');
				}
			}
//-- fin mod : categories hierarchy --------------------------------------------
			break;

		case 'topic':
//-- mod : categories hierarchy ------------------------------------------------
//-- delete
/*
			$sql = "SELECT MAX(post_id) AS last_post, MIN(post_id) AS first_post, COUNT(post_id) AS total_posts
				FROM " . POSTS_TABLE . "
				WHERE topic_id = $id";
			if ( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, 'Could not get post ID', '', __LINE__, __FILE__, $sql);
			}

			if ( $row = $db->sql_fetchrow($result) )
			{
				if ($row['total_posts'])
				{
					// Correct the details of this topic
					$sql = 'UPDATE ' . TOPICS_TABLE . ' 
						SET topic_replies = ' . ($row['total_posts'] - 1) . ', topic_first_post_id = ' . $row['first_post'] . ', topic_last_post_id = ' . $row['last_post'] . "
						WHERE topic_id = $id";

					if (!$db->sql_query($sql))
					{
						message_die(GENERAL_ERROR, 'Could not update topic', '', __LINE__, __FILE__, $sql);
					}
				}
*/
//-- add
			// prepare return : we don't touch first post data until a first post exists because of shadow topics
			$fields = array(
				'topic_replies' => 0,
				'topic_first_post_id' => 0,
				'topic_last_post_id' => 0,
				'topic_last_poster' => 0,
				'topic_last_username' => '',
				'topic_last_time' => 0,
			);
			// read topic counts
			$sql = 'SELECT MAX(post_id) AS topic_last_post_id, MIN(post_id) AS topic_first_post_id, COUNT(post_id) AS topic_replies
						FROM ' . POSTS_TABLE . '
						WHERE topic_id = ' . intval($id);
			$result = $db->sql_query($sql, false, __LINE__, __FILE__);
			if ( $row = $db->sql_fetchrow($result) )
			{
				$fields = array_merge($fields, $row);
				if ( !empty($fields['topic_replies']) )
				{
					$fields['topic_replies']--;
				}
				else
				{
					// remove shadow topics
					$sql = 'DELETE FROM ' . TOPICS_TABLE . '
								WHERE topic_id = ' . intval($id);
					$db->sql_query($sql, false, __LINE__, __FILE__);
					return;
				}
			}

			// read topic first & last post
			if ( !empty($fields['topic_last_post_id']) || !empty($fields['topic_first_post_id']) )
			{
				$sql = 'SELECT post_id, poster_id, post_username, post_time
							FROM ' . POSTS_TABLE . '
							WHERE topic_id = ' . intval($id) . '
								AND post_id IN(' . intval($fields['topic_first_post_id']) . ', ' . intval($fields['topic_last_post_id']) . ')';
				$result = $db->sql_query($sql, false, __LINE__, __FILE__);
				while ( $row = $db->sql_fetchrow($result) )
				{
					if ( $row['post_id'] == intval($fields['topic_last_post_id']) )
					{
						$fields = array_merge($fields, array(
							'topic_last_poster' => $row['poster_id'],
							'topic_last_username' => $row['post_username'],
							'topic_last_time' => $row['post_time'],
							)
						);
					}
					if ( $row['post_id'] == intval($fields['topic_first_post_id']) )
					{
						$fields = array_merge($fields, array(
							'topic_poster' => $row['poster_id'],
							'topic_first_username' => $row['post_username'],
							'topic_time' => $row['post_time'],
							)
						);
					}
				}
			}
			$db->sql_statement($fields);
			$sql = 'UPDATE ' . TOPICS_TABLE . '
						SET ' . $db->sql_update . '
						WHERE topic_id = ' . intval($id);
			$db->sql_query($sql, false, __LINE__, __FILE__);
//-- fin mod : categories hierarchy --------------------------------------------
				else
				{
					// There are no replies to this topic
					// Check if it is a move stub
					$sql = 'SELECT topic_moved_id 
						FROM ' . TOPICS_TABLE . " 
						WHERE topic_id = $id";

					if (!($result = $db->sql_query($sql)))
					{
						message_die(GENERAL_ERROR, 'Could not get topic ID', '', __LINE__, __FILE__, $sql);
					}

					if ($row = $db->sql_fetchrow($result))
					{
						if (!$row['topic_moved_id'])
						{
							$sql = 'DELETE FROM ' . TOPICS_TABLE . " WHERE topic_id = $id";
			
							if (!$db->sql_query($sql))
							{
								message_die(GENERAL_ERROR, 'Could not remove topic', '', __LINE__, __FILE__, $sql);
							}
						}
					}

					$db->sql_freeresult($result);
				}
			}
			break;
	}
	
	return true;
}

?>
ich weis net, wozu die herrenlose else anweisung da ist, aber das phpbb scheint sie net zu mögen
track
Mitglied
Beiträge: 55
Registriert: 30.09.2005 18:22
Wohnort: Hamburg
Kontaktdaten:

Beitrag von track »

mit 2.0.20 ist der ch mod 2.14 noch nicht kompatibel, musst auf die nächste version warten!
Antworten

Zurück zu „phpBB 2.0: Mod Support“