<?php
/**
 * Last Posts Plugin for MyBB
 * Copyright © 2010 MyBB Mods
 * URL: http://ghasemzadeh.ir
 * 
 * By: Hamed (Ali Ghasemzadeh)
 * Website: http://ghasemzadeh.ir
 */
$plugins->add_hook('global_start','repost');
$plugins->add_hook('global_end','repostend');
function repost_info()
{
	return array('name' => 'Last Posts','description' =>'Show Last posts in all page','website' => 'http://ghasemzadeh.ir','author' => 'Hamed','authorsite' => 'http://ghasemzadeh','version' =>'1.1.0',);
}
function repost_activate()
{
	require MYBB_ROOT.'/inc/adminfunctions_templates.php';
	global $db;
	$query = $db->simple_select("settinggroups","COUNT(*) as rows");
	$rows = $db->fetch_field($query,"rows");
	$repost_group = array('name' => 'repost','title' => 'Recent post','description' => 'Settings for the recent posts plugin.','disporder' =>$rows + 1,'isdefault' => 'no',);
	$db->insert_query('settinggroups',$repost_group);
	$gid = $db->insert_id();
    $repost_setting_1 = array('name' => 'showrepost','title' =>'Enable recent post ','description' =>'Display the recent posts in the forum header?','optionscode' => 'onoff','value' => '1','disporder' => 1,'gid' => intval($gid),);
	$repost_setting_2 = array('name' => 'countreposts','title' =>'Count of last posts','description' =>'Enter how many posts should be show','optionscode' => 'text','value' =>'10','disporder' => 2,'gid' => intval($gid));
	$repost_setting_3 = array('name' => 'show_starter_repost','title' =>'Show Starter','description' => 'Do you want to display thread starter','optionscode' => 'onoff','value' => '1','disporder' => 4,'gid' => intval($gid));
	$repost_setting_4 = array('name' => 'show_lastposter_repost','title' =>'Show Last poster','description' => 'Do you want to display last poster','optionscode' => 'onoff','value' => '1','disporder' => 5,'gid' => intval($gid));
	$repost_setting_5 = array('name' => 'show_replys_repost','title' =>'Show Replies','description' => 'Do you want to display Replies count','optionscode' => 'onoff','value' => '1','disporder' => 6,'gid' => intval($gid));
	$repost_setting_6 = array('name' => 'show_forumname_repost','title' =>'Show Forum Name','description' => 'Do you want to display Forum name','optionscode' => 'onoff','value' => '1','disporder' => 7,'gid' => intval($gid));
	$repost_setting_7 = array('name' => 'show_views_repost','title' =>'Show Views','description' => 'Do you want to display Views count','optionscode' => 'onoff','value' => '1','disporder' => 8,'gid' => intval($gid));
	$repost_setting_8 = array('name' => 'show_time_repost','title' =>'Show Time','description' => 'Do you want to display time','optionscode' => 'onoff','value' => '1','disporder' => 9,'gid' => intval($gid));
	$repost_setting_9 = array('name' => 'not_show_post','title' =>'Hidden Forums','description' =>'Enter the forums IDs that we do not show last post of them.Separate them with a comma (,).','optionscode' => 'text','value' => '','disporder' => 2,'gid' => intval($gid));
    $repost_setting_10 = array('name' => 'ReadUnread','title' =>'Read UnRead','description' =>'User can find which thread is read by himself (Enable will increase query number)','optionscode' => 'onoff','value' => '0','disporder' => 10,'gid' => intval($gid));
	$repost_setting_11 = array('name' => 'show_users','title' =>'Show Just for user','description' =>'If this part is active just users can see it','optionscode' => 'onoff','value' => '0','disporder' => 11,'gid' => intval($gid));
    $repost_setting_12 = array('name' => 'JSOps','title' =>'JS Options','description' =>'User can use JS option when it is enable','optionscode' => 'onoff','value' => '1','disporder' => 12,'gid' => intval($gid));
    $repost_setting_13 = array('name' => 'lph','title' =>'Last post Height','description' =>'What height last post should have?','optionscode' => 'text','value' =>'150','disporder' => 13,'gid' => intval($gid));
    $repost_setting_14 = array('name' => 'gseolp','title' =>'Google SEO','description' =>'If you use google SEO it would be better that you enable it','optionscode' => 'onoff','value' => '0','disporder' => 14,'gid' => intval($gid));
    $repost_setting_15 = array('name' => 'line_view','title' =>'Line View','description' =>'This will show all subject and options in one line','optionscode' => 'onoff','value' => '0','disporder' => 15,'gid' => intval($gid));
    //Insert setting data into database
	$db->insert_query('settings',$repost_setting_1);
	$db->insert_query('settings',$repost_setting_2);
	$db->insert_query('settings',$repost_setting_3);
	$db->insert_query('settings',$repost_setting_4);
	$db->insert_query('settings',$repost_setting_5);
	$db->insert_query('settings',$repost_setting_6);
	$db->insert_query('settings',$repost_setting_7);
	$db->insert_query('settings',$repost_setting_8);
	$db->insert_query('settings',$repost_setting_9);
    $db->insert_query('settings',$repost_setting_10);
	$db->insert_query('settings',$repost_setting_11);
    $db->insert_query('settings',$repost_setting_12);
    $db->insert_query('settings',$repost_setting_13);
    $db->insert_query('settings',$repost_setting_14);
    $db->insert_query('settings',$repost_setting_15);
	rebuildsettings();
	$new_templates['recent_info_line'] = "<a href=\"http://ghasemzadeh.ir\" target=\"_blank\" style=\"font-size:8pt;\">Plugin By Hamed</a>";

    $new_templates['repost'] = "{\$lp_js}\n<table class=\"tborder\" style=\"CLEAR: both\" cellSpacing=\"1\" cellPadding=\"4\" border=\"0\">
	<thead>
		<tr>
			<td class=\"thead\">
			<div class=\"expcolimage\">
				<img src=\"images/collapse.gif\" id=\"last_post_img\" class=\"expander\" alt=\"[-]\" title=\"[-]\" /></div>
			<div>
				<strong>{\$lang->last_posts}</strong>
			</div>
			</td>
		</tr>
	</thead>
	<tbody style=\"{$expdisplay}\" id=\"last_post_e\">
    {\$line_title}
	<tr>
		<td class=\"trow1\" height=\"{\$mybb->settings[\'lph\']}\"><div id=\"lp_repost\">
		<marquee id=\"lastpostm\" scrolling=\"yes\" style=\"overflow: auto;max-height: 100px;\" onmouseover=\"this.stop()\" onmouseout=\"this.start()\" direction=\"up\" scrollamount=\"1\" scrolldelay=\"1\" height=\"{\$mybb->settings[\'lph\']}\"> 
		{\$threadlist}</marquee></div></td>
	</tr>
    {\$jsops}
	</tbody>
    </table>
	{\$hamed_copyright}<br>";

    $new_templates['repost_threadsbits'] = "<table>
	<tr>
		<td id=\"subject\" colspan=\"6\"><strong>
		{\$lp_link}</strong></td>
	</tr>
	<tr class=\"smalltext\" id=\"settingchange\">
		{\$starter}
		{\$lastposter}
		{\$replies}
		{\$forumname}
		{\$views_repost}
		{\$time_repost}
	</tr>
</table>";
    $new_templates['repost_threadsbits_line_view'] = "<table>
	<tr>
		<td id=\"subject\" colspan=\"6\"><strong>
		{\$lp_link}</strong></td>
		{\$starter}
		{\$lastposter}
		{\$replies}
		{\$forumname}
		{\$views_repost}
		{\$time_repost}
	</tr>
</table>";
	// Insert new templates
    foreach($new_templates as $title => $template)
    {
	   $db->query("INSERT INTO `".TABLE_PREFIX."templates` VALUES (NULL, '$title', '$template', '-1', '120', '', '1157735635')");
	}			
    find_replace_templatesets('header','#<navigation>#',"{\$repost}\n\t\t\t<navigation>");

}
function repost_deactivate()
{
    require MYBB_ROOT.'/inc/adminfunctions_templates.php';
    global $db;
    $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN('showrepost', 'repost')");
	$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN('countreposts', 'repost')");
	$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN('show_starter_repost', 'repost')");
	$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN('show_lastposter_repost', 'repost')");
	$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN('show_replys_repost', 'repost')");
	$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN('show_forumname_repost', 'repost')");
	$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN('show_views_repost', 'repost')");
	$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN('show_time_repost', 'repost')");
	$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN('not_show_post', 'repost')");
	$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN('show_users', 'repost')");
    $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN('ReadUnread', 'repost')");
    $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN('JSOps', 'repost')");
    $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN('lph', 'repost')");
    $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN('gseolp', 'repost')");
    $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN('line_view', 'repost')");
	$db->query("DELETE FROM ".TABLE_PREFIX."settinggroups WHERE name='repost'");
	$db->query("DELETE FROM ".TABLE_PREFIX."templates WHERE title='recent_info_line'");
	$db->query("DELETE FROM ".TABLE_PREFIX."templates WHERE title='repost'");
	$db->query("DELETE FROM ".TABLE_PREFIX."templates WHERE title='repost_threadsbits'");
    $db->query("DELETE FROM ".TABLE_PREFIX."templates WHERE title='repost_threadsbits_line_view'");
	find_replace_templatesets('header','#{\$repost}\n\t\t\t#','',0);
    find_replace_templatesets('headerinclude','#{\$lp_js}#','',0);
}
function repostend(){
	global $mybb,$templates,$db,$lang,$expdisplay,$lp_js;
	if($mybb->settings['showrepost'] == '1')
    {
	   $threadlist = '';
	   $hiddenforums = explode(',',$mybb->settings['not_show_post']);
	   if(is_array($hiddenforums))
       {
	       foreach($hiddenforums as $fid)
           {
                $fid_array[] = intval($fid);
	       }
	       $hiddenforums = implode(',',$fid_array);
	   }
       if($hiddenforums)
       {
			$query = $db->query("SELECT t.*, u.username,f.* FROM ".TABLE_PREFIX."threads t LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=t.uid) LEFT JOIN ".TABLE_PREFIX."forums f ON (t.fid=f.fid) WHERE 1=1 $unviewwhere AND t.visible='1' AND t.closed NOT LIKE 'moved|%' AND  t.fid NOT IN(".$hiddenforums.") ORDER BY t.lastpost DESC LIMIT 0, ".$mybb->settings['countreposts']);
	   }
       else
       {
			$query = $db->query("
		SELECT t.*, u.username,f.*
		FROM ".TABLE_PREFIX."threads t
		LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=t.uid)
        LEFT JOIN ".TABLE_PREFIX."forums f ON (t.fid=f.fid)
		WHERE 1=1 $unviewwhere AND t.visible='1' AND t.closed NOT LIKE 'moved|%'
		ORDER BY t.lastpost DESC 
		LIMIT 0, ".$mybb->settings['countreposts']);
		}
		while($thread = $db->fetch_array($query))
        {
            $read = "";$lastpostdate = "";$thread_forum = "";$lastposterlink = "";$lp_link = "";$starter = "";$replies = "";$lastposter = "";$forumname= "";
            $views_repost = "";$time_repost = "";	
            if($mybb->user['uid'] && $mybb->settings['ReadUnread'] == "1")
            {
				$read_query = $db->simple_select("threadsread","tid","uid=".$mybb->user['uid']." AND tid=".$thread['tid']."");
				if($db->num_rows($read_query) != '0')
                {
					$read ='<img src="images/last/post.png" style="vertical-align: middle;">';
				}
				else
                {
					$read ='<img src="images/last/GoToPost.png" style="vertical-align: middle;" title="'.$lang->Not_read.'" alt="'.$lang->Not_read.'">';
				}
			}
            else
            {
                $read ='<img src="images/last/post.png" style="vertical-align: middle;">';
            }
			//$forum_query = $db->query("SELECT * FROM ".TABLE_PREFIX."forums WHERE fid='".$thread['fid']."'");
            $thread_forum = $thread['name'];
			/*if($forum = $db->fetch_array($forum_query))
            {
				$thread_forum = $forum['name'];
			}*/
			$lastpostdate = my_date($mybb->settings['dateformat'],$thread['lastpost']);
			$lastposttime = my_date($mybb->settings['timeformat'],$thread['lastpost']);
			if($thread['lastposteruid'] == 0)
            {
				$lastposterlink = $thread['lastposter'];
			}
			else
            {
                if($mybb->settings['gseolp'] == "0")
                {
                    $lastposterlink ='<td><img src="images/last/username.png" style="vertical-align: middle;"><a target="_blank" href="'.$mybb->settings['bburl'].'/member.php?action=profile&uid='.$thread['lastposteruid'].'">'.$thread['lastposter'].'</a></td>';
                }
                else
                {
                    $lastposterlink ='<td><img src="images/last/username.png" style="vertical-align: middle;"><a target="_blank" href="'.$mybb->settings['bburl'].'/user-'.$thread['lastposteruid'].'.html">'.$thread['lastposter'].'</a></td>';
                }
			}
			$thread['subject'] = htmlspecialchars_uni($thread['subject']);
			//checking which part do you want to display
			//check show_starter_repost
            if($mybb->settings['gseolp'] == "1")
            {
                $lp_link = "<a target=\"_blank\" href=\"{$mybb->settings['bburl']}/thread-{$thread['tid']}-lastpost.html\">
		{$read} {$thread['subject']}</a>";
            }
            else
            {
                $lp_link = "<a target=\"_blank\" href=\"{$mybb->settings['bburl']}/showthread.php?tid={$thread['tid']}&action=lastpost\">
		{$read} {$thread['subject']}</a>";
            }
			if($mybb->settings['show_starter_repost'] == "1")
            {
                if($mybb->settings['gseolp'] == "0")
                {
                    $starter = '<td>'.$lang->Starter.':<img src="images/last/username.png" style="vertical-align: middle;"><a target="_blank" href="'.$mybb->settings['bburl'].'/member.php?action=profile&uid='.$thread['uid'].'">'.$thread['username'].'</a></td>';
                }
                else
                {
                    $starter = '<td>'.$lang->Starter.':<img src="images/last/username.png" style="vertical-align: middle;"><a target="_blank" href="'.$mybb->settings['bburl'].'/user-'.$thread['uid'].'.html">'.$thread['username'].'</a></td>';
                }
			}
			//check show_lastposter_repost
			if($mybb->settings['show_lastposter_repost'] == "1")
            {
				$lastposter = '<td>'.$lang->latest_threads_lastpost.''.$lastposterlink.'</td>';
			}
			//check show_replys_repost
			if($mybb->settings['show_replys_repost'] == "1")
            {
				$replies = '<td>'.$lang->latest_threads_replies.''.$thread['replies'].'</td>';
			}
			//check show_forumname_repost
			if($mybb->settings['show_forumname_repost'] == "1")
            {
                if($mybb->settings['gseolp'] == "0")
                {
                    $forumname ='<td><img src="images/last/forum.png" style="vertical-align: middle;" title="'.$lang->Forum_Name.'" /><a target="_blank" href="'.$mybb->settings['bburl'].'/forumdisplay.php?fid='.$thread['fid'].'">'.$thread_forum.'</a></td>';
                }
                else
                {
                    $forumname ='<td><img src="images/last/forum.png" style="vertical-align: middle;" title="'.$lang->Forum_Name.'" /><a target="_blank" href="'.$mybb->settings['bburl'].'/forum-'.$thread['fid'].'.html">'.$thread_forum.'</a></td>';
                }
			}
			//check show_views_repost
			if($mybb->settings['show_views_repost'] == "1")
            {
            	$views_repost = '<td>'.$lang->views.''.$thread['views'].'</td>';
			}
			//check show_time_repost
			if($mybb->settings['show_time_repost'] == "1")
            {
				$time_repost ='<td><img src="images/last/date.png" style="vertical-align: middle;" />'.$lang->re_time.''.$lastpostdate.'</td>';
			}
            //Check if user want line view
            if($mybb->settings['line_view'] == "1")
            {
                eval("\$threadlist .= \"".$templates->get("repost_threadsbits_line_view")."\";");
            }
            else
            {
                eval("\$threadlist .= \"".$templates->get("repost_threadsbits")."\";");
            }
		}
        //Do JS Options
        if($mybb->settings['JSOps'] == "1")
        {
            $jsops = '<tr><td class="trow2">';
            $jsops .= $lang->direction.'<a href="#UpDir" onclick="UpDir()"><img src="images/last/up.png" style="vertical-align: middle;" /></a>'.'<a href="#DownDir" onclick="DownDir()"><img src="images/last/down.png" style="vertical-align: middle;"" /></a>';
            $jsops .= ' - '.$lang->speed.'<a href="#SpeedDown" onclick="SpeedDown()"><img src="images/last/sdown.png" style="vertical-align: middle;" /></a>'.'<a href="#SpeedUp" onclick="SpeedUp()"><img src="images/last/sup.png" style="vertical-align: middle;" /></a>';
            $jsops .= ' - (<a href="#Stop" onclick="document.getElementById(\'lastpostm\').stop()"><img src="images/last/stop.png" style="vertical-align: middle;" />'.$lang->stop_here.'</a>';
            $jsops .= ' | <a href="#Start" onclick="document.getElementById(\'lastpostm\').start()"><img src="images/last/start.png" style="vertical-align: middle;" />'.$lang->start_here.'</a>)';
            $jsops .= ' - <a href="#Reload" onclick="reloadLP()"><img src="images/last/reload.png" style="vertical-align: middle;" />'.$lang->reload_now.'</a>';
            $jsops .= '</td></tr>';
        }
		if('1' == '1')
        {
            eval("\$hamed_copyright = \"".$templates->get("recent_info_line")."\";");
		}
		if($mybb->settings['show_users'] == '1')
        {
            if($mybb->user['uid'])
            {
				eval("\$repost = \"".$templates->get("repost")."\";");
			}
			else
            {
				return false;
			}
		}
		else
        {
			eval("\$repost = \"".$templates->get("repost")."\";");
		}
		$GLOBALS['header'] = str_replace('<!-- repost -->',$repost,$GLOBALS['header']);
	}
}
function repost()
{
    global $mybb,$lang,$templatelist,$lp_js;
    if(isset($templatelist)) $templatelist .= ',repost_threadsbits,recent_info_line,repost,repost_threadsbits_line_view';
    $lp_js = '<script type="text/javascript" src="'.$mybb->settings['bburl'].'/jscripts/lp.js"></script>';
	$lang->load("last");
}
?>