HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/komma-mediadesign.nl/wwwroot/beheer/app/controllers/c_multipage.php
<?php

/* 
	c_multipage.php // Controller
	
	Guides user to the right page within the multipage section
	
*/


// get data
$label = $this->getData('page_label',FALSE);
$pageId = $this->getData('page_id',FALSE);
$linkname = $this->encodeUrl($label);

// include models 
$this->load(DOCUMENT_ROOT.'app/models/m_multipage.php');	
$this->load(DOCUMENT_ROOT.'app/models/images/m_imageHandler.php');
$this->load(DOCUMENT_ROOT.'app/models/m_sorter.php');

// image dimensions
$std = array('lw' => 600, 'lh' => null, 'tw' => 300, 'th' => 200, 'mw' => 60, 'mh' => 60);
switch($pageId)
{
	// optional add special dimensions for some pageIds
	default: 
		$imgDim = $std;
}

// create objects
$multipage = new Multipage($pageId);
$imageHandler = new ImageHandler($pageId, $imgDim);
$imageStorage = new imageStorage($pageId);

/***********************************************************************************/

// $_post actions
if(isset($_POST['sbm_save_new']) || isset($_POST['sbm_add_images']))
{
	$multipage->saveSessionData();
	if( ! $imageHandler->addImages())
	{
		if($itemId = $multipage->storeData())
		{
			if($imageStorage->store($itemId, $_SESSION['images_to_store']))
			{
				unset($_SESSION['images_to_store']);	
			}
			$this->redirect(SITE_ROOT.$linkname.'/');
		}
	}
	else
	{
		$this->redirect(SITE_ROOT.$linkname.'/nieuw-item/');		
	}
}
if(isset($_POST['sbm_save_edit']) || isset($_POST['sbm_edit_images']))
{
	$multipage->saveSessionData();
	$id = $_POST['id'];
	
	if( ! $imageHandler->addImages())
	{
		$multipage->updateStoredData($id);
		
		$imageHandler->removeStoredImages($id);
		if($imageStorage->store($id, $_SESSION['images_to_store']))
		{
			unset($_SESSION['images_to_store']);	
		}
		
		$this->redirect(SITE_ROOT.$linkname.'/');
	}
	else
	{	
		$this->redirect(SITE_ROOT.$linkname.'/wijzig-item/'.$id.'/');		
	}
}
else if(isset($_POST['prepare_delete_items']))
{
	if(isset($_POST['selected']))
	{
		if($items = $multipage->getIds($_POST['selected']))
		{
			$multipage->createList($items, FALSE);
		}
	}
	else
	{
		$this->setAlert('U heeft geen items geselecteerd','warning');
		$this->redirect(SITE_ROOT.$linkname.'/');	
	}
}
else if(isset($_POST['sbm_delete_items']))
{
	$ids = explode(',',$_POST['ids']);
	
	$trashcan = new Trashcan();
	$trashcan->setPageInfo($pageId);
	$trashcan->insert($ids);
	
	$this->redirect(SITE_ROOT.$linkname.'/');
}
else if(isset($_POST['sbm_order_items']))
{
	$ids = explode(',',$_POST['sort_order']);
	$tn = $multipage->getTableName();
	
	$sorter = new Sorter($pageId, $tn, 'itemOrder');
	$sorter->update($ids);
	
	$this->redirect(SITE_ROOT.$linkname.'/');
}
else if(isset($_POST['sbm_order_images']))
{
	$shortcodes = explode(',',$_POST['sort_order']);
	$tn = $imageHandler->getTableName();
	
	$sorter = new Sorter($pageId, $tn, 'imageOrder');
	$sorter->updateImages($shortcodes,$_SESSION['images_to_store']);
	
	if(isset($_SESSION['return_to']['url']))
	{
		$url = $_SESSION['return_to']['url'];
		$id = '';
		if(isset($_SESSION['return_to']['id']))
		{
			$id = $_SESSION['return_to']['id'].'/';
		}
		$this->redirect(SITE_ROOT.$linkname.'/'.$url.'/'.$id);
	}
	else{
		$this->redirect(SITE_ROOT.$linkname.'/nieuw-item/');
	}
}
else if(isset($_POST['sbm_crop']))
{
	$imageHandler->addCroppedImages();
	
	if(isset($_SESSION['return_to']['url']))
	{
		$url = $_SESSION['return_to']['url'];
		$id = '';
		if(isset($_SESSION['return_to']['id']))
		{
			$id = $_SESSION['return_to']['id'].'/';
		}
		$this->redirect(SITE_ROOT.$linkname.'/'.$url.'/'.$id);
	}
	else{
		$this->redirect(SITE_ROOT.$linkname.'/nieuw-item/');
	}
}
// $_get actions
else if(isset($_GET['sub']))
{
	$sub = $_GET['sub'];
	switch($sub)
	{
		case 'nieuw-item':
			$imageHandler->createList();
		break;
		case 'wijzig-item':
			$multipage->setDataToStore($_GET['sub2']);
			
			// add stored images to session (only once)
			if(!isset($_SESSION['stored_added']))
			{	
				if($arr = $imageStorage->get('itemId',$_GET['sub2']))
				{	
					$session = $_SESSION['images_to_store'];
					foreach($arr as $data)
					{
						$session->add($data);				
					}
					$_SESSION['stored_added'] = TRUE;
				}
			}
			
			$imageHandler->createList();
		break;
		case 'verwijder-item':
			if($item = $multipage->getIds(array($_GET['sub2'])))
			{
				$multipage->createList($item, FALSE);
			}
			else
			{
				$this->redirect(SITE_ROOT.$linkname.'/');
			}
		break;
		case 'wijzig-volgorde':
			$options = $multipage->getOptions(0);
			$items = $multipage->get($options);
			
			$sorter = new Sorter($pageId);
			$sorter->createList($items);
		break;
		case 'wijzig-volgorde-afbeeldingen':
			$images = $_SESSION['images_to_store']->get();
			
			$sorter = new Sorter($pageId);
			$sorter->createThumbList($images);
		break;
		case 'sortby':
			if(isset($_GET['sub2']))
			{
				$multipage->updateSortBy($_GET['sub2']);
				$this->redirect(SITE_ROOT.$linkname.'/');
			}
		break;
		case 'nextpage':
		case 'prevpage':
				$multipage->updateThisPage($sub);
				$this->redirect(SITE_ROOT.$linkname.'/');
		break;
		case 'remove-image':	
			if(isset($_GET['sub2']) && is_numeric($_GET['sub2']))
			{
				$_SESSION['images_to_store']->remove($_GET['sub2']);
				
				if(isset($_SESSION['return_to']['url']))
				{
					$url = $_SESSION['return_to']['url'];
					$id = '';
					if(isset($_SESSION['return_to']['id']))
					{
						$id = $_SESSION['return_to']['id'].'/';
					}
					$this->redirect(SITE_ROOT.$linkname.'/'.$url.'/'.$id);
				}
				else{
					$this->redirect(SITE_ROOT.$linkname.'/nieuw-item/');
				}
			}
		break;
		case 'crop':
			foreach($_SESSION['images_to_crop'] as $key => $value)
			{
				$this->setdata('minW'.$key,$imgDim['tw']);
				$this->setdata('minH'.$key,$imgDim['th']);
				$this->setdata('maxW'.$key,0);
				$this->setdata('maxH'.$key,0);
			}
		break;
		case 'publish':
			$id = $_GET['sub2'];
			$multipage->togglePublish($id);
			$this->redirect(SITE_ROOT.$linkname.'/');	
		break;
	}
}
else
{	
	$options = $multipage->getOptions(20);
	$items = $multipage->get($options);
	$multipage->createHeader();
	$multipage->createList($items);
	$multipage->clean();
}

