ACC SHELL

Path : /srv/www/vhosts/marevva/crossroadsfoundation/admin/
File Upload :
Current File : /srv/www/vhosts/marevva/crossroadsfoundation/admin/admin-edit-menu.php

<?php
	
	function printCategory( $db, $id, $level, $maxLevel )
	{
		$r = '';
		
		$categoryMenu = '';
								
		if ( ( $id != '1' ) && ( $id != '2' ) ) // root
		{
			
			$categoryMenu .= '
				<div class="pageItemListButton" onclick="window.location=\'/admin/admin.php?action=listMenu&cmd=edit&id=' . $id . '\';" title="Upravit" >
					Upravit
				</div>';
			//if ( $level > 1 )
			//{
				$categoryMenu .= '
					<div class="iconMinusSubmit" onclick="window.location=\'/admin/admin.php?action=listMenu&cmd=delete&id=' . $id . '\';" title="Smazat" >
						&nbsp;Smazat
					</div>';
			//}
		}
		if ( $level < $maxLevel )
		{
			$categoryMenu .= '
				<div class="delic10"></div>
				<div class="iconPlus" onclick="window.location=\'/admin/admin.php?action=listMenu&cmd=new&id=' . $id . '\';" title="Přidat menu položku" >
					Přidat menu položku
				</div>';
		}
		
		$category = $db->getItem( 'menu', $id );
		
		$r .= '<div class="admin-category">'. chr(13);
		$r .= '	<div>'. chr(13);
		$r .= '		<div class="admin-category-name border" id="admin-category-item-' . $id . '">
						<div style="float:left; width: 120px;">' . stripslashes( $category['label'] ) . '</div>';
		if ( ( $id != '1' ) && ( $id != '2' ) ) // root
			$r .= '		<span style="color:#bbb; float:left;" title="pozice: ' . $category['position'] . '">(' . $category['position'] . ')</span>
						<div class="delic10"></div>';
		$r .= '				<div class="admin-category-menu" id="admin-category-menu-' . $id . '">
							' . $categoryMenu . '
						</div>
					</div>	
						
					<div class="cleaner"> </div>
				</div>'. chr(13);
				
		/*$r .= '	<script	type="text/javascript">
					$("#admin-category-item-' . $id . '").hover( function()
					{
						$("#admin-category-menu-' . $id . '").toggle();
					} );
				</script>';*/
		
		$subCategories = $db->getAllItems( 'menu', " WHERE `parentID`='" . $id . "' ORDER BY `position` ASC" );
		if ( count( $subCategories ) > 0 )
		{
			$level++;
			foreach ( $subCategories as $subCategory )
			{
				$r .= printCategory( $db, $subCategory['ID'], $level, $maxLevel );
			}
		}
				
		$r .= '</div>'. chr(13);
		
		return $r;
	}
	
	
	function printEditCategory( $db, $id, $new = false )
	{
		$htmlPage = new stdClass();
		
		$r = '';
		
		if ( $new )
		{
			$category['label'] = '';
			$category['url'] = '';
			$category['target'] = '';
			$category['type'] = '';
			$category['position'] = '';
			$category['cssClass'] = '';
			$category['parentID'] = $id;
		}
		else
		{
			$category = $db->getItem( 'menu', $id );
		}
		
		$r .= '<form action="" method="post" enctype="multipart/form-data">';
		
			$r .= '<div class="admin-user-label border" >' . 'Název' . '</div>';
			$r .= '<input type="text" class="admin-user-edit-value" name="label" value="' . stripslashes( $category['label'] ) . '" />';
			$r .= '<div class="cleaner"></div>';
			
			//$r .= '<div class="admin-user-label border" >' . 'URL' . '</div>';
			//$r .= '<input type="text" class="admin-user-edit-value" name="url" value="' . stripslashes( $category['url'] ) . '" />';
			//$r .= '<div class="cleaner"></div>';
			
			$r .= '<div class="cleaner"></div>';
			
			$r .= '<div class="admin-user-label border" >' . 'Pozice' . '</div>';
			$r .= '<input type="text" class="admin-user-edit-value" name="position" value="' . $category['position'] . '" />';
			$r .= '<div class="cleaner"></div>';
			
			$r .= '<div class="admin-user-label border" >' . 'CSS class (Advanced users only!)' . '</div>';
			$r .= '<input type="text" class="admin-user-edit-value" name="cssClass" value="' . $category['cssClass'] . '" />';
			$r .= '<div class="cleaner"></div>';
			
			$r .= '<div class="admin-user-label border" >' . 'Typ' . '</div>';
			$r .= '<div class="admin-user-edit-value" >' . "\n";
			$r .= '	<select name="type" class="admin-user-edit-scroll" onchange="javascript: categoryTypeOnChange(this.value);  ">' . "\n";
			$r .= '		<option value=""></option>' . "\n";
			$r .= '		<option value="showPage" '.( ($category['type']=="showPage") ? 'selected="selected"' : '').' >stránka</option>' . "\n";
			$r .= '		<option value="externalLink" '.( ($category['type']=="externalLink") ? 'selected="selected"' : '').' >odkaz / URL adresa</option>' . "\n";
			$r .= '		<option value="productList" '.( ($category['type']=="productList") ? 'selected="selected"' : '').' >kategorie</option>' . "\n";	
			$r .= '	</select>' . "\n";
			$r .= '</div>' . "\n";
			$r .= '<div class="cleaner"></div>';
			
			$r .= '<div id="target-wrapper" '.( ($category['type']!="showPage") ? 'style="display:none"' : '').' >' . "\n";
			$r .= '	<div class="admin-user-label border" >' . 'Stránka' . '</div>';
			$r .= '	<div class="admin-user-edit-value" >' . "\n";	
			$r .= '		<select name="target" class="admin-user-edit-scroll" >' . "\n";
			$r .= '			<option value=""></option>' . "\n";
			
			$pages = $db->getAllItems( 'page', " WHERE `parentID`=0 ORDER BY `title` ASC " );
			$pagesCount = count( $pages );
			if ( $pagesCount > 0 )
			{
				$i = 1;
				foreach ( $pages as $page )
				{
					if ( !isset( $htmlPage->listItem[ $i ] ) )
						$htmlPage->listItem[ $i ] = new stdClass();
						
					$htmlPage->listItem[ $i ]->ID = $page['ID'];
					$htmlPage->listItem[ $i ]->title = $page['title'];
					
					$r .= '		<option value="'.$page['ID'].'" '.( ($category['target']==$page['ID']) ? 'selected="selected"' : '').' >' . $page['title'] . '</option>' . "\n";
					
					$i++;
					
					$subPages = $db->getAllItems( 'page', " WHERE `parentID`=" . $page['ID'] . " ORDER BY `title` ASC " );
					$subPagesCount = count( $subPages );
					if ( $subPagesCount > 0 )
					{
						foreach ( $subPages as $subPage )
						{
							$htmlPage->listItem[ $i ]->ID = $subPage['ID'];
							$htmlPage->listItem[ $i ]->title = $page['title'] . ' -> ' . $subPage['title'];
							
							$r .= '		<option value="'.$subPage['ID'].'" '.( ($category['target']==$subPage['ID']) ? 'selected="selected"' : '').' >' . $page['title'] . ' -> ' . $subPage['title'] . '</option>' . "\n";
						
							$i++;
						}
					}
					
				}
			}
			$r .= '		</select>' . "\n";
			$r .= '	</div>' . "\n";
			$r .= '	<div class="cleaner"></div>';
			$r .= '</div>' . "\n";
			
			$r .= '<div id="target-wrapper-2" '.( ($category['type']!="externalLink") ? 'style="display:none"' : '').' >' . "\n";
			$r .= '	<div class="admin-user-label border" >' . 'Odkaz' . '</div>';
			$r .= '		<input type="text" class="admin-user-edit-value" name="target-link" value="' . ( ($category['type']=="externalLink") ? $category['target'] : '') . '" />';			
			$r .= '	<div class="cleaner"></div>';
			$r .= '</div>' . "\n";
			
			$r .= '<div id="target-wrapper-3" '.( ($category['type']!="productList") ? 'style="display:none"' : '').' >' . "\n";
			$r .= '	<div class="admin-user-label border" >' . 'Kategorie' . '</div>';
			$r .= '	<div class="admin-user-edit-value" >' . "\n";	
			$r .= '		<select name="target-category" class="admin-user-edit-scroll" >' . "\n";
			$sPages = $db->getAllItems( 'category', " ORDER BY `title` ASC" );
			if ( count( $sPages ) > 0 )
			{
				foreach ( $sPages as $sPage )
				{
					$categoryTypeDesc = '';
					if ( $sPage['categoryType'] == 'product' ) $categoryTypeDesc = ' (Produkty)';
					if ( $sPage['categoryType'] == 'article' ) $categoryTypeDesc = ' (Články)';
					if ( $sPage['categoryType'] == 'photogallery' ) $categoryTypeDesc = ' (Fotogalerie)';
					
					$r .= '		<option value="'.$sPage['ID'].'" '.( ($category['target']==$sPage['ID']) ? 'selected="selected"' : '').' >' . $sPage['title'] . $categoryTypeDesc . '</option>' . "\n";
				}
			}
			$r .= '		</select>' . "\n";
			$r .= '	</div>' . "\n";
			$r .= '	<div class="cleaner"></div>';
			$r .= '</div>' . "\n";
			
			$r .= '	<script type="text/javascript">
						function categoryTypeOnChange( value )
						{
							if ( value==\'showPage\' )
							{
								$("#target-wrapper").show("fast");
							}
							else
							{
								$("#target-wrapper").hide("fast");
							}
							
							if ( value==\'externalLink\' )
							{
								$("#target-wrapper-2").show("fast");
							}
							else
							{
								$("#target-wrapper-2").hide("fast");
							}
							
							if ( value==\'productList\' )
							{
								$("#target-wrapper-3").show("fast");
							}
							else
							{
								$("#target-wrapper-3").hide("fast");
							}
						}
					</script>';
			
			$r .= '<input type="hidden" name="parentID" value="' . $category['parentID'] . '" />';
			
			if ( $new )
			{
				$r .= '<input type="hidden" name="new" value="new" />';
			}
			else
			{
				//if ( ( $category['parentID'] == '1' ) || ( $category['parentID'] == '2' ) )
				//{
					$r .= '<div class="admin-user-label border" >' . 'Obrázek' . '</div>';
					$r .= '<input type="file" class="admin-user-edit-value" name="image" />';
					if ( $category['image'] != '' )
					{
						$r .= '<div class="cleaner"></div>';
						$r .= '<image src="/data/menu0/images/' . $category['image'] . '" alt="" />';
						$r .= '<input type="checkbox" name="imageDelete" id="imageDelete" />';
						$r .= '<label for="imageDelete"> Smazat obrázek</label>';
					}
					$r .= '<div class="cleaner"></div>';
				//}
			}
			
			$r .= '<div class="cleaner20"></div>';
			$r .= '<input type="submit" name="OK_button" value="' . 'Uložit' . '" class="admin-button-green" />';
			$r .= '<div class="cleaner10"></div>';
			
		$r .= '</form>';
		
		$r .= '<div onclick="window.location=\'/admin/admin.php?action=listMenu\';" class="admin-button" style="float:left;">' . 'storno' . '</div>';
		
		return $r;
	}
	
	
	function deleteCategory( $db, $id )
	{
		$category = $db->getItem( 'menu', $id );
		
		$subCategories = $db->getAllItems( 'menu', " WHERE `parentID`='" . $id . "'" );
		if ( count( $subCategories ) > 0 )
		{
			foreach ( $subCategories as $subCategory )
			{
				deleteCategory( $db, $subCategory['ID'] );
			}
		}
		
		$db->deleteItem( 'menu', $id );
	}
	
	function printDeleteCategory( $db, $id )
	{
		$r = '';
		
		$category = $db->getItem( 'menu', $id );
		$subCategories = $db->getAllItems( 'menu', " WHERE `parentID`=" . $id );
		
		$r .= '<form action="" method="post">';
		
			if ( count( $subCategories ) > 0 )
				$r .= 'Chcete <span style="color:#F00">smazat</span> menu položku: <strong>' . $category['label'] .'</strong>, včetně všech pod-položek<span style="color:#F00">?';
			else
				$r .= 'Chcete <span style="color:#F00">smazat</span> menu položku: <strong>' . $category['label'] .'</strong><span style="color:#F00">?</span>';
			$r .= '<br />';
			$r .= '<br />';
			$r .= '<input type="submit" name="OK_button" value="Smazat" class="admin-button" />';
			$r .= '<br />';
			$r .= '<br />';
			
		$r .= '</form>';
		
		$r .= '<a href="/admin/admin.php?action=listMenu" >' . 'zpět' . '</a>';
		
		return $r;
	}
	
	
	switch ( $url_cmd )
	{
		case 'new':
				if ( isset( $_POST['OK_button'] ) )
				{
					$target = '';
					if ( $_POST['type'] == 'externalLink' )
						$target = $_POST['target-link'];
					else if ( $_POST['type'] == 'productList' )
						$target = $_POST['target-category'];					
					else
						$target = $_POST['target'];
						
					//include( 'admin-menu-before-save.php' );										
					 
					$db->insertItem( 'menu',
								 	array( 	'parentID'=>$_POST['parentID'], 'position'=>$_POST['position'], 'type'=>$_POST['type'], 
										    'label'=>$_POST['label'], 'cssClass'=>$_POST['cssClass'], /*'url'=>$_POST['url'],*/ 
											'target'=>$target) );
					
					js_redirect( '/admin/admin.php?action=listMenu' );
				}
				echo printEditCategory( $db, $url_id, true );
			break;
			
		case 'edit':
				if ( isset( $_POST['OK_button'] ) )
				{
					$target = '';
					if ( $_POST['type'] == 'externalLink' )
						$target = $_POST['target-link'];
					else if ( $_POST['type'] == 'productList' )
						$target = $_POST['target-category'];
					else
						$target = $_POST['target'];
						
					//include( 'admin-menu-before-save.php' );
						
					$db->setItem( 'menu', $url_id, 
								 	array( 	'parentID'=>$_POST['parentID'], 'position'=>$_POST['position'], 'type'=>$_POST['type'], 
											'label'=>$_POST['label'], 'cssClass'=>$_POST['cssClass'], /*'url'=>$_POST['url'],*/ 
											'target'=>$target) );
											
					///
					$iuItemID = $url_id;
					$iuDirImages = '../data/menu0/images';	
					
					$iuDirImagesFull = $iuDirImages . '/';
					
					$iuImageFileName = '';
					$iuImageDbTable = 'menu';
					$iuImageDbField = 'image';
					
					foreach ( $_FILES as $file )
					{
						$fileName = basename( $file['name'] );
						if ( $fileName != '' )
						{
							if ( $iuImageFileName != '' )
							{
								$sourceImageFileName = $iuDirImagesFull . '/' . $iuImageFileName;
								$fileName = $iuImageFileName;
							}
							else
							{
								$fileName = $iuItemID . '-' . $fileName;
								$sourceImageFileName = $iuDirImagesFull . '/' . $fileName;
							}				
							
							if ( move_uploaded_file( $file['tmp_name'], $sourceImageFileName ) )
							{
								if ( $iuImageFileName == '' )
								{
									$db->setItem( $iuImageDbTable, $iuItemID, array( $iuImageDbField => $fileName ) );
								}		
							}
							
							//echo $iuDirImagesFull . '/' . $fileName . '?' . rand(0, 100000);		
						}
						break;
					}	
					
					if ( isset( $_POST['imageDelete'] ) && ( $_POST['imageDelete'] == 'on' ) )
					{
						$menuItem = $db->getItem( $iuImageDbTable, $iuItemID );
						unlink( $iuDirImagesFull . $menuItem[ $iuImageDbField ] );
						$db->setItem( $iuImageDbTable, $iuItemID, array( $iuImageDbField => '' ) );
					}
					///
					
					js_redirect( '/admin/admin.php?action=listMenu' );
				}
				echo printEditCategory( $db, $url_id );				
			break;
						
		case 'delete':
				if ( isset( $_POST['OK_button'] ) )
				{
					deleteCategory( $db, $url_id );
					
					js_redirect( '/admin/admin.php?action=listMenu' );
				}
				echo printDeleteCategory( $db, $url_id );
			break;
						
		default:
				echo printCategory( $db, '1', 0, 3 );
				echo '
						<div class="cleaner10"> </div>
						<hr />
						<div class="cleaner10"> </div>
				';
				echo printCategory( $db, '2', 0, 2 );
				echo '<div class="cleaner"> </div>';
			break;
			
	}
?>

ACC SHELL 2018