| 1 |
<?php |
| 2 |
|
| 3 |
/** |
| 4 |
* E2pdf Loader Helper |
| 5 |
* |
| 6 |
* @copyright Copyright 2017 https://e2pdf.com |
| 7 |
* @license GPL v2 |
| 8 |
* @version 1 |
| 9 |
* @link https://e2pdf.com |
| 10 |
* @since 0.00.01 |
| 11 |
*/ |
| 12 |
if (!defined('ABSPATH')) { |
| 13 |
die('Access denied.'); |
| 14 |
} |
| 15 |
|
| 16 |
class Model_E2pdf_Loader extends Model_E2pdf_Model { |
| 17 |
|
| 18 |
private $errors = array(); |
| 19 |
private $e2pdf_admin_pages = array( |
| 20 |
'toplevel_page_e2pdf', |
| 21 |
'e2pdf_page_e2pdf-templates', |
| 22 |
'e2pdf_page_e2pdf-settings', |
| 23 |
'e2pdf_page_e2pdf-license', |
| 24 |
'e2pdf_page_e2pdf-debug' |
| 25 |
); |
| 26 |
|
| 27 |
/* |
| 28 |
* On init |
| 29 |
* Create instance of Main Helper |
| 30 |
*/ |
| 31 |
|
| 32 |
function __construct() { |
| 33 |
parent::__construct(); |
| 34 |
} |
| 35 |
|
| 36 |
/** |
| 37 |
* Main loader of actions / filters / hooks |
| 38 |
*/ |
| 39 |
public function load() { |
| 40 |
|
| 41 |
$this->load_translation(); |
| 42 |
$this->load_actions(); |
| 43 |
$this->load_filters(); |
| 44 |
$this->load_extensions(); |
| 45 |
$this->load_hooks(); |
| 46 |
$this->load_ajax(); |
| 47 |
$this->load_shortcodes(); |
| 48 |
} |
| 49 |
|
| 50 |
public function load_translation() { |
| 51 |
load_plugin_textdomain('e2pdf', false, '/e2pdf/languages/'); |
| 52 |
} |
| 53 |
|
| 54 |
/** |
| 55 |
* Load ajax |
| 56 |
*/ |
| 57 |
public function load_ajax() { |
| 58 |
if (is_admin()) { |
| 59 |
add_action('wp_ajax_e2pdf_save_form', array(new Controller_E2pdf_Templates(), 'ajax_save_form')); |
| 60 |
add_action('wp_ajax_e2pdf_auto', array(new Controller_E2pdf_Templates(), 'ajax_auto')); |
| 61 |
add_action('wp_ajax_e2pdf_upload', array(new Controller_E2pdf_Templates(), 'ajax_upload')); |
| 62 |
add_action('wp_ajax_e2pdf_reupload', array(new Controller_E2pdf_Templates(), 'ajax_reupload')); |
| 63 |
add_action('wp_ajax_e2pdf_extension', array(new Controller_E2pdf_Templates(), 'ajax_extension')); |
| 64 |
add_action('wp_ajax_e2pdf_activate_template', array(new Controller_E2pdf_Templates(), 'ajax_activate_template')); |
| 65 |
add_action('wp_ajax_e2pdf_deactivate_template', array(new Controller_E2pdf_Templates(), 'ajax_deactivate_template')); |
| 66 |
add_action('wp_ajax_e2pdf_visual_mapper', array(new Controller_E2pdf_Templates(), 'ajax_visual_mapper')); |
| 67 |
add_action('wp_ajax_e2pdf_get_styles', array(new Controller_E2pdf_Templates(), 'ajax_get_styles')); |
| 68 |
add_action('wp_ajax_e2pdf_license_key', array(new Controller_E2pdf_License(), 'ajax_change_license_key')); |
| 69 |
add_action('wp_ajax_e2pdf_templates', array(new Controller_E2pdf(), 'ajax_templates')); |
| 70 |
add_action('wp_ajax_e2pdf_dataset', array(new Controller_E2pdf(), 'ajax_dataset')); |
| 71 |
add_action('wp_ajax_e2pdf_delete_item', array(new Controller_E2pdf(), 'ajax_delete_item')); |
| 72 |
add_action('wp_ajax_e2pdf_delete_items', array(new Controller_E2pdf(), 'ajax_delete_items')); |
| 73 |
add_action('wp_ajax_e2pdf_delete_font', array(new Controller_E2pdf_Settings(), 'ajax_delete_font')); |
| 74 |
add_action('wp_ajax_e2pdf_email', array(new Controller_E2pdf_Settings(), 'ajax_email')); |
| 75 |
} |
| 76 |
} |
| 77 |
|
| 78 |
/** |
| 79 |
* Load actions |
| 80 |
*/ |
| 81 |
public function load_actions() { |
| 82 |
if (is_admin()) { |
| 83 |
add_action('wpmu_new_blog', array(&$this, 'activate_new_network'), 10, 6); |
| 84 |
add_action('admin_menu', array(&$this, 'admin_menu')); |
| 85 |
add_action('admin_init', array(&$this, 'admin_settings')); |
| 86 |
add_action('admin_enqueue_scripts', array(&$this, 'admin_js')); |
| 87 |
add_action('admin_enqueue_scripts', array(&$this, 'admin_css')); |
| 88 |
add_action('current_screen', array(&$this, 'admin_functions')); |
| 89 |
add_action('plugins_loaded', array(&$this, 'after_load')); |
| 90 |
} |
| 91 |
add_action('wp_enqueue_scripts', array(&$this, 'frontend_js')); |
| 92 |
add_action('wp', array(Helper_E2pdf_View::instance(), 'render_frontend_page')); |
| 93 |
add_action('wp_loaded', array(&$this, 'wp_loaded')); |
| 94 |
} |
| 95 |
|
| 96 |
public function load_filters() { |
| 97 |
|
| 98 |
} |
| 99 |
|
| 100 |
public function after_load() { |
| 101 |
if (get_option('e2pdf_version') !== $this->helper->get('version')) { |
| 102 |
$this->activate(); |
| 103 |
} |
| 104 |
} |
| 105 |
|
| 106 |
/** |
| 107 |
* Load extensions and its action/filters |
| 108 |
*/ |
| 109 |
public function load_extensions() { |
| 110 |
|
| 111 |
$model_e2pdf_extension = new Model_E2pdf_Extension(); |
| 112 |
$extensions = $model_e2pdf_extension->extensions(); |
| 113 |
if (!empty($extensions)) { |
| 114 |
foreach ($extensions as $extension => $extension_name) { |
| 115 |
$model_e2pdf_extension->load($extension); |
| 116 |
$model_e2pdf_extension->load_actions(); |
| 117 |
$model_e2pdf_extension->load_filters(); |
| 118 |
$model_e2pdf_extension->load_shortcodes(); |
| 119 |
} |
| 120 |
} |
| 121 |
} |
| 122 |
|
| 123 |
/** |
| 124 |
* Load filters |
| 125 |
*/ |
| 126 |
public function load_shortcodes() { |
| 127 |
add_shortcode('e2pdf-download', array(new Model_E2pdf_Shortcode(), 'e2pdf_download')); |
| 128 |
add_shortcode('e2pdf-attachment', array(new Model_E2pdf_Shortcode(), 'e2pdf_attachment')); |
| 129 |
add_shortcode('e2pdf-adobesign', array(new Model_E2pdf_Shortcode(), 'e2pdf_adobesign')); |
| 130 |
add_shortcode('e2pdf-save', array(new Model_E2pdf_Shortcode(), 'e2pdf_save')); |
| 131 |
add_shortcode('e2pdf-view', array(new Model_E2pdf_Shortcode(), 'e2pdf_view')); |
| 132 |
add_shortcode('e2pdf-format-number', array(new Model_E2pdf_Shortcode(), 'e2pdf_format_number')); |
| 133 |
add_shortcode('e2pdf-format-date', array(new Model_E2pdf_Shortcode(), 'e2pdf_format_date')); |
| 134 |
add_shortcode('e2pdf-format-output', array(new Model_E2pdf_Shortcode(), 'e2pdf_format_output')); |
| 135 |
add_shortcode('e2pdf-user', array(new Model_E2pdf_Shortcode(), 'e2pdf_user')); |
| 136 |
add_shortcode('e2pdf-wp', array(new Model_E2pdf_Shortcode(), 'e2pdf_wp')); |
| 137 |
add_shortcode('e2pdf-content', array(new Model_E2pdf_Shortcode(), 'e2pdf_content')); |
| 138 |
add_shortcode('e2pdf-exclude', array(new Model_E2pdf_Shortcode(), 'e2pdf_exclude')); |
| 139 |
add_shortcode('e2pdf-filter', array(new Model_E2pdf_Shortcode(), 'e2pdf_filter')); |
| 140 |
} |
| 141 |
|
| 142 |
/** |
| 143 |
* Load hooks |
| 144 |
*/ |
| 145 |
public function load_hooks() { |
| 146 |
register_activation_hook($this->helper->get('plugin_file_path'), array(&$this, 'activate')); |
| 147 |
register_deactivation_hook($this->helper->get('plugin_file_path'), array(&$this, 'deactivate')); |
| 148 |
register_uninstall_hook($this->helper->get('plugin_file_path'), array('Model_E2pdf_Loader', 'uninstall')); |
| 149 |
} |
| 150 |
|
| 151 |
/** |
| 152 |
* Load admin menu |
| 153 |
*/ |
| 154 |
public function admin_menu() { |
| 155 |
ob_start(); |
| 156 |
add_menu_page('e2pdf', 'E2Pdf', 'manage_options', 'e2pdf', array(Helper_E2pdf_View::instance(), 'render_page'), '', '26'); |
| 157 |
add_submenu_page('e2pdf', __('Export', 'e2pdf'), __('Export', 'e2pdf'), 'manage_options', 'e2pdf', array(Helper_E2pdf_View::instance(), 'render_page')); |
| 158 |
add_submenu_page('e2pdf', __('Templates', 'e2pdf'), __('Templates', 'e2pdf'), 'manage_options', 'e2pdf-templates', array(Helper_E2pdf_View::instance(), 'render_page')); |
| 159 |
add_submenu_page('e2pdf', __('Settings', 'e2pdf'), __('Settings', 'e2pdf'), 'manage_options', 'e2pdf-settings', array(Helper_E2pdf_View::instance(), 'render_page')); |
| 160 |
add_submenu_page('e2pdf', __('License', 'e2pdf'), __('License', 'e2pdf'), 'manage_options', 'e2pdf-license', array(Helper_E2pdf_View::instance(), 'render_page')); |
| 161 |
if (get_option('e2pdf_debug') === '1') { |
| 162 |
add_submenu_page('e2pdf', __('Debug', 'e2pdf'), __('Debug', 'e2pdf'), 'manage_options', 'e2pdf-debug', array(Helper_E2pdf_View::instance(), 'render_page')); |
| 163 |
} |
| 164 |
} |
| 165 |
|
| 166 |
/** |
| 167 |
* Setup settings page |
| 168 |
*/ |
| 169 |
public function admin_settings() { |
| 170 |
register_setting('e2pdf-settings', 'e2pdf_debug'); |
| 171 |
} |
| 172 |
|
| 173 |
/** |
| 174 |
* Load admin css |
| 175 |
*/ |
| 176 |
public function admin_css($page) { |
| 177 |
if (get_option('e2pdf_debug') === '1') { |
| 178 |
$version = strtotime("now"); |
| 179 |
} else { |
| 180 |
$version = $this->helper->get('version'); |
| 181 |
} |
| 182 |
|
| 183 |
wp_register_style('e2pdf.backend', plugins_url('css/e2pdf.backend.css', $this->helper->get('plugin_file_path')), array(), $version); |
| 184 |
wp_enqueue_style('e2pdf.backend'); |
| 185 |
} |
| 186 |
|
| 187 |
/** |
| 188 |
* Load admin javascript |
| 189 |
* |
| 190 |
* @param string $page - Current page |
| 191 |
*/ |
| 192 |
public function admin_js($page) { |
| 193 |
|
| 194 |
if (!in_array($page, $this->e2pdf_admin_pages)) { |
| 195 |
return; |
| 196 |
} |
| 197 |
|
| 198 |
if (get_option('e2pdf_debug') === '1') { |
| 199 |
$version = strtotime("now"); |
| 200 |
} else { |
| 201 |
$version = $this->helper->get('version'); |
| 202 |
} |
| 203 |
|
| 204 |
wp_enqueue_script( |
| 205 |
'js/e2pdf.backend', plugins_url('js/e2pdf.backend.js', $this->helper->get('plugin_file_path')), array('jquery'), $version |
| 206 |
); |
| 207 |
|
| 208 |
$js_lang = $this->get_js_lang(); |
| 209 |
wp_add_inline_script('js/e2pdf.backend', $js_lang, 'before'); |
| 210 |
|
| 211 |
$js_size = $this->get_js_template_sizes(); |
| 212 |
wp_add_inline_script('js/e2pdf.backend', $js_size, 'before'); |
| 213 |
|
| 214 |
$js_extension = $this->get_js_template_extensions(); |
| 215 |
wp_add_inline_script('js/e2pdf.backend', $js_extension, 'before'); |
| 216 |
|
| 217 |
$js_params = $this->get_js_params(); |
| 218 |
wp_add_inline_script('js/e2pdf.backend', $js_params, 'before'); |
| 219 |
} |
| 220 |
|
| 221 |
/** |
| 222 |
* Load admin javascript |
| 223 |
* |
| 224 |
* @param string $page - Current page |
| 225 |
*/ |
| 226 |
public function frontend_js() { |
| 227 |
|
| 228 |
wp_register_script( |
| 229 |
'js/e2pdf.frontend', plugins_url('js/e2pdf.frontend.js', $this->helper->get('plugin_file_path')), array('jquery'), $this->helper->get('version') |
| 230 |
); |
| 231 |
wp_enqueue_script( |
| 232 |
'js/e2pdf.frontend' |
| 233 |
); |
| 234 |
} |
| 235 |
|
| 236 |
/** |
| 237 |
* Get nonce for JavaScript |
| 238 |
* |
| 239 |
* @return string - JS nonce |
| 240 |
*/ |
| 241 |
public function get_js_params() { |
| 242 |
$params = array( |
| 243 |
'nonce' => wp_create_nonce('e2pdf_ajax'), |
| 244 |
'plugins_url' => plugins_url('', $this->helper->get('plugin_file_path')), |
| 245 |
'upload_url' => $this->helper->get_upload_url(), |
| 246 |
'license_type' => $this->helper->get('license')->get('type') |
| 247 |
); |
| 248 |
|
| 249 |
$js_params = $this->helper->load('js')->get_js_array('e2pdfParams', $params); |
| 250 |
return $js_params; |
| 251 |
} |
| 252 |
|
| 253 |
/** |
| 254 |
* Get Lang Key->Value for JavaScript |
| 255 |
* |
| 256 |
* @return string - JS language Key->Value |
| 257 |
*/ |
| 258 |
public function get_js_lang() { |
| 259 |
$lang = array( |
| 260 |
'Delete' => __('Delete', 'e2pdf'), |
| 261 |
'Properties' => __('Properties', 'e2pdf'), |
| 262 |
'License Key' => __('License Key', 'e2pdf'), |
| 263 |
'Submit' => __('Submit', 'e2pdf'), |
| 264 |
'Are you sure want to remove page?' => __('Are you sure want to remove page?', 'e2pdf'), |
| 265 |
'Are you sure want to remove font?' => __('Are you sure want to remove font?', 'e2pdf'), |
| 266 |
'Empty PDF' => __('Empty PDF', 'e2pdf'), |
| 267 |
'Upload PDF' => __('Upload PDF', 'e2pdf'), |
| 268 |
'Auto PDF' => __('Auto PDF', 'e2pdf'), |
| 269 |
'Create PDF' => __('Create PDF', 'e2pdf'), |
| 270 |
'Extension' => __('Extension', 'e2pdf'), |
| 271 |
'Size' => __('Size', 'e2pdf'), |
| 272 |
'Properties' => __('Properties', 'e2pdf'), |
| 273 |
'Name' => __('Name', 'e2pdf'), |
| 274 |
'Enter link here' => __('Enter link here', 'e2pdf'), |
| 275 |
'Z-index' => __('Z-index', 'e2pdf'), |
| 276 |
'Border' => __('Border', 'e2pdf'), |
| 277 |
'Background' => __('Background', 'e2pdf'), |
| 278 |
'Left' => __('Left', 'e2pdf'), |
| 279 |
'Right' => __('Right', 'e2pdf'), |
| 280 |
'Top' => __('Top', 'e2pdf'), |
| 281 |
'Center' => __('Center', 'e2pdf'), |
| 282 |
'Bottom' => __('Bottom', 'e2pdf'), |
| 283 |
'Color' => __('Color', 'e2pdf'), |
| 284 |
'Border Color' => __('Border Color', 'e2pdf'), |
| 285 |
'Line Height' => __('Line Height', 'e2pdf'), |
| 286 |
'Padding' => __('Padding', 'e2pdf'), |
| 287 |
'Width' => __('Width', 'e2pdf'), |
| 288 |
'Height' => __('Height', 'e2pdf'), |
| 289 |
'Text Color' => __('Text Color', 'e2pdf'), |
| 290 |
'Value' => __('Value', 'e2pdf'), |
| 291 |
'Font' => __('Font', 'e2pdf'), |
| 292 |
'Options' => __('Options', 'e2pdf'), |
| 293 |
'Option' => __('Option', 'e2pdf'), |
| 294 |
'Group' => __('Group', 'e2pdf'), |
| 295 |
'Group Name' => __('Group Name', 'e2pdf'), |
| 296 |
'Group Value' => __('Group Value', 'e2pdf'), |
| 297 |
'Selector' => __('Selector', 'e2pdf'), |
| 298 |
'Check' => __('Check', 'e2pdf'), |
| 299 |
'Circle' => __('Circle', 'e2pdf'), |
| 300 |
'Cross' => __('Cross', 'e2pdf'), |
| 301 |
'Diamond' => __('Diamond', 'e2pdf'), |
| 302 |
'Square' => __('Square', 'e2pdf'), |
| 303 |
'Star' => __('Star', 'e2pdf'), |
| 304 |
'Type' => __('Type', 'e2pdf'), |
| 305 |
'Scale' => __('Scale', 'e2pdf'), |
| 306 |
'Width&Height' => __('Width&Height', 'e2pdf'), |
| 307 |
'Width' => __('Width', 'e2pdf'), |
| 308 |
'Height' => __('Height', 'e2pdf'), |
| 309 |
'Choose Image' => __('Choose Image', 'e2pdf'), |
| 310 |
'PDF Options' => __('PDF Options', 'e2pdf'), |
| 311 |
'PDF Upload' => __('PDF Upload', 'e2pdf'), |
| 312 |
'Item' => __('Item', 'e2pdf'), |
| 313 |
'Position' => __('Position', 'e2pdf'), |
| 314 |
'Copy' => __('Copy', 'e2pdf'), |
| 315 |
'Cut' => __('Cut', 'e2pdf'), |
| 316 |
'Paste' => __('Paste', 'e2pdf'), |
| 317 |
'Paste in Place' => __('Paste in Place', 'e2pdf'), |
| 318 |
'Apply' => __('Apply', 'e2pdf'), |
| 319 |
'Dynamic Height' => __('Dynamic Height', 'e2pdf'), |
| 320 |
'Text Align' => __('Text Align', 'e2pdf'), |
| 321 |
'Readonly' => __('Readonly', 'e2pdf'), |
| 322 |
'Multiline' => __('Multiline', 'e2pdf'), |
| 323 |
'Required' => __('Required', 'e2pdf'), |
| 324 |
'Settings' => __('Settings', 'e2pdf'), |
| 325 |
'Relative' => __('Relative', 'e2pdf'), |
| 326 |
'Page Size' => __('Page Size', 'e2pdf'), |
| 327 |
'Custom' => __('Custom', 'e2pdf'), |
| 328 |
'Size Preset' => __('Size Preset', 'e2pdf'), |
| 329 |
'Page Options' => __('Page Options', 'e2pdf'), |
| 330 |
'Select' => __('Select', 'e2pdf'), |
| 331 |
'Saved Template will be overwritten! Are you sure want to continue?' => __('Saved Template will be overwritten! Are you sure want to continue?', 'e2pdf'), |
| 332 |
'All pages will be removed! Are you sure want to continue?' => __('All pages will be removed! Are you sure want to continue?', 'e2pdf'), |
| 333 |
'Adding new pages not available in "Uploaded PDF"' => __('Adding new pages not available in "Uploaded PDF"', 'e2pdf'), |
| 334 |
'Dataset will be removed! Are you sure want to continue?' => __('Dataset will be removed! Are you sure want to continue?', 'e2pdf'), |
| 335 |
'All datasets will be removed! Are you sure want to continue?' => __('All datasets will be removed! Are you sure want to continue?', 'e2pdf'), |
| 336 |
'WARNING: Template has changes after last save! Changes will be lost!' => __('WARNING: Template has changes after last save! Changes will be lost!', 'e2pdf'), |
| 337 |
'Element will be removed! Are you sure want to continue?' => __('Element will be removed! Are you sure want to continue?', 'e2pdf'), |
| 338 |
'Elements will be removed! Are you sure want to continue?' => __('Elements will be removed! Are you sure want to continue?', 'e2pdf'), |
| 339 |
'Action will be removed! Are you sure want to continue?' => __('Action will be removed! Are you sure want to continue?', 'e2pdf'), |
| 340 |
'Condition will be removed! Are you sure want to continue?' => __('Condition will be removed! Are you sure want to continue?', 'e2pdf'), |
| 341 |
'All Field Values will be overwritten! Are you sure want to continue?' => __('All Field Values will be overwritten! Are you sure want to continue?', 'e2pdf'), |
| 342 |
'RTL' => __('RTL', 'e2pdf'), |
| 343 |
'Hide' => __('Hide', 'e2pdf'), |
| 344 |
'Show' => __('Show', 'e2pdf'), |
| 345 |
'Password' => __('Password', 'e2pdf'), |
| 346 |
'Map Field' => __('Map Field', 'e2pdf'), |
| 347 |
'Parent' => __('Parent', 'e2pdf'), |
| 348 |
'Hide Empty' => __('Hide Empty', 'e2pdf'), |
| 349 |
'--- Select ---' => __('--- Select ---', 'e2pdf'), |
| 350 |
'Activated' => __('Activated', 'e2pdf'), |
| 351 |
'Not Activated' => __('Not Activated', 'e2pdf'), |
| 352 |
'Page ID' => __('Page ID', 'e2pdf'), |
| 353 |
'New Position' => __('New Position', 'e2pdf'), |
| 354 |
'Render New Fields' => __('Render New Fields', 'e2pdf'), |
| 355 |
'Flush Elements' => __('Flush Elements', 'e2pdf'), |
| 356 |
'Keep dimension' => __('Keep dimension', 'e2pdf'), |
| 357 |
'ID' => __('ID', 'e2pdf'), |
| 358 |
'Only 1 page allowed with "FREE" license type' => __('Only 1 page allowed with "FREE" license type', 'e2pdf'), |
| 359 |
'Last condition can\'t be removed' => __('Last condition can\'t be removed', 'e2pdf'), |
| 360 |
'Confirmation code' => __('Confirmation code', 'e2pdf'), |
| 361 |
'Code' => __('Code', 'e2pdf'), |
| 362 |
'Visual Mapper' => __('Visual Mapper', 'e2pdf'), |
| 363 |
'Auto' => __('Auto', 'e2pdf'), |
| 364 |
'Actions' => __('Actions', 'e2pdf'), |
| 365 |
'Save' => __('Save', 'e2pdf'), |
| 366 |
'Resize' => __('Resize', 'e2pdf'), |
| 367 |
'Horizontal align' => __('Horizontal align', 'e2pdf'), |
| 368 |
'Vertical align' => __('Vertical align', 'e2pdf'), |
| 369 |
'Middle' => __('Middle', 'e2pdf'), |
| 370 |
'Apply If' => __('Apply If', 'e2pdf'), |
| 371 |
'Action' => __('Action', 'e2pdf'), |
| 372 |
'Property' => __('Property', 'e2pdf'), |
| 373 |
'If' => __('If', 'e2pdf'), |
| 374 |
'Condition' => __('Condition', 'e2pdf'), |
| 375 |
'Change' => __('Change', 'e2pdf'), |
| 376 |
'Any' => __('Any', 'e2pdf'), |
| 377 |
'All' => __('All', 'e2pdf'), |
| 378 |
'Order' => __('Order', 'e2pdf'), |
| 379 |
'E-signature' => __('E-signature', 'e2pdf'), |
| 380 |
'Contact' => __('Contact', 'e2pdf'), |
| 381 |
'Location' => __('Location', 'e2pdf'), |
| 382 |
'Reason' => __('Reason', 'e2pdf'), |
| 383 |
'Placeholder' => __('Placeholder', 'e2pdf'), |
| 384 |
'Length' => __('Length', 'e2pdf'), |
| 385 |
'Comb' => __('Comb', 'e2pdf'), |
| 386 |
'None' => __('None', 'e2pdf'), |
| 387 |
'Highlight' => __('Highlight', 'e2pdf'), |
| 388 |
'Invert' => __('Invert', 'e2pdf'), |
| 389 |
'Outline' => __('Outline', 'e2pdf'), |
| 390 |
'Push' => __('Push', 'e2pdf'), |
| 391 |
'Title' => __('Title', 'e2pdf'), |
| 392 |
'Status' => __('Status', 'e2pdf'), |
| 393 |
'Add Action' => __('Add Action', 'e2pdf'), |
| 394 |
'Shortcodes' => __('Shortcodes', 'e2pdf'), |
| 395 |
'Labels' => __('Labels', 'e2pdf'), |
| 396 |
'Field Values' => __('Field Values', 'e2pdf'), |
| 397 |
'Field Names' => __('Field Names', 'e2pdf'), |
| 398 |
'Field Name' => __('Field Name', 'e2pdf'), |
| 399 |
'As Field Name' => __('As Field Name', 'e2pdf'), |
| 400 |
'Confirm' => __('Confirm', 'e2pdf'), |
| 401 |
'Cancel' => __('Cancel', 'e2pdf') |
| 402 |
); |
| 403 |
|
| 404 |
$js_lang = $this->helper->load('js')->get_js_array('e2pdfLang', $lang); |
| 405 |
return $js_lang; |
| 406 |
} |
| 407 |
|
| 408 |
/** |
| 409 |
* Get Template sizes for JavaScript |
| 410 |
* |
| 411 |
* @return string - JS template sizes |
| 412 |
*/ |
| 413 |
public function get_js_template_sizes() { |
| 414 |
$controller_e2pdf_templates = new Controller_E2pdf_Templates(); |
| 415 |
$sizes = $controller_e2pdf_templates->get_sizes_list(); |
| 416 |
|
| 417 |
$js_template_sizes = $this->helper->load('js')->get_js_array('e2pdfTemplateSizes', $sizes); |
| 418 |
|
| 419 |
return $js_template_sizes; |
| 420 |
} |
| 421 |
|
| 422 |
/** |
| 423 |
* Get Extensions list for JavaScript |
| 424 |
* |
| 425 |
* @return string - JS Extensions list |
| 426 |
*/ |
| 427 |
public function get_js_template_extensions() { |
| 428 |
$model_e2pdf_extension = new Model_E2pdf_Extension(); |
| 429 |
$extensions = $model_e2pdf_extension->extensions(); |
| 430 |
|
| 431 |
$js_template_extensions = $this->helper->load('js')->get_js_array('e2pdfTemplateExtensions', $extensions); |
| 432 |
|
| 433 |
return $js_template_extensions; |
| 434 |
} |
| 435 |
|
| 436 |
/** |
| 437 |
* Check requirenments before activation |
| 438 |
*/ |
| 439 |
public function requirenments() { |
| 440 |
if (version_compare(PHP_VERSION, '5.3.3', '<')) { |
| 441 |
throw new Exception( |
| 442 |
sprintf(__("E2Pdf requires PHP version 5.3.3 or later. Your PHP version is %s", 'e2pdf'), PHP_VERSION) |
| 443 |
); |
| 444 |
} |
| 445 |
} |
| 446 |
|
| 447 |
public function admin_functions() { |
| 448 |
$current_screen = get_current_screen(); |
| 449 |
if (!$current_screen || !in_array($current_screen->id, $this->e2pdf_admin_pages)) { |
| 450 |
return; |
| 451 |
} |
| 452 |
|
| 453 |
if ($current_screen->id == 'e2pdf_page_e2pdf-templates' && !isset($_GET['action'])) { |
| 454 |
$screen_option = array( |
| 455 |
'label' => __('Templates per page', 'e2pdf') . ':', |
| 456 |
'default' => get_option('e2pdf_templates_screen_per_page') ? get_option('e2pdf_templates_screen_per_page') : '20', |
| 457 |
'option' => 'e2pdf_templates_screen_per_page' |
| 458 |
); |
| 459 |
add_screen_option('per_page', $screen_option); |
| 460 |
} |
| 461 |
|
| 462 |
$this->helper->set('license', new Model_E2pdf_License()); |
| 463 |
} |
| 464 |
|
| 465 |
public function wp_loaded() { |
| 466 |
if (!get_transient('e2pdf_adobesign_refresh_token')) { |
| 467 |
new Model_E2pdf_AdobeSign(); |
| 468 |
} |
| 469 |
} |
| 470 |
|
| 471 |
/** |
| 472 |
* On plugin activation |
| 473 |
*/ |
| 474 |
public function activate() { |
| 475 |
global $wpdb; |
| 476 |
|
| 477 |
try { |
| 478 |
$this->requirenments(); |
| 479 |
if (is_multisite() && is_super_admin() && is_main_site()) { |
| 480 |
foreach ($wpdb->get_col("SELECT blog_id FROM $wpdb->blogs") as $blog_id) { |
| 481 |
$this->activate_site($blog_id); |
| 482 |
} |
| 483 |
} else { |
| 484 |
$this->activate_site(); |
| 485 |
} |
| 486 |
} catch (Exception $e) { |
| 487 |
echo "<div style='line-height: 70px;'>"; |
| 488 |
echo $e->getMessage(); |
| 489 |
echo "</div>"; |
| 490 |
exit(); |
| 491 |
} |
| 492 |
} |
| 493 |
|
| 494 |
public function activate_new_network($blog_id, $user_id, $domain, $path, $site_id, $meta) { |
| 495 |
if (is_plugin_active_for_network('e2pdf/e2pdf.php')) { |
| 496 |
$this->activate_site($blog_id); |
| 497 |
} |
| 498 |
} |
| 499 |
|
| 500 |
public function activate_site($blog_id = false) { |
| 501 |
global $wpdb; |
| 502 |
|
| 503 |
$db_prefix = $wpdb->prefix; |
| 504 |
|
| 505 |
$wp_upload_dir = wp_upload_dir(); |
| 506 |
|
| 507 |
if ($blog_id) { |
| 508 |
switch_to_blog($blog_id); |
| 509 |
$wp_upload_dir = wp_upload_dir(); |
| 510 |
$db_prefix = $wpdb->get_blog_prefix($blog_id); |
| 511 |
if (!is_main_site($blog_id)) { |
| 512 |
$this->helper->set('upload_dir', $wp_upload_dir['basedir'] . '/e2pdf/'); |
| 513 |
$this->helper->set('tmp_dir', $this->helper->get('upload_dir') . 'tmp/'); |
| 514 |
$this->helper->set('pdf_dir', $this->helper->get('upload_dir') . 'pdf/'); |
| 515 |
$this->helper->set('fonts_dir', $this->helper->get('upload_dir') . 'fonts/'); |
| 516 |
$this->helper->set('tpl_dir', $this->helper->get('upload_dir') . 'tpl/'); |
| 517 |
} |
| 518 |
} |
| 519 |
|
| 520 |
$dirs = array( |
| 521 |
$this->helper->get('upload_dir'), |
| 522 |
$this->helper->get('tmp_dir'), |
| 523 |
$this->helper->get('pdf_dir'), |
| 524 |
$this->helper->get('fonts_dir'), |
| 525 |
$this->helper->get('tpl_dir'), |
| 526 |
); |
| 527 |
|
| 528 |
if (!is_main_site($blog_id)) { |
| 529 |
array_unshift($dirs, $wp_upload_dir['basedir']); |
| 530 |
} |
| 531 |
|
| 532 |
foreach ($dirs as $dir) { |
| 533 |
if ($this->helper->create_dir($dir)) { |
| 534 |
if ($dir == $this->helper->get('fonts_dir')) { |
| 535 |
copy($this->helper->get('plugin_dir') . "data/fonts/NotoSans-Regular.ttf", $this->helper->get('fonts_dir') . "NotoSans-Regular.ttf"); |
| 536 |
} |
| 537 |
} else { |
| 538 |
throw new Exception( |
| 539 |
sprintf(__("Can't create folder %s", 'e2pdf'), $dir) |
| 540 |
); |
| 541 |
} |
| 542 |
} |
| 543 |
|
| 544 |
$options = Model_E2pdf_Options::get_options(); |
| 545 |
foreach ($options as $option_key => $option_value) { |
| 546 |
if (get_option($option_key) === false) { |
| 547 |
add_option($option_key, $option_value); |
| 548 |
} |
| 549 |
} |
| 550 |
|
| 551 |
$wpdb->query("CREATE TABLE IF NOT EXISTS `" . $db_prefix . "e2pdf_templates` ( |
| 552 |
`ID` int(11) NOT NULL AUTO_INCREMENT, |
| 553 |
`uid` varchar(255) NOT NULL, |
| 554 |
`pdf` text, |
| 555 |
`title` text, |
| 556 |
`created_at` datetime NOT NULL, |
| 557 |
`updated_at` datetime NOT NULL, |
| 558 |
`flatten` enum('0','1','2') NOT NULL DEFAULT '0', |
| 559 |
`compression` int(1) NOT NULL DEFAULT '-1', |
| 560 |
`appearance` enum('0','1') NOT NULL DEFAULT '0', |
| 561 |
`width` int(11) NOT NULL DEFAULT '0', |
| 562 |
`height` int(11) NOT NULL DEFAULT '0', |
| 563 |
`extension` varchar(255) NOT NULL, |
| 564 |
`item` varchar(255) NOT NULL, |
| 565 |
`format` enum('pdf') NOT NULL DEFAULT 'pdf', |
| 566 |
`dataset_title` text NOT NULL, |
| 567 |
`button_title` text NOT NULL, |
| 568 |
`inline` enum('0','1') NOT NULL DEFAULT '0', |
| 569 |
`auto` enum('0','1') NOT NULL DEFAULT '0', |
| 570 |
`name` text NOT NULL, |
| 571 |
`password` text NOT NULL, |
| 572 |
`meta_title` text NOT NULL, |
| 573 |
`meta_subject` text NOT NULL, |
| 574 |
`meta_author` text NOT NULL, |
| 575 |
`meta_keywords` text NOT NULL, |
| 576 |
`font` varchar(255) NOT NULL, |
| 577 |
`font_size` varchar(255) NOT NULL, |
| 578 |
`font_color` varchar(255) NOT NULL, |
| 579 |
`line_height` varchar(255) NOT NULL, |
| 580 |
`fonts` longtext NOT NULL, |
| 581 |
`trash` enum('0','1') NOT NULL DEFAULT '0', |
| 582 |
`activated` enum('0','1') NOT NULL DEFAULT '0', |
| 583 |
`locked` enum('0','1') NOT NULL DEFAULT '0', |
| 584 |
`author` int(11) NOT NULL, |
| 585 |
PRIMARY KEY (`ID`) |
| 586 |
) CHARSET=utf8 COLLATE=utf8_general_ci"); |
| 587 |
|
| 588 |
if (version_compare(get_option('e2pdf_version'), '0.01.54', '<')) { |
| 589 |
$wpdb->query("ALTER TABLE `" . $db_prefix . "e2pdf_templates` DROP COLUMN `blank`"); |
| 590 |
} |
| 591 |
|
| 592 |
if (version_compare(get_option('e2pdf_version'), '1.06.00', '<')) { |
| 593 |
$wpdb->query("ALTER TABLE `" . $db_prefix . "e2pdf_templates` ADD COLUMN `meta_title` text NOT NULL AFTER password"); |
| 594 |
$wpdb->query("ALTER TABLE `" . $db_prefix . "e2pdf_templates` ADD COLUMN `meta_subject` text NOT NULL AFTER meta_title"); |
| 595 |
$wpdb->query("ALTER TABLE `" . $db_prefix . "e2pdf_templates` ADD COLUMN `meta_author` text NOT NULL AFTER meta_subject"); |
| 596 |
$wpdb->query("ALTER TABLE `" . $db_prefix . "e2pdf_templates` ADD COLUMN `meta_keywords` text NOT NULL AFTER meta_author"); |
| 597 |
} |
| 598 |
|
| 599 |
$wpdb->query("CREATE TABLE IF NOT EXISTS `" . $db_prefix . "e2pdf_entries` ( |
| 600 |
`ID` int(11) NOT NULL AUTO_INCREMENT, |
| 601 |
`uid` varchar(255) NOT NULL, |
| 602 |
`entry` longtext, |
| 603 |
`pdf_num` int(11) NOT NULL DEFAULT '0', |
| 604 |
PRIMARY KEY (`ID`) |
| 605 |
) CHARSET=utf8 COLLATE=utf8_general_ci"); |
| 606 |
|
| 607 |
if (version_compare(get_option('e2pdf_version'), '0.01.33', '<')) { |
| 608 |
$wpdb->query("ALTER TABLE `" . $db_prefix . "e2pdf_entries` ADD COLUMN `pdf_num` int(11) NOT NULL DEFAULT '0'"); |
| 609 |
} |
| 610 |
|
| 611 |
$wpdb->query("CREATE TABLE IF NOT EXISTS `" . $db_prefix . "e2pdf_datasets` ( |
| 612 |
`ID` int(11) NOT NULL AUTO_INCREMENT, |
| 613 |
`extension` varchar(255) NOT NULL, |
| 614 |
`item` varchar(255) NOT NULL, |
| 615 |
`entry` longtext, |
| 616 |
PRIMARY KEY (`ID`) |
| 617 |
) CHARSET=utf8 COLLATE=utf8_general_ci"); |
| 618 |
|
| 619 |
$wpdb->query("CREATE TABLE IF NOT EXISTS `" . $db_prefix . "e2pdf_pages` ( |
| 620 |
`page_id` int(11) NOT NULL DEFAULT '0', |
| 621 |
`template_id` int(11) NOT NULL DEFAULT '0', |
| 622 |
`properties` longtext NOT NULL, |
| 623 |
`actions` longtext NOT NULL |
| 624 |
) CHARSET=utf8 COLLATE=utf8_general_ci"); |
| 625 |
|
| 626 |
if (version_compare(get_option('e2pdf_version'), '0.01.63', '<')) { |
| 627 |
$wpdb->query("ALTER TABLE `" . $db_prefix . "e2pdf_pages` ADD COLUMN `actions` longtext NOT NULL"); |
| 628 |
} |
| 629 |
|
| 630 |
$wpdb->query("CREATE TABLE IF NOT EXISTS `" . $db_prefix . "e2pdf_elements` ( |
| 631 |
`page_id` int(11) NOT NULL DEFAULT '0', |
| 632 |
`template_id` int(11) NOT NULL DEFAULT '0', |
| 633 |
`element_id` int(11) NOT NULL DEFAULT '0', |
| 634 |
`name` text NOT NULL, |
| 635 |
`type` varchar(255) NOT NULL, |
| 636 |
`top` int(11) NOT NULL DEFAULT '0', |
| 637 |
`left` int(11) NOT NULL DEFAULT '0', |
| 638 |
`width` int(11) NOT NULL DEFAULT '0', |
| 639 |
`height` int(11) NOT NULL DEFAULT '0', |
| 640 |
`value` longtext NOT NULL, |
| 641 |
`properties` longtext NOT NULL, |
| 642 |
`actions` longtext NOT NULL |
| 643 |
) CHARSET=utf8 COLLATE=utf8_general_ci"); |
| 644 |
|
| 645 |
if (version_compare(get_option('e2pdf_version'), '0.01.63', '<')) { |
| 646 |
$wpdb->query("ALTER TABLE `" . $db_prefix . "e2pdf_elements` ADD COLUMN `actions` longtext NOT NULL"); |
| 647 |
} |
| 648 |
|
| 649 |
if (version_compare(get_option('e2pdf_version'), '1.04.00', '<')) { |
| 650 |
$wpdb->query("UPDATE `" . $db_prefix . "e2pdf_elements` ee INNER JOIN `" . $db_prefix . "e2pdf_pages` ep ON ee.page_id = ep.ID set ee.page_id = ep.page_id "); |
| 651 |
$wpdb->query("ALTER TABLE `" . $db_prefix . "e2pdf_pages` DROP COLUMN `ID`"); |
| 652 |
$wpdb->query("ALTER TABLE `" . $db_prefix . "e2pdf_elements` DROP COLUMN `ID`"); |
| 653 |
} |
| 654 |
|
| 655 |
if (version_compare(get_option('e2pdf_version'), '1.06.00', '<')) { |
| 656 |
$wpdb->query("ALTER TABLE `" . $db_prefix . "e2pdf_elements` ADD COLUMN `name` text NOT NULL AFTER element_id"); |
| 657 |
} |
| 658 |
|
| 659 |
if (get_option('e2pdf_version') !== $this->helper->get('version')) { |
| 660 |
update_option('e2pdf_version', $this->helper->get('version')); |
| 661 |
} |
| 662 |
|
| 663 |
$model_e2pdf_api = new Model_E2pdf_Api(); |
| 664 |
$model_e2pdf_api->set(array( |
| 665 |
'action' => 'common/activate' |
| 666 |
)); |
| 667 |
$model_e2pdf_api->request(); |
| 668 |
|
| 669 |
$model_e2pdf_license = new Model_E2pdf_License(); |
| 670 |
|
| 671 |
if ($blog_id) { |
| 672 |
restore_current_blog(); |
| 673 |
$wp_upload_dir = wp_upload_dir(); |
| 674 |
$this->helper->set('upload_dir', $wp_upload_dir['basedir'] . '/e2pdf/'); |
| 675 |
$this->helper->set('tmp_dir', $this->helper->get('upload_dir') . 'tmp/'); |
| 676 |
$this->helper->set('pdf_dir', $this->helper->get('upload_dir') . 'pdf/'); |
| 677 |
$this->helper->set('fonts_dir', $this->helper->get('upload_dir') . 'fonts/'); |
| 678 |
$this->helper->set('tpl_dir', $this->helper->get('upload_dir') . 'tpl/'); |
| 679 |
} |
| 680 |
} |
| 681 |
|
| 682 |
/** |
| 683 |
* On plugin deactivation |
| 684 |
*/ |
| 685 |
public function deactivate() { |
| 686 |
|
| 687 |
} |
| 688 |
|
| 689 |
/** |
| 690 |
* On plugin uninstall |
| 691 |
*/ |
| 692 |
public static function uninstall() { |
| 693 |
global $wpdb; |
| 694 |
|
| 695 |
if (is_multisite() && is_super_admin() && is_main_site()) { |
| 696 |
foreach ($wpdb->get_col("SELECT blog_id FROM $wpdb->blogs") as $blog_id) { |
| 697 |
self::uninstall_site($blog_id); |
| 698 |
} |
| 699 |
} else { |
| 700 |
self::uninstall_site(); |
| 701 |
} |
| 702 |
} |
| 703 |
|
| 704 |
public static function uninstall_site($blog_id = false) { |
| 705 |
global $wpdb; |
| 706 |
|
| 707 |
$db_prefix = $wpdb->prefix; |
| 708 |
|
| 709 |
$wp_upload_dir = wp_upload_dir(); |
| 710 |
|
| 711 |
$helper_e2pdf_helper = Helper_E2pdf_Helper::instance(); |
| 712 |
|
| 713 |
if ($blog_id) { |
| 714 |
switch_to_blog($blog_id); |
| 715 |
$wp_upload_dir = wp_upload_dir(); |
| 716 |
$db_prefix = $wpdb->get_blog_prefix($blog_id); |
| 717 |
|
| 718 |
if (!is_main_site($blog_id)) { |
| 719 |
$helper_e2pdf_helper->set('upload_dir', $wp_upload_dir['basedir'] . '/e2pdf/'); |
| 720 |
} |
| 721 |
} |
| 722 |
|
| 723 |
|
| 724 |
$model_e2pdf_api = new Model_E2pdf_Api(); |
| 725 |
$model_e2pdf_api->set(array( |
| 726 |
'action' => 'common/uninstall' |
| 727 |
)); |
| 728 |
$model_e2pdf_api->request(); |
| 729 |
|
| 730 |
$options = Model_E2pdf_Options::get_options(); |
| 731 |
foreach ($options as $option_key => $option_value) { |
| 732 |
delete_option($option_key, $option_value); |
| 733 |
} |
| 734 |
|
| 735 |
$wpdb->query('DROP TABLE IF EXISTS `' . $db_prefix . 'e2pdf_templates' . '`'); |
| 736 |
$wpdb->query('DROP TABLE IF EXISTS `' . $db_prefix . 'e2pdf_entries' . '`'); |
| 737 |
$wpdb->query('DROP TABLE IF EXISTS `' . $db_prefix . 'e2pdf_datasets' . '`'); |
| 738 |
$wpdb->query('DROP TABLE IF EXISTS `' . $db_prefix . 'e2pdf_pages' . '`'); |
| 739 |
$wpdb->query('DROP TABLE IF EXISTS `' . $db_prefix . 'e2pdf_elements' . '`'); |
| 740 |
|
| 741 |
$wpdb->query($wpdb->prepare('DELETE FROM `' . $db_prefix . 'options' . '` WHERE option_name LIKE %s OR option_name LIKE %s', '_transient_e2pdf_%', '_transient_e2pdf_%')); |
| 742 |
|
| 743 |
$helper_e2pdf_helper->delete_dir($helper_e2pdf_helper->get('upload_dir')); |
| 744 |
|
| 745 |
if ($blog_id) { |
| 746 |
restore_current_blog(); |
| 747 |
$wp_upload_dir = wp_upload_dir(); |
| 748 |
$helper_e2pdf_helper->set('upload_dir', $wp_upload_dir['basedir'] . '/e2pdf/'); |
| 749 |
} |
| 750 |
} |
| 751 |
|
| 752 |
} |
| 753 |
|