File: D:/HostingSpaces/SBogers10/kms.komma.pro/wwwroot/app/models/m_basic_page.class.php
<?php
/**
* Created by Komma.pro
* User: mikevandersanden
* Date: 18/9/13
*/
class Basic_Page_Model extends Model
{
/*
* Name of the page
*/
private $_name;
/*
* Selected item || null
*/
private $_currentItem;
/*
* Construct
*/
public function __construct()
{
parent::__construct();
}
/*
* Set values
*/
public function set($var,$val)
{
$this->{$var} = $val;
}
/*
Databases
*/
/*
* Get items from database
*/
public function get($id=null)
{
// Set up storage
$Storage = new Storage();
$Storage->setTableName(TABLE_PREFIX . $this->_name . '_items');
$Storage->setOrder('itemOrder','DESC');
// Get only one item
if( $id != null ) $Storage->addRule('id',$id);
// Get result
if($data = $Storage->select())
{
if( $id == null ) $data = Fn::convert2D($data);
return $data;
}
return false;
}
/*
* Fill session with item info
*/
public function setItemData($id)
{
$data = $this->get($id);
$_SESSION[$this->_name][$this->_currentItem]['data'] = $data;
}
/*
* Store values in the database
*/
public function store($data)
{
// Setup database model
$this->Storage->setTableName(TABLE_PREFIX . $this->_name . '_items');
// Add or edit
if(isset($_POST['form_type']))
{
switch($_POST['form_type'])
{
case 'add':
// Add item order to data
$data['itemOrder'] = $this->getItemOrder();
// Set data
$this->Storage->setData($data);
// Store data and catch insert id
$insertId = $this->Storage->insert();
// JUST SAVED SUCCESSFULLY :D
$_SESSION['just_saved'] = true;
return $insertId;
break;
case 'edit':
if(isset($_POST['edit_id']))
{
// Set data
$this->Storage->setData($data);
$this->Storage->addRule('id',$_POST['edit_id']);
// Update
$this->Storage->update();
// JUST SAVED SUCCESSFULLY :D
$_SESSION['just_saved'] = true;
return $_POST['edit_id'];
}
break;
}
}
return false;
}
/*
* Remove an item from the database
*/
public function removeItem()
{
// Remove Item
$this->Storage->setTableName(TABLE_PREFIX . $this->_name . '_items');
$this->Storage->addRule('id',$this->_currentItem);
$this->Storage->delete();
// Todo remove images from database & server
}
/*
Generate output
*/
/*
* Generate tab navigation
* @return string
*/
public function createTabNav($tabs)
{
// Create unordered list
$output = '<ul class="tabs">';
foreach($tabs as $key => $tab)
{
// Prepare url
$url = LANG_ROOT . URL_PAGE . '/' . URL_SUB;
if($key > 0) $url .= '/' . Fn::encodeUrl($tab);
// Add list items
$output .= '<li';
if((defined('URL_SUB2') && URL_SUB2 == strtolower($tab)) || ( ! defined('URL_SUB2') && $key == 0)) $output .= ' class="active"';
$output .= '>
<a href="' . $url . '">
<span class="left">' . $tab . '</span>
<span class="right"></span>
<span class="clear"></span>
</a>
</li>';
}
// Close list
$output .= '</ul>';
return $output;
}
/*
* Create the list of items
*/
public function createItemList()
{
// Get data
$data = $this->get();
// Generate output
$output = '';
foreach($data as $item)
{
// Date
$date = date('m / d / Y',$item['timest']);
// Create list
$output .= ' <li';
if($item['id'] == $this->_currentItem) $output .= ' class="active"';
$output .= '>
<a href="' . LANG_ROOT . URL_PAGE . '/item-' . $item['id'] . '" class="check">
<span class="image_holder">
<span class="mask"></span>
<img src="' . IMAGE_ROOT . 'temp/01.jpg" alt="01"/>
</span>
<span class="text_holder">
<span class="text_center">
<span class="title">' . $item['title'] . '</span>
<span class="date">' . $date . '</span>
</span>
</span>
</a>
<span class="switch on">
<span class="on"></span>
<span class="off"></span>
<span class="ball"></span>
</span>
</li>';
}
return $output;
}
private function getItemOrder()
{
// get Latest item Order
$orderDb = new Storage();
$orderDb->setTableName(TABLE_PREFIX . $this->_name . '_items');
$orderDb->setData(array('itemOrder'=>''));
$orderDb->setOrder('itemOrder','DESC');
$orderDb->setScope(0,1);
$result = $orderDb->select();
$highestOrder = $result['itemOrder'];
// return new item order
return $highestOrder + 1;
}
}