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);
}