Location: PHPKode > projects > XplainCart > xplaincart-1.0/admin/library/admin_func_class.php
<?php
if(file_exists('../library/define.php'))
	require_once '../library/define.php';
else
	require_once '../../library/define.php';
if(file_exists('../library/database_class.php'))
	require_once '../library/database_class.php';
else
	require_once '../../library/database_class.php';
class admin_func_class{
	/*
		Check if a session user id exist or not. If not set redirect
		to login page. If the user session id exist and there's found
		$_GET['logout'] in the query string logout the user
	*/
	function checkUser()
	{
		// if the session id is not set, redirect to login page
		if (!isset($_SESSION['plaincart_user_id'])) {
			header ("Cache-Control: no-cache, must-revalidate");
			header('Location: ' . WEB_ROOT . 'admin/login.php');
			exit;
		}
		
		// the user want to logout
		if (isset($_GET['logout'])) {
			$this->doLogout();
		}
	}
	
	function doLogin()
	{
		$db=new database_class;
		// if we found an error save the error message in this variable
		$errorMessage = '';
		
		$userName = $_POST['txtUserName'];
		$password = $_POST['txtPassword'];
		
		// first, make sure the username & password are not empty
		if ($userName == '') {
			$errorMessage = 'You must enter your username';
		} else if ($password == '') {
			$errorMessage = 'You must enter the password';
		} else {
			// check the database and see if the username and password combo do match
			$sql = "SELECT user_id
			        FROM ".PREFIX."user 
					WHERE user_name = '$userName' AND user_password = PASSWORD('$password')";
			$result=$db->dbQuery($sql);
		
			if ($db->dbNumRows($result) == 1) {
				$row = $db->dbFetchAssoc($result);
				$_SESSION['plaincart_user_id'] = $row['user_id'];
				
				// log the time when the user last login
				$sql = "UPDATE ".PREFIX."user 
				        SET user_last_login = NOW() 
						WHERE user_id = '{$row['user_id']}'";
				$db->dbQuery($sql);
	
				// now that the user is verified we move on to the next page
	            // if the user had been in the admin pages before we move to
				// the last page visited
				if (isset($_SESSION['login_return_url'])) {
					//echo "OK";
					//sleep(10);
					header ("Cache-Control: no-cache, must-revalidate");
					header('Location: ' . $_SESSION['login_return_url']);
					exit;
				} else {
					header ("Cache-Control: no-cache, must-revalidate");
					header('Location: index.php');
					exit;
				}
			} else {
				$errorMessage = 'Wrong username or password';
				//sleep(10);
			}		
				
		}
		return $errorMessage;
	}
	
	/*
		Logout a user
	*/
	function doLogout()
	{
		if (isset($_SESSION['plaincart_user_id'])) {
			unset($_SESSION['plaincart_user_id']);
			session_unregister('plaincart_user_id');
		}
		header ("Cache-Control: no-cache, must-revalidate");			
		header('Location: login.php');
		exit;
	}
	
	/*
		Generate combo box options containing the categories we have.
		if $catId is set then that category is selected
	*/
	function buildCategoryOptions($catId = 0)
	{
		$db=new database_class;
		$sql = "SELECT cat_id, cat_parent_id, cat_name
				FROM ".PREFIX."category
				ORDER BY cat_id";
		$result=$db->dbQuery($sql);
		$categories = array();
		while($row = $db->dbFetchArray($result)) {
			list($id, $parentId, $name) = $row;
			if ($parentId == 0) {
				// we create a new array for each top level categories
				$categories[$id] = array('name' => $name, 'children' => array());
			} else {
				// the child categories are put int the parent category's array
				$categories[$parentId]['children'][] = array('id' => $id, 'name' => $name);	
			}
		}	
		// build combo box options
		$list = '';
		foreach ($categories as $key => $value) {
			$name     = $value['name'];
			$children = $value['children'];
			$list .= "<optgroup label=\"$name\">"; 
			foreach ($children as $child) {
				$list .= "<option value=\"{$child['id']}\"";
				if ($child['id'] == $catId) {
					$list.= " selected";
				}
				$list .= ">{$child['name']}</option>\r\n";
			}
			$list .= "</optgroup>";
		}
		return $list;
	}
	
