<?php
/******************************************************************************/
// Knjižnica, kjer so zbrane ključne funkcije za module
// Author: Dave @ zabec.net
// Date: 2008
/******************************************************************************/

	/* funkcija, premakni v osnutke */
	function izbrisi($id)
	{
		global $db;
		global $mod_settings;
		global $lang;
		global $path;

		if($mod_settings['custom_delete'])
		{
			include_once($path."/custom_delete.php");
		}

		/* uredimo vrstni red če obstaja */
		if($mod_settings['vrstni_red'])
		{
			vrstni_red($id, "odstrani");
		}
		if($mod_settings['slika'])
		{
			izbrisi_slika($id, true, false);
		}
		if($mod_settings['galerija'])
		{
			$result = $db->query("SELECT id AS id_slika FROM ".$mod_settings['galerija_tabela']." WHERE item_id = '$id'");
			while($r = $result->fetch())
			{
				izbrisi_slika_galerija($id, $r['id_slika'], false);
			}
		}
		if($mod_settings['datoteke'])
		{
			$result = $db->query("SELECT id AS id_datoteka FROM ".$mod_settings['datoteke_tabela']." WHERE item_id = '$id'");
			while($r = $result->fetch())
			{
				izbrisi_datoteka($id, $r['id_datoteka'], false);
			}
		}
		/* izbris v jezikovnih tabelah */
		foreach($mod_settings['active_lang'] AS $value)
		{
			$db->query("DELETE FROM ".$mod_settings['tabela']."_".$value." WHERE item_id = '$id'");
		}

		novaSprememba($id, $lang['log_vnos_odstranjen']);

		/* izbrišemo item */
		$result = $db->query("DELETE FROM ".$mod_settings['tabela']." WHERE id = '$id'");

		/* logiramo in izpišemo error če je prišlo do napake */
		if(!$result)
		{
			echo "error";
			$log->log("", $logmode, "logonly", "Napaka pri izbrisu, id: ".$clean['id'].", tabela: ".$mod_settings['tabela'], 2);
		}
	}

	function izbrisi_slika($id, $dbizbris = false, $log = true)
	{
		global $mod_settings;
		global $db;
		global $ajax;
		global $lang;
		if($mod_settings['slika'])
		{
			$result = $db->query("SELECT slika FROM ".$mod_settings['tabela']." WHERE id = '$id'");
			$r = $result->fetch();

			if($r['slika'])
			{
				if(file_exists($ajax.$mod_settings['slika_path'].$r['slika']))
				{
					if($log)
					{
						novaSprememba($id, $lang['log_slika_odstranjen']);
					}
					if(!$dbizbris)
					{
						$db->query("UPDATE ".$mod_settings['tabela']." SET slika = '' WHERE id = '$id'");
					}
					odstrani_dodatne_slike($r['slika']);
					unlink($ajax.$mod_settings['slika_path'].$r['slika']);
				}
			}
		}
	}

	function izbrisi_slika_galerija($id, $id_slika, $log = true)
	{
		global $mod_settings;
		global $db;
		global $ajax;
		global $lang;
		if($mod_settings['galerija'])
		{
			$result = $db->query("SELECT id, slika FROM ".$mod_settings['galerija_tabela']." WHERE item_id = '$id' AND id = '$id_slika'");
			$r = $result->fetch();

			if($r['slika'])
			{
				if(file_exists($ajax.$mod_settings['slika_path'].$r['slika']))
				{
					if($mod_settings['galerija_vrstni_red'])
					{
						vrstni_red($r['id'], "odstrani", "galerija");
					}
					if($log)
					{
						novaSprememba($id, $lang['log_slika_odstranjen']);
					}
					$db->query("DELETE FROM ".$mod_settings['galerija_tabela']." WHERE id = '$r[id]'");
					odstrani_dodatne_slike($r['slika']);
					unlink($ajax.$mod_settings['slika_path'].$r['slika']);
				}
			}
		}

	}
	function odstrani_dodatne_slike($ime)
	{
		global $mod_settings;
		global $ajax;
		global $moreimages;
		foreach($moreimages AS $value)
		{
			$slika = $ajax.$mod_settings['slika_path']."/".$value[0]."/".$ime;
			if(file_exists($slika))
			{
				unlink($slika);
			}
		}
	}

	function izbrisi_datoteka($id, $id_datoteka, $log = true)
	{
		global $mod_settings;
		global $db;
		global $ajax;
		global $lang;
		if($mod_settings['datoteke'])
		{
			$result = $db->query("SELECT id, datoteka FROM ".$mod_settings['datoteke_tabela']." WHERE item_id = '$id' AND id = '$id_datoteka'");
			$r = $result->fetch();

			if($r['datoteka'])
			{
				if(file_exists($ajax.$mod_settings['datoteka_path'].$r['datoteka']))
				{
					if($log)
					{
						novaSprememba($id, $lang['log_datoteka_odstranjen']);
					}
					$db->query("DELETE FROM ".$mod_settings['datoteke_tabela']." WHERE id = '$r[id]'");
					unlink($ajax.$mod_settings['datoteka_path'].$r['datoteka']);
				}
			}
		}

	}

	function vrstni_red($id, $premakni, $vrsta = "item")
	{
		global $mod_settings;
		global $db;

		if($vrsta == "galerija")
		{
			$settings['tabela'] = $mod_settings['galerija_tabela'];
			$settings['vrstni_red'] = $mod_settings['galerija_vrstni_red'];
			$settings['kategorija'] = false;
			$settings['osnutek'] = false;
			$sql_item = ", item_id";
		}
		else
		{
			$settings['tabela'] = $mod_settings['tabela'];
			$settings['vrstni_red'] = $mod_settings['vrstni_red'];
			$settings['kategorija'] = $mod_settings['kategorija'];
			$settings['osnutek'] = $mod_settings['osnutek'];
		}

		/* preverimo če razvrščanje sploh obstaja */
		if($settings['vrstni_red'])
		{
			/* preverimo če so kategorije */
			if($settings['kategorija'])
			{
				$sqlKatSelect = ", kategorija";
			}

			/* preverimo če so osnutki */
			if($settings['osnutek'])
			{
				$sqlosnutek = " AND osnutek = 0";
				$sqlWosnutek = " WHERE osnutek = 0";
			}
			else
			{
				$sqlWosnutek = " WHERE '1'='1'";
			}

			$result = $db->query("SELECT vrstni_red".$sql_item.$sqlKatSelect." FROM ".$settings['tabela']." WHERE id = '$id'");
			$r = $result->fetch();

			/* specifika vrstnega reda galerij */
			if($vrsta == "galerija")
			{
				$sqlitem = " AND item_id = '$r[item_id]'";
			}

			/* preverimo če so kategorije */
			if($settings['kategorija'])
			{
				$sqlKatWhere = " AND kategorija = '$r[kategorija]'";
			}

			switch($premakni)
			{
				case "up":
					if($r['vrstni_red'] > 0)
					{
						$vrstni_red = $r['vrstni_red'] - 1;

						$db->query("UPDATE ".$settings['tabela']." SET vrstni_red = 0 WHERE vrstni_red = '$vrstni_red'".$sqlitem.$sqlosnutek.$sqlKatWhere);

						$db->query("UPDATE ".$settings['tabela']." SET vrstni_red = $vrstni_red WHERE id = '$id'");

						$db->query("UPDATE ".$settings['tabela']." SET vrstni_red = '$r[vrstni_red]' WHERE vrstni_red = 0".$sqlitem.$sqlosnutek.$sqlKatWhere);
					}
					break;
				case "top":
					if($r['vrstni_red'] > 0)
					{
						$vrstni_red = 1;

						$db->query("UPDATE ".$settings['tabela']." SET vrstni_red = vrstni_red + 1 WHERE vrstni_red < ".$r['vrstni_red'].$sqlitem.$sqlKatWhere.$sqlosnutek);

						$db->query("UPDATE ".$settings['tabela']." SET vrstni_red = $vrstni_red WHERE id = '$id'");
					}
					break;
				case "down":
					$maxresult =  $db->query("SELECT vrstni_red FROM ".$settings['tabela'].$sqlWosnutek.$sqlitem.$sqlKatWhere." ORDER BY vrstni_red DESC LIMIT 0,1");
					$maxr = $maxresult->fetch();
					if($r['vrstni_red'] < $maxr['vrstni_red'])
					{
						$vrstni_red = $r['vrstni_red'] + 1;

						$db->query("UPDATE ".$settings['tabela']." SET vrstni_red = 0 WHERE vrstni_red = '$vrstni_red'".$sqlosnutek.$sqlitem.$sqlKatWhere);

						$db->query("UPDATE ".$settings['tabela']." SET vrstni_red = $vrstni_red WHERE id = '$id'");

						$db->query("UPDATE ".$settings['tabela']." SET vrstni_red = '$r[vrstni_red]' WHERE vrstni_red = 0".$sqlosnutek.$sqlitem.$sqlKatWhere);
					}
					break;
				case "bottom":
					$maxresult =  $db->query("SELECT vrstni_red FROM ".$settings['tabela'].$sqlWosnutek.$sqlitem.$sqlKatWhere." ORDER BY vrstni_red DESC LIMIT 0,1");
					$maxr = $maxresult->fetch();
					if($r['vrstni_red'] < $maxr['vrstni_red'])
					{
						$vrstni_red = $maxr['vrstni_red'];

						$db->query("UPDATE ".$settings['tabela']." SET vrstni_red = vrstni_red - 1 WHERE vrstni_red > ".$r['vrstni_red'].$sqlitem.$sqlosnutek.$sqlKatWhere);

						$db->query("UPDATE ".$settings['tabela']." SET vrstni_red = $vrstni_red WHERE id = '$id'");
					}
					break;
				case "odstrani":
						$db->query("UPDATE ".$settings['tabela']." SET vrstni_red = vrstni_red - 1 WHERE vrstni_red > ".$r['vrstni_red'].$sqlitem.$sqlosnutek.$sqlKatWhere);
						$db->query("UPDATE ".$settings['tabela']." SET vrstni_red = 0 WHERE id = '$id'");
					break;
				case "dodaj":
						if($r['vrstni_red'] == 0)
						{
							$maxresult =  $db->query("SELECT vrstni_red FROM ".$settings['tabela'].$sqlWosnutek.$sqlitem.$sqlKatWhere." ORDER BY vrstni_red DESC LIMIT 0,1");
							$maxr = $maxresult->fetch();
							$nov_vrstnired = $maxr['vrstni_red'] + 1;
							$db->query("UPDATE ".$settings['tabela']." SET vrstni_red = '".$nov_vrstnired."' WHERE id = '$id'");
						}
					break;
				case "save_temp":
						if($r['vrstni_red'] > 0)
						{
							$_SESSION[$id.'_vrstni_red'] = $r['vrstni_red'];
							$db->query("UPDATE ".$settings['tabela']." SET vrstni_red = vrstni_red - 1 WHERE vrstni_red > ".$r['vrstni_red'].$sqlosnutek.$sqlitem.$sqlKatWhere);
							$db->query("UPDATE ".$settings['tabela']." SET vrstni_red = 0 WHERE id = '$id'");
						}
					break;
				case "resolve_temp":
						$db->query("UPDATE ".$settings['tabela']." SET vrstni_red = vrstni_red + 1 WHERE vrstni_red >= ".$_SESSION[$id.'_vrstni_red'].$sqlosnutek.$sqlitem.$sqlKatWhere);
						$db->query("UPDATE ".$settings['tabela']." SET vrstni_red = '".$_SESSION[$id.'_vrstni_red']."' WHERE id = '$id'");
						unset($_SESSION[$id.'_vrstni_red']);
					break;

				default:

				break;
			}
		}
	}

