Category Hierarchy: important note

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
Gebruikersavatar
SharK_^
Berichten: 52
Lid geworden op: 08 jul 2005, 11:45

Category Hierarchy: important note

Bericht door SharK_^ » 05 okt 2005, 21:19

Support template:
  • Wat is het probleem? Tijdens het installeren van de category hierarchy mod (het tekstdocument heet zo: MOD-categories_hierarchy-210), moet ik een keer het bestand posting.php openen, en dan staat er op een gegeven moment het volgende:

    Code: Selecteer alles

    #-----[ FIND ]------------------------------------------------
    #
    # Important note : all what follows has to be copied as is in includes/bbcode.php, function display_bbcodes()
    # as the line may be different from the original phpBB if you have added extra bbCodes
    #
    	'L_BBCODE_B_HELP' => $lang['bbcode_b_help'],
    #
    #-----[ BEFORE, ADD ]-----------------------------------------
    #
    //-- mod : categories hierarchy ------------------------------------------------
    //-- delete
    	//
    	// note : all of this has been copied into includes/bbcode.tpl, function display_bbcodes()
    	//
    	/*
    #
    #-----[ FIND ]------------------------------------------------
    #
    	'L_STYLES_TIP' => $lang['Styles_tip'],
    #
    #-----[ AFTER, ADD ]------------------------------------------
    #
    */
    //-- fin mod : categories hierarchy --------------------------------------------
    #
    #-----[ FIND ]------------------------------------------------
    #
    	$template->assign_var_from_handle('TOPIC_REVIEW_BOX', 'reviewbody');
    }
    #
    #-----[ AFTER, ADD ]------------------------------------------
    #
    
    //-- mod : categories hierarchy ------------------------------------------------
    //-- add
    // display navigation sentence
    $forums->display_nav($forum_id);
    
    // display bbcodes
    display_bbcodes();
    
    // display moderators
    $moderators = new moderators();
    $moderators->read();
    $moderators->display('moderators', $forum_id);
    
    // send the name of the topic if any, else send forum name
    $template->assign_vars(array(
    	'U_TITLE' => ($mode == 'newtopic') ? $config->url('index', array(POST_FORUM_URL => $forum_id), true) : $config->url('viewtopic', array(POST_TOPIC_URL => $topic_id), true),
    	'TITLE' => ($mode == 'newtopic') ? $forum_name : _censor($post_info['topic_title']),
    	)
    );
    
    // icons
    $icons->display('ICON_BOX', $post_icon);
    
    // environement
    $template->set_switch('switch_standalone');
    $template->set_switch('switch_standalone.switch_user_logged_in', $user->data['session_logged_in']);
    $template->set_switch('switch_subject');
    $template->set_switch('switch_sub_title', $sub_title_display);
    //-- fin mod : categories hierarchy --------------------------------------------
    
    (Dit stukje is het laatste stukje wat je moet aanpassen). In het begin staat er een important note. Ik snap niet wat de bedoeling daar van is. :? Wat je precies moet doen. Wil en kan iemand me uitleggen hoe dat zit? :)

    Wanneer ontstond het probleem? Tijdens het installeren van deze mod
    Geïnstalleerde mods: Nu nog geen.
    Huidige template: subSilver
    phpBB versie: 2.0.17
    Heb je onlangs een mod of stijl geïnstalleerd? Nope.
    Heb je gezocht naar een antwoord? Ja
Overige opmerkingen:
Laatst gewijzigd door SharK_^ op 17 okt 2005, 02:11, 1 keer totaal gewijzigd.
Ik ben niet bijgelovig, want dat brengt ongeluk..

Gebruikersavatar
Bee
Berichten: 13403
Lid geworden op: 29 aug 2004, 10:30

Bericht door Bee » 05 okt 2005, 21:27

all what follows has to be copied as is in includes/bbcode.php, function display_bbcodes() as the line may be different from the original phpBB if you have added extra bbCodes
Alles wat hierna volgt moet gekopieerde worden naar includes/bbcode.php, functie display_bbcodes(), omdat de regels kunnen afwijken van de originele phpBB, als je extra bbCodes hebt toegevoegd.
... Maar ik modereer (nog) niet.

Gebruikersavatar
SharK_^
Berichten: 52
Lid geworden op: 08 jul 2005, 11:45

Bericht door SharK_^ » 06 okt 2005, 09:01

Bedankt voor het antwoord, maar zo ver was ik ook al. Ik snap niet wat ze hier: functie display_bbcodes() mee bedoelen. En later staat ook dit: all of this has been copied into includes/bbcode.tpl, function display_bbcodes() nog.

Bedoelen ze dan, dat je dat gedeelte moet toevoegen, in het document bbcode.php en bbcode.tpl achter function display_bbcodes() ofzo?
Sorry, ik ben geen expert op het gebied werken met php, en snap dit gewoon niet zo goed. :oops:
Ik ben niet bijgelovig, want dat brengt ongeluk..

Gebruikersavatar
Bee
Berichten: 13403
Lid geworden op: 29 aug 2004, 10:30

Bericht door Bee » 06 okt 2005, 16:13

Heb je al mods geinstalleerd met betrekking tot de BBcode?
... Maar ik modereer (nog) niet.

Gebruikersavatar
SharK_^
Berichten: 52
Lid geworden op: 08 jul 2005, 11:45

Bericht door SharK_^ » 06 okt 2005, 21:29

Ik heb nog geen enkele mod geinstalleerd.. dit is de eerste mod die ik aan het installeren ben. Maakt het anders niet uit wat daar staat? Ik bedoel, hoef ik er dan niks op uit te doen?
Ik ben niet bijgelovig, want dat brengt ongeluk..

Gebruikersavatar
Bas
Berichten: 2741
Lid geworden op: 02 dec 2003, 17:38
Locatie: Omgeving Goslar (Duitsland)
Contacteer:

Bericht door Bas » 07 okt 2005, 08:45

Dan hoeft dat waarschijnlijk niet nee.

Gebruikersavatar
SharK_^
Berichten: 52
Lid geworden op: 08 jul 2005, 11:45

Bericht door SharK_^ » 09 okt 2005, 02:46

Nou, ik ben van datgeen wat ik hierboven allemaal gevraagd heb nog niet helemaal uit, maar dat maakt me nu even niet meer uit, omdat ik weer met een ander probleem zit. :?

Nu ik de mod geinstalleerd heb (eindelijk), en ik naar m'n index wil gaan, krijg ik een foutmelding. En idd, ik weet niet waar het aan ligt. Sorry.
Dit is de foutmelding:

Code: Selecteer alles

Warning: main(./includes/class_template.php): failed to open stream: No such file or directory in /home/ladyelen/public_html/phpBB/common.php on line 203

Warning: main(): Failed opening './includes/class_template.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/ladyelen/public_html/phpBB/common.php on line 203

Warning: main(./includes/class_db.php): failed to open stream: No such file or directory in /home/ladyelen/public_html/phpBB/includes/db.php on line 64

Warning: main(): Failed opening './includes/class_db.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/ladyelen/public_html/phpBB/includes/db.php on line 64

Fatal error: Cannot instantiate non-existent class: db_class in /home/ladyelen/public_html/phpBB/includes/db.php on line 65
Dit staat er in m'n common.php:

Code: Selecteer alles

198.     include($phpbb_root_path . 'includes/constants.'.$phpEx);
199.     //-- mod : categories hierarchy ------------------------------------------------
200.     //-- delete
201.     // include($phpbb_root_path . 'includes/template.'.$phpEx);
202.     //-- add
203.     include($phpbb_root_path . 'includes/class_template.'.$phpEx);
204.     //-- fin mod : categories hierarchy --------------------------------------------
En dit staat er in m'n db.php:

Code: Selecteer alles

59.     // Make the database connection.
60.     //-- mod : categories hierarchy ------------------------------------------------
61.     //-- delete
62.     // $db = new sql_db($dbhost, $dbuser, $dbpasswd, $dbname, false);
63.     //-- add
64.     include_once($phpbb_root_path . 'includes/class_db.' . $phpEx);
65.    $db = new db_class($dbhost, $dbuser, $dbpasswd, $dbname, false);
66.     //-- fin mod : categories hierarchy --------------------------------------------
Sorry, ik snap er helemaal niks meer van. :(
Ik ben niet bijgelovig, want dat brengt ongeluk..

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

Bericht door Paul » 09 okt 2005, 09:20

Je hebt nog niet alle bestanden geupload ;)

Gebruikersavatar
SharK_^
Berichten: 52
Lid geworden op: 08 jul 2005, 11:45

