<?php
							 | 
						|
								/** 
							 | 
						|
								* @package	uForum 
							 | 
						|
								* @file		posting.php
							 | 
						|
								* @version	$Id$
							 | 
						|
								* @copyright	2009(c) PioDer <[email protected]>
							 | 
						|
								* @link 	http://pioder.gim2przemysl.int.pl/
							 | 
						|
								* @license	GNU GPL v3
							 | 
						|
								**/
							 | 
						|
								define('IN_uF', true);
							 | 
						|
								//include files
							 | 
						|
								include('./config.php');
							 | 
						|
								include('./includes/constants.php');
							 | 
						|
								include('./includes/db.php');
							 | 
						|
								include('./includes/errors.php');
							 | 
						|
								//connect to database
							 | 
						|
								DataBase::db_connect();
							 | 
						|
								include('./includes/sessions.php');
							 | 
						|
								include('./includes/classes/class_user.php');
							 | 
						|
								include('./common.php');
							 | 
						|
								include('./includes/misc_functions.php');
							 | 
						|
								include('./includes/classes/class_forum.php');
							 | 
						|
								include('./includes/classes/class_posting.php');
							 | 
						|
								include('./includes/classes/class_topic.php');
							 | 
						|
								include('./includes/classes/secure.php');
							 | 
						|
								include('./lngs/'.DefaultLang().'/main.php');
							 | 
						|
								$start = TimeGeneration();
							 | 
						|
								$default_skin = ViewSkinName();
							 | 
						|
								SessDelInvalid();	
							 | 
						|
								SessRegister();
							 | 
						|
								SessDeleteOld();
							 | 
						|
								$msg='';
							 | 
						|
								if ($_SESSION['uid']<1)
							 | 
						|
								{
							 | 
						|
									message_forum($lng['youarenotlogd'],'login.php?mode=login');
							 | 
						|
								}
							 | 
						|
								foreach ($_POST as $name => $value)
							 | 
						|
								{
							 | 
						|
									if ($forum_config['use_censorlist'])
							 | 
						|
									{
							 | 
						|
										$_POST[$name] = Secure::UseCensorlist($value);
							 | 
						|
									}
							 | 
						|
								}
							 | 
						|
								$start = TimeGeneration();
							 | 
						|
								//add skin variables
							 | 
						|
								$skin = array(
							 | 
						|
								'smiles'=>Post::SmilesShow(),
							 | 
						|
								//labels
							 | 
						|
								'lsmiles'=>$lng['smiles'],
							 | 
						|
								'ltopicname'=>$lng['ltopicname'],
							 | 
						|
								'lsave'=>$lng['save'],
							 | 
						|
								'lreset'=>$lng['reset'],
							 | 
						|
								'lmsg'=>$lng['message'],
							 | 
						|
								'lsticky_topic'=>$lng['sticky_topic'],
							 | 
						|
								'lwritetopic'=>$lng['writetopic'],
							 | 
						|
								);
							 | 
						|
								$skin = array_push_associative($skin, GenerateHeader('',''));
							 | 
						|
								$stop = TimeGeneration();
							 | 
						|
								$skin['queries'] =  ShowQueries($start, $stop);
							 | 
						|
								if(RANK=='2')
							 | 
						|
								{
							 | 
						|
									$skin['pa_link']='<a href="admin/index.php" class="fsmall"><b>'.$lng['pa_link'].'</b></a>';
							 | 
						|
								}
							 | 
						|
								else
							 | 
						|
								{
							 | 
						|
									$skin['pa_link']='';
							 | 
						|
								}
							 | 
						|
								switch(trim($_GET['mode']))
							 | 
						|
								{
							 | 
						|
									/**
							 | 
						|
									*
							 | 
						|
									functions for reply: normal, editing, quoting...
							 | 
						|
									*	
							 | 
						|
									**/
							 | 
						|
									case 'qpost': //quote post
							 | 
						|
									{
							 | 
						|
										$msg ='';
							 | 
						|
										if (isset($_POST['textedit']))
							 | 
						|
										{
							 | 
						|
											if (($_POST['textedit'] !='' ) and (strlen(trim($_POST['textedit']))>10))
							 | 
						|
											{
							 | 
						|
												if (isset($_COOKIE['antiflood_time']))
							 | 
						|
												{
							 | 
						|
													if ($_COOKIE['antiflood_time']>time())
							 | 
						|
													{
							 | 
						|
														message_forum($lng['antiflood_enabled'],$_SERVER['REQUEST_URI']);
							 | 
						|
													}
							 | 
						|
												}
							 | 
						|
												else
							 | 
						|
												{
							 | 
						|
													setcookie('antiflood_time',(time() + $forum_config['time_antiflood']));
							 | 
						|
												}
							 | 
						|
												$_POST['textedit'] = Secure::TagsReplace($_POST['textedit']);
							 | 
						|
												$id =  Post::NewPost(intval($_GET['t']),$_POST['textedit'], $_SESSION['uid']);
							 | 
						|
												$count = ceil(($id / 15 ));
							 | 
						|
												if ($count >1)
							 | 
						|
												{
							 | 
						|
									  				$page= '&page='.$count;
							 | 
						|
												}
							 | 
						|
												else
							 | 
						|
												{
							 | 
						|
									    				$page='';
							 | 
						|
												}
							 | 
						|
												$stop = TimeGeneration();
							 | 
						|
												message_forum($lng['post_is_saved'],'topic.php?t='.$_GET['t'].$page.'#'.$id);
							 | 
						|
											}
							 | 
						|
											else
							 | 
						|
											{
							 | 
						|
												$message =  $lng['perror_1'];
							 | 
						|
												$msg = './skins/'.$default_skin.'/post_error_body.tpl';
							 | 
						|
											}
							 | 
						|
										}	
							 | 
						|
										else
							 | 
						|
										{
							 | 
						|
											$_POST['textedit']='[quote]'.stripslashes(Topic::PostInformation($_GET['id'],'text')).'[/quote]';
							 | 
						|
										}
							 | 
						|
										Secure::topic_exists(intval($_GET['t']));
							 | 
						|
										Secure::TopicLocked(intval($_GET['t']));
							 | 
						|
										$skin['mainpage'] = $lng['quote'];
							 | 
						|
										$skin['lmainpage'] = '</a>> <a href="posting.php?mode=qpost&id='.$_GET['id'].'&t='.$_GET['t'].'" 
							 | 
						|
									    	  class="navigator">'.$lng['quote'];
							 | 
						|
										$skin['f_id'] = $_GET['id'];
							 | 
						|
										$skin['action'] = 'posting.php?mode=qpost&id='.$_GET['id'].'&t='.$_GET['t'];
							 | 
						|
										if ($msg=='')
							 | 
						|
										{
							 | 
						|
											$msg='./skins/'.$default_skin.'/blank.tpl';
							 | 
						|
										}		
							 | 
						|
										include('./skins/'.$default_skin.'/overall_header.tpl');
							 | 
						|
										include('./skins/'.$default_skin.'/posting_body.tpl');
							 | 
						|
										include('./skins/'.$default_skin.'/overall_footer.tpl');
							 | 
						|
										break;
							 | 
						|
									}
							 | 
						|
									case 'edit': //edit post
							 | 
						|
									{
							 | 
						|
										if ((User::RankAdminMod($_SESSION['uid'])) or ($_SESSION['uid']==Topic::PostInformation($_GET['id'],'u_id')))
							 | 
						|
										{
							 | 
						|
											$msg ='';
							 | 
						|
											if (isset($_POST['textedit']))
							 | 
						|
											{
							 | 
						|
												if (($_POST['textedit'] !='' ) and (strlen(trim($_POST['textedit']))>10))
							 | 
						|
												{
							 | 
						|
													if (isset($_COOKIE['antiflood_time']))
							 | 
						|
													{
							 | 
						|
														if ($_COOKIE['antiflood_time']>time())
							 | 
						|
														{
							 | 
						|
															message_forum($lng['antiflood_enabled'],$_SERVER['REQUEST_URI']);
							 | 
						|
														}
							 | 
						|
													}
							 | 
						|
													else
							 | 
						|
													{
							 | 
						|
														setcookie('antiflood_time',(time() + $forum_config['time_antiflood']));
							 | 
						|
													}
							 | 
						|
													$_POST['textedit'] = Secure::TagsReplace($_POST['textedit']);
							 | 
						|
													Post::EditPost(intval($_GET['id']),$_POST['textedit']);
							 | 
						|
													$count = ceil((Topic::PostInformation(intval($_GET['id']),'tp_id') / 15 ));
							 | 
						|
													if ($count >1)
							 | 
						|
													{
							 | 
						|
									  					$page= '&page='.$count;
							 | 
						|
													}
							 | 
						|
													else
							 | 
						|
													{
							 | 
						|
									    					$page='';
							 | 
						|
													}
							 | 
						|
													$stop = TimeGeneration();
							 | 
						|
													message_forum($lng['post_is_saved'],'topic.php?t='.Topic::PostInformation(intval($_GET['id']),'t_id').$page.'#p'.$_GET['id']);
							 | 
						|
											}
							 | 
						|
											else
							 | 
						|
											{
							 | 
						|
												$message =  $lng['perror_1'];
							 | 
						|
												$msg = './skins/'.$default_skin.'/post_error_body.tpl';
							 | 
						|
											}
							 | 
						|
											}
							 | 
						|
											else
							 | 
						|
											{
							 | 
						|
												$_POST['textedit']=stripslashes(Topic::PostInformation($_GET['id'],'text'));
							 | 
						|
											}
							 | 
						|
										}
							 | 
						|
										$skin['mainpage'] = $lng['editpost'];
							 | 
						|
										$skin['lmainpage'] = '</a>> <a href="posting.php?mode=edit&id='.intval($_GET['id']).'" 
							 | 
						|
										    	  class="navigator">'.$lng['editpost'];
							 | 
						|
										$skin['f_id'] = intval($_GET['id']);
							 | 
						|
										$skin['action'] = 'posting.php?mode=edit&id='.intval($_GET['id']);
							 | 
						|
										if ($msg=='')
							 | 
						|
										{
							 | 
						|
											$msg='./skins/'.$default_skin.'/blank.tpl';
							 | 
						|
										}
							 | 
						|
										include('./skins/'.$default_skin.'/overall_header.tpl');
							 | 
						|
										include('./skins/'.$default_skin.'/posting_body.tpl');
							 | 
						|
										include('./skins/'.$default_skin.'/overall_footer.tpl');
							 | 
						|
										break;
							 | 
						|
									}
							 | 
						|
									
							 | 
						|
									case 'rpost': //reply post
							 | 
						|
									{
							 | 
						|
										$msg ='';
							 | 
						|
										if (isset($_POST['textedit']))
							 | 
						|
										{
							 | 
						|
											if (($_POST['textedit'] !='' ) and (strlen(trim($_POST['textedit']))>10))
							 | 
						|
											{
							 | 
						|
												if (isset($_COOKIE['antiflood']))
							 | 
						|
												{
							 | 
						|
													if ($_COOKIE['antiflood_time']>time())
							 | 
						|
													{
							 | 
						|
														message_forum($lng['antiflood_enabled'],$_SERVER['REQUEST_URI']);
							 | 
						|
													}
							 | 
						|
												}
							 | 
						|
												else
							 | 
						|
												{
							 | 
						|
													setcookie('antiflood_time',(time() + $forum_config['time_antiflood']));
							 | 
						|
												}
							 | 
						|
												$_POST['textedit'] = Secure::TagsReplace($_POST['textedit']);
							 | 
						|
												$id =  Post::NewPost(intval($_GET['id']),$_POST['textedit'], $_SESSION['uid']);
							 | 
						|
												$count =ceil(($id / 15 ));
							 | 
						|
												if ($count >1)
							 | 
						|
												{
							 | 
						|
									  				$page= '&page='.$count;
							 | 
						|
												}
							 | 
						|
												else
							 | 
						|
												{
							 | 
						|
									    				$page='';
							 | 
						|
												}
							 | 
						|
												$stop = TimeGeneration();
							 | 
						|
												message_forum($lng['post_is_saved'],'topic.php?t='.$_GET['id'].$page.'#p'.$id);
							 | 
						|
											}
							 | 
						|
											else
							 | 
						|
											{
							 | 
						|
												$message =  $lng['perror_1'];
							 | 
						|
												$msg = './skins/'.$default_skin.'/post_error_body.tpl';
							 | 
						|
											}
							 | 
						|
										}
							 | 
						|
										else
							 | 
						|
										{
							 | 
						|
											$_POST['textedit']='';
							 | 
						|
										}
							 | 
						|
										Secure::topic_exists(intval($_GET['id']));
							 | 
						|
										Secure::TopicLocked(intval($_GET['id']));
							 | 
						|
										$skin['mainpage'] = $lng['answer'].': '.Topic::TopicInformation(intval($_GET['id']),'name');
							 | 
						|
										$skin['lmainpage'] = '</a>> <a href="posting.php?mode=rpost&id='.intval($_GET['id']).'" 
							 | 
						|
										    class="navigator">'.$lng['answer'].': </a><a href="topic.php?t='.$_GET['id'].'" 
							 | 
						|
										    class="navigator">'.Topic::TopicInformation(intval($_GET['id']),'name');
							 | 
						|
										$skin['f_id'] = $_GET['id'];
							 | 
						|
										$skin['action'] = 'posting.php?mode=rpost&id='.$_GET['id'];
							 | 
						|
										if ($msg=='')
							 | 
						|
										{
							 | 
						|
											$msg='./skins/'.$default_skin.'/blank.tpl';
							 | 
						|
										}
							 | 
						|
										include('./skins/'.$default_skin.'/overall_header.tpl');
							 | 
						|
										include('./skins/'.$default_skin.'/posting_body.tpl');
							 | 
						|
										include('./skins/'.$default_skin.'/overall_footer.tpl');		
							 | 
						|
										break;
							 | 
						|
									}
							 | 
						|
									/**
							 | 
						|
									*
							 | 
						|
									Select new TOPIC
							 | 
						|
									*
							 | 
						|
									**/
							 | 
						|
									case 'ntopic': //new topic
							 | 
						|
									{
							 | 
						|
										$msg ='';
							 | 
						|
										if ((isset($_POST['textedit'])) and (isset($_POST['ntopic'])))
							 | 
						|
										{
							 | 
						|
											if (($_POST['textedit'] !='' ) and ($_POST['ntopic']!='') and (strlen(trim($_POST['textedit']))>10) and (strlen(trim($_POST['ntopic']))>5))
							 | 
						|
											{
							 | 
						|
												$_POST['textedit'] = Secure::TagsReplace($_POST['textedit']);
							 | 
						|
												if (isset($_COOKIE['antiflood_time']))
							 | 
						|
												{
							 | 
						|
													if ($_COOKIE['antiflood_time']>time())
							 | 
						|
													{
							 | 
						|
														message_forum($lng['antiflood_enabled'],$_SERVER['REQUEST_URI']);
							 | 
						|
													}
							 | 
						|
												}
							 | 
						|
												else
							 | 
						|
												{
							 | 
						|
													setcookie('antiflood_time',(time() + $forum_config['time_antiflood']));
							 | 
						|
												}
							 | 
						|
												$_POST['ntopic'] = strip_tags(addslashes($_POST['ntopic']));
							 | 
						|
												if (isset($_POST['topic_sticky']))
							 | 
						|
												{
							 | 
						|
										    			$_POST['topic_sticky']='1';	
							 | 
						|
												}
							 | 
						|
												else
							 | 
						|
												{
							 | 
						|
										    			$_POST['topic_sticky']='0';
							 | 
						|
												}
							 | 
						|
												$last = Post::NewTopic($_POST['textedit'],$_POST['ntopic'], intval($_GET['f']), $_SESSION['uid'], $_POST['topic_sticky']);
							 | 
						|
												$stop = TimeGeneration();
							 | 
						|
												message_forum($lng['post_is_saved'],'topic.php?t='.$last);
							 | 
						|
											}
							 | 
						|
											else
							 | 
						|
											{
							 | 
						|
												$message =  $lng['perror_1'];
							 | 
						|
												$msg = './skins/'.$default_skin.'/post_error_body.tpl';
							 | 
						|
											}
							 | 
						|
										}
							 | 
						|
										else
							 | 
						|
										{
							 | 
						|
											$_POST['ntopic'] = '';
							 | 
						|
											$_POST['textedit']='';
							 | 
						|
										}
							 | 
						|
										$sql = "SELECT `lock`, `name`, `f_id` FROM ".FORUMS_TABLE." WHERE `f_id`='".intval($_GET['f'])."'";
							 | 
						|
										$forum = mysql_fetch_array(DataBase::sql_query($sql, 'GENERAL', 'Could not obtain forum information'));
							 | 
						|
										if($forum['name']=='')
							 | 
						|
										{
							 | 
						|
											message_forum($lng['no_forum'], 'index.php');
							 | 
						|
										}
							 | 
						|
										if($forum['lock']=='1')
							 | 
						|
										{
							 | 
						|
											message_forum($lng['no_posting_forum_locked'],'index.php');
							 | 
						|
										}
							 | 
						|
										$skin['mainpage'] = $lng['writetopic'];
							 | 
						|
										$skin['action'] = $_SERVER['REQUEST_URI'];
							 | 
						|
										$skin['lmainpage'] = '</a>> <a href="forum.php?f='.$_GET['f'].'" class="navigator">'.$forum['name'].'</a> ><a href="posting.php?mode=ntopic&f='.$_GET['f'].'" class="navigator">'.$lng['writetopic'];
							 | 
						|
										$skin['f_id']=$_GET['f'];
							 | 
						|
										if ($msg=='')
							 | 
						|
										{
							 | 
						|
											$msg='./skins/'.$default_skin.'/blank.tpl';
							 | 
						|
										}
							 | 
						|
										include('./skins/'.$default_skin.'/overall_header.tpl');
							 | 
						|
										include('./skins/'.$default_skin.'/posting_body.tpl');
							 | 
						|
										include('./skins/'.$default_skin.'/overall_footer.tpl');
							 | 
						|
										break;
							 | 
						|
									}
							 | 
						|
									// if no mode... :D
							 | 
						|
									default:
							 | 
						|
									{
							 | 
						|
										$stop = TimeGeneration();
							 | 
						|
										message_forum($lng['invalidmode'],'index.php');
							 | 
						|
										break;
							 | 
						|
									}			
							 | 
						|
								}
							 |