<?php
error_reporting(0);
/*********************************************************************************************************
*
*  Steam Group plugin (/inc/plugins/steamgroup.php)
*  Author: Krzysztof "Supryk" Supryczyński
*  Copyright: © 2014 @ Krzysztof Supryczyński @ All rights reserved
*  
*  Website: http://polish-zone.pl/
*  License: licence.txt
*  Contact: contact.txt
*  Install: install.txt  
*  Description: Show information about steam group on index page in sidebox.
*
*********************************************************************************************************/

if(!defined("IN_MYBB"))
	die("This file cannot be accessed directly.");

$plugins->add_hook('index_start', 'steamgroup_index');
$plugins->add_hook("pre_output_page", "steamgroup_thanks");

if(my_strpos($_SERVER['PHP_SELF'], 'index.php'))
{
    global $templatelist;
    if(isset($templatelist))
    {
        $templatelist .= ',';
    }
	$templatelist .='steamgroup,steamgroup_row,steamgroup_row_noinformation';
}


function steamgroup_info()
{
    global $db, $lang, $mybb;
    $lang->load("config_steamgroup");
	
	return array(
		"name"			=> $lang->steamgroup_name,
		"description"	=> $lang->steamgroup_desc,
		"website"			=> "http://polish-zone.pl/index.php",
		"author"			=> "Krzysztof \"Supryk\" Supryczyński",
		"authorsite"		=> "http://polish-zone.pl/index.php",
		"version"			=> "2.2",
		"guid" 				=> "74b00ee58e073ed99c6acff90a8e96f5",
		"compatibility"	=> "16*"
	);
}

