# e2pdf/1.00.13/classes/model/e2pdf-page.php

E2Pdf – Export Pdf Tool for WordPress, version 1.00.13. 136 lines.

- Page: https://pluginprobe.com/plugins/e2pdf/1.00.13/code/classes/model/e2pdf-page.php
- Raw: https://pluginprobe.com/plugins/e2pdf/1.00.13/raw/classes/model/e2pdf-page.php
- Modified: 2018-11-07T14:38:30+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/e2pdf/1.00.13/code/classes/model/e2pdf-page.php#L10-L20`.

```php
<?php

/**
 * E2pdf Template Model
 * 
 * @copyright  Copyright 2017 https://e2pdf.com
 * @license    GPL v2
 * @version    1
 * @link       https://e2pdf.com
 * @since      0.00.01
 */
if (!defined('ABSPATH')) {
    die('Access denied.');
}

class Model_E2pdf_Page extends Model_E2pdf_Model {

    private $page = array();
    private $table;

    function __construct() {
        global $wpdb;
        parent::__construct();
        $this->table = $wpdb->prefix . 'e2pdf_pages';
    }

    public function get_table() {
        return $this->table;
    }

    public function set($key, $value) {
        $this->page[$key] = $value;
    }

    public function get($key) {
        if (isset($this->page[$key])) {
            $value = $this->page[$key];
            return $value;
        } else {
            switch ($key) {
                case 'template_id':
                    $value = 0;
                    break;

                case 'properties':
                case 'actions':
                    $value = array();
                    break;

                default:
                    $value = '';
                    break;
            }
            return $value;
        }
    }

    public function get_page() {
        return $this->page;
    }

    public function before_save() {
        $page = array(
            'template_id' => $this->get('template_id'),
            'page_id' => $this->get('page_id'),
            'properties' => serialize($this->get('properties')),
            'actions' => serialize($this->get('actions'))
        );
        return $page;
    }

    public function save() {
        global $wpdb;

        $page = $this->before_save();

        if ($this->get('ID')) {
            $where = array(
                'ID' => $this->get('ID')
            );
            $wpdb->update($this->get_table(), $page, $where);
            return $this->get('ID');
        } else {
            $wpdb->insert($this->get_table(), $page);
            $this->set('ID', $wpdb->insert_id);
        }
    }

    public function load($page_id) {
        global $wpdb;
        $page = $wpdb->get_row($wpdb->prepare("SELECT * FROM `{$this->get_table()}` WHERE ID = %d", $page_id), ARRAY_A);
        if ($page) {
            $this->page = $page;
            $this->set('properties', unserialize($page['properties']));
            $this->set('actions', unserialize($page['actions']));
            $model_e2pdf_element = new Model_E2pdf_Element();
            $this->set('elements', $model_e2pdf_element->get_elements($this->get('ID')));
            return true;
        }
        return false;
    }

    public function delete() {
        global $wpdb;
        if ($this->get('ID')) {
            $where = array(
                'ID' => $this->get('ID')
            );
            $wpdb->delete($this->get_table(), $where);

            foreach ($this->get('elements') as $element) {
                $model_e2pdf_element = new Model_E2pdf_Element();
                $model_e2pdf_element->load($element['ID']);
                $model_e2pdf_element->delete();
            }
        }
    }

    public function get_pages($template_id) {
        global $wpdb;
        $pages = $wpdb->get_results($wpdb->prepare("SELECT * FROM `{$this->get_table()}` WHERE template_id = %d ORDER BY ID ASC", $template_id), ARRAY_A);
        if ($pages) {
            $pages_list = array();
            $pages_list[] = array();
            foreach ($pages as $page_key => $page) {
                $this->load($page['ID']);
                $pages_list[] = $this->get_page();
            }
            unset($pages_list[0]);
            return $pages_list;
        }
        return array();
    }

}

```
