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