Bericht door SharK_^ » 09 okt 2005, 15:19

Je hebt gelijk. Ik moest nog een map 'root' met allerlei bestanden uploaden. K had hem wel gezien, maar wist niet dat hij hierbij hoorde. (Had ik achteraf wel kunnen weten, want het stond ook in de mod zelf, wist alleen niet precies wat ze ermee bedoelden, en besteedde er geen aandacht aan. Beetje dom, maar goed).

Maar nu is er weer iets aan de hand, en weet ik niet waar het aan ligt. Ik wordt er gek van. Nu krijg ik als ik een post wil plaatsen de volgende foutmelding:
Parse error: parse error, unexpected ';' in /home/***/public_html/phpBB/posting.php on line 379

En als ik die ; weg haal, krijg ik deze foutmelding:
Parse error: parse error, unexpected '}' in /home/***/public_html/phpBB/posting.php on line 380

En als ik die } weg haal, krijg ik déze foutmelding:
Parse error: parse error, unexpected T_VARIABLE in /home/***/public_html/phpBB/posting.php on line 381

En toen wist ik niet meer wat ik moest doen. :? Hieronder plaats ik even m'n posting.php, en na regel 381 heb ik de code even gesplitst. Is wat makkelijker zoeken. ;)

Code: Selecteer alles

<?php //-- mod : categories hierarchy ------------------------------------------------
/***************************************************************************
 *                                posting.php
 *                            -------------------
 *   begin                : Saturday, Feb 13, 2001
 *   copyright            : (C) 2001 The phpBB Group
 *   email                : support@phpbb.com
 *
 *   $Id: posting.php,v 1.159.2.23 2005/05/06 20:50:10 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.
 *
 ***************************************************************************/

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
include($phpbb_root_path . 'includes/functions_post.'.$phpEx);
//-- mod : categories hierarchy ------------------------------------------------
//-- add
include($config->url('includes/class_forums'));
include($config->url('includes/class_form'));
$forums = new forums();
$forums->read();
//-- fin mod : categories hierarchy --------------------------------------------

//
// Check and set various parameters
//
$params = array('submit' => 'post', 'preview' => 'preview', 'delete' => 'delete', 'poll_delete' => 'poll_delete', 'poll_add' => 'add_poll_option', 'poll_edit' => 'edit_poll_option', 'mode' => 'mode');
while( list($var, $param) = @each($params) )
{
	if ( !empty($HTTP_POST_VARS[$param]) || !empty($HTTP_GET_VARS[$param]) )
	{
		$$var = ( !empty($HTTP_POST_VARS[$param]) ) ? htmlspecialchars($HTTP_POST_VARS[$param]) : htmlspecialchars($HTTP_GET_VARS[$param]);
	}
	else
	{
		$$var = '';
	}
}

$confirm = isset($HTTP_POST_VARS['confirm']) ? true : false;

$params = array('forum_id' => POST_FORUM_URL, 'topic_id' => POST_TOPIC_URL, 'post_id' => POST_POST_URL);
while( list($var, $param) = @each($params) )
{
	if ( !empty($HTTP_POST_VARS[$param]) || !empty($HTTP_GET_VARS[$param]) )
	{
		$$var = ( !empty($HTTP_POST_VARS[$param]) ) ? intval($HTTP_POST_VARS[$param]) : intval($HTTP_GET_VARS[$param]);
	}
	else
	{
		$$var = '';
	}
}

$refresh = $preview || $poll_add || $poll_edit || $poll_delete;

//
// Set topic type
//
$topic_type = ( !empty($HTTP_POST_VARS['topictype']) ) ? intval($HTTP_POST_VARS['topictype']) : POST_NORMAL;

//
// If the mode is set to topic review then output
// that review ...
//
if ( $mode == 'topicreview' )
{
	require($phpbb_root_path . 'includes/topic_review.'.$phpEx);

	topic_review($topic_id, false);
	exit;
}
else if ( $mode == 'smilies' )
{
	generate_smilies('window', PAGE_POSTING);
	exit;
}

//-- mod : categories hierarchy ------------------------------------------------
//-- add
// get the forum of this topic/post
if ( empty($forum_id) )
{
	if ( !empty($topic_id) )
	{
		$sql = 'SELECT forum_id
					FROM ' . TOPICS_TABLE . '
					WHERE topic_id = ' . intval($topic_id);
	}
	else
	{
		$sql = 'SELECT forum_id
					FROM ' . POSTS_TABLE . '
					WHERE post_id = ' . intval($post_id);
	}
	$result = $db->sql_query($sql, false, __LINE__, __FILE__);
	if ( $row = $db->sql_fetchrow($result) )
	{
		$forum_id = $row['forum_id'];
	}
}
//-- fin mod : categories hierarchy --------------------------------------------


//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_POSTING);
init_userprefs($userdata);
//
// End session management
//

//
// Was cancel pressed? If so then redirect to the appropriate
// page, no point in continuing with any further checks
//
if ( isset($HTTP_POST_VARS['cancel']) )
{
	if ( $post_id )
	{
		$redirect = "viewtopic.$phpEx?" . POST_POST_URL . "=$post_id";
		$post_append = "#$post_id";
	}
	else if ( $topic_id )
	{
		$redirect = "viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id";
		$post_append = '';
	}
	else if ( $forum_id )
	{
//-- mod : categories hierarchy ------------------------------------------------
//		$redirect = "viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id";
//-- add
		$redirect = $config->url('index', array(POST_FORUM_URL => $forum_id));
//-- fin mod : categories hierarchy --------------------------------------------

		$post_append = '';
	}
	else
	{
		$redirect = "index.$phpEx";
		$post_append = '';
	}

	redirect(append_sid($redirect, true) . $post_append);
}

//
// What auth type do we need to check?
//
$is_auth = array();
switch( $mode )
{
	case 'newtopic':
	//-- mod : categories hierarchy ------------------------------------------------
//-- add
		if ( $topic_type == POST_GLOBAL_ANNOUNCE )
		{
			$is_auth_type = 'auth_global_announce';
		}
		else
//-- fin mod : categories hierarchy --------------------------------------------

		if ( $topic_type == POST_ANNOUNCE )
		{
			$is_auth_type = 'auth_announce';
		}
		else if ( $topic_type == POST_STICKY )
		{
			$is_auth_type = 'auth_sticky';
		}
		else
		{
			$is_auth_type = 'auth_post';
		}
		break;
	case 'reply':
	case 'quote':
		$is_auth_type = 'auth_reply';
		break;
	case 'editpost':
		$is_auth_type = 'auth_edit';
		break;
	case 'delete':
	case 'poll_delete':
		$is_auth_type = 'auth_delete';
		break;
	case 'vote':
		$is_auth_type = 'auth_vote';
		break;
	case 'topicreview':
		$is_auth_type = 'auth_read';
		break;
	default:
		message_die(GENERAL_MESSAGE, $lang['No_post_mode']);
		break;
}

//
// Here we do various lookups to find topic_id, forum_id, post_id etc.
// Doing it here prevents spoofing (eg. faking forum_id, topic_id or post_id
//
$error_msg = '';
$post_data = array();
switch ( $mode )
{
	case 'newtopic':
		if ( empty($forum_id) )
		{
			message_die(GENERAL_MESSAGE, $lang['Forum_not_exist']);
		}

		$sql = "SELECT * 
			FROM " . FORUMS_TABLE . " 
			WHERE forum_id = $forum_id";
		break;

	case 'reply':
	case 'vote':
		if ( empty( $topic_id) )
		{
			message_die(GENERAL_MESSAGE, $lang['No_topic_id']);
		}

		$sql = "SELECT f.*, t.topic_status, t.topic_title  
			FROM " . FORUMS_TABLE . " f, " . TOPICS_TABLE . " t
			WHERE t.topic_id = $topic_id
				AND f.forum_id = t.forum_id";
		break;

	case 'quote':
	case 'editpost':
	case 'delete':
	case 'poll_delete':
		if ( empty($post_id) )
		{
			message_die(GENERAL_MESSAGE, $lang['No_post_id']);
		}

		$select_sql = ( !$submit ) ? ", t.topic_title, p.enable_bbcode, p.enable_html, p.enable_smilies, p.enable_sig, p.post_username, pt.post_subject, pt.post_text, pt.bbcode_uid, u.username, u.user_id, u.user_sig" : '';
		$from_sql = ( !$submit ) ? ", " . POSTS_TEXT_TABLE . " pt, " . USERS_TABLE . " u" : '';
		$where_sql = ( !$submit ) ? "AND pt.post_id = p.post_id AND u.user_id = p.poster_id" : '';

		$sql = "SELECT f.*, t.topic_id, t.topic_status, t.topic_type, t.topic_first_post_id, t.topic_last_post_id, t.topic_vote, p.post_id, p.poster_id" . $select_sql . " 
			FROM " . POSTS_TABLE . " p, " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f" . $from_sql . " 
			WHERE p.post_id = $post_id 
				AND t.topic_id = p.topic_id 
				AND f.forum_id = p.forum_id
				$where_sql";
		break;

	default:
		message_die(GENERAL_MESSAGE, $lang['No_valid_mode']);
}

