<?php

/**
* Author: Krugerz & Filip 'SimLay' Cichorek
* Author page: http://szablonet2.pl
* Copyright (c) 2018
* This plugin is a part of theme bought on szablonet2.pl, distributing it to other people is not allowed.
* Ten plugin jest częścią stylu kopionego na szablonet2.pl, a jego dystrybujca do innych osób jest zabroniona.
**/

if(!defined("IN_MYBB"))
{
	die("Direct initialization of this file is not allowed.");
}


Class szablonet2 {
	public function info() {
		global $db, $mybb, $lang, $szablonet2_settings_link, $theme_name, $theme_version;
		$lang->load("szablonet2");
		$szablonet2_settings_link = '
			<div style="float: right;">
				<a href="index.php?module=config-szablonet2"> Panel pluginu</a>
			</div>
		';
		return array(
			"name"			=> $lang->plugin__name,
			"description"	=> $lang->plugin__description . $szablonet2_settings_link,
			"website"		=> "http://szablonet2.pl",
			"author"		=> "Krugerz & Filip 'SimLay' Cichorek",
			"authorsite"	=> "http://szablonet2.pl",
			"version"		=> "1.0",
			"codename"		=> "szablonet2",
			"compatibility" => "*"
		);
	}

	public function install() {
		global $db, $lang;
		$lang->load("szablonet2");

		$theme_name = "shooted";
		$theme_version = "1.0";

		$max = $db->fetch_field($db->simple_select('settinggroups', 'MAX(disporder) AS max_disporder'), 'max_disporder');

		$group = [
			'gid'			=> 'NULL',
			'name'			=> 'szablonet2',
			'title'			=> $lang->plugin__name,
			'description'	=> $lang->plugin__description,
			'disporder'		=> $max + 1,
			'isdefault'		=> '0',
	    ];

	    $db->insert_query('settinggroups', $group);
     	$gid = $db->insert_id();

     	$settings  = [
			[
				'sid'			=> 'NULL',
				'name'			=> 'szablonet2_on',
				'title'			=> $lang->settings__on,
				'description'	=> $lang->settings__on__description,
				'optionscode'	=> 'onoff',
				'value'			=> '1',
				'disporder'		=> '1',
				'gid'			=> intval($gid),
			],
			[
				'sid'			=> 'NULL',
				'name'			=> 'szablonet2_announcements-visibility',
				'title'			=> $lang->settings__ann_vs,
				'description'	=> $lang->settings__ann_vs__description,
				'optionscode'	=> 'groupselect',
				'value'			=> '-1',
				'disporder'		=> '2',
				'gid'			=> intval($gid),
			],

			[
				"sid"			=> 'NULL',
				"name"			=> "default_avatar_link",
				"title"			=> $db->escape_string($lang->default_avatar_link),
				"description"	=> $db->escape_string($lang->default_avatar_link_desc),
				"optionscode"	=> "text",
				"value"			=> 'images/default_avatar.png',
				"disporder"		=> '3',
				"gid"			=> $gid
			],


			[
				"sid"			=> 'NULL',
				"name"			=> "settings_legend_group_subtitle",
				"title"			=> $db->escape_string($lang->settings_legend_group),
				"description"	=> $db->escape_string($lang->settings_legend_group_desc),
				"optionscode"	=> "text",
				"value"			=> '8 grup, w tym 4 administracyjne, 2 specialne i 2 podstawowe.',
				"disporder"		=> '4',
				"gid"			=> $gid
			]
		];

        	$db->write_query('CREATE TABLE `'.TABLE_PREFIX.'news_box` ( `ann_id` INT NOT NULL AUTO_INCREMENT, `title` TEXT NOT NULL, `description` TEXT NOT NULL, `category_color` TEXT NOT NULL, `button_link` TEXT NOT NULL, `time` TEXT NOT NULL, `news_sort` TEXT NOT NULL, `date` DATETIME DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`ann_id`)) ENGINE = InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci'.$db->build_create_table_collation().';');

        	$db->write_query('CREATE TABLE `'.TABLE_PREFIX.'main_menu` ( `menu_id` INT NOT NULL AUTO_INCREMENT, `menu_name` TEXT NOT NULL, `menu_link` TEXT NOT NULL, `menu_sort` TEXT NOT NULL, PRIMARY KEY (`menu_id`)) ENGINE = InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci'.$db->build_create_table_collation().';');

        	$db->write_query('CREATE TABLE `'.TABLE_PREFIX.'partners` ( `p_id` INT NOT NULL AUTO_INCREMENT, `p_name` TEXT NOT NULL, `p_img` TEXT NOT NULL, `p_link` TEXT NOT NULL, `p_sort` TEXT NOT NULL, PRIMARY KEY (`p_id`)) ENGINE = InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci'.$db->build_create_table_collation().';');

        	// $db->write_query('CREATE TABLE `'.TABLE_PREFIX.'theme_version` ( `p_id` INT NOT NULL AUTO_INCREMENT, `theme_version` TEXT NOT NULL, `db_theme_version` TEXT NOT NULL, `check_date` TEXT NOT NULL, PRIMARY KEY (`p_id`)) ENGINE = InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci'.$db->build_create_table_collation().';');

        	$db->insert_query('news_box', [
      				'title'       	=> $lang->plugin__default_newtheme,
       				'description'	=> $lang->plugin__default_createdbyszablonet2,
      				'category_color'=> 'red',
       				'button_link'   => 'https://szablonet2.pl',
       				'time'   		=> date("d F Y"),
       				'news_sort'   	=> '1',

		    ]);
        	$db->insert_query('main_menu', [
      				'menu_name'     => $lang->plugin__default_home,
       				'menu_link'     => 'index.php',
       				'menu_sort'   	=> '1',
		    ]);
        	$db->insert_query('main_menu', [
      				'menu_name'     => $lang->plugin__default_users,
       				'menu_link'     => 'memberlist.php',
       				'menu_sort'   	=> '2',
		    ]);
        	$db->insert_query('main_menu', [
      				'menu_name'     => $lang->plugin__default_stats,
       				'menu_link'     => 'stats.php',
       				'menu_sort'   	=> '3',
		    ]);
		    $db->insert_query('partners', [
      				'p_name'    => $lang->szablonet2_title,
       				'p_img'     => 'https://szablonet2.pl/wp-content/uploads/2018/07/logo.png',
       				'p_link'   	=> 'https://szablonet2.pl',
       				'p_sort'   	=> '1',
		    ]);
		    $db->insert_query('partners', [
      				'p_name'     => $lang->szablonet2_title,
       				'p_img'     => 'https://szablonet2.pl/wp-content/uploads/2018/07/logo.png',
       				'p_link'   	=> 'https://szablonet2.pl',
       				'p_sort'   	=> '2',
		    ]);
		    $db->insert_query('partners', [
      				'p_name'     => $lang->szablonet2_title,
       				'p_img'     => 'https://szablonet2.pl/wp-content/uploads/2018/07/logo.png',
       				'p_link'   	=> 'https://szablonet2.pl',
       				'p_sort'   	=> '3',
		    ]);
		    /*$db->insert_query('theme_version', [
      				'theme_version'     => $theme_version,
      				'db_theme_version' 	=> $db_theme_version,
      				'check_date'    	=> date("d F Y"),
		    ]);*/
		
		


      


      	$templatearray = array(
			'title' => 'newsbox',
			'template' => $db->escape_string('
			<div id="news_container">
				<div class="category">
					<div class="heading">
						<div class="title fid_news">{$lang->title_news}</div>
					</div>
					<div class="content">{$nbs_html}</div>
				</div>
			</div> '),
			'sid' => '-1',
			'version' => '1815',
			'dateline' => TIME_NOW
		);
		$db->insert_query("templates", $templatearray);

		$templatearray = array(
			'title' => 'nb-news-item',
			'template' => $db->escape_string('
			<a href="{$nb[\'button_link\']}" class="row">
				<div class="block {$nb[\'category_color\']}">{$nb[\'title\']}</div>
				<div class="text">{$nb[\'description\']}</div>
				<div class="date">{$nb[\'time\']}</div>
			</a>
			'),
			'sid' => '-1',
			'version' => '1815',
			'dateline' => TIME_NOW
		);
		$db->insert_query("templates", $templatearray);

      	$templatearray = array(
			'title' => 'mainmenu',
			'template' => $db->escape_string('
			<ul id="site-menu">{$mm_html}</ul> 
			'),
			'sid' => '-1',
			'version' => '1815',
			'dateline' => TIME_NOW
		);
		$db->insert_query("templates", $templatearray);

		$templatearray = array(
			'title' => 'mainmenu-item',
			'template' => $db->escape_string('
				<li> <a href="{$mm[\'menu_link\']}">{$mm[\'menu_name\']}</a></li>
			'),
			'sid' => '-1',
			'version' => '1815',
			'dateline' => TIME_NOW
		);
		$db->insert_query("templates", $templatearray);

		$templatearray = array(
			'title' => 'partners',
			'template' => $db->escape_string('
				<div class="category clear">
					<div class="heading">
						<div class="title icon_partners">
							{$lang->title_partners}
						</div>
					</div>
					<div class="content">
						<div class="row">
							<div class="partners-slider wrapper">
								{$p_html}
							</div>
						</div>
					</div>
				</div> 
			'),
			'sid' => '-1',
			'version' => '1815',
			'dateline' => TIME_NOW
		);
		$db->insert_query("templates", $templatearray);

		$templatearray = array(
			'title' => 'partners-item',
			'template' => $db->escape_string('
				<a href="{$p[\'p_link\']}" class="slide">
					<img src="{$p[\'p_img\']}" alt="{$p[\'p_name\']}" data-toggle="tooltip" title="{$p[\'p_name\']}" target="_blank">
				</a>
			'),
			'sid' => '-1',
			'version' => '1815',
			'dateline' => TIME_NOW
		);
		$db->insert_query("templates", $templatearray);

		$db->insert_query_multiple("settings", $settings);
      	rebuild_settings();
	}

	public function uninstall() {
		global $db;

		$db->delete_query('settinggroups', 'name=\'news_box\'');
		$db->delete_query('settinggroups', 'name=\'szablonet2\'');
     	$db->delete_query('settings', 'name LIKE \'news_box%\'');
     	$db->delete_query('settings', 'name LIKE \'szablonet2%\'');
     	$db->delete_query('templates', 'title LIKE \'newsbox%\'');
     	$db->delete_query('templates', 'title LIKE \'nb-news-item%\'');
     	$db->delete_query('templates', 'title LIKE \'mainmenu%\'');
     	$db->delete_query('templates', 'title LIKE \'mainmenu-item%\'');
     	$db->delete_query('templates', 'title LIKE \'partners%\'');
     	$db->delete_query('templates', 'title LIKE \'partners-item%\'');

     	if($db->table_exists('news_box')) {
        	$db->drop_table('news_box');
      	}

     	if($db->table_exists('main_menu')) {
        	$db->drop_table('main_menu');
      	}

     	if($db->table_exists('partners')) {
        	$db->drop_table('partners');
      	}


      	rebuild_settings();
	}

	public function is_installed() {
		global $db;

		return $db->table_exists('news_box') == 1 ? 1 : 0;
		return $db->table_exists('main_menu') == 1 ? 1 : 0;
		return $db->table_exists('partners') == 1 ? 1 : 0;
	}

	public function add($title, $description, $category_color, $button_link, $time, $menu_name, $link, $p_name, $p_img, $p_link, $p_sort) {
		global $db;

		$data = array(
			"title" => $db->escape_string($title),
			"description" => $db->escape_string($description),
			"category_color" => $db->escape_string($category_color),
			"button_link" => $db->escape_string($button_link),
			"date" => TIME_NOW,
			"time" => $db->escape_string($time),
			"news_sort" => $db->escape_string($news_sort),
		);

		$db->insert_query("news_box", $data);

		$data2 = array(
			"menu_name" => $db->escape_string($menu_name),
			"menu_link" => $db->escape_string($menu_link),
			"menu_sort" => $db->escape_string($menu_sort),
		);

		$db->insert_query("main_menu", $data2);


		$data3 = array(
			"p_name" => $db->escape_string($p_name),
			"p_img" => $db->escape_string($p_link),
			"p_link" => $db->escape_string($p_sort),
			"p_sort" => $db->escape_string($p_sort),
		);

		$db->insert_query("partners", $data3);
	}

	public function show() {
		global $db, $lang, $news_box, $templates, $mybb, $templatelist, $main_menu, $partners_box;
		$lang->load("szablonet2");

		$templatelist .= "newsbox,nb-news-item,mainmenu,mainmenu-item";

		if(self::is_on() && self::can_see()) {
			$nbs = $db->simple_select("news_box", "*", "", array("order_by" => "news_sort DESC"));

			if($nbs->num_rows > 0) {
				while($nb = $db->fetch_array($nbs)) {
					eval("\$nbs_html .= \"".$templates->get("nb-news-item")."\";");
				}
				eval("\$news_box = \"".$templates->get("newsbox")."\";");
			}
			$mmq = $db->simple_select("main_menu", "*", "", array("order_by" => "menu_sort ASC"));

			if($mmq->num_rows > 0) {
				while($mm = $db->fetch_array($mmq)) {
					eval("\$mm_html .= \"".$templates->get("mainmenu-item")."\";");
				}
				eval("\$main_menu = \"".$templates->get("mainmenu")."\";");
			}

			$pq = $db->simple_select("partners", "*", "", array("order_by" => "p_sort ASC"));

			if($pq->num_rows > 0) {
				while($p = $db->fetch_array($pq)) {
					eval("\$p_html .= \"".$templates->get("partners-item")."\";");
				}
				eval("\$partners_box = \"".$templates->get("partners")."\";");
			}
		}
	}

	public function can_see() {
		global $db, $mybb;

		$get =  $db->simple_select("settings", "*", "name='szablonet2_announcements-visibility'");
		if($get->num_rows > 0) {
			$groups = $db->fetch_array($get)["value"];
			if(empty($groups)) {
				return 0;
			}
			elseif($groups != "-1") {
				$groups = explode(",", $groups);

				$u_groups = explode(",", $mybb->user['additionalgroups']);
				$u_groups[] = $mybb->user['usergroup'];

				foreach($u_groups as $u_group) {
					if(in_array($u_group, $groups)) return 1;
				}

				return 0;
			} else {
				return 1;
			}
		}

	}

	public function is_on() {
		global $db;

		$get =  $db->simple_select("settings", "*", "name='szablonet2_on'");
		$value = $db->fetch_array($get)["value"];

		return $value == 1 ? 1 : 0;
	}
}



function szablonet2_info() {
	return szablonet2::info();
}


function szablonet2_activate() {
	
}


function szablonet2_deactivate() {

}

function szablonet2_is_installed(){
	return szablonet2::is_installed();
}

function szablonet2_install() {
	szablonet2::install();
}

function szablonet2_uninstall() {
	szablonet2::uninstall();
}

$plugins->add_hook("global_start", "szablonet2_global");

function szablonet2_global() {
    global $db, $mybb, $urlavatar, $lravatar,$useravatar, $unread_display, $legend_group_subtitle;
     
    if ($mybb->user['pms_unread'] == 0) {
        $unread_display = " dnone";
    } else {
        $unread_display = "";
    } 

	$legend_group_subtitle = $mybb->settings['settings_legend_group_subtitle'];

	if (empty($mybb->user['avatar'])) {
        $useravatar = $mybb->settings['default_avatar_link'];    
    } else {
        $useravatar = "{$mybb->user['avatar']}";
    }

	$query = $db->write_query("SELECT avatar FROM ".TABLE_PREFIX."users ORDER BY `uid` DESC LIMIT 1");
    if ($query->num_rows == 1) {
        $result = $db->fetch_array($query);   
        if (empty($result['avatar'])) {
            $urlavatar = $mybb->settings['default_avatar_link'];  
        } else {
            $urlavatar = $result['avatar'];
        }
      $lravatar = "<img src='{$urlavatar}' alt='avatar' />";
    }
}

/** Na przyzszłość bo jestem zbyt dużym idiota by ogarnac co jest nie tak.
$plugins->add_hook('admin_home_index_output_message', 'szablonet2_baseversion');

function szablonet2_baseversion(&$actions) {
    global $mybb, $db, $user_info, $data1;

    $lcddb = $db->simple_select("theme_version", "*", "");
    if ($lcd_result = $db->fetch_array($lcddb)) {
    	$lcd = $result['check_date'];
    }

if($lcd == date("d F Y")) {
    require_once MYBB_ROOT.'inc/db_mysql.php';
    $db2 = new DB_MySQL;

    $config2['hostname'] = 'localhost';
    $config2['username'] = '27355458_mybbver';
    $config2['password'] = "";
    $config2['database'] = '27355458_mybbver';
	$db->connect($config2);

	$query2 = $db->simple_select("versions", "*", "");

	if($result = $db->fetch_array($query2)) {
		$data1 = $result[$theme_name];
	}

	echo $data1;
	echo $theme_name;
} else {
	echo "ta sama heheh";
}
}**/


$plugins->add_hook('admin_config_menu', 'szablonet2_admin_config_menu');
$plugins->add_hook('admin_home_menu_quick_access', 'szablonet2_admin_config_menu');
$plugins->add_hook('admin_style_menu', 'szablonet2_admin_config_menu');

function szablonet2_admin_config_menu(&$sub_menu)
{
   global $lang;
   $lang->load('szablonet2');
   $sub_menu[] = ['id' => 'szablonet2', 'title' => $lang->plugin__name2, 'link' => 'index.php?module=config-szablonet2'];
}

$plugins->add_hook('admin_config_action_handler', 'szablonet2_config_action_handler');

function szablonet2_config_action_handler(&$actions)
{
	$actions['szablonet2'] = ['active' => 'szablonet2', 'file' => 'szablonet2.php'];
}

$plugins->add_hook('admin_home_index_output_message', 'szablonet2_admincp_block');

function szablonet2_admincp_block() {
   	global $lang;
   	$lang->load('szablonet2');
	echo "<link rel='stylesheet' href='modules/config/szablonet2_welcome.css'>";
	echo "<link href='https://fonts.googleapis.com/css?family=Poppins:300,400,500,600&amp;subset=latin-ext' rel='stylesheet'>";
	echo '<section id="szablonet2_plugin">
			<div class="wrapper">
				<div class="welcome">
					<a href="https://szablonet2.pl/">
						<img src="https://szablonet2.pl/wp-content/uploads/2018/07/mybb_plugin_szablonet2.png" alt="szablonet2 Logo" class="szablonet2_logo" />
					</a>
					<div class="quick_tabs">
						<a href="index.php?module=config-szablonet2" target="_blank" class="szablonet2_button">
							'.$lang->plugin__name2. '
						</a>
						<a href="index.php?module=config-szablonet2&amp;action=menu" target="_blank" class="szablonet2_button">
							'.$lang->settings__mainmenu_list. '
						</a>
						<a href="index.php?module=config-szablonet2&amp;action=news" target="_blank" class="szablonet2_button">
							'.$lang->settings__title_show. '
						</a>
						<a href="index.php?module=config-szablonet2&amp;action=partners" target="_blank" class="szablonet2_button">
							'.$lang->settings__partners. '
						</a>
						<a href="https://szablonet2.pl/support/t" target="_blank" class="szablonet2_button">
							Support
						</a>
					</div>
				</div>
			</div>
		</section>';
}

$plugins->add_hook('global_intermediate', 'szablonet2_show');

function szablonet2_show() {
	szablonet2::show();
}

?>