<?PHP

/* ====================
Seditio - Website engine
Copyright Neocrome & Seditio Team
https://seditio.org
[BEGIN_SED]
File=admin.tools.inc.php
Version=179
Updated=2022-jul-15
Type=Core.admin
Author=Seditio Team
Description=Administration panel
[END_SED]
==================== */

if ( !defined('SED_CODE') || !defined('SED_ADMIN') ) { die('Wrong URL.'); }

list($usr['auth_read'], $usr['auth_write'], $usr['isadmin']) = sed_auth('admin', 'a');
sed_block($usr['isadmin']);

// ---------- Breadcrumbs
$urlpaths = array();
$urlpaths[sed_url("admin", "m=tools")] =  $L['adm_manage'];

$admintitle = $L['adm_manage'];

$p = sed_import('p','G','ALP');

$t = new XTemplate(sed_skinfile('admin.tools', false, true)); 

if (!empty($p))
	{
	$path_lang_def	= SED_ROOT . "/plugins/$p/lang/$p.en.lang.php";
	$path_lang_alt	= SED_ROOT . "/plugins/$p/lang/$p.$lang.lang.php";

	if (@file_exists($path_lang_alt))
		{ require($path_lang_alt); }
	elseif (@file_exists($path_lang_def))
		{ require($path_lang_def); }

	$extp = array();

	if (is_array($sed_plugins))
		{
		foreach($sed_plugins['tools'] as $i => $k)
			{
			if ($k['pl_code'] == $p)
				{ $extp[$i] = $k; }
			}
		}

	if (count($extp) == 0)
		{
		sed_redirect(sed_url("message", "msg=907", "", true));
		exit;
		}

	$extplugin_info = SED_ROOT . "/plugins/".$p."/".$p.".setup.php";

	if (file_exists($extplugin_info))
		{
		$info = sed_infoget($extplugin_info, 'SED_EXTPLUGIN');
		}
	else
		{
		sed_redirect(sed_url("message", "msg=907", "", true));
		exit;
		}
		
	$adminhelp = $L['Description']." : ".$info['Description']."<br />".$L['Version']." : ".$info['Version']."<br />".$L['Date']." : ".$info['Date']."<br />".$L['Author']." : ".$info['Author']."<br />".$L['Copyright']." : ".$info['Copyright']."<br />".$L['Notes']." : ".$info['Notes'];

	$urlpaths[sed_url("admin", "m=tools&p=".$p)] = $info['Name'];

	$t-> assign(array(	
		"TOOL_TITLE" => $info['Name'],
		"TOOL_ICON" => sed_plugin_icon($p)
	));	

	if (is_array($extp))
		{
		foreach($extp as $k => $pl)
			{
			include(SED_ROOT . '/plugins/'.$pl['pl_code'].'/'.$pl['pl_file'].'.php');

			$t-> assign(array(	
				"TOOL_BODY" => $plugin_body
			));
							 
			$t->parse("ADMIN_TOOL.TOOL_BODY_LIST");
			}
		}

	$t->parse("ADMIN_TOOL");
	$adminmain .= $t -> text("ADMIN_TOOL");

	}