//-- mod : categories hierarchy ------------------------------------------------
//-- delete
// if ( $result = $db->sql_query($sql) )
// {
//	$post_info = $db->sql_fetchrow($result);
//	$db->sql_freeresult($result);
//
//	$forum_id = $post_info['forum_id'];
//	$forum_name = $post_info['forum_name'];
//
//	$is_auth = auth(AUTH_ALL, $forum_id, $userdata, $post_info);
//-- add
$user->get_cache(array(POST_FORUM_URL, POST_FORUM_URL . 'jbox'));
if ( $mode == 'newtopic' )
{
	$post_info['forum_id'] = intval($forum_id);
}
else
{
	// added fields from topic
	$added_sql = 't.topic_icon, t.topic_duration, t.topic_time, t.topic_sub_title';
	if ( defined('POST_CALENDAR') )
	{
		$added_sql .= ', t.topic_calendar_time, t.topic_calendar_duration';
	}

	// added fields from posts text
	if ( strpos(' ' . $sql, POSTS_TEXT_TABLE . ' pt') )
	{
		$added_sql .= ', pt.post_sub_title';
	}

	// added fields from post, and also forum id from topic if appropriate
	if ( strpos(' ' . $sql, POSTS_TABLE . ' p') )
	{
		$added_sql = 'p.forum_id, ' . $added_sql;
		$added_sql .= ', p.post_icon';
	}
	else
	{
		$added_sql = 't.forum_id, ' . $added_sql;
	}

	// let's do some cleaning in this request as we already have the forum informations
	// this way prevents to edit at too many place the script :)
	$sql = eregi_replace('AND f\.forum_id = (p|t)\.forum_id', '', $sql);
	$sql = str_replace(', ' . FORUMS_TABLE . ' f', '', $sql);
	$sql = str_replace('f.*', $added_sql, $sql);

	// read
	$result = $db->sql_query($sql, false, __LINE__, __FILE__);
	if ( !($post_info = $db->sql_fetchrow($result)) )
	{
		message_die(GENERAL_MESSAGE, $lang['No_such_post']);
	}
	$db->sql_freeresult($result);
}

// add the forums informations
if ( !empty($post_info['forum_id']) && !empty($forums->data[ $post_info['forum_id'] ]) )
{
	$forum_id = $post_info['forum_id'];

	// we only need to refresh data on some case (to get the "last_topic" info)
	$last_topic = in_array($mode, array('editpost', 'delete', 'poll_delete'));
	if ( $last_topic )
	{
		$forums->refresh($forum_id);
	}
	$row = $forums->data[$forum_id];
	if ( $last_topic )
	{
		if ( !empty($row['last']) )
		{
			foreach ( $row['last'] as $field_name => $field_value )
			{
				$row[$field_name] = $field_value;
			}
			unset($row['last']);
		}
		if ( !empty($row['subs']) )
		{
			unset($row['subs']);
		}
	}
	$post_info = array_merge($post_info, $row);
	$forum_name = $user->lang($post_info['forum_name']);

	// get auths
	$is_auth = auth(AUTH_ALL, $forum_id, $user->data, $post_info);
//-- fin mod : categories hierarchy --------------------------------------------


	if ( $post_info['forum_status'] == FORUM_LOCKED && !$is_auth['auth_mod']) 
	{ 
	   message_die(GENERAL_MESSAGE, $lang['Forum_locked']); 
	} 
	else if ( $mode != 'newtopic' && $post_info['topic_status'] == TOPIC_LOCKED && !$is_auth['auth_mod']) 
	{ 
	   message_die(GENERAL_MESSAGE, $lang['Topic_locked']); 
	} 

	if ( $mode == 'editpost' || $mode == 'delete' || $mode == 'poll_delete' )
	{
		$topic_id = $post_info['topic_id'];

	                $post_data['poster_post'] = ( $post_info['poster_id'] == $userdata['user_id'] ) ? true : false;
		$post_data['first_post'] = ( $post_info['topic_first_post_id'] == $post_id ) ? true : false;
		$post_data['last_post'] = ( $post_info['topic_last_post_id'] == $post_id ) ? true : false;
		$post_data['last_topic'] = ( $post_info
['forum_last_post_id'] ==e ( $row = $db->sql_fetchrow($result) );
			}
			$db->sql_freeresult($result);
Ik zag dat de bbcode niet werkte in een code, dus splits ik hem even. De onderste regel van het stuk hierboven, is line 381.

Code: Selecteer alles


			$post_data['edit_poll'] = ( ( !$poll_results_sum || $is_auth['auth_mod'] ) && $post_data['first_post'] ) ? true : 0;
		}
		else 
		{
			$post_data['edit_poll'] = ($post_data['first_post'] && $is_auth['auth_pollcreate']) ? true : false;
		}
		
		//
		// Can this user edit/delete the post/poll?
		//
		if ( $post_info['poster_id'] != $userdata['user_id'] && !$is_auth['auth_mod'] )
		{
			$message = ( $delete || $mode == 'delete' ) ? $lang['Delete_own_posts'] : $lang['Edit_own_posts'];
			$message .= '<br /><br />' . sprintf($lang['Click_return_topic'], '<a href="' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id") . '">', '</a>');

			message_die(GENERAL_MESSAGE, $message);
		}
		else if ( !$post_data['last_post'] && !$is_auth['auth_mod'] && ( $mode == 'delete' || $delete ) )
		{
			message_die(GENERAL_MESSAGE, $lang['Cannot_delete_replied']);
		}
		else if ( !$post_data['edit_poll'] && !$is_auth['auth_mod'] && ( $mode == 'poll_delete' || $poll_delete ) )
		{
			message_die(GENERAL_MESSAGE, $lang['Cannot_delete_poll']);
		}
	}
	else
	{
		if ( $mode == 'quote' )
		{
			$topic_id = $post_info['topic_id'];
		}

		$post_data['first_post'] = ( $mode == 'newtopic' ) ? true : 0;
		$post_data['last_post'] = false;
		$post_data['has_poll'] = false;
		$post_data['edit_poll'] = false;
	}
}
else
{
	message_die(GENERAL_MESSAGE, $lang['No_such_post']);
}

//
// The user is not authed, if they're not logged in then redirect
// them, else show them an error message
//
if ( !$is_auth[$is_auth_type] )
{
	if ( $userdata['session_logged_in'] )
	{
//-- mod : categories hierarchy ------------------------------------------------
//-- delete
//		message_die(GENERAL_MESSAGE, sprintf($lang['Sorry_' . $is_auth_type], $is_auth[$is_auth_type . "_type"]));
//-- add
		message_die(GENERAL_MESSAGE, sprintf($lang['Sorry_' . $is_auth_type], $user->lang('Auth_Users_granted_access')));
//-- fin mod : categories hierarchy --------------------------------------------

	}

	switch( $mode )
	{
		case 'newtopic':
			$redirect = "mode=newtopic&" . POST_FORUM_URL . "=" . $forum_id;
			break;
		case 'reply':
		case 'topicreview':
			$redirect = "mode=reply&" . POST_TOPIC_URL . "=" . $topic_id;
			break;
		case 'quote':
		case 'editpost':
			$redirect = "mode=quote&" . POST_POST_URL ."=" . $post_id;
			break;
	}

	redirect(append_sid("login.$phpEx?redirect=posting.$phpEx&" . $redirect, true));
}

//
// Set toggles for various options
//
if ( !$board_config['allow_html'] )
{
	$html_on = 0;
}
else
{
	$html_on = ( $submit || $refresh ) ? ( ( !empty($HTTP_POST_VARS['disable_html']) ) ? 0 : TRUE ) : ( ( $userdata['user_id'] == ANONYMOUS ) ? $board_config['allow_html'] : $userdata['user_allowhtml'] );
}

