<?php
/*
	Latest / Random Images In Profile
	Show X Latest / Random Images In Profile
	License: The same as XThreads license.
	The author doesn't have responsibility for any harm to your forum that could have been caused by this plugin/mod.
	Use at your own risk.
*/

if(!defined("IN_MYBB"))
{
	die("Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined.");
}

function mnxtigp_info()
{
	return array(
		'name'			=> 'Latest Or Random Images In Profile',
		'description'	=> 'Display latest or random images in profile',
		'website'		=> 'http://mybbhacks.zingaburga.com/member.php?action=profile&uid=171',
		'author'		=> 'My Nie',
		'authorsite'	=> 'http://mybbhacks.zingaburga.com/member.php?action=profile&uid=171',
		'version'		=> '1.0',
		'compatibility' => '1*',
		'guid'        	=> ''
	);
}

function mnxtigp_activate()
{
	global $db;
	$settings_group = array(
		'name'			=> 'mnxtigp_title',
		'title'			=> 'Latest Or Random Images In Profile',
		'description'	=> 'Settings For Latest Or Random Images In Profile',
		'disporder'		=> '99',
		'isdefault'		=> 'no'
	);
	$db->insert_query('settinggroups',$settings_group);
	$gid = $db->insert_id();
	$settings = array(
		'name'			=> 'mnxtigp_ed',
		'title'			=> 'Enable/Disable',
		'description'	=> 'Enable Latest Or Random Images In Profile?',
		'optionscode'	=> 'yesno',
		'value'			=> '0',
		'disporder'		=> '1',
		'gid'			=> intval($gid)
	);
	$db->insert_query('settings',$settings);
	$settings = array(
		'name'			=> 'mnxtigp_num',
		'title'			=> 'Number Of Latest / Random Images In Profile',
		'description'	=> 'How many latest or random images do you want to display in user profile?',
		'optionscode'	=> 'text',
		'value'			=> '5',
		'disporder'		=> '2',
		'gid'			=> intval($gid)
	);
	$db->insert_query('settings',$settings);
	$settings = array(
		'name'			=> 'mnxtigp_fid',
		'title'			=> 'Forum IDs Of Latest Or Random Images',
		'description'	=> 'Images will be pulled out from this forum id(s). Separated by commas.',
		'optionscode'	=> 'text',
		'value'			=> '4',
		'disporder'		=> '3',
		'gid'			=> intval($gid)
	);
	$db->insert_query('settings',$settings);
	$settings = array(
		'name'			=> 'mnxtigp_lr',
		'title'			=> 'Latest Or Random Images',
		'description'	=> 'Do you want to display latest or random images?',
		'optionscode'	=> 'select
1=Latest
2=Random',
		'value'			=> '1',
		'disporder'		=> '4',
		'gid'			=> intval($gid)
	);
	$db->insert_query('settings',$settings);
	$settings = array(
		'name'			=> 'mnxtigp_maxtitle',
		'title'			=> 'Maximum Characters For Image Title',
		'description'	=> '0 = No maximum.',
		'optionscode'	=> 'text',
		'value'			=> '0',
		'disporder'		=> '5',
		'gid'			=> intval($gid)
	);
	$db->insert_query('settings',$settings);
	$settings = array(
		'name'			=> 'mnxtigp_ltext',
		'title'			=> 'Text For Latest Settings',
		'description'	=> 'You can put text for latest images here, if you set the random or latest to Latest.',
		'optionscode'	=> 'text',
		'value'			=> 'Latest Images',
		'disporder'		=> '6',
		'gid'			=> intval($gid)
	);
	$db->insert_query('settings',$settings);
	$settings = array(
		'name'			=> 'mnxtigp_rtext',
		'title'			=> 'Text For Random Settings',
		'description'	=> 'You can put text for random images here, if you set the random or latest to Random.',
		'optionscode'	=> 'text',
		'value'			=> 'Random Images',
		'disporder'		=> '7',
		'gid'			=> intval($gid)
	);
	$db->insert_query('settings',$settings);
	rebuild_settings();
	$template = array(
		'title'		=> 'mnxtigprofile_images',
		'template'	=> $db->escape_string('<br class="clear" />
<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
	<tr>
		<td class="thead" colspan="2">
			<strong>{$mnxtigps_username}\'s {$mnxtigps_imgs_num} {$mnxtigps_text}</strong>
		</td>
	</tr>
	<tr>
		<td align="center" class="trow1">
			{$mnxtigprofile_images_image}
		</td>
	</tr>
</table>'),
		'sid'		=> -1
	);
	$db->insert_query('templates', $template);
	$template = array(
		'title'		=> 'mnxtigprofile_images_image',
		'template'	=> $db->escape_string('<div class="float_left">
	<div algin="center">
		<a href="{$mnxtigps_links}"><img src="{$mnxtigps_img}/thumb160x120" alt="{$mnxtigps_subject}" title="{$mnxtigps_subject_text}" /></a>
		<br />
		<span class="smalltext"><em><a href="{$mnxtigps_links}">{$mnxtigps_subject}</a><br />
		In: {$mnxtigps_forum}, {$mnxtigps_datetime}<br />
		{$mnxtigps_replies} Comments, {$mnxtigps_views} Views</em></span>
	</div>
</div>'),
		'sid'		=> -1
	);
	$db->insert_query('templates', $template);
	require MYBB_ROOT.'/inc/adminfunctions_templates.php';
	find_replace_templatesets('member_profile', '#'.preg_quote('{$signature}').'#', '{\$signature}{\$mnxtigprofile_images}');
}

function mnxtigp_deactivate()
{
	global $db;
	$gid = $db->fetch_field($db->simple_select('settinggroups', 'gid', 'name="mnxtigp_title"'), 'gid');
	if($gid){
		$db->delete_query('settings', 'gid='.$gid);
		$db->delete_query('settinggroups', 'gid='.$gid);
	}
	rebuild_settings();
	$db->delete_query('templates', 'title IN("mnxtigprofile_images", "mnxtigprofile_images_image")');
	require MYBB_ROOT.'/inc/adminfunctions_templates.php';
	find_replace_templatesets('member_profile', '#'.preg_quote('{$mnxtigprofile_images}').'#', '',0);
}

$plugins->add_hook('global_start', 'mnxtigp_tcache');
function mnxtigp_tcache()
{
	if(THIS_SCRIPT == 'member.php'){
		if(isset($GLOBALS['templatelist'])){
			$GLOBALS['templatelist'] .= ',mnxtigprofile_images,mnxtigprofile_images_image';
		}
	}
}

$plugins->add_hook('member_profile_end', 'mnxtigp_run');
function mnxtigp_run()
{
	if($GLOBALS['mybb']->settings['mnxtigp_ed'] != 0){
		global $mnxtigprofile_images, $templates, $mybb, $db, $memprofile, $theme, $parser;
		$mnxtigp_unviewable = get_unviewable_forums(true);
		if($mnxtigp_unviewable){
			$mnxtigp_unviewwhere = ' AND t.fid NOT IN ('.$mnxtigp_unviewable.')';
		}
		if(is_array(explode(',', $mybb->settings['mnxtigp_fid']))){
			foreach(explode(',', $mybb->settings['mnxtigp_fid']) as $mnxtigp_fid){
				$mnxtigp_fid_array[] = intval($mnxtigp_fid);
			}
		}
		if($mybb->settings['mnxtigp_lr'] == '1'){
			$mnxtigp_lr = 'ORDER BY t.dateline desc';
			$mnxtigps_text = htmlspecialchars_uni($mybb->settings['mnxtigp_ltext']);
		}else{
			$mnxtigp_lr = 'ORDER BY RAND()';
			$mnxtigps_text = htmlspecialchars_uni($mybb->settings['mnxtigp_rtext']);
		}
		$query = $db->query('
			SELECT t.*, f.name, a.updatetime, a.md5hash, a.uploadtime, a.aid, a.attachname, a.filename
			FROM '.TABLE_PREFIX.'threads t
			LEFT JOIN '.TABLE_PREFIX.'xtattachments a ON (a.tid=t.tid)
			LEFT JOIN '.TABLE_PREFIX.'forums f ON (f.fid=t.fid)
			WHERE t.visible=1 AND t.uid='.intval($memprofile['uid']).' AND closed NOT LIKE "moved|%" AND t.fid IN ('.implode(',', $mnxtigp_fid_array).')'.$mnxtigp_unviewwhere.'
			'.$mnxtigp_lr.'
			LIMIT 0,'.intval($mybb->settings['mnxtigp_num']).'
		');
		if($db->num_rows($query)){
			global $mnxtigprofile_images_image;
			$mnxtigps_imgs_num = my_number_format($db->num_rows($query));
			while($mnxtigps = $db->fetch_array($query)){
				$mnxtigps_username = htmlspecialchars_uni($memprofile['username']);
				$mnxtigps_datetime = my_date($mybb->settings['dateformat'], $mnxtigps['dateline']).' at '.my_date($mybb->settings['timeformat'], $mnxtigps['dateline']);
				if($mybb->settings['mnxtigp_maxtitle'] != '0'){
					if(my_strlen($mnxtigps['subject']) > intval($mybb->settings['mnxtigp_maxtitle'])){
						$mnxtigps_subject = htmlspecialchars_uni($parser->parse_badwords(my_substr($mnxtigps['subject'], 0, intval($mybb->settings['mnxtigp_maxtitle'])) . '...'));
					}else{
						$mnxtigps_subject = htmlspecialchars_uni($parser->parse_badwords($mnxtigps['subject']));
					}
				}else{
					$mnxtigps_subject = htmlspecialchars_uni($parser->parse_badwords($mnxtigps['subject']));
				}
				$mnxtigps_links = get_thread_link($mnxtigps['tid']);
				$mnxtigps_subject_text = htmlspecialchars_uni($parser->parse_badwords($mnxtigps['subject']));
				$mnxtigps_img = xthreads_get_xta_url($mnxtigps);
				$mnxtigps['name'] = preg_replace('#&(?!\#[0-9]+;)#si', '&amp;', $mnxtigps['name']);
				$mnxtigps_forum = '<a href="'.get_forum_link($mnxtigps['fid']).'">'.$mnxtigps['name'].'</a>';
				$mnxtigps_replies = my_number_format($mnxtigps['replies']);
				$mnxtigps_views = my_number_format($mnxtigps['views']);
				eval('$mnxtigprofile_images_image .= "'.$templates->get('mnxtigprofile_images_image').'";');
			}
			eval('$mnxtigprofile_images = "'.$templates->get('mnxtigprofile_images').'";');
		}else{
			$mnxtigprofile_images = '';
		}
	}
}
?>