else
	{

	$sql = sed_sql_query("SELECT DISTINCT(config_cat), COUNT(*) FROM $db_config WHERE config_owner!='plug' GROUP BY config_cat");
	while ($row = sed_sql_fetchassoc($sql))
		{ $cfgentries[$row['config_cat']] = $row['COUNT(*)']; }

	$sql = sed_sql_query("SELECT DISTINCT(auth_code), COUNT(*) FROM $db_auth WHERE 1 GROUP BY auth_code");
	while ($row = sed_sql_fetchassoc($sql))
		{ $authentries[$row['auth_code']] = $row['COUNT(*)']; }

	$sql = sed_sql_query("SELECT * FROM $db_core WHERE ct_code NOT IN ('admin', 'message', 'index', 'forums', 'users', 'plug', 'page', 'trash') ORDER BY ct_title ASC");
	$lines = array();

	while ($row = sed_sql_fetchassoc($sql))
		{	
		$row['ct_title_loc'] = (empty($L["core_".$row['ct_code']])) ? $row['ct_title'] : $L["core_".$row['ct_code']];
			
		if ($authentries[$row['ct_code']] > 0) 
			{
			$t-> assign(array(	
				"MODULES_LIST_RIGHTS_URL" => sed_url("admin", "m=rightsbyitem&ic=".$row['ct_code']."&io=a")
			));
			$t->parse("ADMIN_TOOLS.MODULES_LIST.MODULES_LIST_RIGHTS");		
			}
				
		if (isset($cfgentries[$row['ct_code']]) && $cfgentries[$row['ct_code']] > 0)
			{
			$t-> assign(array(
				"MODULES_LIST_CONFIG_URL" => sed_url("admin", "m=config&n=edit&o=core&p=".$row['ct_code'])
			));				
			$t->parse("ADMIN_TOOLS.MODULES_LIST.MODULES_LIST_CONFIG");
			}	
			
		$t-> assign(array(	
			"MODULES_LIST_URL" => sed_url("admin", "m=".$row['ct_code']),
			"MODULES_LIST_CODE" => $row['ct_code'],
			"MODULES_LIST_TITLE" => $row['ct_title_loc']
		));	
				
		$t->parse("ADMIN_TOOLS.MODULES_LIST");	
		}

	$t->assign(array(	
		"MODULES_LIST_BANLIST_URL" => sed_url("admin", "m=banlist")
	));
	
	$t->parse("ADMIN_TOOLS.MODULES_LIST_BANLIST");

	$t->assign(array(	
		"MODULES_LIST_CACHE_URL" => sed_url("admin", "m=cache")
	));
	
	$t->parse("ADMIN_TOOLS.MODULES_LIST_CACHE");

	$t->assign(array(	
		"MODULES_LIST_SMILIES_URL" => sed_url("admin", "m=smilies")
	));
	
	$t->parse("ADMIN_TOOLS.MODULES_LIST_SMILIES");

	$t->assign(array(	
		"MODULES_LIST_HITS_URL" => sed_url("admin", "m=hits")
	));
	
	$t->parse("ADMIN_TOOLS.MODULES_LIST_HITS");

	$t->assign(array(	
		"MODULES_LIST_REFERERS_URL" => sed_url("admin", "m=referers")
	));
	
	$t->parse("ADMIN_TOOLS.MODULES_LIST_REFERERS");

	$plugins = array();

	function cmp ($a, $b, $k = 1)
		{
		if ($a[$k] == $b[$k]) return 0;
		return ($a[$k] < $b[$k]) ? -1 : 1;
		}

	/* === Hook === */
	$extp = sed_getextplugins('tools');

	if (is_array($extp))
		{
		$sql = sed_sql_query("SELECT DISTINCT(config_cat), COUNT(*) FROM $db_config WHERE config_owner='plug' GROUP BY config_cat");
		while ($row = sed_sql_fetchassoc($sql))
			{ $cfgentries[$row['config_cat']] = $row['COUNT(*)']; }
		
		
		foreach($extp as $k => $pl)
			{ $plugins[]= array ($pl['pl_code'], $pl['pl_title']); }

		usort($plugins, "cmp");

		foreach ($plugins as $i => $x)
			{
			$extplugin_info = SED_ROOT . "/plugins/".$x[0]."/".$x[0].".setup.php";

			if (file_exists($extplugin_info))
				{
				$info = sed_infoget($extplugin_info, 'SED_EXTPLUGIN');
				}
			else
				{
				include (SED_ROOT . "/system/lang/".$usr['lang']."/message.lang.php");
				$info['Name'] = $x[0]." : ".$L['msg907_1'];
				}
			
			if (isset($cfgentries[$info['Code']]) && $cfgentries[$info['Code']] > 0)
				{
				$t-> assign(array(	
					"TOOLS_LIST_CONFIG_URL" => sed_url("admin", "m=config&n=edit&o=plug&p=".$info['Code'])
				));				
				$t->parse("ADMIN_TOOLS.TOOLS_LIST.TOOLS_LIST_CONFIG");						
				}
				
			$t-> assign(array(				
				"TOOLS_LIST_URL" => sed_url("admin", "m=tools&p=".$x[0]),
				"TOOLS_LIST_TITLE" => $info['Name'],
				"TOOLS_LIST_ICON" => sed_plugin_icon($x[0])
			));

			$t->parse("ADMIN_TOOLS.TOOLS_LIST");						
			}
		}
	else
		{
		$adminmain = $L['adm_listisempty'];
		}
		
	$t->assign("ADMIN_TOOLS_TITLE", $admintitle);
	
	$t->parse("ADMIN_TOOLS");
	
	$adminmain .= $t -> text("ADMIN_TOOLS");		
	}
		
?>