if ( !$board_config['allow_bbcode'] )
{
	$bbcode_on = 0;
}
else
{
	$bbcode_on = ( $submit || $refresh ) ? ( ( !empty($HTTP_POST_VARS['disable_bbcode']) ) ? 0 : TRUE ) : ( ( $userdata['user_id'] == ANONYMOUS ) ? $board_config['allow_bbcode'] : $userdata['user_allowbbcode'] );
}

if ( !$board_config['allow_smilies'] )
{
	$smilies_on = 0;
}
else
{
	$smilies_on = ( $submit || $refresh ) ? ( ( !empty($HTTP_POST_VARS['disable_smilies']) ) ? 0 : TRUE ) : ( ( $userdata['user_id'] == ANONYMOUS ) ? $board_config['allow_smilies'] : $userdata['user_allowsmile'] );
}

if ( ($submit || $refresh) && $is_auth['auth_read'])
{
	$notify_user = ( !empty($HTTP_POST_VARS['notify']) ) ? TRUE : 0;
}
else
{
	if ( $mode != 'newtopic' && $userdata['session_logged_in'] && $is_auth['auth_read'] )
	{
		$sql = "SELECT topic_id 
			FROM " . TOPICS_WATCH_TABLE . "
			WHERE topic_id = $topic_id 
				AND user_id = " . $userdata['user_id'];
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not obtain topic watch information', '', __LINE__, __FILE__, $sql);
		}

		$notify_user = ( $db->sql_fetchrow($result) ) ? TRUE : $userdata['user_notify'];
		$db->sql_freeresult($result);
	}
	else
	{
		$notify_user = ( $userdata['session_logged_in'] && $is_auth['auth_read'] ) ? $userdata['user_notify'] : 0;
	}
}

$attach_sig = ( $submit || $refresh ) ? ( ( !empty($HTTP_POST_VARS['attach_sig']) ) ? TRUE : 0 ) : ( ( $userdata['user_id'] == ANONYMOUS ) ? 0 : $userdata['user_attachsig'] );
//-- mod : categories hierarchy ------------------------------------------------
//-- add
//
// all is prepared, the data have been readed from the table
//

// read icons
$icons->read();
$icons->get_allowed($forum_id);
if ( $mode == 'newtopic' )
{
	$post_info['topic_icon'] = 0;
	$post_info['post_icon'] = 0;
	$post_info['topic_type'] = POST_NORMAL;
}
$post_icon = empty($icons->allowed) ? 0 : _read('icon_id', TYPE_INT, (($mode == 'quote') || ($mode=='reply') ? 0 : ($post_data['first_post'] ? $post_info['topic_icon'] : $post_info['post_icon'])), array(0 => '') + array_flip($icons->allowed));

// topic types allowing topic duration (won't work with POST_NORMAL in it)
$types_with_duration = array(POST_ANNOUNCE, POST_GLOBAL_ANNOUNCE);

// get auths
$auth_calendar = defined('POST_CALENDAR') && $user->auth(POST_FORUM_URL, 'auth_calendar', $forum_id);
$auth_announces = $user->auth(POST_FORUM_URL, 'auth_announce', $forum_id) || $user->auth(POST_FORUM_URL, 'auth_global_announce', $forum_id);

// default values for added fields
$calendar_time = 0;
$calendar_duration = 0;
$topic_duration = ($post_data['first_post'] || ($mode == 'newtopic')) ? (!empty($post_info['topic_time']) && $auth_announces ? $post_info['topic_time'] : time()) : 0;

// prepare the form
$fields = array();

// first post added fields (so topics ones)
if ( ($mode == 'newtopic') || (($mode == 'editpost') && $post_data['first_post']) )
{
	//
	// calendar events
	//
	if ( $auth_calendar )
	{
		$fields += array(
			'calendar_title' => array('type' => 'title', 'legend' => 'Calendar_event'),
			'calendar_title_explain' => array('type' => 'comment_light', 'legend' => 'Calendar_event_explain'),
			'calendar_time' => array('type' => 'timestamp', 'legend' => 'Calendar_time', 'value' => intval($post_info['topic_calendar_time']), 'bold' => true),
			'calendar_stop' => array('type' => 'timestamp', 'legend' => 'Calendar_stop', 'value' => empty($post_info['topic_calendar_duration']) ? 0 : intval($post_info['topic_calendar_time']) + intval($post_info['topic_calendar_duration']), 'options.end_date' => true, 'bold' => true),
		);
	}

	//
	// announces duration fields
	//

	// get the topic type
	$topic_type = _read('topictype', TYPE_INT, $post_info['topic_type']);
	$sav_topic_type = _read('sav_topic_type', TYPE_INT, $topic_type);

	// if not on an announcement, set topic_duration to "never"
	$topic_duration = -1;

	// add the fields to the form
	if ( $auth_announces )
	{
		// new topic : use time() as topic_time
		if ( ($mode == 'newtopic') || !in_array($sav_topic_type, $types_with_duration) )
		{
			$topic_duration = time() + intval($config->data['default_duration']) * 86400;
		}
		// topic sat to "never"
		else if ( !empty($post_info['topic_duration']) && ($post_info['topic_time'] >= $post_info['topic_duration']) )
		{
			$topic_duration = -1;
		}
		// topic sat to "forever" or with an end date
		else
		{
			$topic_duration = intval($post_info['topic_duration']);
		}

		$fields += array(
			'topic_duration_title' => array('type' => 'title', 'legend' => 'Topic_duration'),
			'topic_duration_explain' => array('type' => 'comment_light', 'legend' => 'Topic_duration_explain', 'linefeed' => true),
			'topic_duration' => array('type' => 'date_unix', 'legend' => 'Topic_duration', 'value' => $topic_duration, 'options.specials' => array(-1 => 'Never_displayed', 0 => 'Always_displayed'), 'options.floor' => time(), 'options.end_date' => true),
			'topic_duration_special' => array('type' => 'comment', 'output' => true, 'legend' => 'Topic_duration_special', 'combined' => true, 'linefeed' => true),
		);
	}
}

if ( !empty($fields) )
{
	//
	// create the form
	//
	$posting_form = new form($fields, false);

	//
	// pre process announces part
	//
	// force duration when the previous type wasn't an announcement
	if ( $auth_announces && isset($posting_form->fields['topic_duration']) && ((in_array($topic_type, $types_with_duration) && !in_array($sav_topic_type, $types_with_duration)) || (!in_array($topic_type, $types_with_duration) && in_array($sav_topic_type, $types_with_duration))) )
	{
		$posting_form->fields['topic_duration']->force_value($posting_form->fields['topic_duration']->data['value']);
	}

	//
	// process the form
	//
	$posting_form->process('', ($submit || $refresh), _button('cancel'), 'POSTING_FORM');

	//
	// post process calendar event part
	//
	if ( $auth_calendar && isset($posting_form->fields['calendar_time']) )
	{
		$calendar_time = intval($posting_form->fields['calendar_time']->value);
		$calendar_stop = intval($posting_form->fields['calendar_stop']->value);
		if ( $calendar_time <= 0 )
		{
			$calendar_time = 0;
		}
		if ( $calendar_stop <= 0 )
		{
			$calendar_duration = 0;
		}
		else if ( empty($calendar_time) || ($calendar_time >= $calendar_stop) )
		{
			_error('Calendar_date_not_valid');
		}
		else
		{
			$calendar_duration = $calendar_stop - $calendar_time;
		}
	}

	//
	// post process announces part
	//
	if ( $auth_announces && isset($posting_form->fields['topic_duration']) )
	{
		// get topic duration
		$topic_duration = $posting_form->fields['topic_duration']->value;
		if ( ($topic_duration < 0) || !in_array($topic_type, $types_with_duration) )
		{
			$topic_duration = empty($post_info['topic_time']) ? time() : $post_info['topic_time'];
		}
	}

	// errors are sended later, checking if error_msg is empty
	// so we don't need to send our own break messages :)
}

// sub title
$sub_title_display = intval($config->data['sub_title_length']);
if ( $mode == 'newtopic' )
{
	$post_info['topic_sub_title'] = '';
	$post_info['post_sub_title'] = '';
}
if ( intval($config->data['topic_title_length']) <= 0 )
{
	$config->set('topic_title_length', 60, true);
}
$template->assign_vars(array(
	'SUBJECT_LENGTH' => intval($config->data['topic_title_length']),
));
if ( $sub_title_display )
{
	$sub_title = trim(_read('sub_title', TYPE_NO_HTML, $post_info['post_sub_title']));
	$template->assign_vars(array(
		'L_SUB_TITLE' => $user->lang('Sub_title'),
		'SUB_TITLE' => $sub_title,
		'SUB_TITLE_LENGTH' => intval($config->data['sub_title_length']),
	));
}
else
{
	$sub_title = trim($post_info['post_sub_title']);
}
//-- fin mod : categories hierarchy --------------------------------------------