/*
	function vrstni_red($id, $premakni)
	{
		global $mod_settings;
		global $db;

		if($mod_settings['vrstni_red'])
		{

			if($mod_settings['kategorija'])
			{
				$sqlKatSelect = ", kategorija";
			}


			if($mod_settings['osnutek'])
			{
				$sqlosnutek = " AND osnutek = 0";
				$sqlWosnutek = " WHERE osnutek = 0";
			}
			else
			{
				$sqlWosnutek = " WHERE '1'='1'";
			}

			$result = $db->query("SELECT vrstni_red".$sqlKatSelect." FROM ".$mod_settings['tabela']." WHERE id = '$id'");
			$r = $result->fetch();


			if($mod_settings['kategorija'])
			{
				$sqlKatWhere = " AND kategorija = '$r[kategorija]'";
			}

			switch($premakni)
			{
				case "up":
					if($r['vrstni_red'] > 0)
					{
						$vrstni_red = $r['vrstni_red'] - 1;

						$db->query("UPDATE ".$mod_settings['tabela']." SET vrstni_red = 0 WHERE vrstni_red = '$vrstni_red'".$sqlosnutek.$sqlKatWhere);

						$db->query("UPDATE ".$mod_settings['tabela']." SET vrstni_red = $vrstni_red WHERE id = '$id'");

						$db->query("UPDATE ".$mod_settings['tabela']." SET vrstni_red = '$r[vrstni_red]' WHERE vrstni_red = 0".$sqlosnutek.$sqlKatWhere);
					}
					break;
				case "top":
					if($r['vrstni_red'] > 0)
					{
						$vrstni_red = 1;

						$db->query("UPDATE ".$mod_settings['tabela']." SET vrstni_red = vrstni_red + 1 WHERE vrstni_red < ".$r['vrstni_red'].$sqlKatWhere.$sqlosnutek);

						$db->query("UPDATE ".$mod_settings['tabela']." SET vrstni_red = $vrstni_red WHERE id = '$id'");
					}
					break;
				case "down":
					$maxresult =  $db->query("SELECT vrstni_red FROM ".$mod_settings['tabela']." WHERE osnutek = 0".$sqlKatWhere." ORDER BY vrstni_red DESC LIMIT 0,1");
					$maxr = $maxresult->fetch();
					if($r['vrstni_red'] < $maxr['vrstni_red'])
					{
						$vrstni_red = $r['vrstni_red'] + 1;

						$db->query("UPDATE ".$mod_settings['tabela']." SET vrstni_red = 0 WHERE vrstni_red = '$vrstni_red'".$sqlosnutek.$sqlKatWhere);

						$db->query("UPDATE ".$mod_settings['tabela']." SET vrstni_red = $vrstni_red WHERE id = '$id'");

						$db->query("UPDATE ".$mod_settings['tabela']." SET vrstni_red = '$r[vrstni_red]' WHERE vrstni_red = 0".$sqlosnutek.$sqlKatWhere);
					}
					break;
				case "bottom":
					$maxresult =  $db->query("SELECT vrstni_red FROM ".$mod_settings['tabela'].$sqlWosnutek.$sqlKatWhere." ORDER BY vrstni_red DESC LIMIT 0,1");
					$maxr = $maxresult->fetch();
					if($r['vrstni_red'] < $maxr['vrstni_red'])
					{
						$vrstni_red = $maxr['vrstni_red'];

						$db->query("UPDATE ".$mod_settings['tabela']." SET vrstni_red = vrstni_red - 1 WHERE vrstni_red > ".$r['vrstni_red'].$sqlosnutek.$sqlKatWhere);

						$db->query("UPDATE ".$mod_settings['tabela']." SET vrstni_red = $vrstni_red WHERE id = '$id'");
					}
					break;
				case "odstrani":
						$db->query("UPDATE ".$mod_settings['tabela']." SET vrstni_red = vrstni_red - 1 WHERE vrstni_red > ".$r['vrstni_red'].$sqlosnutek.$sqlKatWhere);
						$db->query("UPDATE ".$mod_settings['tabela']." SET vrstni_red = 0 WHERE id = '$id'");
					break;
				case "dodaj":
						if($r['vrstni_red'] == 0)
						{
							$maxresult =  $db->query("SELECT vrstni_red FROM ".$mod_settings['tabela'].$sqlWosnutek.$sqlKatWhere." ORDER BY vrstni_red DESC LIMIT 0,1");
							$maxr = $maxresult->fetch();
							$nov_vrstnired = $maxr['vrstni_red'] + 1;
							$db->query("UPDATE ".$mod_settings['tabela']." SET vrstni_red = '".$nov_vrstnired."' WHERE id = '$id'");
						}
					break;
				case "save_temp":
						if($r['vrstni_red'] > 0)
						{
							$_SESSION[$id.'_vrstni_red'] = $r['vrstni_red'];
							$db->query("UPDATE ".$mod_settings['tabela']." SET vrstni_red = vrstni_red - 1 WHERE vrstni_red > ".$r['vrstni_red'].$sqlosnutek.$sqlKatWhere);
							$db->query("UPDATE ".$mod_settings['tabela']." SET vrstni_red = 0 WHERE id = '$id'");
						}
					break;
				case "resolve_temp":
						$db->query("UPDATE ".$mod_settings['tabela']." SET vrstni_red = vrstni_red + 1 WHERE vrstni_red >= ".$_SESSION[$id.'_vrstni_red'].$sqlosnutek.$sqlKatWhere);
						$db->query("UPDATE ".$mod_settings['tabela']." SET vrstni_red = '".$_SESSION[$id.'_vrstni_red']."' WHERE id = '$id'");
						unset($_SESSION[$id.'_vrstni_red']);
					break;

				default:

				break;
			}
		}
	}*/

	/* funckija, ki generira strani */
	function strani($stevilo_vseh_vnosov, $steviloNaStran, $tpl, $stran = 1)
	{
		$a = 1;
		for($i = $stevilo_vseh_vnosov; $i>0; $i = $i - $steviloNaStran)
		{
			$tpl->newBlock("strani");
			/* če je izbrana stran */
			if($stran == $a)
			{
				/* izbrana stran */
				$tpl->assign("selected", "stani_izbran");

				/* predhodnja stran */
				if($a != 1)
				{
					$tpl->newBlock("strani_nazaj");
					$tpl->assign("stran", $a-1);
				}
				/* naslednja stran */
				if($i > $steviloNaStran)
				{
					$tpl->newBlock("strani_naprej");
					$tpl->assign("stran", $a+1);
				}
			}
			$tpl->gotoBlock("strani");
			$tpl->assign("stran", $a);
			$a++;
		}
	}

	function generate_lang_zavihek($lang)
	{
		global $tpl;
		global $mod_settings;
		foreach($mod_settings['active_lang'] AS $value)
		{
			$tpl->newBlock("lang_zavihek");
			$tpl->assign("jezik",$value);
			$tpl->assign("jezik_big",strtoupper($value));
			if($lang == $value)
			{
				$tpl->assign("jezik_class","editor_lang_on");
			}
			else
			{
				$tpl->assign("jezik_class","editor_lang_off");
			}
		}
	}

?>