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

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

- Page: https://pluginprobe.com/plugins/e2pdf/1.00.13/code/classes/model/e2pdf-extension.php
- Raw: https://pluginprobe.com/plugins/e2pdf/1.00.13/raw/classes/model/e2pdf-extension.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-extension.php#L10-L20`.

```php
<?php

/**
 * E2pdf Extension 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_Extension extends Model_E2pdf_Model {

    private $extension;

    function __construct() {
        parent::__construct();
    }

    public function load($name) {
        $class = 'Extension_E2pdf_' . ucfirst($name);
        if (class_exists($class)) {
            $extension = new $class();

            if (is_array(get_option('e2pdf_extensions'))) {
                $extensions = get_option('e2pdf_extensions');
            } else {
                $extensions = array();
            }

            if ($extension->active() && in_array($name, $extensions)) {
                $this->extension = $extension;
                return true;
            }
        }
        return false;
    }

    public function loaded($extension) {
        if ($this->extension() && method_exists($this->extension(), 'info')) {
            $info = $this->extension()->info();
            if (isset($info[$extension])) {
                return true;
            }
        }
        return false;
    }

    public function exist($name) {
        $class = 'Extension_E2pdf_' . ucfirst($name);
        if (class_exists($class)) {
            return true;
        }
        return false;
    }

    public function download($extensions = array()) {

        if ($extensions && is_array($extensions) && !empty($extensions)) {
            $model_e2pdf_api = new Model_E2pdf_Api();
            $model_e2pdf_api->set(array(
                'action' => 'update/extensions',
                'data' => array(
                    'version' => $this->helper->get('version'),
                    'extensions' => $extensions
                )
            ));
            $request = $model_e2pdf_api->request();

            if (isset($request['extensions']) && is_array($request['extensions'])) {
                $extentions_path = $this->helper->get('plugin_dir') . 'classes/extension/';
                foreach ($request['extensions'] as $extension) {
                    if ($extension['filename'] && $extension['file']) {
                        if (!file_exists($extentions_path . $extension['filename'])) {
                            file_put_contents($extentions_path . $extension['filename'], base64_decode($extension['file']));
                        }
                    }
                }
                return true;
            }
        }

        return false;
    }

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

    public function set($attr, $value) {
        if (method_exists($this->extension(), 'set')) {
            return $this->extension()->set($attr, $value);
        }
        return false;
    }

    public function get($attr) {
        if (method_exists($this->extension(), 'get')) {
            return $this->extension()->get($attr);
        }
        return false;
    }

    public function verify() {
        if (method_exists($this->extension(), 'verify')) {
            return $this->extension()->verify();
        }
        return false;
    }

    public function import() {
        if (method_exists($this->extension(), 'import')) {
            return $this->extension()->import();
        }
        return false;
    }

    public function export() {
        if (method_exists($this->extension(), 'export')) {
            return $this->extension()->export();
        }
        return false;
    }

    public function backup() {
        if (method_exists($this->extension(), 'backup')) {
            return $this->extension()->backup();
        }
        return false;
    }

    public function get_item($item_id = false) {
        if (method_exists($this->extension(), 'get_item')) {
            return $this->extension()->get_item($item_id);
        }
        return false;
    }

    public function get_items() {
        if (method_exists($this->extension(), 'get_items')) {
            return $this->extension()->get_items();
        }
        return false;
    }

    public function get_styles() {
        if (method_exists($this->extension(), 'get_styles')) {
            return $this->extension()->get_styles();
        }
        return false;
    }

    public function render($value, $type = false, $field = array()) {
        if (method_exists($this->extension(), 'render')) {
            return $this->extension()->render($value, $type, $field);
        }
        return false;
    }

    public function get_datasets($item = false, $name = false) {
        if (method_exists($this->extension(), 'get_datasets')) {
            return $this->extension()->get_datasets($item, $name);
        }
        return false;
    }

    public function get_dataset($dataset_id = false) {
        if (method_exists($this->extension(), 'get_dataset')) {
            return $this->extension()->get_dataset($dataset_id);
        }
        return false;
    }

    public function get_extensions_list() {
        $list = array();
        $extentions_path = $this->helper->get('plugin_dir') . 'classes/extension/*';
        foreach (array_filter(glob($extentions_path), 'is_file') as $file) {
            $info = pathinfo($file);
            $file_name = basename($file, '.' . $info['extension']);
            $file_name = substr($file_name, 6);

            if ($this->load($file_name)) {
                $list = array_merge($list, $this->extension->info());
            }
        }

        return $list;
    }

    public function delete_item($template_id = false, $dataset_id = false) {
        if (method_exists($this->extension(), 'delete_item')) {
            return $this->extension()->delete_item($template_id, $dataset_id);
        }
        return false;
    }

    public function delete_items($template_id = false) {
        if (method_exists($this->extension(), 'delete_items')) {
            return $this->extension()->delete_items($template_id);
        }
        return false;
    }

    /**
     * Visual Mapper for Mapping field
     * 
     * @return bool|string - Prepared form or false
     */
    public function visual_mapper() {
        if (method_exists($this->extension(), 'visual_mapper')) {
            return $this->extension()->visual_mapper();
        }
        return false;
    }

    /**
     * Convert Field name to Value
     * @since 0.01.34
     * 
     * @param string $name - Field name
     * 
     * @return bool|string - Converted value or false
     */
    public function auto_map($name = false) {
        if (method_exists($this->extension(), 'auto_map') && $name) {
            return $this->extension()->auto_map($name);
        }
        return false;
    }

    public function auto() {
        if (method_exists($this->extension(), 'auto')) {
            return $this->extension()->auto();
        }
        return false;
    }

    public function load_actions() {
        if (method_exists($this->extension(), 'load_actions')) {
            return $this->extension()->load_actions();
        }
        return false;
    }

    public function load_filters() {
        if (method_exists($this->extension(), 'load_filters')) {
            return $this->extension()->load_filters();
        }
        return false;
    }

    public function load_shortcodes() {
        if (method_exists($this->extension(), 'load_shortcodes')) {
            return $this->extension()->load_shortcodes();
        }
        return false;
    }

}

```