function steamgroup_install()
{
	global $db, $lang, $mybb;
	$lang->load("config_steamgroup");
	
	$settinggroups = array(
		"name" 			=> "steamgroup", 
		"title"				=> $db->escape_string($lang->steamgroup_setting),
		"description" 	=> $db->escape_string($lang->steamgroup_setting_desc),
		"disporder" 		=> "100", 
		"isdefault" 		=> "0",
	);
	$gid = $db->insert_query("settinggroups", $settinggroups);
	
	$disporder = 0;
	
	$setting = array(
		"sid"					=> "NULL",
		"name"			=> "steamgroup_onoff",
		"title"				=> $db->escape_string($lang->steamgroup_setting_onoff),
		"description"	=> $db->escape_string($lang->steamgroup_setting_onoff_desc),
		"optionscode"	=> "onoff",
		"value"				=> "1",
		"disporder"		=> $disporder++,
		"gid"					=> $gid,
	);
	$db->insert_query("settings", $setting);

	$setting = array(
		"sid"					=> "NULL",
		"name"			=> "steamgroup_group_name",
		"title"				=> $db->escape_string($lang->steamgroup_setting_group_name),
		"description"	=> $db->escape_string($lang->steamgroup_setting_group_name_desc),
		"optionscode"	=> "text",
		"value"				=> "tivoltpl",
		"disporder"		=> $disporder++,
		"gid"					=> $gid,
	);
	$db->insert_query("settings", $setting);
	
	$setting = array(
		"sid"					=> "NULL",
		"name"			=> "steamgroup_group_cache_time",
		"title"				=> $db->escape_string($lang->steamgroup_setting_cache_time),
		"description"	=> $db->escape_string($lang->steamgroup_setting_cache_time_desc),
		"optionscode"	=> "text",
		"value"				=> "300",
		"disporder"		=> $disporder++,
		"gid"					=> $gid,
	);
	$db->insert_query("settings", $setting);
	
	rebuild_settings();
		
	$template = array(
		"tid" 					=> "NULL",
		"title" 				=> "steamgroup",
		"template" 		=> $db->escape_string('<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
																   <tr>
																   <td class="thead" colspan="1">
																   <strong>{$lang->steamgroup_steamgroup}</strong>
																   </td>
																   </tr>
																   {$tpl[\'row\']}
																   </table>
																   <br />'),
		"sid" 				=> "-1",
	);
	$db->insert_query("templates", $template);
	
	$template = array(
		"tid" 					=> "NULL",
		"title" 				=> "steamgroup_row",
		"template" 		=> $db->escape_string('<tr><td class="trow1"><span title="{$data[\'desc\']}">
																   {$data[\'avatar\']}
																   <b>{$data[\'name\']}</b>{$data[\'shortname\']}<br/>
																   {$lang->steamgroup_members} {$data[\'members\']}<br/>
																   {$lang->steamgroup_online} {$data[\'online\']}<br/>
																   {$lang->steamgroup_ingame} {$data[\'ingame\']}<br/>
																   {$lang->steamgroup_inchat} {$data[\'inchat\']}<br/>
																   {$data[\'viewandjoin\']} | {$data[\'chat\']}
																   </span></td></tr>'),
		"sid" 				=> "-1",
	);
	$db->insert_query("templates", $template);
	
	$template = array(
		"tid" 					=> "NULL",
		"title" 				=> "steamgroup_row_noinformation",
		"template" 		=> $db->escape_string('<tr><td class="trow1">
																		<center>{$lang->steamgroup_noinformation}</center>
																		</td></tr>'),
		"sid" 				=> "-1",
	);
	$db->insert_query("templates", $template);
}

	
function steamgroup_is_installed()
{
    global $db, $lang, $mybb;
    $lang->load("config_steamgroup");
	
	$q = $db->simple_select('settinggroups', '*', 'name=\'steamgroup\'');
	$group = $db->fetch_array($q);
	if($group === null || empty($group))
	return false;
	return true;
}

function steamgroup_uninstall()
{
    global $db, $lang, $mybb;
    $lang->load("config_steamgroup");
	
	$db->delete_query('templates', 'title LIKE (\'%steamgroup%\')');
	$db->delete_query("settinggroups", "name = 'steamgroup'");
	$db->delete_query('settings', 'name LIKE \'%steamgroup%\'');
	rebuild_settings();
	$cachecatalog = MYBB_ROOT."inc/plugins/steamgroup/cache";
    $opencachecatalog = opendir($cachecatalog);
    while($file = readdir($opencachecatalog))
    {
        if(($file != '.') && ($file != '..') && ($file != 'index.html'))
        {
            unlink(MYBB_ROOT."inc/plugins/steamgroup/cache/".$file);
        }
	}
}

function steamgroup_activate()
{
    global $db, $lang, $mybb;
    $lang->load("config_steamgroup");

}

function steamgroup_deactivate()
{
    global $db, $lang, $mybb;
    $lang->load("config_steamgroup");

}

function steamgroup_index()
{
	global $db, $lang, $mybb, $templates, $theme, $steamgroup;
	$lang->load("steamgroup");
			
	if($mybb->settings['steamgroup_onoff'] == '1')
	{
		require MYBB_ROOT."/inc/plugins/steamgroup/classFileManagement.php";
		require MYBB_ROOT."/inc/plugins/steamgroup/classXML.php";
		$classFileManagement = new classFileManagement;
		$cachefile = MYBB_ROOT."inc/plugins/steamgroup/cache/steamgroup.xml";
		$cachetime = $mybb->settings['steamgroup_group_cache_time'];
		if(file_exists($cachefile)&&(time()-$cachetime<filemtime($cachefile)))
		{
			$xml = file_get_contents($cachefile);
			//$xml = $classFileManagement->getFileContents($xml );
		}
		else
		{
			$url = 'http://steamcommunity.com/groups/'.$mybb->settings['steamgroup_group_name'].'/memberslistxml/?xml=1.xml';
			$xml = $classFileManagement->getFileContents($url);
			file_put_contents($cachefile, $xml);
		}

		$feed = simplexml_load_string( $xml );
		$data = array();
				
		$data['name'] = $feed->groupDetails->groupName;
		$data['desc'] = $feed->groupDetails->headline;
		$data['avatar'] = '<img src="'.$feed->groupDetails->avatarFull.'" class="favimg" style="float: left;width: 108px;margin-right: 5px;"/>';
		$data['members'] = $feed->groupDetails->memberCount;
		$data['inchat'] = $feed->groupDetails->membersInChat;
		$data['ingame'] = $feed->groupDetails->membersInGame;
		$data['online'] = $feed->groupDetails->membersOnline;
		$data['details']	 = $feed->groupDetails->summary;
		$data['url'] = $feed->groupDetails->groupURL;
		$data['id'] = $feed->groupID64;
		$data['viewandjoin'] = '<a href="http://steamcommunity.com/groups/'.$data['url'].'">'.$lang->steamgroup_viewandjoin.'</a>';
		$data['chat'] = '<a href="steam://friends/joinchat/'.$data['id'].'">'.$lang->steamgroup_chat.'</a>';
		if($data['name'])
			eval("\$tpl['row'] = \"" . $templates->get("steamgroup_row") . "\";");
		else
			eval("\$tpl['row'] = \"" . $templates->get("steamgroup_row_noinformation") . "\";");
		eval("\$steamgroup = \"".$templates->get("steamgroup")."\";");
		return $steamgroup;
	}
}

/********************************************************************************************************************************
*
* Say thanks to plugin author - paste link to author website.
* Please don't remove this code if you didn't make donate.
* It's the only way to say thanks without donate.
*
********************************************************************************************************************************/

function steamgroup_thanks(&$content)
{
    global $session, $thanks, $lang;
	$lang->load("steamgroup");
        
    if (!isset($thanks) && $session->is_spider)
    {
        $thx = '<div style="margin:auto; text-align:center;">'.$lang->steamgroup_thanks.'</div></body>';
        $content = str_replace('</body>', $thx, $content);
        $thanks = true;
    }
}
?>