$att_value) { if (substr($att_key, 0, 3) === "arg") { $args[$att_key] = $att_value; } } if ($uid) { $entry = new Model_E2pdf_Entry(); if ($entry->load_by_uid($uid)) { $uid_params = $entry->get('entry'); $template_id = isset($uid_params['template_id']) ? (int) $uid_params['template_id'] : 0; $dataset = isset($uid_params['dataset']) ? $uid_params['dataset'] : false; $pdf = isset($uid_params['pdf']) ? $uid_params['pdf'] : false; } else { return $response; } } if ($pdf) { if ($apply && !$this->helper->load('filter')->is_stream($pdf) && file_exists($pdf)) { return $pdf; } else { return $response; } } if (!$apply || !$dataset || !$template_id) { return $response; } $template = new Model_E2pdf_Template(); if ($template->load($template_id)) { $uid_params = array(); $uid_params['template_id'] = $template_id; $uid_params['dataset'] = $dataset; $template->extension()->set('dataset', $dataset); $options = array(); $options = apply_filters('e2pdf_model_shortcode_extension_options', $options, $template); $options = apply_filters('e2pdf_model_shortcode_e2pdf_attachment_extension_options', $options, $template); foreach ($options as $option_key => $option_value) { $template->extension()->set($option_key, $option_value); } if ($template->extension()->verify()) { if (array_key_exists('inline', $atts)) { $inline = $atts['inline'] == 'true' ? 1 : 0; $uid_params['inline'] = $inline; } if (array_key_exists('flatten', $atts)) { $flatten = (int) $atts['flatten']; $uid_params['flatten'] = $flatten; $template->set('flatten', $flatten); } if (array_key_exists('format', $atts)) { $format = $atts['format']; $uid_params['format'] = $format; $template->set('format', $format); } if (array_key_exists('password', $atts)) { if (!array_key_exists('filter', $atts)) { $password = $template->extension()->render($atts['password'], 'value'); } else { $password = $atts['password']; } $uid_params['password'] = $password; $template->set('password', $password); } else { $template->set('password', $template->extension()->render($template->get('password'), 'value')); } if (array_key_exists('meta_title', $atts)) { if (!array_key_exists('filter', $atts)) { $meta_title = $template->extension()->render($atts['meta_title'], 'value'); } else { $meta_title = $atts['meta_title']; } $uid_params['meta_title'] = $meta_title; $template->set('meta_title', $meta_title); } else { $template->set('meta_title', $template->extension()->render($template->get('meta_title'), 'value')); } if (array_key_exists('meta_subject', $atts)) { if (!array_key_exists('filter', $atts)) { $meta_subject = $template->extension()->render($atts['meta_subject'], 'value'); } else { $meta_subject = $atts['meta_subject']; } $uid_params['meta_subject'] = $meta_subject; $template->set('meta_subject', $meta_subject); } else { $template->set('meta_subject', $template->extension()->render($template->get('meta_subject'), 'value')); } if (array_key_exists('meta_author', $atts)) { if (!array_key_exists('filter', $atts)) { $meta_author = $template->extension()->render($atts['meta_author'], 'value'); } else { $meta_author = $atts['meta_author']; } $uid_params['meta_author'] = $meta_author; $template->set('meta_author', $meta_author); } else { $template->set('meta_author', $template->extension()->render($template->get('meta_author'), 'value')); } if (array_key_exists('meta_keywords', $atts)) { if (!array_key_exists('filter', $atts)) { $meta_keywords = $template->extension()->render($atts['meta_keywords'], 'value'); } else { $meta_keywords = $atts['meta_keywords']; } $uid_params['meta_keywords'] = $meta_keywords; $template->set('meta_keywords', $meta_keywords); } else { $template->set('meta_keywords', $template->extension()->render($template->get('meta_keywords'), 'value')); } if (array_key_exists('name', $atts)) { if (!array_key_exists('filter', $atts)) { $name = $template->extension()->render($atts['name'], 'value'); } else { $name = $atts['name']; } $uid_params['name'] = $name; $template->set('name', $name); } else { $template->set('name', $template->extension()->render($template->get('name'), 'value')); } if (array_key_exists('user_id', $atts)) { $uid_params['user_id'] = (int) $atts['user_id']; } else { $uid_params['user_id'] = get_current_user_id(); } $uid_params['args'] = $args; $entry = new Model_E2pdf_Entry(); $entry->set('entry', $uid_params); if (!$entry->load_by_uid($entry->get('uid'))) { $entry->save(); } $template->fill($dataset, $entry->get('uid')); $request = $template->render(); if (!isset($request['error']) && $entry->get('ID')) { $tmp_dir = $this->helper->get('tmp_dir') . 'e2pdf' . md5($entry->get('uid')) . '/'; $this->helper->create_dir($tmp_dir); if ($template->get('name')) { $name = $template->get('name'); } else { $name = $template->extension()->render($template->get_filename(), 'value'); } $file_name = $name . '.pdf'; $file_name = $this->helper->load('convert')->to_file_name($file_name); $file_path = $tmp_dir . $file_name; file_put_contents($file_path, base64_decode($request['file'])); if (file_exists($file_path)) { $entry->set('pdf_num', $entry->get('pdf_num') + 1); $entry->save(); return $file_path; } } } } return $response; } /** * [e2pdf-download] shortcode * * @param array $atts - Attributes */ function e2pdf_download($atts = array()) { $response = ''; $template_id = isset($atts['id']) ? (int) $atts['id'] : 0; $dataset = isset($atts['dataset']) ? $atts['dataset'] : false; $uid = isset($atts['uid']) ? $atts['uid'] : false; $output = isset($atts['output']) ? $atts['output'] : false; $pdf = isset($atts['pdf']) ? $atts['pdf'] : false; $args = array(); foreach ($atts as $att_key => $att_value) { if (substr($att_key, 0, 3) === "arg") { $args[$att_key] = $att_value; } } if ($uid) { $entry = new Model_E2pdf_Entry(); if ($entry->load_by_uid($uid)) { $uid_params = $entry->get('entry'); $template_id = isset($uid_params['template_id']) ? (int) $uid_params['template_id'] : 0; $dataset = isset($uid_params['dataset']) ? $uid_params['dataset'] : false; $pdf = isset($uid_params['pdf']) ? $uid_params['pdf'] : false; } else { return $response; } } if ($pdf) { if (!$this->helper->load('filter')->is_stream($pdf) && file_exists($pdf)) { $uid_params = array(); $uid_params['pdf'] = $pdf; if (array_key_exists('class', $atts)) { $classes = explode(" ", $atts['class']); } else { $classes = array(); } $classes[] = 'e2pdf-download'; if (array_key_exists('auto', $atts)) { $auto = $atts['auto'] == 'true' ? 1 : 0; if ($auto) { $classes[] = 'e2pdf-auto'; } } if (array_key_exists('inline', $atts)) { $inline = $atts['inline'] == 'true' ? 1 : 0; $uid_params['inline'] = $inline; if ($inline) { $classes[] = 'e2pdf-inline'; } } if (array_key_exists('name', $atts)) { $name = $atts['name']; $uid_params['name'] = $name; } if (array_key_exists('button-title', $atts)) { $button_title = $atts['button-title']; } else { $button_title = __('Download', 'e2pdf'); } $entry = new Model_E2pdf_Entry(); $entry->set('entry', $uid_params); if (!$entry->load_by_uid($entry->get('uid'))) { $entry->save(); } if ($entry->get('ID')) { $url = esc_url(add_query_arg(array( 'page' => 'e2pdf-download', 'uid' => $entry->get('uid'), ), site_url('/') )); if ($output && $output == 'url') { $response = $url; } else { $response = "{$button_title}"; } } } return $response; } if (!$dataset || !$template_id) { return $response; } $template = new Model_E2pdf_Template(); if ($template->load($template_id, false)) { $uid_params = array(); $uid_params['template_id'] = $template_id; $uid_params['dataset'] = $dataset; if (array_key_exists('class', $atts)) { $classes = explode(" ", $atts['class']); } else { $classes = array(); } $classes[] = 'e2pdf-download'; $template->extension()->set('dataset', $dataset); $options = array(); $options = apply_filters('e2pdf_model_shortcode_extension_options', $options, $template); $options = apply_filters('e2pdf_model_shortcode_e2pdf_download_extension_options', $options, $template); foreach ($options as $option_key => $option_value) { $template->extension()->set($option_key, $option_value); } if ($template->extension()->verify()) { if (array_key_exists('auto', $atts)) { $auto = $atts['auto'] == 'true' ? 1 : 0; } else { $auto = $template->get('auto'); } if ($auto) { $classes[] = 'e2pdf-auto'; } if (array_key_exists('inline', $atts)) { $inline = $atts['inline'] == 'true' ? 1 : 0; $uid_params['inline'] = $inline; } else { $inline = $template->get('inline'); } if ($inline) { $classes[] = 'e2pdf-inline'; } if (array_key_exists('flatten', $atts)) { $flatten = (int) $atts['flatten']; $uid_params['flatten'] = $flatten; } if (array_key_exists('format', $atts)) { $format = $atts['format']; $uid_params['format'] = $format; } if (array_key_exists('button-title', $atts)) { if (!array_key_exists('filter', $atts)) { $button_title = $template->extension()->render($atts['button-title'], 'value'); } else { $button_title = $atts['button-title']; } } elseif ($template->extension()->render($template->get('button_title'), 'value') !== '') { $button_title = $template->extension()->render($template->get('button_title'), 'value'); } else { $button_title = __('Download', 'e2pdf'); } if (array_key_exists('password', $atts)) { if (!array_key_exists('filter', $atts)) { $password = $template->extension()->render($atts['password'], 'value'); } else { $password = $atts['password']; } $uid_params['password'] = $password; } if (array_key_exists('meta_title', $atts)) { if (!array_key_exists('filter', $atts)) { $meta_title = $template->extension()->render($atts['meta_title'], 'value'); } else { $meta_title = $atts['meta_title']; } $uid_params['meta_title'] = $meta_title; } if (array_key_exists('meta_subject', $atts)) { if (!array_key_exists('filter', $atts)) { $meta_subject = $template->extension()->render($atts['meta_subject'], 'value'); } else { $meta_subject = $atts['meta_subject']; } $uid_params['meta_subject'] = $meta_subject; } if (array_key_exists('meta_author', $atts)) { if (!array_key_exists('filter', $atts)) { $meta_author = $template->extension()->render($atts['meta_author'], 'value'); } else { $meta_author = $atts['meta_author']; } $uid_params['meta_author'] = $meta_author; } if (array_key_exists('meta_keywords', $atts)) { if (!array_key_exists('filter', $atts)) { $meta_keywords = $template->extension()->render($atts['meta_keywords'], 'value'); } else { $meta_keywords = $atts['meta_keywords']; } $uid_params['meta_keywords'] = $meta_keywords; } if (array_key_exists('name', $atts)) { if (!array_key_exists('filter', $atts)) { $name = $template->extension()->render($atts['name'], 'value'); } else { $name = $atts['name']; } $uid_params['name'] = $name; } if (array_key_exists('user_id', $atts)) { $uid_params['user_id'] = (int) $atts['user_id']; } else { $uid_params['user_id'] = get_current_user_id(); } $uid_params['args'] = $args; $entry = new Model_E2pdf_Entry(); $entry->set('entry', $uid_params); if (!$entry->load_by_uid($entry->get('uid'))) { $entry->save(); } if ($entry->get('ID')) { $url = esc_url(add_query_arg(array( 'page' => 'e2pdf-download', 'uid' => $entry->get('uid'), ), site_url('/') )); if ($output && $output == 'url') { $response = $url; } else { $response = "{$button_title}"; } } } } return $response; } /** * @since 0.01.44 * * [e2pdf-save] shortcode * * @param array $atts - Attributes */ function e2pdf_save($atts = array()) { $response = ''; $template_id = isset($atts['id']) ? (int) $atts['id'] : 0; $dataset = isset($atts['dataset']) ? $atts['dataset'] : false; $download = isset($atts['download']) && $atts['download'] == 'true' ? true : false; $view = isset($atts['view']) && $atts['view'] == 'true' ? true : false; $attachment = isset($atts['attachment']) && $atts['attachment'] == 'true' ? true : false; $overwrite = isset($atts['overwrite']) && $atts['overwrite'] == 'false' ? false : true; $output = isset($atts['output']) ? $atts['output'] : false; $apply = isset($atts['apply']) ? true : false; $args = array(); foreach ($atts as $att_key => $att_value) { if (substr($att_key, 0, 3) === "arg") { $args[$att_key] = $att_value; } } if (!$apply || !$dataset || !$template_id) { return $response; } $template = new Model_E2pdf_Template(); if ($template->load($template_id)) { $uid_params = array(); $uid_params['template_id'] = $template_id; $uid_params['dataset'] = $dataset; $template->extension()->set('dataset', $dataset); $options = array(); $options = apply_filters('e2pdf_model_shortcode_extension_options', $options, $template); $options = apply_filters('e2pdf_model_shortcode_e2pdf_save_extension_options', $options, $template); foreach ($options as $option_key => $option_value) { $template->extension()->set($option_key, $option_value); } if ($template->extension()->verify()) { if (array_key_exists('inline', $atts)) { $inline = $atts['inline'] == 'true' ? 1 : 0; $uid_params['inline'] = $inline; } if (array_key_exists('flatten', $atts)) { $flatten = (int) $atts['flatten']; $uid_params['flatten'] = $flatten; $template->set('flatten', $flatten); } if (array_key_exists('format', $atts)) { $format = $atts['format']; $uid_params['format'] = $format; $template->set('format', $format); } if (array_key_exists('password', $atts)) { if (!array_key_exists('filter', $atts)) { $password = $template->extension()->render($atts['password'], 'value'); } else { $password = $atts['password']; } $uid_params['password'] = $password; $template->set('password', $password); } else { $template->set('password', $template->extension()->render($template->get('password'), 'value')); } if (array_key_exists('meta_title', $atts)) { if (!array_key_exists('filter', $atts)) { $meta_title = $template->extension()->render($atts['meta_title'], 'value'); } else { $meta_title = $atts['meta_title']; } $uid_params['meta_title'] = $meta_title; $template->set('meta_title', $meta_title); } else { $template->set('meta_title', $template->extension()->render($template->get('meta_title'), 'value')); } if (array_key_exists('meta_subject', $atts)) { if (!array_key_exists('filter', $atts)) { $meta_subject = $template->extension()->render($atts['meta_subject'], 'value'); } else { $meta_subject = $atts['meta_subject']; } $uid_params['meta_subject'] = $meta_subject; $template->set('meta_subject', $meta_subject); } else { $template->set('meta_subject', $template->extension()->render($template->get('meta_subject'), 'value')); } if (array_key_exists('meta_author', $atts)) { if (!array_key_exists('filter', $atts)) { $meta_author = $template->extension()->render($atts['meta_author'], 'value'); } else { $meta_author = $atts['meta_author']; } $uid_params['meta_author'] = $meta_author; $template->set('meta_author', $meta_author); } else { $template->set('meta_author', $template->extension()->render($template->get('meta_author'), 'value')); } if (array_key_exists('meta_keywords', $atts)) { if (!array_key_exists('filter', $atts)) { $meta_keywords = $template->extension()->render($atts['meta_keywords'], 'value'); } else { $meta_keywords = $atts['meta_keywords']; } $uid_params['meta_keywords'] = $meta_keywords; $template->set('meta_keywords', $meta_keywords); } else { $template->set('meta_keywords', $template->extension()->render($template->get('meta_keywords'), 'value')); } if (array_key_exists('name', $atts)) { if (!array_key_exists('filter', $atts)) { $name = $template->extension()->render($atts['name'], 'value'); } else { $name = $atts['name']; } $uid_params['name'] = $name; $template->set('name', $name); } else { $template->set('name', $template->extension()->render($template->get('name'), 'value')); } if ($download || $view || $attachment) { $uid_params['pdf'] = false; } if (array_key_exists('user_id', $atts)) { $uid_params['user_id'] = (int) $atts['user_id']; } else { $uid_params['user_id'] = get_current_user_id(); } $uid_params['args'] = $args; $entry = new Model_E2pdf_Entry(); $entry->set('entry', $uid_params); if (!$entry->load_by_uid($entry->get('uid'))) { $entry->save(); } if (array_key_exists('dir', $atts)) { $save_dir = $atts['dir']; } else { $tpl_dir = $this->helper->get('tpl_dir') . $template->get('ID') . "/"; $save_dir = $tpl_dir . "save/"; $this->helper->create_dir($tpl_dir); $this->helper->create_dir($save_dir); } if ($template->get('name')) { $name = $template->get('name'); } else { $name = $template->extension()->render($template->get_filename(), 'value'); } $file_name = $name . '.pdf'; $file_name = $this->helper->load('convert')->to_file_name($file_name); $file_path = $save_dir . $file_name; if ($overwrite || !file_exists($file_path)) { $template->fill($dataset, $entry->get('uid')); $request = $template->render(); } if (isset($request['error'])) { return false; } else { if ($entry->get('ID')) { if (is_dir($save_dir) && is_writable($save_dir)) { if ($overwrite || !file_exists($file_path)) { file_put_contents($file_path, base64_decode($request['file'])); } if (!$this->helper->load('filter')->is_stream($file_path) && file_exists($file_path)) { $entry->set('pdf_num', $entry->get('pdf_num') + 1); if ($download || $view || $attachment) { $uid_params['pdf'] = $file_path; $entry->set('entry', $uid_params); $atts['uid'] = $entry->get('uid'); } $entry->save(); if ($download) { $response = $this->e2pdf_download($atts); } elseif ($view) { $response = $this->e2pdf_view($atts); } elseif ($attachment) { $response = $this->e2pdf_attachment($atts); } elseif ($output && $output == 'path') { $response = $file_path; } } } } } } } return $response; } /** * [e2pdf-view] shortcode * * @param array $atts - Attributes */ function e2pdf_view($atts = array()) { $response = ''; $name = ''; $template_id = isset($atts['id']) ? (int) $atts['id'] : 0; $dataset = isset($atts['dataset']) ? $atts['dataset'] : false; $uid = isset($atts['uid']) ? $atts['uid'] : false; $width = isset($atts['width']) ? $atts['width'] : '100%'; $height = isset($atts['height']) ? $atts['height'] : '500'; $pdf = isset($atts['pdf']) ? $atts['pdf'] : false; $page = isset($atts['page']) ? $atts['page'] : false; $zoom = isset($atts['zoom']) ? $atts['zoom'] : false; $nameddest = isset($atts['nameddest']) ? $atts['nameddest'] : false; $pagemode = isset($atts['pagemode']) ? $atts['pagemode'] : false; $args = array(); foreach ($atts as $att_key => $att_value) { if (substr($att_key, 0, 3) === "arg") { $args[$att_key] = $att_value; } } $viewer_options = array(); if ($page) { $viewer_options[] = 'page=' . $page; } if ($zoom) { $viewer_options[] = 'zoom=' . $zoom; } if ($nameddest) { $viewer_options[] = 'nameddest=' . $nameddest; } if ($pagemode) { $viewer_options[] = 'pagemode=' . $pagemode; } if (array_key_exists('class', $atts)) { $classes = explode(" ", $atts['class']); } else { $classes = array(); } $classes[] = 'e2pdf-view'; if ($uid) { $entry = new Model_E2pdf_Entry(); if ($entry->load_by_uid($uid)) { $uid_params = $entry->get('entry'); $template_id = isset($uid_params['template_id']) ? (int) $uid_params['template_id'] : 0; $dataset = isset($uid_params['dataset']) ? $uid_params['dataset'] : false; $template = new Model_E2pdf_Template(); if ($uid_params['pdf'] && file_exists($uid_params['pdf']) && isset($uid_params['template_id']) && isset($uid_params['dataset']) && $template->load($uid_params['template_id'])) { if (isset($uid_params['name'])) { $template->set('name', $uid_params['name']); } else { $template->set('name', $template->extension()->render($template->get('name'), 'value')); } if ($template->get('name')) { $name = $template->get('name'); } else { $name = $template->extension()->render($template->get_filename(), 'value'); } if (!$name) { $name = basename($uid_params['pdf'], ".pdf"); } $pdf = esc_url_raw(add_query_arg(array( 'page' => 'e2pdf-download', 'uid' => $entry->get('uid'), 'saveName' => $name ), site_url('/') )); } } else { return $response; } } if ($pdf) { if (filter_var($pdf, FILTER_VALIDATE_URL)) { $file = urlencode($pdf); if (!empty($viewer_options)) { $file .= '#' . implode('&', $viewer_options); } $url = plugins_url('assets/pdf.js/web/viewer.html?file=' . $file, $this->helper->get('plugin_file_path')); $response = ""; } else if (!$this->helper->load('filter')->is_stream($pdf) && file_exists($pdf)) { $uid_params['pdf'] = $pdf; if (array_key_exists('name', $atts)) { $name = $atts['name']; $uid_params['name'] = $name; } $entry = new Model_E2pdf_Entry(); $entry->set('entry', $uid_params); if (!$entry->load_by_uid($entry->get('uid'))) { $entry->save(); } if ($entry->get('ID')) { if (!$name) { $name = basename($uid_params['pdf'], ".pdf"); } $pdf_url = esc_url_raw(add_query_arg(array( 'page' => 'e2pdf-download', 'uid' => $entry->get('uid'), 'saveName' => $name ), site_url('/') )); $file = urlencode($pdf_url); if (!empty($viewer_options)) { $file .= '#' . implode('&', $viewer_options); } $url = plugins_url('assets/pdf.js/web/viewer.html?file=' . $file, $this->helper->get('plugin_file_path')); $response = ""; } } return $response; } if (!$template_id || !$dataset) { return $response; } $template = new Model_E2pdf_Template(); if ($template->load($template_id, false)) { $uid_params = array(); $uid_params['template_id'] = $template_id; $uid_params['dataset'] = $dataset; $template->extension()->set('dataset', $dataset); $options = array(); $options = apply_filters('e2pdf_model_shortcode_extension_options', $options, $template); $options = apply_filters('e2pdf_model_shortcode_e2pdf_view_extension_options', $options, $template); foreach ($options as $option_key => $option_value) { $template->extension()->set($option_key, $option_value); } if ($template->extension()->verify()) { if (array_key_exists('inline', $atts)) { $inline = $atts['inline'] == 'true' ? 1 : 0; $uid_params['inline'] = $inline; } if (array_key_exists('flatten', $atts)) { $flatten = (int) $atts['flatten']; $uid_params['flatten'] = $flatten; } if (array_key_exists('format', $atts)) { $format = $atts['format']; $uid_params['format'] = $format; } if (array_key_exists('password', $atts)) { if (!array_key_exists('filter', $atts)) { $password = $template->extension()->render($atts['password']); } else { $password = $atts['password']; } $uid_params['password'] = $password; } if (array_key_exists('meta_title', $atts)) { if (!array_key_exists('filter', $atts)) { $meta_title = $template->extension()->render($atts['meta_title'], 'value'); } else { $meta_title = $atts['meta_title']; } $uid_params['meta_title'] = $meta_title; } if (array_key_exists('meta_subject', $atts)) { if (!array_key_exists('filter', $atts)) { $meta_subject = $template->extension()->render($atts['meta_subject'], 'value'); } else { $meta_subject = $atts['meta_subject']; } $uid_params['meta_subject'] = $meta_subject; } if (array_key_exists('meta_author', $atts)) { if (!array_key_exists('filter', $atts)) { $meta_author = $template->extension()->render($atts['meta_author'], 'value'); } else { $meta_author = $atts['meta_author']; } $uid_params['meta_author'] = $meta_author; } if (array_key_exists('meta_keywords', $atts)) { if (!array_key_exists('filter', $atts)) { $meta_keywords = $template->extension()->render($atts['meta_keywords'], 'value'); } else { $meta_keywords = $atts['meta_keywords']; } $uid_params['meta_keywords'] = $meta_keywords; } if (array_key_exists('name', $atts)) { if (!array_key_exists('filter', $atts)) { $name = $template->extension()->render($atts['name'], 'value'); } else { $name = $atts['name']; } $uid_params['name'] = $name; $template->set('name', $name); } else { $template->set('name', $template->extension()->render($template->get('name'), 'value')); } if (array_key_exists('user_id', $atts)) { $uid_params['user_id'] = (int) $atts['user_id']; } else { $uid_params['user_id'] = get_current_user_id(); } $uid_params['args'] = $args; $entry = new Model_E2pdf_Entry(); $entry->set('entry', $uid_params); if (!$entry->load_by_uid($entry->get('uid'))) { $entry->save(); } if ($entry->get('ID')) { $pdf_url = esc_url_raw(add_query_arg(array( 'page' => 'e2pdf-download', 'uid' => $entry->get('uid'), 'saveName' => $template->get('name') ? $template->get('name') . ".pdf" : $template->extension()->render($template->get_filename(), 'value') . ".pdf" ), site_url('/') )); $file = urlencode($pdf_url); if (!empty($viewer_options)) { $file .= '#' . implode('&', $viewer_options); } $url = plugins_url('assets/pdf.js/web/viewer.html?file=' . $file, $this->helper->get('plugin_file_path')); $response = ""; } } } return $response; } /** * [e2pdf-adobesign] shortcode * * @param array $atts - Attributes */ function e2pdf_adobesign($atts = array()) { $template_id = isset($atts['id']) ? (int) $atts['id'] : 0; $args = array(); foreach ($atts as $att_key => $att_value) { if (substr($att_key, 0, 3) === "arg") { $args[$att_key] = $att_value; } } $response = ''; if (!array_key_exists('apply', $atts) || !array_key_exists('dataset', $atts) || !$template_id) { return $response; } $dataset = $atts['dataset']; $template = new Model_E2pdf_Template(); if ($template->load($template_id)) { $uid_params = array(); $uid_params['template_id'] = $template_id; $uid_params['dataset'] = $dataset; $template->extension()->set('dataset', $dataset); $options = array(); $options = apply_filters('e2pdf_model_shortcode_extension_options', $options, $template); $options = apply_filters('e2pdf_model_shortcode_e2pdf_adobesign_extension_options', $options, $template); foreach ($options as $option_key => $option_value) { $template->extension()->set($option_key, $option_value); } if ($template->extension()->verify()) { if (array_key_exists('inline', $atts)) { $inline = $atts['inline'] == 'true' ? 1 : 0; $uid_params['inline'] = $inline; } if (array_key_exists('flatten', $atts)) { $flatten = (int) $atts['flatten']; $uid_params['flatten'] = $flatten; $template->set('flatten', $flatten); } if (array_key_exists('format', $atts)) { $format = $atts['format']; $uid_params['format'] = $format; $template->set('format', $format); } if (array_key_exists('password', $atts)) { if (!array_key_exists('filter', $atts)) { $password = $template->extension()->render($atts['password'], 'value'); } else { $password = $atts['password']; } $uid_params['password'] = $password; $template->set('password', $password); } else { $template->set('password', $template->extension()->render($template->get('password'), 'value')); } if (array_key_exists('meta_title', $atts)) { if (!array_key_exists('filter', $atts)) { $meta_title = $template->extension()->render($atts['meta_title'], 'value'); } else { $meta_title = $atts['meta_title']; } $uid_params['meta_title'] = $meta_title; $template->set('meta_title', $meta_title); } else { $template->set('meta_title', $template->extension()->render($template->get('meta_title'), 'value')); } if (array_key_exists('meta_subject', $atts)) { if (!array_key_exists('filter', $atts)) { $meta_subject = $template->extension()->render($atts['meta_subject'], 'value'); } else { $meta_subject = $atts['meta_subject']; } $uid_params['meta_subject'] = $meta_subject; $template->set('meta_subject', $meta_subject); } else { $template->set('meta_subject', $template->extension()->render($template->get('meta_subject'), 'value')); } if (array_key_exists('meta_author', $atts)) { if (!array_key_exists('filter', $atts)) { $meta_author = $template->extension()->render($atts['meta_author'], 'value'); } else { $meta_author = $atts['meta_author']; } $uid_params['meta_author'] = $meta_author; $template->set('meta_author', $meta_author); } else { $template->set('meta_author', $template->extension()->render($template->get('meta_author'), 'value')); } if (array_key_exists('meta_keywords', $atts)) { if (!array_key_exists('filter', $atts)) { $meta_keywords = $template->extension()->render($atts['meta_keywords'], 'value'); } else { $meta_keywords = $atts['meta_keywords']; } $uid_params['meta_keywords'] = $meta_keywords; $template->set('meta_keywords', $meta_keywords); } else { $template->set('meta_keywords', $template->extension()->render($template->get('meta_keywords'), 'value')); } if (array_key_exists('name', $atts)) { if (!array_key_exists('filter', $atts)) { $name = $template->extension()->render($atts['name'], 'value'); } else { $name = $atts['name']; } $uid_params['name'] = $name; $template->set('name', $name); } else { $template->set('name', $template->extension()->render($template->get('name'), 'value')); } $disable = array(); if (array_key_exists('disable', $atts)) { $disable = explode(',', $atts['disable']); } if (array_key_exists('user_id', $atts)) { $uid_params['user_id'] = (int) $atts['user_id']; } else { $uid_params['user_id'] = get_current_user_id(); } $uid_params['args'] = $args; $entry = new Model_E2pdf_Entry(); $entry->set('entry', $uid_params); if (!$entry->load_by_uid($entry->get('uid'))) { $entry->save(); } $template->fill($dataset, $entry->get('uid')); $request = $template->render(); if (!isset($request['error']) && $entry->get('ID')) { $tmp_dir = $this->helper->get('tmp_dir') . 'e2pdf' . md5($entry->get('uid')) . '/'; $this->helper->create_dir($tmp_dir); if ($template->get('name')) { $name = $template->get('name'); } else { $name = $template->extension()->render($template->get_filename(), 'value'); } $file_name = $name . '.pdf'; $file_name = $this->helper->load('convert')->to_file_name($file_name); $file_path = $tmp_dir . $file_name; file_put_contents($file_path, base64_decode($request['file'])); if (file_exists($file_path)) { $agreement_id = false; $documents = array(); if (!in_array('post_transientDocuments', $disable)) { $model_e2pdf_adobesign = new Model_E2pdf_AdobeSign(); $model_e2pdf_adobesign->set(array( 'action' => 'api/rest/v5/transientDocuments', 'headers' => array( 'Content-Type: multipart/form-data', ), 'data' => array( 'File-Name' => $file_name, 'Mime-Type' => 'application/pdf', 'File' => class_exists('cURLFile') ? new cURLFile($file_path) : '@' . $file_path ), )); if ($transientDocumentId = $model_e2pdf_adobesign->request('transientDocumentId')) { $documents[] = array( 'transientDocumentId' => $transientDocumentId ); } $model_e2pdf_adobesign->flush(); } $documents = apply_filters('e2pdf_model_shortcode_e2pdf_adobesign_fileInfos', $documents, $atts, $template, $entry, $template->extension(), $file_path); if (!in_array('post_agreements', $disable) && !empty($documents)) { $output = false; if (array_key_exists('output', $atts)) { $output = $atts['output']; } $recipients = array(); if (array_key_exists('recipients', $atts)) { $atts['recipients'] = $template->extension()->render($atts['recipients']); $recipients_list = explode(',', $atts['recipients']); foreach ($recipients_list as $recipient_info) { $recipients[] = array( 'recipientSetMemberInfos' => array( 'email' => trim($recipient_info) ), 'recipientSetRole' => 'SIGNER' ); } } $data = array( 'documentCreationInfo' => array( 'signatureType' => 'ESIGN', 'recipientSetInfos' => $recipients, 'signatureFlow' => 'SENDER_SIGNATURE_NOT_REQUIRED', 'fileInfos' => $documents, 'name' => $name ) ); $data = apply_filters('e2pdf_model_shortcode_e2pdf_adobesign_post_agreements_data', $data, $atts, $template, $entry, $template->extension(), $file_path, $documents); $model_e2pdf_adobesign = new Model_E2pdf_AdobeSign(); $model_e2pdf_adobesign->set(array( 'action' => 'api/rest/v5/agreements', 'data' => $data, )); $agreement_id = $model_e2pdf_adobesign->request('agreementId'); $model_e2pdf_adobesign->flush(); } $response = apply_filters('e2pdf_model_shortcode_e2pdf_adobesign_response', $response, $atts, $template, $entry, $template->extension(), $file_path, $documents, $agreement_id); } $this->helper->delete_dir($tmp_dir); return $response; } } } return $response; } /** * [e2pdf-format-number] shortcode * * @param array $atts - Attributes * @param string $value - Content */ function e2pdf_format_number($atts = array(), $value = '') { $dec_point = isset($atts['dec_point']) ? $atts['dec_point'] : '.'; $thousands_sep = isset($atts['thousands_sep']) ? $atts['thousands_sep'] : ''; $decimal = isset($atts['decimal']) ? $atts['decimal'] : false; $explode = isset($atts['explode']) ? $atts['explode'] : ''; $implode = isset($atts['implode']) ? $atts['implode'] : ''; $new_value = array(); $value = array_filter((array) $value, 'strlen'); foreach ($value as $v) { if ($explode && strpos($v, $explode)) { $v = explode($explode, $v); } foreach ((array) $v as $n) { $n = str_replace(array(" ", ","), array("", "."), $n); $n = preg_replace('/\.(?=.*\.)/', '', $n); $n = floatval($n); if (!$decimal) { $num = explode('.', $n); $decimal = isset($num[1]) ? strlen($num[1]) : 0; } $n = number_format($n, $decimal, $dec_point, $thousands_sep); $new_value[] = $n; } unset($v); } $new_value = array_filter((array) $new_value, 'strlen'); return implode($implode, $new_value); } /** * [e2pdf-format-date] shortcode * * @param array $atts - Attributes * @param string $value - Content */ function e2pdf_format_date($atts = array(), $value = '') { $format = isset($atts['format']) ? $atts['format'] : get_option('date_format'); if (!$value) { return ''; } $value = date($format, strtotime($value)); return $value; } /** * [e2pdf-format-output] shortcode * * @param array $atts - Attributes * @param string $value - Content */ function e2pdf_format_output($atts = array(), $value = '') { $explode = isset($atts['explode']) ? $atts['explode'] : false; $implode = isset($atts['implode']) ? $atts['implode'] : ''; $output = isset($atts['output']) ? $atts['output'] : false; $filter = isset($atts['filter']) ? $atts['filter'] : false; $search = isset($atts['search']) ? explode("|||", $atts['search']) : array(); $ireplace = isset($atts['ireplace']) ? explode("|||", $atts['ireplace']) : array(); $replace = isset($atts['replace']) ? explode("|||", $atts['replace']) : array(); $filters = array(); if ($filter) { if (strpos($filter, ',')) { $filters = explode(',', $filter); } else { $filters = array_filter((array) $filter, 'strlen'); } } $new_value = array(); if (!empty($ireplace)) { $value = str_ireplace($search, $ireplace, $value); } elseif (!empty($replace)) { $value = str_replace($search, $replace, $value); } $value = array_filter((array) $value, 'strlen'); foreach ($value as $v) { if ($explode && strpos($v, $explode)) { $v = explode($explode, $v); } foreach ((array) $v as $n) { if (!empty($filters)) { foreach ((array) $filters as $sub_filter) { switch ($sub_filter) { case 'trim': $n = trim($n); break; case 'strip_tags': $n = strip_tags($n); break; case 'strtolower': if (function_exists('mb_strtolower')) { $n = mb_strtolower($n); } elseif (function_exists('strtolower')) { $n = strtolower($n); } break; case 'ucfirst': if (function_exists('mb_strtoupper') && function_exists('mb_strtolower')) { $fc = mb_strtoupper(mb_substr($n, 0, 1)); $n = $fc . mb_substr($n, 1); } else if (function_exists('ucfirst') && function_exists('strtolower')) { $n = ucfirst($n); } break; case 'strtoupper': if (function_exists('mb_strtoupper')) { $n = mb_strtoupper($n); } elseif (function_exists('strtoupper')) { $n = strtoupper($n); } break; case 'lines': $n = preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $n); break; default: break; } } } $new_value[] = $n; } unset($v); } if ($output) { $o_search = array(); $o_replace = array(); foreach ($new_value as $key => $value) { $o_search[] = "{" . $key . "}"; $o_replace[] = $value; } $output = str_replace($o_search, $o_replace, $output); return preg_replace('~(?:{/?)[^/}]+/?}~s', "", $output); } else { return implode($implode, $new_value); } } /** * [e2pdf-user] shortcode * * @param array $atts - Attributes */ function e2pdf_user($atts = array()) { $id = isset($atts['id']) ? $atts['id'] : false; $key = isset($atts['key']) ? $atts['key'] : false; $meta = isset($atts['meta']) && $atts['meta'] == 'true' ? true : false; $response = ''; if ($id) { $data_fields = array( 'ID', 'user_login', 'user_nicename', 'user_email', 'user_url', 'user_registered', 'display_name' ); $data_fields = apply_filters('e2pdf_model_shortcode_user_data_fields', $data_fields); if ($key) { if (in_array($key, $data_fields) && !$meta) { $user = get_userdata($id); if (isset($user->$key)) { $response = $user->$key; } } else { $response = get_user_meta($id, $key, true); } } else { $response = $id; } } return $response; } /** * [e2pdf-content] shortcode * * @param array $atts - Attributes * @param string $value - Content */ function e2pdf_content($atts = array(), $value = '') { $response = ''; $id = isset($atts['id']) ? $atts['id'] : false; $key = isset($atts['key']) ? $atts['key'] : false; if ($id && $key) { $post = get_post($id); if ($post) { if (isset($post->post_content) && $post->post_content) { $content = $this->helper->load('convert')->to_content_key($key, $post->post_content); remove_filter('the_content', 'wpautop'); $content = apply_filters('the_content', $content); add_filter('the_content', 'wpautop'); $content = str_replace("

", "

\r\n", $content); $response = $content; } } } elseif ($value) { $response = apply_filters('the_content', $value); } return $response; } /** * [e2pdf-exclude] shortcode * * @param array $atts - Attributes * @param string $value - Content */ function e2pdf_exclude($atts = array(), $value = '') { $apply = isset($atts['apply']) ? true : false; if ($apply) { $response = ''; } else { $response = apply_filters('the_content', $value); } return $response; } /** * [e2pdf-wp] shortcode * * @param array $atts - Attributes * @param string $value - Content */ function e2pdf_wp($atts = array(), $value = '') { $response = ''; $id = isset($atts['id']) ? $atts['id'] : false; $key = isset($atts['key']) ? $atts['key'] : false; $path = isset($atts['path']) ? $atts['path'] : false; $names = isset($atts['names']) && $atts['names'] == 'true' ? true : false; $explode = isset($atts['explode']) ? $atts['explode'] : '.'; $implode = isset($atts['implode']) ? $atts['implode'] : ', '; $attachment_url = isset($atts['attachment_url']) && $atts['attachment_url'] == 'true' ? true : false; $meta = isset($atts['meta']) && $atts['meta'] == 'true' ? true : false; $terms = isset($atts['terms']) && $atts['terms'] == 'true' ? true : false; $data_fields = array( 'id', 'post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_title', 'post_excerpt', 'post_status', 'comment_status', 'ping_status', 'post_password', 'post_name', 'to_ping', 'pinged', 'post_modified', 'post_modified_gmt', 'post_content_filtered', 'post_parent', 'guid', 'menu_order', 'post_type', 'post_mime_type', 'comment_count', 'filter', 'post_thumbnail' ); $data_fields = apply_filters('e2pdf_model_shortcode_wp_data_fields', $data_fields); if ($id && $key) { $post = get_post($id); if ($post) { if (in_array($key, $data_fields) && !$meta && !$terms) { if ($key == 'post_author') { $response = isset($post->post_author) && $post->post_author ? get_userdata($post->post_author)->user_nicename : ''; } elseif ($key == 'id' && isset($post->ID)) { $response = $post->ID; } elseif ($key == 'post_thumbnail' && isset($post->ID)) { $size = isset($atts['size']) ? $atts['size'] : 'thumbnail'; $response = get_the_post_thumbnail_url($post->ID, $size); } elseif ($key == 'post_content' && isset($post->post_content)) { $content = $post->post_content; if (false !== strpos($content, '[')) { $shortcode_tags = array( 'e2pdf-exclude', ); preg_match_all('@\[([^<>&/\[\]\x00-\x20=]++)@', $content, $matches); $tagnames = array_intersect($shortcode_tags, $matches[1]); if (!empty($tagnames)) { $pattern = $this->helper->load('shortcode')->get_shortcode_regex($tagnames); preg_match_all("/$pattern/", $content, $shortcodes); foreach ($shortcodes[0] as $key => $shortcode_value) { $shortcode = array(); $shortcode[1] = $shortcodes[1][$key]; $shortcode[2] = $shortcodes[2][$key]; $shortcode[3] = $shortcodes[3][$key]; $shortcode[4] = $shortcodes[4][$key]; $shortcode[5] = $shortcodes[5][$key]; $shortcode[6] = $shortcodes[6][$key]; $shortcode[3] .= " apply=\"true\""; $content = str_replace($shortcode_value, "[" . $shortcode['2'] . $shortcode['3'] . "]" . $shortcode['5'] . "[/" . $shortcode['2'] . "]", $content); } } } $content = apply_filters('the_content', $content); $content = str_replace("

", "

\r\n", $content); $response = $content; } elseif (isset($post->$key)) { $response = $post->$key; } } elseif ($terms) { if ($names) { $post_terms = wp_get_post_terms($id, $key, array('fields' => 'names')); if (!is_wp_error($post_terms) && is_array($post_terms)) { $response = implode($implode, $post_terms); } } else { $post_terms = wp_get_post_terms($id, $key); if (!is_wp_error($post_terms)) { $post_terms = json_decode(json_encode($post_terms), true); if ($path !== false) { $path_parts = explode($explode, $path); $path_value = &$post_terms; $found = true; foreach ($path_parts as $path_part) { if (isset($path_value[$path_part])) { $path_value = &$path_value[$path_part]; } else { $found = false; break; } } if ($found) { if ($attachment_url) { if (!is_array($path_value)) { $response = wp_get_attachment_url($path_value); } } else { if (is_array($path_value)) { $response = serialize($path_value); } else { $response = $path_value; } } } } else { $response = serialize($post_terms); } } } } else { $post_meta = get_post_meta($id, $key, true); if ($post_meta) { if (is_array($post_meta)) { if ($path !== false) { $path_parts = explode($explode, $path); $path_value = &$post_meta; $found = true; foreach ($path_parts as $path_part) { if (isset($path_value[$path_part])) { $path_value = &$path_value[$path_part]; } else { $found = false; break; } } if ($found) { if ($attachment_url) { if (!is_array($path_value)) { $response = wp_get_attachment_url($path_value); } } else { if (is_array($path_value)) { $response = serialize($path_value); } else { $response = $path_value; } } } } else { $response = serialize($post_meta); } } else { if ($attachment_url) { $response = wp_get_attachment_url($post_meta); } else { $response = $post_meta; } } } } } } return $response; } /** * [e2pdf-filter] shortcode * * @param array $atts - Attributes * @param string $value - Content */ function e2pdf_filter($atts = array(), $value = '') { if ($value) { $search = array( '[', ']', '\'', '"', '[', ']' ); $replace = array( '[', ']', ''', '"', '[', ']' ); $value = str_replace($search, $replace, $value); } return $value; } }