	/*
		If you want to be able to add products to the first level category
		replace the above function with the one below
	*/
	/*
	
	function buildCategoryOptions($catId = 0)
	{
		$sql = "SELECT cat_id, cat_parent_id, cat_name
				FROM ".PREFIX."category
				ORDER BY cat_id";
		$result = dbQuery($sql) or die('Cannot get Product. ' . mysql_error());
		
		$categories = array();
		while($row = dbFetchArray($result)) {
			list($id, $parentId, $name) = $row;
			
			if ($parentId == 0) {
				// we create a new array for each top level categories
				$categories[$id] = array('name' => $name, 'children' => array());
			} else {
				// the child categories are put int the parent category's array
				$categories[$parentId]['children'][] = array('id' => $id, 'name' => $name);	
			}
		}	
		
		// build combo box options
		$list = '';
		foreach ($categories as $key => $value) {
			$name     = $value['name'];
			$children = $value['children'];
			
			$list .= "<option value=\"$key\"";
			if ($key == $catId) {
				$list.= " selected";
			}
				
			$list .= ">$name</option>\r\n";
	
			foreach ($children as $child) {
				$list .= "<option value=\"{$child['id']}\"";
				if ($child['id'] == $catId) {
					$list.= " selected";
				}
				
				$list .= ">&nbsp;&nbsp;{$child['name']}</option>\r\n";
			}
		}
		
		return $list;
	}
	*/
	
	/*
		Create a thumbnail of $srcFile and save it to $destFile.
		The thumbnail will be $width pixels.
	*/
	function createThumbnail($srcFile, $destFile, $width, $quality = 75)
	{
		$thumbnail = '';
		if (file_exists($srcFile)  && isset($destFile))
		{
			$size        = getimagesize($srcFile);
			$w           = number_format($width, 0, ',', '');
			$h           = number_format(($size[1] / $size[0]) * $width, 0, ',', '');
			
			$thumbnail =  $this->copyImage($srcFile, $destFile, $w, $h, $quality);
		}
		
		// return the thumbnail file name on sucess or blank on fail
		return basename($thumbnail);
	}
	
	/*
		Copy an image to a destination file. The destination
		image size will be $w X $h pixels
	*/
	function copyImage($srcFile, $destFile, $w, $h, $quality = 75)
	{
	    $tmpSrc     = pathinfo(strtolower($srcFile));
	    $tmpDest    = pathinfo(strtolower($destFile));
	    $size       = getimagesize($srcFile);
	
	    if ($tmpDest['extension'] == "gif" || $tmpDest['extension'] == "jpg")
	    {
	       $destFile  = substr_replace($destFile, 'jpg', -3);
	       $dest      = imagecreatetruecolor($w, $h);
	       imageantialias($dest, TRUE);
	    } elseif ($tmpDest['extension'] == "png") {
	       $dest = imagecreatetruecolor($w, $h);
	       imageantialias($dest, TRUE);
	    } else {
	      return false;
	    }
	    switch($size[2])
	    {
	       case 1:       //GIF
	           $src = imagecreatefromgif($srcFile);
	           break;
	       case 2:       //JPEG
	           $src = imagecreatefromjpeg($srcFile);
	           break;
	       case 3:       //PNG
	           $src = imagecreatefrompng($srcFile);
	           break;
	       default:
	           return false;
	           break;
	    }
	    imagecopyresampled($dest, $src, 0, 0, 0, 0, $w, $h, $size[0], $size[1]);
	    switch($size[2])
	    {
	       case 1:
	       case 2:
	           imagejpeg($dest,$destFile, $quality);
	           break;
	       case 3:
	           imagepng($dest,$destFile);
	    }
	    return $destFile;
	}
	
	/*
		Create the paging links
	*/
	function getPagingNav($sql, $pageNum, $rowsPerPage, $queryString = '')
	{
		$db=new database_class;
		$result=$db->dbQuery($sql);
		$row     = $db->dbFetchAssoc($result);
		$numrows = $row['numrows'];
		
		// how many pages we have when using paging?
		$maxPage = ceil($numrows/$rowsPerPage);
		
		$self = $_SERVER['PHP_SELF'];
		
		// creating 'previous' and 'next' link
		// plus 'first page' and 'last page' link
		
		// print 'previous' link only if we're not
		// on page one
		if ($pageNum > 1)
		{
			$page = $pageNum - 1;
			$prev = " <a href=\"$self?page=$page{$queryString}\">[Prev]</a> ";
		
			$first = " <a href=\"$self?page=1{$queryString}\">[First Page]</a> ";
		}
		else
		{
			$prev  = ' [Prev] ';       // we're on page one, don't enable 'previous' link
			$first = ' [First Page] '; // nor 'first page' link
		}
		
		// print 'next' link only if we're not
		// on the last page
		if ($pageNum < $maxPage)
		{
			$page = $pageNum + 1;
			$next = " <a href=\"$self?page=$page{$queryString}\">[Next]</a> ";
		
			$last = " <a href=\"$self?page=$maxPage{$queryString}{$queryString}\">[Last Page]</a> ";
		}
		else
		{
			$next = ' [Next] ';      // we're on the last page, don't enable 'next' link
			$last = ' [Last Page] '; // nor 'last page' link
		}
		
		// return the page navigation link
		return $first . $prev . " Showing page <strong>$pageNum</strong> of <strong>$maxPage</strong> pages " . $next . $last; 
	}
}
?>
Return current item: XplainCart