// --------------------
//  What shall we do?
//
if ( ( $delete || $poll_delete || $mode == 'delete' ) && !$confirm )
{
	//
	// Confirm deletion
	//
	$s_hidden_fields = '<input type="hidden" name="' . POST_POST_URL . '" value="' . $post_id . '" />';
	$s_hidden_fields .= ( $delete || $mode == "delete" ) ? '<input type="hidden" name="mode" value="delete" />' : '<input type="hidden" name="mode" value="poll_delete" />';

	$l_confirm = ( $delete || $mode == 'delete' ) ? $lang['Confirm_delete'] : $lang['Confirm_delete_poll'];

	//
	// Output confirmation page
	//
	include($phpbb_root_path . 'includes/page_header.'.$phpEx);

	$template->set_filenames(array(
		'confirm_body' => 'confirm_body.tpl')
	);
	
//-- mod : categories hierarchy ------------------------------------------------
//-- add
	$forums->display_nav();
//-- fin mod : categories hierarchy --------------------------------------------


	$template->assign_vars(array(
		'MESSAGE_TITLE' => $lang['Information'],
		'MESSAGE_TEXT' => $l_confirm,

		'L_YES' => $lang['Yes'],
		'L_NO' => $lang['No'],

		'S_CONFIRM_ACTION' => append_sid("posting.$phpEx"),
		'S_HIDDEN_FIELDS' => $s_hidden_fields)
	);

	$template->pparse('confirm_body');

	include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
}
else if ( $mode == 'vote' )
{
	//
	// Vote in a poll
	//
	if ( !empty($HTTP_POST_VARS['vote_id']) )
	{
		$vote_option_id = intval($HTTP_POST_VARS['vote_id']);

		$sql = "SELECT vd.vote_id    
			FROM " . VOTE_DESC_TABLE . " vd, " . VOTE_RESULTS_TABLE . " vr
			WHERE vd.topic_id = $topic_id 
				AND vr.vote_id = vd.vote_id 
				AND vr.vote_option_id = $vote_option_id
			GROUP BY vd.vote_id";
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not obtain vote data for this topic', '', __LINE__, __FILE__, $sql);
		}

		if ( $vote_info = $db->sql_fetchrow($result) )
		{
			$vote_id = $vote_info['vote_id'];

			$sql = "SELECT * 
				FROM " . VOTE_USERS_TABLE . "  
				WHERE vote_id = $vote_id 
					AND vote_user_id = " . $userdata['user_id'];
			if ( !($result2 = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, 'Could not obtain user vote data for this topic', '', __LINE__, __FILE__, $sql);
			}

			if ( !($row = $db->sql_fetchrow($result2)) )
			{
				$sql = "UPDATE " . VOTE_RESULTS_TABLE . " 
					SET vote_result = vote_result + 1 
					WHERE vote_id = $vote_id 
						AND vote_option_id = $vote_option_id";
				if ( !$db->sql_query($sql, BEGIN_TRANSACTION) )
				{
					message_die(GENERAL_ERROR, 'Could not update poll result', '', __LINE__, __FILE__, $sql);
				}

				$sql = "INSERT INTO " . VOTE_USERS_TABLE . " (vote_id, vote_user_id, vote_user_ip) 
					VALUES ($vote_id, " . $userdata['user_id'] . ", '$user_ip')";
				if ( !$db->sql_query($sql, END_TRANSACTION) )
				{
					message_die(GENERAL_ERROR, "Could not insert user_id for poll", "", __LINE__, __FILE__, $sql);
				}

				$message = $lang['Vote_cast'];
			}
			else
			{
				$message = $lang['Already_voted'];
			}
			$db->sql_freeresult($result2);
		}
		else
		{
			$message = $lang['No_vote_option'];
		}
		$db->sql_freeresult($result);

		$template->assign_vars(array(
			'META' => '<meta http-equiv="refresh" content="3;url=' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id") . '">')
		);
		$message .=  '<br /><br />' . sprintf($lang['Click_view_message'], '<a href="' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id") . '">', '</a>');
		message_die(GENERAL_MESSAGE, $message);
	}
	else
	{
		redirect(append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id", true));
	}
}
else if ( $submit || $confirm )
{
	//
	// Submit post/vote (newtopic, edit, reply, etc.)
	//
	$return_message = '';
	$return_meta = '';

	switch ( $mode )
	{
		case 'editpost':
		case 'newtopic':
		case 'reply':
			$username = ( !empty($HTTP_POST_VARS['username']) ) ? $HTTP_POST_VARS['username'] : '';
			$subject = ( !empty($HTTP_POST_VARS['subject']) ) ? trim($HTTP_POST_VARS['subject']) : '';
			$message = ( !empty($HTTP_POST_VARS['message']) ) ? $HTTP_POST_VARS['message'] : '';
			$poll_title = ( isset($HTTP_POST_VARS['poll_title']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_title'] : '';
			$poll_options = ( isset($HTTP_POST_VARS['poll_option_text']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_option_text'] : '';
			$poll_length = ( isset($HTTP_POST_VARS['poll_length']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_length'] : '';
			$bbcode_uid = '';

			prepare_post($mode, $post_data, $bbcode_on, $html_on, $smilies_on, $error_msg, $username, $bbcode_uid, $subject, $message, $poll_title, $poll_options, $poll_length);

			if ( $error_msg == '' )
			{
				$topic_type = ( $topic_type != $post_data['topic_type'] && !$is_auth['auth_sticky'] && !$is_auth['auth_announce'] ) ? $post_data['topic_type'] : $topic_type;
//-- mod : categories hierarchy --------------------------------------------------------------------
//-- modify
// here we added
//	, $post_icon, $topic_duration, $calendar_time, $calendar_duration, $sub_title
//-- modify

				submit_post($mode, $post_data, $return_message, $return_meta, $forum_id, $topic_id, $post_id, $poll_id, $topic_type, $bbcode_on, $html_on, $smilies_on, $attach_sig, $bbcode_uid, str_replace("\'", "''", $username), str_replace("\'", "''", $subject), str_replace("\'", "''", $message), str_replace("\'", "''", $poll_title), $poll_options, $poll_length, $post_icon, $topic_duration, $calendar_time, $calendar_duration, $sub_title);
				//-- fin mod : categories hierarchy ----------------------------------------------------------------

			}
			break;

		case 'delete':
		case 'poll_delete':
			delete_post($mode, $post_data, $return_message, $return_meta, $forum_id, $topic_id, $post_id, $poll_id);
			break;
	}

	if ( $error_msg == '' )
	{
		if ( $mode != 'editpost' )
		{
			$user_id = ( $mode == 'reply' || $mode == 'newtopic' ) ? $userdata['user_id'] : $post_data['poster_id'];
			update_post_stats($mode, $post_data, $forum_id, $topic_id, $post_id, $user_id);
		}

		if ($error_msg == '' && $mode != 'poll_delete')
		{
			user_notification($mode, $post_data, $post_info['topic_title'], $forum_id, $topic_id, $post_id, $notify_user);
		}

		if ( $mode == 'newtopic' || $mode == 'reply' )
		{
		//-- mod : categories hierarchy ------------------------------------------------
//-- delete
/*
			$tracking_topics = ( !empty($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) : array();
			$tracking_forums = ( !empty($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) : array();

			if ( count($tracking_topics) + count($tracking_forums) == 100 && empty($tracking_topics[$topic_id]) )
			{
				asort($tracking_topics);
				unset($tracking_topics[key($tracking_topics)]);
			}

			$tracking_topics[$topic_id] = time();

			setcookie($board_config['cookie_name'] . '_t', serialize($tracking_topics), 0, $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']);
			*/
//-- add
			// add a cookie for this topic
			$user->read_cookies();
			$user->cookies['topics'][$topic_id] = time();
			if ( isset($user->cookies['unreads'][$topic_id]) )
			{
				unset($user->cookies['unreads'][$topic_id]);
			}
			$user->write_cookies(array('topics', 'unreads'));
//-- fin mod : categories hierarchy --------------------------------------------
#
#-----[ FIND ]------------------------------------------------
#
			'preview' => 'posting_preview.tpl')
		);

		}

		$template->assign_vars(array(
			'META' => $return_meta)
		);
		message_die(GENERAL_MESSAGE, $return_message);
	}
}

if( $refresh || isset($HTTP_POST_VARS['del_poll_option']) || $error_msg != '' )
{
	$username = ( !empty($HTTP_POST_VARS['username']) ) ? htmlspecialchars(trim(stripslashes($HTTP_POST_VARS['username']))) : '';
	$subject = ( !empty($HTTP_POST_VARS['subject']) ) ? htmlspecialchars(trim(stripslashes($HTTP_POST_VARS['subject']))) : '';
	$message = ( !empty($HTTP_POST_VARS['message']) ) ? htmlspecialchars(trim(stripslashes($HTTP_POST_VARS['message']))) : '';

	$poll_title = ( !empty($HTTP_POST_VARS['poll_title']) ) ? htmlspecialchars(trim(stripslashes($HTTP_POST_VARS['poll_title']))) : '';
	$poll_length = ( isset($HTTP_POST_VARS['poll_length']) ) ? max(0, intval($HTTP_POST_VARS['poll_length'])) : 0;

	$poll_options = array();
	if ( !empty($HTTP_POST_VARS['poll_option_text']) )
	{
		while( list($option_id, $option_text) = @each($HTTP_POST_VARS['poll_option_text']) )
		{
			if( isset($HTTP_POST_VARS['del_poll_option'][$option_id]) )
			{
				unset($poll_options[$option_id]);
			}
			else if ( !empty($option_text) ) 
			{
				$poll_options[$option_id] = htmlspecialchars(trim(stripslashes($option_text)));
			}
		}
	}

	if ( isset($poll_add) && !empty($HTTP_POST_VARS['add_poll_option_text']) )
	{
		$poll_options[] = htmlspecialchars(trim(stripslashes($HTTP_POST_VARS['add_poll_option_text'])));
	}

	if ( $mode == 'newtopic' || $mode == 'reply')
	{
		$user_sig = ( $userdata['user_sig'] != '' && $board_config['allow_sig'] ) ? $userdata['user_sig'] : '';
	}
	else if ( $mode == 'editpost' )
	{
		$user_sig = ( $post_info['user_sig'] != '' && $board_config['allow_sig'] ) ? $post_info['user_sig'] : '';
	}
	
	if( $preview )
	{
		$orig_word = array();
		$replacement_word = array();
		obtain_word_list($orig_word, $replacement_word);

		$bbcode_uid = ( $bbcode_on ) ? make_bbcode_uid() : '';
		$preview_message = stripslashes(prepare_message(addslashes(unprepare_message($message)), $html_on, $bbcode_on, $smilies_on, $bbcode_uid));
		$preview_subject = $subject;
		$preview_username = $username;

		//
		// Finalise processing as per viewtopic
		//
		if( !$html_on )
		{
			if( $user_sig != '' || !$userdata['user_allowhtml'] )
			{
				$user_sig = preg_replace('#(<)([\/]?.*?)(>)#is', '<\2>', $user_sig);
			}
		}

		if( $attach_sig && $user_sig != '' && $userdata['user_sig_bbcode_uid'] )
		{
			$user_sig = bbencode_second_pass($user_sig, $userdata['user_sig_bbcode_uid']);
		}

		if( $bbcode_on )
		{
			$preview_message = bbencode_second_pass($preview_message, $bbcode_uid);
		}

		if( !empty($orig_word) )
		{
			$preview_username = ( !empty($username) ) ? preg_replace($orig_word, $replacement_word, $preview_username) : '';
			$preview_subject = ( !empty($subject) ) ? preg_replace($orig_word, $replacement_word, $preview_subject) : '';
			$preview_message = ( !empty($preview_message) ) ? preg_replace($orig_word, $replacement_word, $preview_message) : '';
		}

		if( $user_sig != '' )
		{
			$user_sig = make_clickable($user_sig);
		}
		$preview_message = make_clickable($preview_message);

		if( $smilies_on )
		{
			if( $userdata['user_allowsmile'] && $user_sig != '' )
			{
				$user_sig = smilies_pass($user_sig);
			}

			$preview_message = smilies_pass($preview_message);
		}

		if( $attach_sig && $user_sig != '' )
		{
			$preview_message = $preview_message . '<br /><br />_________________<br />' . $user_sig;
		}

		$preview_message = str_replace("\n", '<br />', $preview_message);

		$template->set_filenames(array(
			'preview' => 'posting_preview.tpl')
		);
		
//-- mod : categories hierarchy ------------------------------------------------
//-- add
		// message icon
		$icons->topic_title('', $post_icon, ($post_data['first_post'] || ($mode == 'newtopic')) ? (($topic_type > POST_NORMAL) ? $topic_type : ($calendar_time ? POST_CALENDAR : '')) : '');

		// sub title
		$front_sub_title = new front_sub_title();
		$front_sub_title->topic_title('', $sub_title, $sub_title_display);
		unset($front_sub_title);

		// first post of the topic, get additional information for the subject
		if ( $post_data['first_post'] || ($mode == 'newtopic') )
		{
			// announce
			$front_announce = new front_announce();
			$front_announce->topic_title('', $post_info['topic_time'], $topic_duration);
			unset($front_announce);

			// calendar
			$front_calendar = new front_calendar();
			$front_calendar->topic_title('', $calendar_time, $calendar_duration);
			unset($front_calendar);
		}

		// let's send remaining messages : preview is the place :)
		if ( !empty($error_msg) )
		{
			$template->set_filenames(array(
				'reg_header' => 'error_body.tpl')
			);
			$template->assign_vars(array(
				'ERROR_MESSAGE' => $error_msg)
			);
			$template->assign_var_from_handle('ERROR_BOX', 'reg_header');
		}
//-- fin mod : categories hierarchy --------------------------------------------


		$template->assign_vars(array(
			'TOPIC_TITLE' => $preview_subject,
			'POST_SUBJECT' => $preview_subject,
			'POSTER_NAME' => $preview_username,
			'POST_DATE' => create_date($board_config['default_dateformat'], time(), $board_config['board_timezone']),
			'MESSAGE' => $preview_message,

			'L_POST_SUBJECT' => $lang['Post_subject'], 
			'L_PREVIEW' => $lang['Preview'],
			'L_POSTED' => $lang['Posted'], 
			'L_POST' => $lang['Post'])
		);
		$template->assign_var_from_handle('POST_PREVIEW_BOX', 'preview');
	}
	else if( $error_msg != '' )
	{
		$template->set_filenames(array(
			'reg_header' => 'error_body.tpl')
		);
		$template->assign_vars(array(
			'ERROR_MESSAGE' => $error_msg)
		);
		$template->assign_var_from_handle('ERROR_BOX', 'reg_header');
	}
}
else
{
	//
	// User default entry point
	//
	if ( $mode == 'newtopic' )
	{
		$user_sig = ( $userdata['user_sig'] != '' ) ? $userdata['user_sig'] : '';

		$username = ($userdata['session_logged_in']) ? $userdata['username'] : '';
		$poll_title = '';
		$poll_length = '';
		$subject = '';
		$message = '';
	}
	else if ( $mode == 'reply' )
	{
		$user_sig = ( $userdata['user_sig'] != '' ) ? $userdata['user_sig'] : '';

		$username = ( $userdata['session_logged_in'] ) ? $userdata['username'] : '';
		$subject = '';
		$message = '';

	}
	else if ( $mode == 'quote' || $mode == 'editpost' )
	{
		$subject = ( $post_data['first_post'] ) ? $post_info['topic_title'] : $post_info['post_subject'];
		$message = $post_info['post_text'];

		if ( $mode == 'editpost' )
		{
			$attach_sig = ( $post_info['enable_sig'] && $post_info['user_sig'] != '' ) ? TRUE : 0; 
			$user_sig = $post_info['user_sig'];

			$html_on = ( $post_info['enable_html'] ) ? true : false;
			$bbcode_on = ( $post_info['enable_bbcode'] ) ? true : false;
			$smilies_on = ( $post_info['enable_smilies'] ) ? true : false;
		}
		else
		{
			$attach_sig = ( $userdata['user_attachsig'] ) ? TRUE : 0;
			$user_sig = $userdata['user_sig'];
		}

		if ( $post_info['bbcode_uid'] != '' )
		{
			$message = preg_replace('/\:(([a-z0-9]:)?)' . $post_info['bbcode_uid'] . '/s', '', $message);
		}

		$message = str_replace('<', '<', $message);
		$message = str_replace('>', '>', $message);
		$message = str_replace('<br />', "\n", $message);

		if ( $mode == 'quote' )
		{
			$orig_word = array();
			$replacement_word = array();
			obtain_word_list($orig_word, $replace_word);

			$msg_date =  create_date($board_config['default_dateformat'], $postrow['post_time'], $board_config['board_timezone']);

			// Use trim to get rid of spaces placed there by MS-SQL 2000
			$quote_username = ( trim($post_info['post_username']) != '' ) ? $post_info['post_username'] : $post_info['username'];
			$message = '[quote="' . $quote_username . '"]' . $message . '[/quote]';

			if ( !empty($orig_word) )
			{
				$subject = ( !empty($subject) ) ? preg_replace($orig_word, $replace_word, $subject) : '';
				$message = ( !empty($message) ) ? preg_replace($orig_word, $replace_word, $message) : '';
			}

			if ( !preg_match('/^Re:/', $subject) && strlen($subject) > 0 )
			{
				$subject = 'Re: ' . $subject;
			}

			$mode = 'reply';
		}
		else
		{
			$username = ( $post_info['user_id'] == ANONYMOUS && !empty($post_info['post_username']) ) ? $post_info['post_username'] : '';
		}
	}
}

//
// Signature toggle selection
//
if( $user_sig != '' )
{
	$template->assign_block_vars('switch_signature_checkbox', array());
}

//
// HTML toggle selection
//
if ( $board_config['allow_html'] )
{
	$html_status = $lang['HTML_is_ON'];
	$template->assign_block_vars('switch_html_checkbox', array());
}
else
{
	$html_status = $lang['HTML_is_OFF'];
}

//
// BBCode toggle selection
//
if ( $board_config['allow_bbcode'] )
{
	$bbcode_status = $lang['BBCode_is_ON'];
	$template->assign_block_vars('switch_bbcode_checkbox', array());
}
else
{
	$bbcode_status = $lang['BBCode_is_OFF'];
}

//
// Smilies toggle selection
//
if ( $board_config['allow_smilies'] )
{
	$smilies_status = $lang['Smilies_are_ON'];
	$template->assign_block_vars('switch_smilies_checkbox', array());
}
else
{
	$smilies_status = $lang['Smilies_are_OFF'];
}

if( !$userdata['session_logged_in'] || ( $mode == 'editpost' && $post_info['poster_id'] == ANONYMOUS ) )
{
	$template->assign_block_vars('switch_username_select', array());
}

//
// Notify checkbox - only show if user is logged in
//
if ( $userdata['session_logged_in'] && $is_auth['auth_read'] )
{
	if ( $mode != 'editpost' || ( $mode == 'editpost' && $post_info['poster_id'] != ANONYMOUS ) )
	{
		$template->assign_block_vars('switch_notify_checkbox', array());
	}
}

//
// Delete selection
//
if ( $mode == 'editpost' && ( ( $is_auth['auth_delete'] && $post_data['last_post'] && ( !$post_data['has_poll'] || $post_data['edit_poll'] ) ) || $is_auth['auth_mod'] ) )
{
	$template->assign_block_vars('switch_delete_checkbox', array());
}

//
// Topic type selection
//
$topic_type_toggle = '';
if ( $mode == 'newtopic' || ( $mode == 'editpost' && $post_data['first_post'] ) )
{
	$template->assign_block_vars('switch_type_toggle', array());

	
//-- mod : categories hierarchy ------------------------------------------------
//-- add
	// get the topic type from form when previewing (fix a phpBB bug)
	$sav_post_data = isset($post_data['topic_type']) ? $post_data['topic_type'] : POST_NORMAL;
	$post_data['topic_type'] = POST_NORMAL;
	$topic_type = _read('topictype', TYPE_INT, $topic_type);
//-- fin mod : categories hierarchy --------------------------------------------

	if( $is_auth['auth_sticky'] )
	{
		$topic_type_toggle .= '<input type="radio" name="topictype" value="' . POST_STICKY . '"';
		if ( $post_data['topic_type'] == POST_STICKY || $topic_type == POST_STICKY )
		{
			$topic_type_toggle .= ' checked="checked"';
		}
		$topic_type_toggle .= ' /> ' . $lang['Post_Sticky'] . '&nbsp;&nbsp;';
	}

	if( $is_auth['auth_announce'] )
	{
		$topic_type_toggle .= '<input type="radio" name="topictype" value="' . POST_ANNOUNCE . '"';
		if ( $post_data['topic_type'] == POST_ANNOUNCE || $topic_type == POST_ANNOUNCE )
		{
			$topic_type_toggle .= ' checked="checked"';
		}
		$topic_type_toggle .= ' /> ' . $lang['Post_Announcement'] . '&nbsp;&nbsp;';
	}
	
//-- mod : categories hierarchy ------------------------------------------------
//-- add
	if ( $is_auth['auth_global_announce'] )
	{
		$topic_type_toggle .= '<input type="radio" name="topictype" value="' . POST_GLOBAL_ANNOUNCE . '"';
		if ( $post_data['topic_type'] == POST_GLOBAL_ANNOUNCE || $topic_type == POST_GLOBAL_ANNOUNCE )
		{
			$topic_type_toggle .= ' checked="checked"';
		}
		$topic_type_toggle .= ' /> ' . $user->lang('Post_Global_Announcement') . '&nbsp;&nbsp;';
	}
	$sav_topic_type = empty($post_data['topic_type']) ? $topic_type : $post_data['topic_type'];
	$topic_type_toggle .= '<input type="hidden" name="sav_topic_type" value="' . intval($sav_topic_type) . '" />';

	// restore post_data topic type (fix a phpBB bug)
	$post_data['topic_type'] = $sav_post_data;
//-- fin mod : categories hierarchy --------------------------------------------


	if ( $topic_type_toggle != '' )
	{
		$topic_type_toggle = $lang['Post_topic_as'] . ': <input type="radio" name="topictype" value="' . POST_NORMAL .'"' . ( ( $post_data['topic_type'] == POST_NORMAL || $topic_type == POST_NORMAL ) ? ' checked="checked"' : '' ) . ' /> ' . $lang['Post_Normal'] . '&nbsp;&nbsp;' . $topic_type_toggle;
	}
}

$hidden_form_fields = '<input type="hidden" name="mode" value="' . $mode . '" />';

switch( $mode )
{
	case 'newtopic':
		$page_title = $lang['Post_a_new_topic'];
		$hidden_form_fields .= '<input type="hidden" name="' . POST_FORUM_URL . '" value="' . $forum_id . '" />';
		break;

	case 'reply':
		$page_title = $lang['Post_a_reply'];
		$hidden_form_fields .= '<input type="hidden" name="' . POST_TOPIC_URL . '" value="' . $topic_id . '" />';
		break;

	case 'editpost':
		$page_title = $lang['Edit_Post'];
		$hidden_form_fields .= '<input type="hidden" name="' . POST_POST_URL . '" value="' . $post_id . '" />';
		break;
}

// Generate smilies listing for page output
generate_smilies('inline', PAGE_POSTING);

//
// Include page header
//
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

$template->set_filenames(array(
	'body' => 'posting_body.tpl', 
	'pollbody' => 'posting_poll_body.tpl', 
	'reviewbody' => 'posting_topic_review.tpl')
);
make_jumpbox('viewforum.'.$phpEx);

$template->assign_vars(array(
	'FORUM_NAME' => $forum_name,
	'L_POST_A' => $page_title,
	'L_POST_SUBJECT' => $lang['Post_subject'], 

//-- mod : categories hierarchy ------------------------------------------------
//-- delete
//	'U_VIEW_FORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"))
//-- add
	'U_VIEW_FORUM' => $config->url('index', array(POST_FORUM_URL => $forum_id), true),
	)
//-- fin mod : categories hierarchy --------------------------------------------

);

//
// This enables the forum/topic title to be output for posting
// but not for privmsg (where it makes no sense)
//
$template->assign_block_vars('switch_not_privmsg', array());

//
// Output the data to the template
//
$template->assign_vars(array(
	'USERNAME' => $username,
	'SUBJECT' => $subject,
	'MESSAGE' => $message,
	'HTML_STATUS' => $html_status,
	'BBCODE_STATUS' => sprintf($bbcode_status, '<a href="' . append_sid("faq.$phpEx?mode=bbcode") . '" target="_phpbbcode">', '</a>'), 
	'SMILIES_STATUS' => $smilies_status, 

	'L_SUBJECT' => $lang['Subject'],
	'L_MESSAGE_BODY' => $lang['Message_body'],
	'L_OPTIONS' => $lang['Options'],
	'L_PREVIEW' => $lang['Preview'],
	'L_SPELLCHECK' => $lang['Spellcheck'],
	'L_SUBMIT' => $lang['Submit'],
	'L_CANCEL' => $lang['Cancel'],
	'L_CONFIRM_DELETE' => $lang['Confirm_delete'],
	'L_DISABLE_HTML' => $lang['Disable_HTML_post'], 
	'L_DISABLE_BBCODE' => $lang['Disable_BBCode_post'], 
	'L_DISABLE_SMILIES' => $lang['Disable_Smilies_post'], 
	'L_ATTACH_SIGNATURE' => $lang['Attach_signature'], 
	'L_NOTIFY_ON_REPLY' => $lang['Notify'], 
	'L_DELETE_POST' => $lang['Delete_post'],
//-- mod : categories hierarchy ------------------------------------------------
//-- delete
	//
	// note : all of this has been copied into includes/bbcode.tpl, function display_bbcodes()
	//
	/*
	'L_BBCODE_B_HELP' => $lang['bbcode_b_help'], 
	'L_BBCODE_I_HELP' => $lang['bbcode_i_help'], 
	'L_BBCODE_U_HELP' => $lang['bbcode_u_help'], 
	'L_BBCODE_Q_HELP' => $lang['bbcode_q_help'], 
	'L_BBCODE_C_HELP' => $lang['bbcode_c_help'], 
	'L_BBCODE_L_HELP' => $lang['bbcode_l_help'], 
	'L_BBCODE_O_HELP' => $lang['bbcode_o_help'], 
	'L_BBCODE_P_HELP' => $lang['bbcode_p_help'], 
	'L_BBCODE_W_HELP' => $lang['bbcode_w_help'], 
	'L_BBCODE_A_HELP' => $lang['bbcode_a_help'], 
	'L_BBCODE_S_HELP' => $lang['bbcode_s_help'], 
	'L_BBCODE_F_HELP' => $lang['bbcode_f_help'], 
	'L_EMPTY_MESSAGE' => $lang['Empty_message'],

	'L_FONT_COLOR' => $lang['Font_color'], 
	'L_COLOR_DEFAULT' => $lang['color_default'], 
	'L_COLOR_DARK_RED' => $lang['color_dark_red'], 
	'L_COLOR_RED' => $lang['color_red'], 
	'L_COLOR_ORANGE' => $lang['color_orange'], 
	'L_COLOR_BROWN' => $lang['color_brown'], 
	'L_COLOR_YELLOW' => $lang['color_yellow'], 
	'L_COLOR_GREEN' => $lang['color_green'], 
	'L_COLOR_OLIVE' => $lang['color_olive'], 
	'L_COLOR_CYAN' => $lang['color_cyan'], 
	'L_COLOR_BLUE' => $lang['color_blue'], 
	'L_COLOR_DARK_BLUE' => $lang['color_dark_blue'], 
	'L_COLOR_INDIGO' => $lang['color_indigo'], 
	'L_COLOR_VIOLET' => $lang['color_violet'], 
	'L_COLOR_WHITE' => $lang['color_white'], 
	'L_COLOR_BLACK' => $lang['color_black'], 

	'L_FONT_SIZE' => $lang['Font_size'], 
	'L_FONT_TINY' => $lang['font_tiny'], 
	'L_FONT_SMALL' => $lang['font_small'], 
	'L_FONT_NORMAL' => $lang['font_normal'], 
	'L_FONT_LARGE' => $lang['font_large'], 
	'L_FONT_HUGE' => $lang['font_huge'], 

	'L_BBCODE_CLOSE_TAGS' => $lang['Close_Tags'], 
	'L_STYLES_TIP' => $lang['Styles_tip'], 
	*/
//-- fin mod : categories hierarchy --------------------------------------------


	'U_VIEWTOPIC' => ( $mode == 'reply' ) ? append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postorder=desc") : '', 
	'U_REVIEW_TOPIC' => ( $mode == 'reply' ) ? append_sid("posting.$phpEx?mode=topicreview&" . POST_TOPIC_URL . "=$topic_id") : '', 

	'S_HTML_CHECKED' => ( !$html_on ) ? 'checked="checked"' : '', 
	'S_BBCODE_CHECKED' => ( !$bbcode_on ) ? 'checked="checked"' : '', 
	'S_SMILIES_CHECKED' => ( !$smilies_on ) ? 'checked="checked"' : '', 
	'S_SIGNATURE_CHECKED' => ( $attach_sig ) ? 'checked="checked"' : '', 
	'S_NOTIFY_CHECKED' => ( $notify_user ) ? 'checked="checked"' : '', 
	'S_TYPE_TOGGLE' => $topic_type_toggle, 
	'S_TOPIC_ID' => $topic_id, 
	'S_POST_ACTION' => append_sid("posting.$phpEx"),
	'S_HIDDEN_FORM_FIELDS' => $hidden_form_fields)
);

//
// Poll entry switch/output
//
if( ( $mode == 'newtopic' || ( $mode == 'editpost' && $post_data['edit_poll']) ) && $is_auth['auth_pollcreate'] )
{
	$template->assign_vars(array(
		'L_ADD_A_POLL' => $lang['Add_poll'],  
		'L_ADD_POLL_EXPLAIN' => $lang['Add_poll_explain'],   
		'L_POLL_QUESTION' => $lang['Poll_question'],   
		'L_POLL_OPTION' => $lang['Poll_option'],  
		'L_ADD_OPTION' => $lang['Add_option'],
		'L_UPDATE_OPTION' => $lang['Update'],
		'L_DELETE_OPTION' => $lang['Delete'], 
		'L_POLL_LENGTH' => $lang['Poll_for'],  
		'L_DAYS' => $lang['Days'], 
		'L_POLL_LENGTH_EXPLAIN' => $lang['Poll_for_explain'], 
		'L_POLL_DELETE' => $lang['Delete_poll'],
		
		'POLL_TITLE' => $poll_title,
		'POLL_LENGTH' => $poll_length)
	);

	if( $mode == 'editpost' && $post_data['edit_poll'] && $post_data['has_poll'])
	{
		$template->assign_block_vars('switch_poll_delete_toggle', array());
	}

	if( !empty($poll_options) )
	{
		while( list($option_id, $option_text) = each($poll_options) )
		{
			$template->assign_block_vars('poll_option_rows', array(
				'POLL_OPTION' => str_replace('"', '"', $option_text), 

				'S_POLL_OPTION_NUM' => $option_id)
			);
		}
	}

	$template->assign_var_from_handle('POLLBOX', 'pollbody');
}

//
// Topic review
//
if( $mode == 'reply' && $is_auth['auth_read'] )
{
	require($phpbb_root_path . 'includes/topic_review.'.$phpEx);
	topic_review($topic_id, true);

	$template->assign_block_vars('switch_inline_mode', array());
	$template->assign_var_from_handle('TOPIC_REVIEW_BOX', 'reviewbody');
}

//-- mod : categories hierarchy ------------------------------------------------
//-- add
// display navigation sentence
$forums->display_nav($forum_id);

// display bbcodes
display_bbcodes();

// display moderators
$moderators = new moderators();
$moderators->read();
$moderators->display('moderators', $forum_id);

// send the name of the topic if any, else send forum name
$template->assign_vars(array(
	'U_TITLE' => ($mode == 'newtopic') ? $config->url('index', array(POST_FORUM_URL => $forum_id), true) : $config->url('viewtopic', array(POST_TOPIC_URL => $topic_id), true),
	'TI[/code:1:6de166
Ik ben niet bijgelovig, want dat brengt ongeluk..

Gebruikersavatar
martijndoes
Berichten: 120
Lid geworden op: 09 sep 2004, 20:34

Bericht door martijndoes » 09 okt 2005, 18:18

line 378:

Code: Selecteer alles

      $post_data['last_topic'] = ( $post_info
heb je per ongeluk deel verwijderd denk ik bij mij is ie dit:

Code: Selecteer alles

		$post_data['last_topic'] = ( $post_info['forum_last_post_id'] == $post_id ) ? true : false;

Gebruikersavatar
SharK_^
Berichten: 52
Lid geworden op: 08 jul 2005, 11:45

Bericht door SharK_^ » 09 okt 2005, 21:52

Ik had de mod gewoon niet goed geinstalleerd. In posting.php had ik wat fouten zitten. Daarom deed hij het dus niet. Nou, ik zal de volgende keer alles nog ff tien keer over checken voordat ik hier weer een vraag ga stellen.
Ik ben niet bijgelovig, want dat brengt ongeluk..

Gesloten