/***********************************************************************************/

// Guide to page

if(isset($_GET['sub']))
{
	$sub = $_GET['sub'];
	switch($sub)
	{
		case 'nieuw-item':
			$_SESSION['return_to']['url'] = 'nieuw-item';
			$this->load('app/views/multipage/v_kms_multipage_add.php', 'Item toevoegen - '.SITE_NAME);
		break;
		case 'wijzig-item':
			$_SESSION['return_to']['url'] = 'wijzig-item';
			if(isset($_GET['sub2'])) $_SESSION['return_to']['id'] = $_GET['sub2'];
			$this->load('app/views/multipage/v_kms_multipage_edit.php', 'Item wijzigen - '.SITE_NAME);
		break;
		case 'verwijder-items':
			$this->load('app/views/trashcan/v_kms_trashcan_delete.php', 'Items verwijderen - '.SITE_NAME);
		break;
		case 'verwijder-item':
			$this->load('app/views/trashcan/v_kms_trashcan_delete.php', 'Item verwijderen - '.SITE_NAME);
		break;
		case 'wijzig-volgorde':
			$this->load('app/views/sortorder/v_kms_order_items.php', 'Volgorde wijzigen - '.SITE_NAME);
		break;
		case 'wijzig-volgorde-afbeeldingen':
			$this->load('app/views/sortorder/v_kms_order_images.php', 'Volgorde wijzigen - '.SITE_NAME);
		break;
		case 'crop':
			$this->load('app/views/multipage/v_kms_multipage_crop.php', 'Afbeeldingen bijsnijden - '.SITE_NAME);
		break;
		default:
			// 404
			$this->notFound();
	}
}
else
{
	$imageHandler->clean();
	unset($_SESSION['stored_added']);
	$this->load('app/views/multipage/v_kms_multipage_dashb.php', 'Dashboard - '.SITE_NAME);		
}