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/SBogers59/ferrumbv.nl/wwwroot/kms/app/models/m_basic_page.class.php
<?php
/**
 * m_basic_page_model.class.php
 * Created by Komma Mediadesign.
 * Author: mike
 * Date: 4/10/13
 */

class Basic_Page_Model extends Model
{
    /*
     * @property id
     * Page Id.
     */
    private $_id;

    /*
     * @property name
     * Unique name f.e. used in sessions and database.
     */
    private $_name;

    /*
     * Constructor
     */
    public function __construct(){
        parent::__construct();

        // Get fields from the database
    }

    public function config($var,$val)
    {
        $this->{$var} = $val;
    }

    /*
     * Get Items from the database
     * @return array
     */
    public function getItems($ids = null, $data = null, $scope=null)
    {
        // Setup database model
        $tableName = TABLE_PREFIX . $this->_name . '_items';
        $this->Db->setTableName($tableName);
        $this->Db->setActiveOnly(TRUE,$this->_id);
        if($data != null) $this->Db->setData($data);
        if($scope != null) $this->Db->setScope($scope[0],$scope[1]);

        $this->Db->setOrder('itemOrder','DESC');
        // Return requested ids
        if(is_array($ids))
        {
            $result = array();
            foreach($ids as $id)
            {
                $this->Db->clearRule();
                $this->Db->addRule('id',$id);
                $result[] = $this->Db->select();
            }
            return $result;
        }
        // Return requested id
        else if(is_numeric($ids))
        {
            $this->Db->addRule('id',$ids);
            if($result = $this->Db->select())
            {
                return $this->Db->twoDimensional($result);
            }
        }
        // Return all ids
        else
        {
            if($result = $this->Db->select())
            {
                return $this->Db->twoDimensional($result);
            }
        }
        return false;
    }


    /*
     * Get Items from the database
     * @return array
     */
    public function getImages($id)
    {
        $tableName = TABLE_PREFIX . $this->_name . '_images';
        $ImageDb = new DatabaseHandler();
        $ImageDb->setTableName($tableName);
        $ImageDb->setOrder('session_key','ASC');
        $ImageDb->addRule('itemId',$id);
        if($result = $ImageDb->select())
        {
            return $ImageDb->twoDimensional($result);
        }
        return false;
    }

    /*
     * Get Items from the database
     * @return array
     */
    public function getVideos($id)
    {
        $tableName = TABLE_PREFIX . $this->_name . '_videos';
        $VideoDb = new DatabaseHandler();
        $VideoDb->setTableName($tableName);
        $VideoDb->setOrder('session_key','ASC');
        $VideoDb->addRule('itemId',$id);
        if($result = $VideoDb->select())
        {
            return $VideoDb->twoDimensional($result);
        }
        return false;
    }

    /*
     * Store values in the database
     */
    public function store($data)
    {
        // Setup database model
        $tableName = TABLE_PREFIX . $this->_name . '_items';
        $this->Db->setTableName($tableName);

        // Catch images, they have there own storage method
        unset($data['images']);

        // Thumbnail
        if(isset($_POST['thumb']))
        {
            $data['thumb'] = $_POST['thumb'];
        }

        // Add or edit
        if(isset($_POST['form_type']))
        {
            switch($_POST['form_type'])
            {
                case 'add':
                    // get Latest item Order
                    $orderDb = new DatabaseHandler();
                    $orderDb->setTableName($tableName);
                    $orderDb->setData(array('itemOrder'=>''));
                    $orderDb->setOrder('itemOrder','DESC');
                    $orderDb->setScope(0,1);
                    $result = $orderDb->select();
                    $highestOrder = $result['itemOrder'];

                    // Add itemOrder to $data
                    $data['itemOrder'] = $highestOrder + 1;

                    $this->Db->setData($data);
                    $insertId = $this->Db->insert();

                    // Add to "active" table
                    $data = array('itemId'=>$insertId,'pageId'=>$this->_id,'timestamp'=>time());
                    $activeDb = new DatabaseHandler();
                    $activeDb->setTableName(TABLE_PREFIX . 'kms_active');
                    $activeDb->setData($data);
                    $activeDb->insert();

                    return $insertId;

                    break;
                case 'edit':
                    if(isset($_POST['edit_id']))
                    {
                        $this->Db->setData($data);
                        $this->Db->addRule('id',$_POST['edit_id']);
                        $this->Db->update();

                        return $_POST['edit_id'];
                    }
                    break;
            }
        }
        return false;
    }

    /*
     *
     */
    public function getSearchItems()
    {
        // Setup database model
        $tableName = TABLE_PREFIX . $this->_name . '_items';
        $Dbh = new DatabaseHandler();
        $Dbh->setTableName($tableName);
        $Dbh->setActiveOnly(TRUE,$this->_id);

        if($this->_name == 'blog')
        {
            $Dbh->setOrder('date','DESC');
        }
        else
        {
            $Dbh->setOrder('itemOrder','DESC');
        }

        //Define fields for search fields
        $searchFields = array('title','streamer','description','tags');

        // Add searchwords
        $Dbh = $this->addSearchWords($Dbh,$searchFields);

        // Checked filters

        if($result = $Dbh->select())
        {
            return $Dbh->twoDimensional($result);
        }

        return false;
    }

    private function addSearchWords($Db,$searchFields)
    {
        if(strtolower($_POST['keyword'])!= 'trefwoord' && strtolower($_POST['keyword']) != 'keyword')
        {
            $superGroupIds = array();
            $search = '';
            $words = explode(' ',$_POST['keyword']);
            foreach($words as $key => $searchWord)
            {
                $cleanWord = trim($searchWord);
                if(!empty($cleanWord))
                {
                    $search = '%'.$cleanWord.'%';
                }
                $superGroupIds[] = $Db->addSearchGroup($search,$searchFields,'OR','AND');
            }
            $Db->addToSuperGroup($superGroupIds);
        }
        return $Db;
    }
}