PluginProbe
PDF & Print by BestWebSoft – WordPress Posts and Pages PDF Generator Plugin / 1.7.3
PDF & Print by BestWebSoft – WordPress Posts and Pages PDF Generator Plugin v1.7.3
trunk 1.5 1.6 1.7 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 1.7.9 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9.0 1.9.1 All 71 releases
← All changes | pdf-print.php +1486 -1269 1.8.91.7.3 View file →
@@ -1,1269 +1,1486 @@
1 -<?php
2 -/*
3 -Plugin Name: PDF & Print by BestWebSoft
4 -Plugin URI: http://bestwebsoft.com/products/pdf-print/
5 -Description: Generate PDF files and print WordPress posts/pages. Customize document header/footer styles and appearance.
6 -Author: BestWebSoft
7 -Text Domain: pdf-print
8 -Domain Path: /languages
9 -Version: 1.8.9
10 -Author URI: http://bestwebsoft.com/
11 -License: GPLv2 or later
12 -*/
13 -
14 -/* © Copyright 2016 BestWebSoft ( http://support.bestwebsoft.com )
15 -
16 - This program is free software; you can redistribute it and/or modify
17 - it under the terms of the GNU General Public License, version 2, as
18 - published by the Free Software Foundation.
19 -
20 - This program is distributed in the hope that it will be useful,
21 - but WITHOUT ANY WARRANTY; without even the implied warranty of
22 - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 - GNU General Public License for more details.
24 -
25 - You should have received a copy of the GNU General Public License
26 - along with this program; if not, write to the Free Software
27 - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
28 -*/
29 -
30 -/* Add our own menu */
31 -if ( ! function_exists( 'pdfprnt_add_pages' ) ) {
32 - function pdfprnt_add_pages() {
33 - bws_general_menu();
34 - $settings = add_submenu_page( 'bws_panel', __( 'PDF & Print Settings', 'pdf-print' ), 'PDF & Print', 'manage_options', 'pdf-print.php', 'pdfprnt_settings_page' );
35 - add_action( "load-{$settings}", 'pdfprnt_add_tabs' );
36 - }
37 -}
38 -
39 -/**
40 - * Add help tab on settings page
41 - * @return void
42 - */
43 -if ( ! function_exists( 'pdfprnt_add_tabs' ) ) {
44 - function pdfprnt_add_tabs() {
45 - $args = array(
46 - 'id' => 'pdfprnt',
47 - 'section' => '200538669'
48 - );
49 - bws_help_tab( get_current_screen(), $args );
50 - }
51 -}
52 -
53 -if ( ! function_exists( 'pdfprnt_plugins_loaded' ) ) {
54 - function pdfprnt_plugins_loaded() {
55 - /* Internationalization, first(!) */
56 - load_plugin_textdomain( 'pdf-print', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
57 - }
58 -}
59 -
60 -/* Init plugin */
61 -if ( ! function_exists ( 'pdfprnt_init' ) ) {
62 - function pdfprnt_init() {
63 - global $pdfprnt_plugin_info;
64 - $plugin_basename = plugin_basename( __FILE__ );
65 -
66 - require_once( dirname( __FILE__ ) . '/bws_menu/bws_include.php' );
67 - bws_include_init( $plugin_basename );
68 -
69 - if ( empty( $pdfprnt_plugin_info ) ) {
70 - if ( ! function_exists( 'get_plugin_data' ) ) {
71 - require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
72 - }
73 - $pdfprnt_plugin_info = get_plugin_data( __FILE__ );
74 - }
75 -
76 - /* check WordPress version */
77 - bws_wp_min_version_check( $plugin_basename, $pdfprnt_plugin_info, '3.8', "3.3" );
78 -
79 - /* Get/Register and check settings for plugin */
80 - if ( ! is_admin() || ( isset( $_GET['page'] ) && 'pdf-print.php' == $_GET['page'] ) )
81 - pdfprnt_settings();
82 - }
83 -}
84 -
85 -if ( ! function_exists( 'pdfprnt_admin_init' ) ) {
86 - function pdfprnt_admin_init() {
87 - global $bws_plugin_info, $pdfprnt_plugin_info;
88 -
89 - if ( ! isset( $bws_plugin_info ) || empty( $bws_plugin_info ) )
90 - $bws_plugin_info = array( 'id' => '101', 'version' => $pdfprnt_plugin_info["Version"] );
91 - }
92 -}
93 -
94 -/* Register settings for plugin */
95 -if ( ! function_exists( 'pdfprnt_settings' ) ) {
96 - function pdfprnt_settings() {
97 - global $pdfprnt_options_array, $pdfprnt_plugin_info, $pdfprnt_options_defaults;
98 -
99 - if ( ! $pdfprnt_plugin_info ) {
100 - if ( ! function_exists( 'get_plugin_data' ) )
101 - require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
102 - $pdfprnt_plugin_info = get_plugin_data( __FILE__ );
103 - }
104 -
105 - /* Variable to verify performance number of once function. */
106 - $pdfprnt_default_post_types = array();
107 - /* Default post types of WordPress. */
108 - foreach ( get_post_types( array( 'public' => 1, 'show_ui' => 1, '_builtin' => true ), 'names' ) as $value )
109 - $pdfprnt_default_post_types[] = $value;
110 -
111 - $pdfprnt_options_defaults = array(
112 - 'plugin_option_version' => $pdfprnt_plugin_info["Version"],
113 - 'position' => 'top-right',
114 - 'position_search_archive' => 'top-right',
115 - 'position_custom' => 'right',
116 - 'show_btn_print' => 1,
117 - 'show_btn_pdf' => 1,
118 - 'show_btn_print_search_archive' => 1,
119 - 'show_btn_pdf_search_archive' => 1,
120 - 'use_theme_stylesheet' => 0,
121 - 'use_custom_styles' => 0,
122 - 'custom_styles' => "",
123 - 'tmpl_shorcode' => 1,
124 - 'use_types_posts' => $pdfprnt_default_post_types,
125 - 'show_print_window' => 0,
126 - 'additional_fonts' => 0,
127 - 'show_title' => 1,
128 - 'show_featured_image' => 0,
129 - 'first_install' => strtotime( "now" ),
130 - 'suggest_feature_banner' => 1
131 - );
132 -
133 - if ( ! get_option( 'pdfprnt_options_array' ) )
134 - add_option( 'pdfprnt_options_array', $pdfprnt_options_defaults );
135 -
136 - $pdfprnt_options_array = get_option( 'pdfprnt_options_array' );
137 -
138 - if ( ! isset( $pdfprnt_options_array['plugin_option_version'] ) || $pdfprnt_options_array['plugin_option_version'] != $pdfprnt_plugin_info["Version"] ) {
139 - if ( in_array( $pdfprnt_options_array['position_search_archive'], array( 'pdfprnt-right', 'pdfprnt-left' ) ) )
140 - $pdfprnt_options_array['position_search_archive'] = 'pdfprnt-left' == $pdfprnt_options_array['position_search_archive'] ? 'top-left' : 'top-right';
141 - if ( in_array( $pdfprnt_options_array['position_custom'], array( 'pdfprnt-right', 'pdfprnt-left' ) ) )
142 - $pdfprnt_options_array['position_custom'] = 'pdfprnt-left' == $pdfprnt_options_array['position_custom'] ? 'left' : 'right';
143 - $pdfprnt_options_array = array_merge( $pdfprnt_options_defaults, $pdfprnt_options_array );
144 - $pdfprnt_options_array['plugin_option_version'] = $pdfprnt_plugin_info["Version"];
145 - $pdfprnt_options_array['hide_premium_options'] = array();
146 - update_option( 'pdfprnt_options_array', $pdfprnt_options_array );
147 - }
148 - }
149 -}
150 -
151 -/**
152 - * Display <input type="radio"> on settings page
153 - **/
154 -if ( ! function_exists( 'pdfprnt_display_radio' ) ) {
155 - function pdfprnt_display_radio( $name, $selected ) {
156 - $positions_values = array(
157 - 'top-left' => __( 'Top Left', 'pdf-print' ),
158 - 'top-right' => __( 'Top Right', 'pdf-print' ),
159 - 'bottom-left' => __( 'Bottom Left', 'pdf-print' ),
160 - 'bottom-right' => __( 'Bottom Right', 'pdf-print' ),
161 - 'top-bottom-left' => __( 'Top & Bottom Left', 'pdf-print' ),
162 - 'top-bottom-right' => __( 'Top & Bottom Right', 'pdf-print' )
163 - );
164 - foreach ( $positions_values as $key => $value ) { ?>
165 - <label><input type="radio" name="<?php echo $name; ?>" value="<?php echo $key ?>"<?php echo $key == $selected ? ' checked="checked"' : ''; ?> />&nbsp;<?php echo $value; ?></label><br/>
166 - <?php }
167 - }
168 -}
169 -/* Add admin page */
170 -if ( ! function_exists ( 'pdfprnt_settings_page' ) ) {
171 - function pdfprnt_settings_page () {
172 - global $pdfprnt_options_array, $pdfprnt_plugin_info, $pdfprnt_options_defaults;
173 - $message = $error = "";
174 - $plugin_basename = plugin_basename( __FILE__ );
175 - if ( is_multisite() ) {
176 - switch_to_blog( 1 );
177 - $upload_dir = wp_upload_dir();
178 - restore_current_blog();
179 - } else {
180 - $upload_dir = wp_upload_dir();
181 - }
182 - $need_fonts_reload = false;
183 - $fonts_path = $upload_dir['basedir'] .'/pdf-print-fonts';
184 - if ( ! function_exists( 'get_plugins' ) )
185 - require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
186 - require_once( dirname( __FILE__ ) . '/includes/pro_banners.php' );
187 - $all_plugins = get_plugins();
188 - if ( isset( $_REQUEST['pdfprnt_form_submit'] ) && check_admin_referer( $plugin_basename, 'pdfprnt_nonce_name' ) ) {
189 - if ( isset( $_POST['bws_hide_premium_options'] ) ) {
190 - $hide_result = bws_hide_premium_options( $pdfprnt_options_array );
191 - $pdfprnt_options_array = $hide_result['options'];
192 - }
193 -
194 - $pdfprnt_options_array['position'] = isset( $_REQUEST['pdfprnt_position'] ) ? $_REQUEST['pdfprnt_position'] : 'top-right';
195 - $pdfprnt_options_array['position_search_archive'] = isset( $_REQUEST['pdfprnt_position_search_archive'] ) ? $_REQUEST['pdfprnt_position_search_archive'] : 'top-right';
196 - $pdfprnt_options_array['position_custom'] = isset( $_REQUEST['pdfprnt_position_custom'] ) ? $_REQUEST['pdfprnt_position_custom'] : 'right';
197 - $pdfprnt_options_array['use_theme_stylesheet'] = isset( $_REQUEST['pdfprnt_use_theme_stylesheet'] ) ? $_REQUEST['pdfprnt_use_theme_stylesheet'] : 0;
198 - $pdfprnt_options_array['show_btn_pdf'] = isset( $_REQUEST['pdfprnt_show_btn_pdf'] ) ? 1 : 0;
199 - $pdfprnt_options_array['show_btn_print'] = isset( $_REQUEST['pdfprnt_show_btn_print'] ) ? 1 : 0;
200 - $pdfprnt_options_array['show_btn_pdf_search_archive'] = isset( $_REQUEST['pdfprnt_show_btn_pdf_search_archive'] ) ? 1 : 0;
201 - $pdfprnt_options_array['show_btn_print_search_archive'] = isset( $_REQUEST['pdfprnt_show_btn_print_search_archive'] ) ? 1 : 0;
202 - $pdfprnt_options_array['tmpl_shorcode'] = isset( $_REQUEST['pdfprnt_tmpl_shorcode'] ) ? 1 : 0;
203 - $pdfprnt_options_array['show_print_window'] = isset( $_REQUEST['pdfprnt_show_print_window'] ) ? 1 : 0;
204 - $pdfprnt_options_array['use_types_posts'] = isset( $_REQUEST['pdfprnt_use_types_posts'] ) ? $_REQUEST['pdfprnt_use_types_posts'] : array();
205 - $pdfprnt_options_array['use_custom_styles'] = isset( $_REQUEST['pdfprnt_use_custom_styles'] ) ? 1 : 0;
206 - $pdfprnt_options_array['show_title'] = isset( $_REQUEST['pdfprnt_show_title'] ) ? 1 : 0;
207 - $pdfprnt_options_array['show_featured_image'] = isset( $_REQUEST['pdfprnt_show_featured_image'] ) ? 1 : 0;
208 - if ( isset( $_REQUEST['pdfprnt_custom_styles'] ) ) {
209 - $custom_styles = trim( strip_tags( stripslashes( $_REQUEST['pdfprnt_custom_styles'] ) ) );
210 - if ( 10000 < strlen( $custom_styles ) )
211 - $error .= __( 'You have entered too much text in the "edit styles" field.', 'pdf-print' );
212 - else
213 - $pdfprnt_options_array['custom_styles'] = $custom_styles;
214 - }
215 - update_option( 'pdfprnt_options_array', $pdfprnt_options_array );
216 - $message = __( 'Settings saved.', 'pdf-print' );
217 - }
218 - if ( ! is_dir( $fonts_path ) && $pdfprnt_options_array['additional_fonts'] != 0 ) { /* if "pdf-print-fonts" folder was removed somehow */
219 - $error = __( 'The folder "uploads/pdf-print-fonts" was removed', 'pdf-print' );
220 - $need_fonts_reload = true;
221 - } elseif (
222 - is_dir( $fonts_path ) &&
223 - $pdfprnt_options_array['additional_fonts'] != count( scandir( $fonts_path ) ) &&
224 - 0 < $pdfprnt_options_array['additional_fonts']
225 - ) { /* if some fonts was removed somehow from "pdf-print-fonts" folder */
226 - $error = __( 'Some fonts were removed from the folder "uploads/pdf-print-fonts"', 'pdf-print' );
227 - $need_fonts_reload = true;
228 - }
229 - if ( $need_fonts_reload ) {
230 - $error .= '.&nbsp;' . sprintf(
231 - __( 'You may need to reload fonts. For more info see %s', 'pdf-print' ),
232 - '<a href="http://bestwebsoft.com/products/pdf-print/faq" target="_blank">' . __( 'FAQ', 'pdf-print' ) . '</a>'
233 - );
234 - pdfprnt_update_option( -1, true );
235 - }
236 - if ( isset( $_REQUEST['pdfprnt_load_fonts'] ) ) {
237 - /* load additional fonts if javascript is disabled */
238 - $result = pdfprnt_load_fonts();
239 - if ( isset( $result['error'] ) ) {
240 - $error .= '&nbsp;' . $result['error'] . '.&nbsp;' .
241 - sprintf(
242 - __( 'You may need to reload fonts. For more info see %s', 'pdf-print' ),
243 - '<a href="http://bestwebsoft.com/products/pdf-print/faq" target="_blank">' . __( 'FAQ', 'pdf-print' ) . '</a>'
244 - );
245 - $need_fonts_reload = true;
246 - }
247 - if ( isset( $result['done'] ) )
248 - $message .= '&nbsp;' . $result['done'];
249 - }
250 - if ( isset( $_REQUEST['bws_restore_confirm'] ) && check_admin_referer( $plugin_basename, 'bws_settings_nonce_name' ) ) {
251 - $pdfprnt_options_array = $pdfprnt_options_defaults;
252 - update_option( 'pdfprnt_options_array', $pdfprnt_options_array );
253 - $message = __( 'All plugin settings were restored.', 'pdf-print' );
254 - }
255 -
256 - /* GO PRO */
257 - if ( isset( $_GET['action'] ) && 'go_pro' == $_GET['action'] ) {
258 - $go_pro_result = bws_go_pro_tab_check( $plugin_basename, 'pdfprnt_options_array' );
259 - if ( ! empty( $go_pro_result['error'] ) )
260 - $error = $go_pro_result['error'];
261 - elseif ( ! empty( $go_pro_result['message'] ) )
262 - $message = $go_pro_result['message'];
263 - } ?>
264 - <div class="wrap">
265 - <h1>PDF &amp; Print<?php if ( isset( $_GET['action'] ) && 'templates' == $_GET['action'] ) { ?> <a href="admin.php?page=pdf-print.php&amp;action=templates&amp;pdfprnt_tab_action=new" class="add-new-h2 pdfprnt_add_new_button"><?php _e( 'Add New Template', 'pdf-print' ); ?></a><?php } ?></h1>
266 - <h2 class="nav-tab-wrapper">
267 - <a class="nav-tab<?php if ( !isset( $_GET['action'] ) ) echo ' nav-tab-active'; ?>" href="admin.php?page=pdf-print.php"><?php _e( 'Settings', 'pdf-print' ); ?></a>
268 - <a class="nav-tab<?php if ( isset( $_GET['action'] ) && 'extra' == $_GET['action'] ) echo ' nav-tab-active'; ?>" href="admin.php?page=pdf-print.php&amp;action=extra"><?php _e( 'Extra settings', 'pdf-print' ); ?></a>
269 - <a class="nav-tab<?php if ( isset( $_GET['action'] ) && 'templates' == $_GET['action'] ) echo ' nav-tab-active'; ?>" href="admin.php?page=pdf-print.php&amp;action=templates"><?php _e( 'Templates', 'pdf-print' ); ?></a>
270 - <a class="nav-tab <?php if ( isset( $_GET['action'] ) && 'custom_code' == $_GET['action'] ) echo ' nav-tab-active'; ?>" href="admin.php?page=pdf-print.php&amp;action=custom_code"><?php _e( 'Custom code', 'pdf-print' ); ?></a>
271 - <a class="nav-tab bws_go_pro_tab<?php if ( isset( $_GET['action'] ) && 'go_pro' == $_GET['action'] ) echo ' nav-tab-active'; ?>" href="admin.php?page=pdf-print.php&amp;action=go_pro"><?php _e( 'Go PRO', 'pdf-print' ); ?></a>
272 - </h2>
273 - <div class="updated fade below-h2" <?php if ( empty( $message ) || "" != $error ) echo "style=\"display:none\""; ?>><p><strong><?php echo $message; ?></strong></p></div>
274 - <div class="error below-h2" <?php if ( "" == $error ) echo "style=\"display:none\""; ?>><p><strong><?php echo $error; ?></strong></p></div>
275 - <?php if ( ! empty( $hide_result['message'] ) ) { ?>
276 - <div class="updated fade below-h2"><p><strong><?php echo $hide_result['message']; ?></strong></p></div>
277 - <?php }
278 - $ttfontdata = plugin_dir_path( __FILE__ ) . 'mpdf/ttfontdata';
279 - if ( ! is_writable( $ttfontdata ) ) {
280 - if ( ! @chmod( $ttfontdata, 0755 ) ) { ?>
281 - <div class="error below-h2">
282 - <p>
283 - <strong>
284 - <?php _e( "Warning: Not enough rights for folder", 'pdf-print' ); ?>&nbsp;<i><?php echo $ttfontdata; ?></i>.<br />
285 - <?php _e( 'Please check and change permissions for your plugins` folder ( for folders - 755, for files - 644 ). For more info see', 'pdf-print' ); ?>&nbsp;
286 - <a href="https://codex.wordpress.org/Changing_File_Permissions" target="_blank"><?php _e( 'Changing File Permissions', 'pdf-print' ); ?></a>
287 - &nbsp;<?php _e( 'and', 'pdf-print' ); ?>&nbsp;
288 - <a href="http://bestwebsoft.com/products/pdf-print/faq" target="_blank"><?php _e( 'FAQ', 'pdf-print' ); ?></a>.
289 - </strong>
290 - </p>
291 - </div>
292 - <?php }
293 - }
294 - if ( ! isset( $_GET['action'] ) ) {
295 - if ( isset( $_REQUEST['bws_restore_default'] ) && check_admin_referer( $plugin_basename, 'bws_settings_nonce_name' ) ) {
296 - bws_form_restore_default_confirm( $plugin_basename );
297 - } else {
298 - bws_show_settings_notice(); ?>
299 - <form method="post" action="admin.php?page=pdf-print.php" id="pdfprnt_settings_form" class="bws_form">
300 - <table class="form-table pdfprnt_settings_table">
301 - <tr>
302 - <th scope="row"><?php _e( 'Types of posts that will be used in the plugin', 'pdf-print' ); ?></th>
303 - <td>
304 - <select name="pdfprnt_use_types_posts[]" multiple="multiple">
305 - <?php foreach ( get_post_types( array( 'public' => 1, 'show_ui' => 1 ), 'objects' ) as $key => $value ) {
306 - if ( 'attachment' != $key ) { ?>
307 - <option value="<?php echo $key; ?>" <?php if ( in_array( $key, $pdfprnt_options_array['use_types_posts'] ) ) echo 'selected="selected"'; ?>><?php echo $value->label; ?></option>
308 - <?php }
309 - } ?>
310 - </select>
311 - </td>
312 - </tr>
313 - </table>
314 - <table class="form-table pdfprnt_settings_table pdfprnt_buttons">
315 - <tr class="pdfprnt_table_head">
316 - <th scope="row"></th>
317 - <th><?php _e( 'Posts and pages', 'pdf-print' ); ?></th>
318 - <th><?php _e( 'Search and archive pages', 'pdf-print' ); ?></th>
319 - </tr>
320 - <tr class="pdfprnt_pdf_buttton">
321 - <th scope="row"><?php _e( 'Show PDF button', 'pdf-print' ); ?></th>
322 - <td>
323 - <input type="checkbox" name="pdfprnt_show_btn_pdf" <?php if ( 1 == $pdfprnt_options_array['show_btn_pdf'] ) echo 'checked="checked"'; ?> />
324 - </td>
325 - <td>
326 - <input type="checkbox" name="pdfprnt_show_btn_pdf_search_archive" <?php if ( 1 == $pdfprnt_options_array['show_btn_pdf_search_archive'] ) echo 'checked="checked"'; ?> />
327 - </td>
328 - </tr>
329 - <tr class="pdfprnt_print_buttton">
330 - <th scope="row"><?php _e( 'Show Print button', 'pdf-print' ); ?></th>
331 - <td>
332 - <input type="checkbox" name="pdfprnt_show_btn_print" <?php if ( 1 == $pdfprnt_options_array['show_btn_print'] ) echo 'checked="checked"'; ?> />
333 - </td>
334 - <td>
335 - <input type="checkbox" name="pdfprnt_show_btn_print_search_archive" <?php if ( 1 == $pdfprnt_options_array['show_btn_print_search_archive'] ) echo 'checked="checked"'; ?> />
336 - </td>
337 - </tr>
338 - <tr class="pdfprnt_position_buttton">
339 - <th scope="row"><?php _e( 'Position of buttons in the content', 'pdf-print' ); ?></th>
340 - <td>
341 - <fieldset><?php pdfprnt_display_radio( 'pdfprnt_position', $pdfprnt_options_array['position'] ); ?></fieldset>
342 - </td>
343 - <td>
344 - <fieldset><?php pdfprnt_display_radio( 'pdfprnt_position_search_archive', $pdfprnt_options_array['position_search_archive'] ); ?></fieldset>
345 - </td>
346 - </tr>
347 - </table>
348 - <div>
349 - <p>
350 - <?php _e( 'In order to use PDF and Print buttons in the custom post or page template, see', 'pdf-print' ); ?>&nbsp;<a href="http://bestwebsoft.com/products/pdf-print/faq/" target="_blank"><?php _e( 'FAQ', 'pdf-print' ); ?></a>
351 - </p>
352 - </div>
353 - <?php pdfprnt_pro_block( 'pdfprnt_image_block' ); ?>
354 - <table class="form-table pdfprnt_settings_table">
355 - <tr id="pdfprnt_load_fonts_button">
356 - <th scope="row"><?php _e( 'Load additional fonts', 'pdf-print' ); ?></th>
357 - <td style="position: relative;">
358 - <?php if ( class_exists( 'ZipArchive' ) ) {
359 - $fonts_button_title =
360 - 0 < $pdfprnt_options_array['additional_fonts'] || /* loading not called yet */
361 - $need_fonts_reload /* loading occurred with errors or neccessary files lacks */
362 - ?
363 - __( 'Reload Fonts', 'pdf-print' )
364 - :
365 - __( 'Load Fonts', 'pdf-print' ); ?>
366 - <input type="submit" class="button bws_no_bind_notice" value="<?php echo $fonts_button_title; ?>" name="pdfprnt_load_fonts" />&nbsp;<span id="pdfprnt_font_loader" class="pdfprnt_loader"><img src="<?php echo plugins_url( 'images/ajax-loader.gif', __FILE__ ); ?>" alt="loader" /></span><br />
367 - <input type="hidden" name="pdfprnt_action" value="pdfprnt_load_fonts" />
368 - <input type="hidden" name="pdfprnt_ajax_nonce" value="<?php echo wp_create_nonce( 'pdfprnt_ajax_nonce' ); ?>" />
369 - <?php if ( 0 < $pdfprnt_options_array['additional_fonts'] ) { ?>
370 - <span><?php _e( 'Additional fonts were loaded successfully', 'pdf-print' ); ?>.</span>
371 - <?php } else {
372 - if ( -1 == $pdfprnt_options_array['additional_fonts'] ) { ?>
373 - <span><?php _e( 'If you have some problems with your internet connection, please, try to load additional fonts manually. For more info see', 'pdf-print' ); ?>&nbsp;<a href="http://bestwebsoft.com/products/pdf-print/faq" target="_blank"><?php _e( 'FAQ', 'pdf-print' ); ?></a>.</span><br />
374 - <?php } ?>
375 - <span class="bws_info"><?php _e( 'You can load additional fonts, needed for the PDF creation. When creating the PDF-doc, this will allow automatic selection of fonts necessary for text, according to languages used in the content.', 'pdf-print' ); ?></span>
376 - <?php }
377 - } else { ?>
378 - <span style="color: red"><strong><?php _e( 'WARNING', 'pdf-print' ); ?>:&nbsp;</strong><?php _e( 'Class ZipArchive is not installed on your server. It is impossible to load additional fonts.', 'pdf-print' ); ?></span>
379 - <?php } ?>
380 - </td>
381 - </tr>
382 - <tr>
383 - <th scope="row"><?php _e( 'Use the theme stylesheet or plugin default style', 'pdf-print' ); ?></th>
384 - <td>
385 - <select name="pdfprnt_use_theme_stylesheet">
386 - <option value="0" <?php if ( 0 == $pdfprnt_options_array['use_theme_stylesheet'] ) echo 'selected="selected"'; ?>><?php echo __( 'Default stylesheet', 'pdf-print' ); ?></option>
387 - <option value="1" <?php if ( 1 == $pdfprnt_options_array['use_theme_stylesheet'] ) echo 'selected="selected"'; ?>><?php echo __( 'Current theme stylesheet', 'pdf-print' ); ?></option>
388 - </select>
389 - </td>
390 - </tr>
391 - <tr>
392 - <th scope="row"><?php _e( 'Add custom styles', 'pdf-print' ); ?></th>
393 - <td>
394 - <input value="1" type="checkbox" name="pdfprnt_use_custom_styles" <?php if ( 1 == $pdfprnt_options_array['use_custom_styles'] ) echo 'checked="checked"'; ?> />
395 - <div class="bws_help_box dashicons dashicons-editor-help">
396 - <div class="bws_hidden_help_text" style="min-width: 200px;">
397 - <p>
398 - <?php _e( 'Additional CSS-styles will be applied to your PDF/Print document', 'pdf-print' ); ?>.<br/>
399 - <?php _e( 'Learn more about', 'pdf-print' ); ?>&nbsp;<a href="http://www.w3schools.com/css/" target="_blank">CSS</a>.
400 - </p>
401 - </div>
402 - </div>
403 - </td>
404 - </tr>
405 - <tr class="pdfprnt_custom_styles"<?php if ( 1 != $pdfprnt_options_array['use_custom_styles'] ) echo ' style="display: none;"'; ?>>
406 - <th scope="row"></th>
407 - <td>
408 - <textarea id="pdfprnt_custom_styles" name="pdfprnt_custom_styles" maxlength="10000" cols="50" rows="5"><?php echo $pdfprnt_options_array['custom_styles']; ?></textarea><br />
409 - <span class="bws_info"><?php _e( 'You can enter up to 10,000 characters', 'pdf-print' ); ?>.</span>
410 -
411 - </td>
412 - </tr>
413 - <tr>
414 - <th scope="row"><?php _e( 'Display additional elements', 'pdf-print' ); ?></th>
415 - <td><fieldset>
416 - <label><input type="checkbox" name="pdfprnt_show_title" <?php if ( 1 == $pdfprnt_options_array['show_title'] ) echo 'checked="checked"'; ?> />&nbsp;<?php _e( 'Title', 'pdf-print' ); ?></label><br/>
417 - <label><input type="checkbox" name="pdfprnt_show_featured_image" <?php if ( 1 == $pdfprnt_options_array['show_featured_image'] ) echo 'checked="checked"'; ?> />&nbsp;<?php _e( 'Featured image', 'pdf-print' ); ?></label>
418 - </fieldset></td>
419 - </tr>
420 - <tr>
421 - <th scope="row">
422 - <?php _e( 'Settings for shortcodes', 'pdf-print' ); ?>
423 - </th>
424 - <td>
425 - <label><input type="checkbox" name="pdfprnt_tmpl_shorcode" <?php if ( 1 == $pdfprnt_options_array['tmpl_shorcode'] ) echo 'checked="checked"'; ?> /> <span><?php _e( 'Do!', 'pdf-print' ); ?></span></label>
426 - </td>
427 - </tr>
428 - <tr>
429 - <th scope="row"><?php _e( 'Show the print window', 'pdf-print' ); ?></th>
430 - <td>
431 - <input type="checkbox" name="pdfprnt_show_print_window" <?php if ( 1 == $pdfprnt_options_array['show_print_window'] ) echo 'checked="checked"'; ?> />
432 - </td>
433 - </tr>
434 - </table>
435 - <?php pdfprnt_pro_block( 'pdfprnt_woocommerce_block' ); ?>
436 - <input type="hidden" name="pdfprnt_form_submit" value="1" />
437 - <p class="submit">
438 - <input type="submit" id="bws-submit-button" class="button-primary" value="<?php _e( 'Save Changes', 'pdf-print' ); ?>" />
439 - </p>
440 - <?php wp_nonce_field( $plugin_basename, 'pdfprnt_nonce_name' ); ?>
441 - </form>
442 - <?php bws_form_restore_default_settings( $plugin_basename );
443 - }
444 - } else {
445 - switch ( $_GET['action'] ) {
446 - case 'extra':
447 - case 'templates':
448 - $new = isset( $_GET['pdfprnt_tab_action'] ) && 'new' == $_GET['pdfprnt_tab_action'] ? '_new' : '';
449 - pdfprnt_pro_block( "pdfprnt_{$_GET['action']}{$new}_block", false );
450 - break;
451 - case 'custom_code':
452 - bws_custom_code_tab();
453 - case 'go_pro':
454 - $show = bws_hide_premium_options_check( $pdfprnt_options_array ) ? true : false;
455 - bws_go_pro_tab_show(
456 - $show,
457 - $pdfprnt_plugin_info,
458 - $plugin_basename,
459 - 'pdf-print.php',
460 - 'pdf-print-pro.php',
461 - 'pdf-print-pro/pdf-print-pro.php',
462 - 'pdf-print',
463 - 'd9da7c9c2046bed8dfa38d005d4bffdb',
464 - '101',
465 - isset( $go_pro_result['pro_plugin_is_activated'] )
466 - );
467 - break;
468 - default:
469 - break;
470 - }
471 - }
472 - bws_plugin_reviews_block( $pdfprnt_plugin_info['Name'], 'pdf-print' ); ?>
473 - </div>
474 - <?php }
475 -}
476 -
477 -/* Positioning buttons in the page */
478 -if ( ! function_exists( 'pdfprnt_content' ) ) {
479 - function pdfprnt_content( $content ) {
480 - global $pdfprnt_options_array, $post;
481 -
482 - if ( is_admin() || is_feed() || is_search() || is_archive() || is_category() || is_tax() || is_tag() || is_author() || ! in_array( $post->post_type, $pdfprnt_options_array['use_types_posts'] ) )
483 - return $content;
484 -
485 - if ( 1 == $pdfprnt_options_array['show_btn_pdf'] || 1 == $pdfprnt_options_array['show_btn_print'] ) {
486 - $str = '<div class="pdfprnt-' . $pdfprnt_options_array['position'] . '">';
487 - if ( 1 == $pdfprnt_options_array['show_btn_pdf'] ) {
488 - if ( ! is_front_page () )
489 - $permalink = add_query_arg( 'print' , 'pdf' , get_permalink( $post->ID ) );
490 - else
491 - $permalink = add_query_arg( 'print' , 'pdf' , get_permalink() . '?page_id=' . $post->ID );
492 - $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/pdf.png', __FILE__ ) . '" alt="image_pdf" title="View PDF" /></a>';
493 - }
494 - if ( 1 == $pdfprnt_options_array['show_btn_print'] ) {
495 - if ( ! is_front_page () )
496 - $permalink = add_query_arg( 'print' , 'print' , get_permalink( $post->ID ) );
497 - else
498 - $permalink = add_query_arg( 'print' , 'print' , get_permalink() . '?page_id=' . $post->ID );
499 - $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/print.gif', __FILE__ ) . '" alt="image_print" title="Print Content" /></a>';
500 - }
501 - $str .= '</div>';
502 -
503 - if ( 'top-left' == $pdfprnt_options_array['position'] || 'top-right' == $pdfprnt_options_array['position'] )
504 - $content = $str . $content;
505 - elseif ( 'bottom-left' == $pdfprnt_options_array['position'] || 'bottom-right' == $pdfprnt_options_array['position'] )
506 - $content = $content . $str;
507 - else
508 - $content = $str . $content . $str;
509 - }
510 - return $content;
511 - }
512 -}
513 -
514 -/* Output buttons for search or archive pages */
515 -if ( ! function_exists( 'pdfprnt_show_buttons_search_archive' ) ) {
516 - function pdfprnt_show_buttons_search_archive( $content ) {
517 - global $wp_query;
518 - /* make sure that we display pdf/print buttons only with main loop */
519 - if ( is_main_query() && $content === $wp_query ) {
520 - global $pdfprnt_options_array, $wp, $posts, $pdfprnt_show_archive_start, $pdfprnt_show_archive_end;
521 - $loop_position = current_filter();
522 - if ( ! ( 1 == $pdfprnt_options_array['show_btn_pdf_search_archive'] || 1 == $pdfprnt_options_array['show_btn_print_search_archive'] ) )
523 - return;
524 - /* Check for existence the type of posts. */
525 - $is_return = true;
526 - foreach ( $posts as $post ) {
527 - if ( in_array( $post->post_type, $pdfprnt_options_array['use_types_posts'] ) ) {
528 - $is_return = false;
529 - break;
530 - }
531 - }
532 - if ( $is_return )
533 - return;
534 -
535 - if ( ( 'loop_start' == $loop_position && $pdfprnt_show_archive_start == 1 ) || ( 'loop_end' == $loop_position && $pdfprnt_show_archive_end == 1 ) )
536 - return;
537 -
538 - $current_url = set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
539 -
540 - $str = '<div class="pdfprnt-' . $pdfprnt_options_array['position_search_archive'] . '">';
541 - if ( 1 == $pdfprnt_options_array['show_btn_pdf_search_archive'] ) {
542 - $permalink = add_query_arg( 'print' , 'pdf-search' , $current_url );
543 - $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/pdf.png', __FILE__ ) . '" alt="image_pdf" title="Print PDF" /></a>';
544 - }
545 - if ( 1 == $pdfprnt_options_array['show_btn_print_search_archive'] ) {
546 - $permalink = add_query_arg( 'print' , 'print-search' , $current_url );
547 - $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/print.gif', __FILE__ ) . '" alt="image_print" title="Print Content" /></a>';
548 - }
549 - $str .= '</div>';
550 - echo $str;
551 - if ( 'loop_start' == $loop_position )
552 - $pdfprnt_show_archive_start++;
553 - elseif ( 'loop_end' == $loop_position )
554 - $pdfprnt_show_archive_end++;
555 - }
556 - }
557 -}
558 -
559 -/**
560 - * Add buttons before or after the loop
561 - */
562 -if ( ! function_exists( 'pdfprnt_auto_show_buttons_search_archive' ) ) {
563 - function pdfprnt_auto_show_buttons_search_archive() {
564 - if ( is_search() || is_archive() || is_category() || is_tax() || is_tag() || is_author() ) {
565 - global $pdfprnt_options_array, $pdfprnt_show_archive_start, $pdfprnt_show_archive_end;
566 - $pdfprnt_show_archive_start = $pdfprnt_show_archive_end = 0;
567 - if ( in_array( $pdfprnt_options_array['position_search_archive'], array( 'top-left', 'top-right' ) ) ) {
568 - add_action( 'loop_start', 'pdfprnt_show_buttons_search_archive' );
569 - } elseif ( in_array( $pdfprnt_options_array['position_search_archive'], array( 'bottom-left', 'bottom-right' ) ) ) {
570 - add_action( 'loop_end', 'pdfprnt_show_buttons_search_archive' );
571 - } else {
572 - add_action( 'loop_start', 'pdfprnt_show_buttons_search_archive' );
573 - add_action( 'loop_end', 'pdfprnt_show_buttons_search_archive' );
574 - }
575 - }
576 - }
577 -}
578 -
579 -/**
580 - * Output buttons of page for BWS Portfolio plugin
581 - * @deprecated since 1.8.4
582 - */
583 -if( ! function_exists( 'pdfprnt_show_buttons_for_bws_portfolio' ) ) {
584 - function pdfprnt_show_buttons_for_bws_portfolio() {
585 - return pdfprnt_show_buttons_for_custom_post_type();
586 - }
587 -}
588 -
589 -/**
590 - * Output buttons of post for BWS Portfolio plugin
591 - * @deprecated since 1.8.4
592 - */
593 -if ( ! function_exists( 'pdfprnt_show_buttons_for_bws_portfolio_post' ) ) {
594 - function pdfprnt_show_buttons_for_bws_portfolio_post() {
595 - return pdfprnt_show_buttons_for_custom_post_type();
596 - }
597 -}
598 -
599 -
600 -/**
601 - * Display plugin buttons via action call
602 - * @param string $where where to display
603 - * @param mixed $user_query WP_Query parameters
604 - */
605 -if ( ! function_exists( 'pdfprnt_display_plugin_butttons' ) ) {
606 - function pdfprnt_display_plugin_butttons( $where = 'top', $user_query = '' ) {
607 - global $pdfprnt_options_array;
608 - if ( preg_match( "|" . $where . "|", $pdfprnt_options_array['position'] ) || empty( $where ) )
609 - echo pdfprnt_show_buttons_for_custom_post_type( $user_query );
610 - }
611 -}
612 -
613 -/* Output buttons of page for custom post type */
614 -if ( ! function_exists( 'pdfprnt_show_buttons_for_custom_post_type' ) ) {
615 - function pdfprnt_show_buttons_for_custom_post_type( $user_query = '' ) {
616 - global $pdfprnt_options_array, $post, $wp, $posts;
617 - if (
618 - /* not display anything if displaying buttons for post and pages is disabled */
619 - ( ! ( 1 == $pdfprnt_options_array['show_btn_pdf'] || 1 == $pdfprnt_options_array['show_btn_print'] ) ) ||
620 - /* not display anything if we have wrong $user_query */
621 - ( ! ( is_array( $user_query ) || is_string( $user_query ) ) )
622 - )
623 - return;
624 -
625 - $current_url = set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
626 - $is_return = true;
627 -
628 - if ( empty( $user_query ) ) { /* set necessary values of parameters for pdf/print buttons */
629 - $nothing_else = false;
630 - if ( is_search() || is_archive() || is_category() || is_tax() || is_tag() || is_author() ) { /* search, cattegories, archives */
631 - foreach ( $posts as $value ) {
632 - if ( in_array( $value->post_type, $pdfprnt_options_array['use_types_posts'] ) ) {
633 - $is_return = false;
634 - break;
635 - }
636 - }
637 - if ( $is_return )
638 - return;
639 - $pdf_query_parameter = 'pdf-search';
640 - $print_query_parameter = 'print-search';
641 - } elseif ( is_page() ) { /* pages */
642 - if ( in_array( 'page', $pdfprnt_options_array['use_types_posts'] ) ) {
643 - $nothing_else = true;
644 - } else {
645 - return;
646 - }
647 - } elseif ( is_single() ) { /* posts */
648 - $post_type = get_post_type( $post->ID );
649 - if ( in_array( $post_type, $pdfprnt_options_array['use_types_posts'] ) ) {
650 - $nothing_else = true;
651 - } else {
652 - return;
653 - }
654 - } else {
655 - $nothing_else = true;
656 - }
657 - if ( $nothing_else ) {
658 - $pdf_query_parameter = 'pdf';
659 - $print_query_parameter = 'print';
660 - }
661 - } else {
662 - $custom_query = new WP_Query( $user_query );
663 - $current_url = add_query_arg( $custom_query->query, '', $current_url );
664 - /* Check for existence the type of posts. */
665 - if ( ! empty( $custom_query->posts) ) {
666 - foreach ( $custom_query->posts as $post ) {
667 - if ( in_array( get_post_type( $post ), $pdfprnt_options_array['use_types_posts'] ) ) {
668 - $is_return = false;
669 - break;
670 - }
671 - }
672 - }
673 - if ( $is_return )
674 - return;
675 - $pdf_query_parameter = 'pdf-custom';
676 - $print_query_parameter = 'print-custom';
677 - }
678 -
679 - $str = '<div class="pdfprnt-' . $pdfprnt_options_array['position'] . '">';
680 - if ( 1 == $pdfprnt_options_array['show_btn_pdf'] ) {
681 - $permalink = add_query_arg( 'print' , $pdf_query_parameter , $current_url );
682 - $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/pdf.png', __FILE__ ) . '" alt="image_pdf" title="Print PDF" /></a>';
683 - }
684 - if ( 1 == $pdfprnt_options_array['show_btn_print'] ) {
685 - $permalink = add_query_arg( 'print' , $print_query_parameter , $current_url );
686 - $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/print.gif', __FILE__ ) . '" alt="image_print" title="Print Content" /></a>';
687 - }
688 - $str .= '</div>';
689 - return $str;
690 - }
691 -}
692 -
693 -/* Add links */
694 -if ( ! function_exists( 'pdfprnt_action_links' ) ) {
695 - function pdfprnt_action_links( $links, $file ) {
696 - if ( ! is_network_admin() ) {
697 - $base = plugin_basename( __FILE__ );
698 - if ( $file == $base ) {
699 - $settings_link = '<a href="admin.php?page=pdf-print.php">' . __( 'Settings', 'pdf-print' ) . '</a>';
700 - array_unshift( $links, $settings_link );
701 - }
702 - }
703 - return $links;
704 - }
705 -}
706 -
707 -/* Add links */
708 -if ( ! function_exists( 'pdfprnt_links' ) ) {
709 - function pdfprnt_links( $links, $file ) {
710 - $base = plugin_basename( __FILE__ );
711 - if ( $file == $base ) {
712 - if ( ! is_network_admin() )
713 - $links[] = '<a href="admin.php?page=pdf-print.php">' . __( 'Settings', 'pdf-print' ) . '</a>';
714 - $links[] = '<a href="http://wordpress.org/plugins/pdf-print/faq/" target="_blank">' . __( 'FAQ', 'pdf-print' ) . '</a>';
715 - $links[] = '<a href="http://support.bestwebsoft.com">' . __( 'Support', 'pdf-print' ) . '</a>';
716 - }
717 - return $links;
718 - }
719 -}
720 -
721 -/* Add stylesheets */
722 -if ( ! function_exists ( 'pdfprnt_admin_head' ) ) {
723 - function pdfprnt_admin_head() {
724 - $is_plugin_options = isset( $_GET['page'] ) && $_GET['page'] == "pdf-print.php";
725 -
726 - if ( ! is_admin() || $is_plugin_options )
727 - wp_enqueue_style( 'pdfprnt_stylesheet', plugins_url( 'css/style.css', __FILE__ ) );
728 -
729 - if ( $is_plugin_options ) {
730 - bws_plugins_include_codemirror();
731 - wp_enqueue_script( 'pdfprnt_script', plugins_url( 'js/script.js', __FILE__ ) );
732 - wp_localize_script( 'pdfprnt_script', 'pdfprnt_var', array(
733 - 'loading_fonts' => __( 'Loading of fonts. It might take a several minutes', 'pdf-print' ),
734 - 'ajax_nonce' => wp_create_nonce( 'pdfprnt_ajax_nonce' ),
735 - 'need_reload' => '.&nbsp;' . sprintf(
736 - __( 'You may need to reload fonts. For more info see %s', 'pdf-print' ),
737 - '<a href="http://bestwebsoft.com/products/pdf-print/faq" target="_blank">' . __( 'FAQ', 'pdf-print' ) . '</a>'
738 - )
739 - )
740 - );
741 -
742 -
743 - }
744 - }
745 -}
746 -/* Remove inline 'font-family' and 'font' styles from content */
747 -if ( ! function_exists( 'pdfprnt_preg_replace' ) ) {
748 - function pdfprnt_preg_replace( $patterns, $content ) {
749 - foreach( $patterns as $pattern ) {
750 - $content = preg_replace( "/" . $pattern . "(.*?);/", "", $content );
751 - preg_match_all( "~style=(\"\'?)~", $content, $quotes );/* get array with quotes */
752 - if ( isset( $quotes[1] ) && ! empty( $quotes[1] ) ) {
753 - foreach ( $quotes[1] as $quote ) {
754 - preg_match_all( "~style=" . $quote . "(.*?)" . $quote . "~", $content, $styles );
755 - if ( ! empty( $styles[1] ) ) {
756 - foreach ( $styles[1] as $style ) {
757 - if ( preg_match( "/" . $pattern . "/", $style ) )
758 - $content = preg_replace( "/" . $style . "/", "", $content );
759 - }
760 -
761 - }
762 - }
763 - }
764 - }
765 - return $content;
766 - }
767 -}
768 -
769 -/* Generate templates for pdf file or print */
770 -if ( ! function_exists( 'pdfprnt_generate_template' ) ) {
771 - function pdfprnt_generate_template( $content, $isprint = false ) {
772 - global $pdfprnt_options_array;
773 - $html =
774 - '<html>
775 - <head>';
776 - if ( 1 == $pdfprnt_options_array['use_theme_stylesheet'] ) {
777 - /* remove 'font-family' and 'font' styles from theme css-file if additional fonts not loaded */
778 - if ( 0 == $pdfprnt_options_array['additional_fonts'] ) {
779 - $css = file_get_contents( get_bloginfo( 'stylesheet_url' ) );
780 - if ( ! empty( $css['body'] ) )
781 - $html .= '<style type="text/css">' . preg_replace( "/(font:(.*?);)|(font-family(.*?);)/", "", $css['body'] ) . '</style>';
782 - } else {
783 - $html .= '<link type="text/css" rel="stylesheet" href="' . get_bloginfo( 'stylesheet_url' ) . '" media="all" />';
784 - }
785 - } else {
786 - $html .= '<link type="text/css" rel="stylesheet" href="' . plugins_url( 'css/default.css', __FILE__ ) . '" media="all" />';
787 - }
788 - $html .= pdfprnt_additional_styles( $isprint );
789 - if ( 1 == $pdfprnt_options_array['use_custom_styles'] && ! empty( $pdfprnt_options_array['custom_styles'] ) )
790 - $html .= '<style type="text/css">' . $pdfprnt_options_array['custom_styles'] . '</style>';
791 - if ( $isprint && 1 == $pdfprnt_options_array['show_print_window'] )
792 - $html .= '<script>window.onload = function(){ window.print(); };</script>';
793 - $html .=
794 - '</head>
795 - <body' . ( $isprint ? ' class="pdfprnt_print"' : '' ) . '>';
796 - /* Remove inline 'font-family' and 'font' styles from content */
797 - if ( 0 == $pdfprnt_options_array['additional_fonts'] )
798 - $content = pdfprnt_preg_replace( array( "font-family", "font:" ), $content );
799 - $html .= $content .
800 - '</body>
801 - </html>';
802 - return $html;
803 - }
804 -}
805 -
806 -if ( ! function_exists( 'pdfprnt_additional_styles' ) ) {
807 - function pdfprnt_additional_styles( $isprint ) {
808 - $styles = apply_filters( 'bwsplgns_add_pdf_print_styles', array() );
809 - $html = '';
810 - if ( ! empty( $styles ) && is_array( $styles ) ) {
811 - $url = get_bloginfo( 'url' );
812 - require_once( ABSPATH . 'wp-admin/includes/file.php' );
813 - $path = get_home_path();
814 - foreach ( $styles as $style ) {
815 - if ( ! empty( $style[0] ) && file_exists( $path . $style[0] ) ) {
816 - /* if "get print" */
817 - if ( $isprint ) {
818 - if( ( isset( $style[1] ) && 'print' == $style[1] ) || ! isset( $style[1] ) )
819 - $html .= '<link type="text/css" rel="stylesheet" href="' . $url . '/' . $style[0] . '" media="all" />';
820 - /* if "get pdf" */
821 - } else {
822 - if ( ( isset( $style[1] ) && 'pdf' == $style[1] ) || ! isset( $style[1] ) )
823 - $html .= '<link type="text/css" rel="stylesheet" href="' . $url . '/' . $style[0] . '" media="all" />';
824 - }
825 - }
826 - }
827 - }
828 - return $html;
829 - }
830 -}
831 -
832 -/* Output print page or pdf document and include plugin script */
833 -if ( ! function_exists( 'pdfprnt_print' ) ) {
834 - function pdfprnt_print( $query ) {
835 - global $pdfprnt_options_array, $posts, $post;
836 -
837 - if ( ! $print = get_query_var( 'print' ) )
838 - return;
839 -
840 - remove_all_filters( 'the_content' );
841 - add_filter( 'the_content', 'capital_P_dangit', 11 );
842 - add_filter( 'the_content', 'wptexturize' );
843 - add_filter( 'the_content', 'convert_smilies' );
844 - add_filter( 'the_content', 'convert_chars' );
845 - add_filter( 'the_content', 'wpautop' );
846 - if ( ! 0 == $pdfprnt_options_array['tmpl_shorcode'] ) {
847 - add_filter( 'the_content', 'do_shortcode' );
848 - $pattern = false;
849 - } else {
850 - $pattern = get_shortcode_regex();
851 - }
852 -
853 - $doc_type = explode( '-', $print );
854 -
855 - if ( ! is_array( $doc_type ) )
856 - return;
857 -
858 - /* for search or archives */
859 - if ( isset( $doc_type[1] ) ) {
860 - switch ( $doc_type[1] ) {
861 - case 'custom':
862 - $url_data = parse_url( $_SERVER['REQUEST_URI'] );
863 - parse_str( $url_data['query'], $args );
864 - unset( $args['print'] );
865 - if ( ! empty( $args ) )
866 - $posts = query_posts( $args );
867 - break;
868 - case 'search':
869 - default:
870 - break;
871 - }
872 - /* for single posts or pages */
873 - } elseif (
874 - ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] == get_home_url() . '/?print=' . $doc_type[0]
875 - &&
876 - 'page' == get_option( 'show_on_front' )
877 - ) {
878 - $post_id = get_option( 'page_on_front' );
879 - $posts = query_posts( array( 'page_id' => $post_id ) );
880 - } else {
881 - $posts = array( $post );
882 - }
883 - switch( $doc_type[0] ) {
884 - case 'pdf':
885 -
886 - /* set path to directory with fonts */
887 - if ( ! ( 0 == $pdfprnt_options_array['additional_fonts'] && defined( "_MPDF_SYSTEM_TTFONTS" ) ) ) {
888 - if ( is_multisite() ) {
889 - switch_to_blog( 1 );
890 - $upload_dir = wp_upload_dir();
891 - restore_current_blog();
892 - } else {
893 - $upload_dir = wp_upload_dir();
894 - }
895 - define( '_MPDF_SYSTEM_TTFONTS', $upload_dir['basedir'] .'/pdf-print-fonts/' );
896 - }
897 -
898 - /* prepare data */
899 - $titles = $authors = array();
900 - $default_font = 0 == $pdfprnt_options_array['additional_fonts'] ? 'dejavusansmono' : '';
901 - $last = count( $posts );
902 - $i = 1;
903 - $html = '<div id="content">';
904 - foreach ( $posts as $p ) {
905 -
906 - if ( ! in_array( get_post_type( $p ), $pdfprnt_options_array['use_types_posts'] ) )
907 - continue;
908 -
909 - $titles[] = $p->post_title;
910 - $user_info = get_userdata( $p->post_author );
911 - $authors[] = $user_info->display_name;
912 - $title = 1 == $pdfprnt_options_array['show_title'] ? '<div class="entry-header"><h1 class="entry-title"><a href="' . get_permalink( $p->ID ) . '">' . $p->post_title . '</a></h1></div><br/>' : '';
913 - $image = 1 == $pdfprnt_options_array['show_featured_image'] && has_post_thumbnail( $p->ID ) ? '<div class="entry-thumbnail">' . get_the_post_thumbnail( $p->ID ) . '</div>' : '';
914 - /* replacing shortcodes to an empty string which were added to the content */
915 - if ( $pattern && preg_match_all( '/'. $pattern .'/s', $p->post_content, $matches ) ) {
916 - foreach ( array_unique( $matches[0] ) as $value )
917 - $p->post_content = str_replace( $value, "", $p->post_content );
918 - }
919 - $html .=
920 - '<div class="post">' .
921 - $image .
922 - $title .
923 - '<div class="entry-content">' . apply_filters( 'bwsplgns_get_pdf_print_content', apply_filters( 'the_content', $p->post_content ), $p ) . '</div>
924 - </div>';
925 - if ( $i != $last ) {
926 - $html .= '<br/><hr/><br/>';
927 - $i ++;
928 - }
929 - }
930 - $html .= '</div>';
931 - $titles = array_unique( $titles );
932 - $authors = array_unique( $authors );
933 -
934 - /* generate PDF-document */
935 - include ( 'mpdf/mpdf.php' );
936 - $mpdf = new mPDF( '+aCJK', 'A4', 0, $default_font );
937 - $mpdf->allow_charset_conversion = true;
938 - $mpdf->charset_in = get_bloginfo( 'charset' );
939 - if ( 0 != $pdfprnt_options_array['additional_fonts'] ) {
940 - $mpdf->autoScriptToLang = true;
941 - $mpdf->autoLangToFont = true;
942 - $mpdf->baseScript = 1;
943 - $mpdf->autoVietnamese = true;
944 - $mpdf->autoArabic = true;
945 - }
946 - if ( is_rtl() )
947 - $mpdf->SetDirectionality( 'rtl' );
948 - $mpdf->SetTitle( implode( ',', $titles ) );
949 - $mpdf->SetAuthor( implode( ',', $authors ) );
950 - $mpdf->SetSubject( get_bloginfo( 'blogdescription' ) );
951 - $mpdf->WriteHTML( pdfprnt_generate_template( $html ) );
952 - $mpdf->Output();
953 - break;
954 - case 'print':
955 -
956 - $last = count( $posts );
957 - $i = 1;
958 - $html = '<div id="content">';
959 - foreach ( $posts as $p ) {
960 -
961 - if ( ! in_array( get_post_type( $p ), $pdfprnt_options_array['use_types_posts'] ) )
962 - continue;
963 -
964 - $title = 1 == $pdfprnt_options_array['show_title'] ? '<div class="entry-header"><h1 class="entry-title">' . $p->post_title . '</h1></div><br/>' : '';
965 - $image = 1 == $pdfprnt_options_array['show_featured_image'] && has_post_thumbnail( $p->ID ) ? '<div class="entry-thumbnail">' . get_the_post_thumbnail( $p->ID ) . '</div>' : '';
966 - /* replacing shortcodes to an empty string which were added to the content */
967 - if ( $pattern && preg_match_all( '/'. $pattern .'/s', $p->post_content, $matches ) ) {
968 - foreach ( array_unique( $matches[0] ) as $value )
969 - $p->post_content = str_replace( $value, "", $p->post_content );
970 - }
971 - $html .=
972 - '<div class="post">' .
973 - $image .
974 - $title .
975 - '<div class="entry-content">' . apply_filters( 'bwsplgns_get_pdf_print_content', apply_filters( 'the_content', $p->post_content ), $p ) . '</div>
976 - </div>';
977 - if ( $i != $last ) {
978 - $html .= '<br/><hr/><br/>';
979 - $i ++;
980 - }
981 - }
982 - $html .= '</div>';
983 - echo pdfprnt_generate_template( $html, true );
984 - die();
985 - default:
986 - break;
987 - }
988 - }
989 -}
990 -
991 -/* Add query vars */
992 -if ( ! function_exists( 'print_vars_callback' ) ) {
993 - function print_vars_callback( $query_vars ) {
994 - $query_vars[] = 'print';
995 - return $query_vars;
996 - }
997 -}
998 -
999 -/**
1000 - * Class Pdfprnt_ZipArchive for extracting
1001 - * necessary folder from zip-archive
1002 - */
1003 -if ( class_exists( 'ZipArchive' ) && ! class_exists( 'Pdfprnt_ZipArchive' ) ) {
1004 - class Pdfprnt_ZipArchive extends ZipArchive {
1005 - /**
1006 - * constructor of class
1007 - */
1008 - public function extractSubdirTo( $destination, $subdir ) {
1009 - $errors = array();
1010 - $charset = get_bloginfo( 'charset' );
1011 - // Prepare dirs
1012 - $destination = str_replace( array("/", "\\"), DIRECTORY_SEPARATOR, $destination );
1013 - $subdir = str_replace( array("/", "\\"), "/", $subdir);
1014 -
1015 - if ( substr( $destination, mb_strlen( DIRECTORY_SEPARATOR, $charset ) * -1 ) != DIRECTORY_SEPARATOR )
1016 - $destination .= DIRECTORY_SEPARATOR;
1017 -
1018 - if ( substr( $subdir, -1 ) != "/" )
1019 - $subdir .= "/";
1020 - // Extract files
1021 - for ( $i = 0; $i < $this->numFiles; $i++ ) {
1022 - $filename = $this->getNameIndex( $i );
1023 -
1024 - if ( substr( $filename, 0, mb_strlen( $subdir, $charset ) ) == $subdir ) {
1025 - $relativePath = substr( $filename, mb_strlen( $subdir, $charset ) );
1026 - $relativePath = str_replace( array( "/", "\\" ), DIRECTORY_SEPARATOR, $relativePath );
1027 -
1028 - if ( mb_strlen( $relativePath, $charset ) > 0 ) {
1029 - if ( substr( $filename, -1 ) == "/" ) {
1030 - if ( ! is_dir( $destination . $relativePath ) )
1031 - if ( ! @mkdir( $destination . $relativePath, 0755, true ) )
1032 - $errors[$i] = $filename;
1033 - } else {
1034 - if ( dirname( $relativePath) != "." ) {
1035 - if ( ! is_dir( $destination . dirname( $relativePath ) ) ) {
1036 - // New dir (for file)
1037 - @mkdir( $destination . dirname( $relativePath ), 0755, true );
1038 - }
1039 - }
1040 - // New file
1041 - if ( @file_put_contents( $destination . $relativePath, $this->getFromIndex( $i ) ) === false )
1042 - $errors[$i] = $filename;
1043 - }
1044 - }
1045 - }
1046 - }
1047 - return $errors;
1048 - }
1049 - }
1050 -}
1051 -
1052 -/**
1053 - * Download Zip
1054 - */
1055 -if ( ! function_exists( 'pdfprnt_download_zip' ) ) {
1056 - function pdfprnt_download_zip( $zip_file, $upload_dir ) {
1057 - /* check permissions */
1058 - if ( is_writable( $upload_dir ) ) {
1059 - /* load ZIP-archive */
1060 - $result = array();
1061 - $fp = fopen( $zip_file, 'w+');
1062 - $curl = curl_init();
1063 - $curl_parametres = array(
1064 - CURLOPT_URL => 'http://www.mpdfonline.com/repos/MPDF_6_0.zip',
1065 - CURLOPT_FILE => $fp,
1066 - CURLOPT_USERAGENT => ( isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0" )
1067 - );
1068 - curl_setopt_array( $curl, $curl_parametres );
1069 - if ( curl_exec( $curl ) ) {
1070 - $result['done'] = 'ok';
1071 - } else {
1072 - $result['error'] = curl_error( $curl ) . '<br />' . __( 'Check your internet connection', 'pdf-print' );
1073 - }
1074 - curl_close( $curl );
1075 - fclose( $fp );
1076 - } else {
1077 - $result['error'] = __( 'Cannot load files in to "uploads" folder. Check your permissions', 'pdf-print' );
1078 - }
1079 - return $result;
1080 - }
1081 -}
1082 -
1083 -/**
1084 - * Copy neccesary fonts to mpdf/ttfonts
1085 - * @param string $zip_file path to zip archive
1086 - */
1087 -if ( ! function_exists( 'pdfprnt_copy_fonts' ) ) {
1088 - function pdfprnt_copy_fonts( $zip_file, $upload_dir ) {
1089 - global $pdfprnt_options_array;
1090 - if ( empty( $pdfprnt_options_array ) )
1091 - $pdfprnt_options_array = get_option( 'pdfprnt_options_array' );
1092 - $destination = $upload_dir .'/pdf-print-fonts';
1093 - if ( ! file_exists( $destination ) ) {
1094 - mkdir( $destination, 0755, true );
1095 - }
1096 - $result = array();
1097 - /* check permissions */
1098 - if ( is_writable( $destination ) ) {
1099 - $zip = new Pdfprnt_ZipArchive();
1100 - /* open zip-archive */
1101 - if ( true === $zip->open( $zip_file ) ) {
1102 - /* extract folder with fonts */
1103 - $errors = $zip->extractSubdirTo( $destination, "mpdf60/ttfonts" );
1104 - $zip->close();
1105 - if ( empty( $errors ) ) {
1106 - $result['done'] = __( 'Additional fonts were successfully loaded', 'pdf-print' );
1107 - unlink( $zip_file );
1108 - } else {
1109 - $result['error'] = __( 'Some errors occur during loading files', 'pdf-print' );
1110 - }
1111 - } else {
1112 - $result['error'] = __( 'Can not extract files from zip-archive', 'pdf-print' );
1113 - unlink( $zip_file );
1114 - }
1115 - } else {
1116 - $result['error'] = __( 'Cannot create "uploads/pdf-print-fonts" folder. Check your permissions', 'pdf-print' );
1117 - }
1118 - $value = isset( $result['error'] ) ? -1 : count( scandir( $destination ) );
1119 - pdfprnt_update_option( $value, true );
1120 - return $result;
1121 - }
1122 -}
1123 -
1124 -/**
1125 - * Download ZIP-archive with MPDF library,
1126 - * copy fonts to folder 'pdf-print-fons'
1127 - */
1128 -if ( ! function_exists( 'pdfprnt_load_and_copy' ) ) {
1129 - function pdfprnt_load_and_copy( $zip_file, $upload_dir ) {
1130 - $result = file_exists( $zip_file ) ? array( 'done' => 'ok' ) : pdfprnt_download_zip( $zip_file, $upload_dir );
1131 - if ( isset( $result['done'] ) )
1132 - $result = pdfprnt_copy_fonts( $zip_file, $upload_dir );
1133 - return $result;
1134 - }
1135 -}
1136 -/**
1137 - * Function to load fonts for MPDF library
1138 - */
1139 -if ( ! function_exists( 'pdfprnt_load_fonts' ) ) {
1140 - function pdfprnt_load_fonts() {
1141 - global $pdfprnt_options_array;
1142 - if ( empty( $pdfprnt_options_array ) )
1143 - $pdfprnt_options_array = get_option( 'pdfprnt_options_array' );
1144 - $ajax_request = isset( $_REQUEST['action'] ) && 'pdfprnt_load_fonts' == $_REQUEST['action'] ? true : false;
1145 - $php_request = isset( $_REQUEST['pdfprnt_action'] ) && 'pdfprnt_load_fonts' == $_REQUEST['pdfprnt_action'] ? true : false;
1146 - $verified = isset( $_REQUEST['pdfprnt_ajax_nonce'] ) && wp_verify_nonce( $_REQUEST['pdfprnt_ajax_nonce'], 'pdfprnt_ajax_nonce' ) ? true : false;
1147 - if ( ( $ajax_request || $php_request ) && $verified ) {
1148 - $result = array();
1149 - $flag = false;
1150 - /* get path to directory for ZIP-archive uploading */
1151 - if ( is_multisite() ) {
1152 - switch_to_blog( 1 );
1153 - $upload_dir = wp_upload_dir();
1154 - restore_current_blog();
1155 - } else {
1156 - $upload_dir = wp_upload_dir();
1157 - }
1158 - $zip_file = $upload_dir['basedir'] . '/MPDF_6_0.zip';
1159 - $destination = $upload_dir['basedir'] .'/pdf-print-fonts';
1160 - if ( file_exists( $destination ) ) { /* if folder with fonts already exists */
1161 - if ( is_multisite() ) {
1162 - $network_options = get_site_option( 'pdfprnt_options_array' ); /* get network options */
1163 - if ( $network_options['additional_fonts'] == count( scandir( $destination ) ) ) { /* if all fonts was loaded successfully */
1164 - $result['done'] = __( 'Additional fonts was successfully loaded', 'pdf-print' );
1165 - pdfprnt_update_option( $network_options['additional_fonts'] );
1166 - } else { /* if something wrong */
1167 - $result = pdfprnt_load_and_copy( $zip_file, $upload_dir['basedir'] ); /* load fonts */
1168 - }
1169 - } else {
1170 - $result = pdfprnt_load_and_copy( $zip_file, $upload_dir['basedir'] ); /* load fonts */
1171 - }
1172 - } else {
1173 - mkdir( $destination, 0755, true );
1174 - $result = pdfprnt_load_and_copy( $zip_file, $upload_dir['basedir'] );
1175 - }
1176 - if ( $ajax_request )
1177 - echo json_encode( $result );
1178 - else
1179 - return $result;
1180 - }
1181 - if ( $ajax_request )
1182 - die();
1183 - }
1184 -}
1185 -
1186 -if ( ! function_exists( 'pdfprnt_update_option' ) ) {
1187 - function pdfprnt_update_option( $value, $update_network = false ) {
1188 - global $pdfprnt_options_array;
1189 - if ( empty( $pdfprnt_options_array ) )
1190 - $pdfprnt_options_array = get_option( 'pdfprnt_options_array' );
1191 - $pdfprnt_options_array['additional_fonts'] = $value;
1192 - update_option( 'pdfprnt_options_array', $pdfprnt_options_array );
1193 - if ( $update_network ) {
1194 - $network_options = get_site_option( 'pdfprnt_options_array' );
1195 - $network_options['additional_fonts'] = $value;
1196 - update_site_option( 'pdfprnt_options_array', $network_options );
1197 - }
1198 - }
1199 -}
1200 -
1201 -if ( ! function_exists ( 'pdfprnt_plugin_banner' ) ) {
1202 - function pdfprnt_plugin_banner() {
1203 - global $hook_suffix, $pdfprnt_plugin_info, $pdfprnt_options_array;
1204 - if ( empty( $pdfprnt_options_array ) )
1205 - $pdfprnt_options_array = get_option( 'pdfprnt_options_array' );
1206 - if ( 'plugins.php' == $hook_suffix ) {
1207 - if ( isset( $pdfprnt_options_array['first_install'] ) && strtotime( '-1 week' ) > $pdfprnt_options_array['first_install'] )
1208 - bws_plugin_banner( $pdfprnt_plugin_info, 'pdfprnt', 'pdf-print', 'e2f2549f4d70bc4cb9b48071169d264e', '101', '//ps.w.org/pdf-print/assets/icon-128x128.png' );
1209 - bws_plugin_banner_to_settings( $pdfprnt_plugin_info, 'pdfprnt_options_array', 'pdf-print', 'admin.php?page=pdf-print.php' );
1210 - }
1211 -
1212 - if ( isset( $_REQUEST['page'] ) && 'pdf-print.php' == $_REQUEST['page'] ) {
1213 - bws_plugin_suggest_feature_banner( $pdfprnt_plugin_info, 'pdfprnt_options_array', 'pdf-print' );
1214 - }
1215 - }
1216 -}
1217 -
1218 -/* Deleting plugin options on uninstalling */
1219 -if ( ! function_exists( 'pdfprnt_uninstall' ) ) {
1220 - function pdfprnt_uninstall() {
1221 - global $wpdb;
1222 - if ( is_multisite() ) {
1223 - /* Get all blog ids */
1224 - $blogids = $wpdb->get_col( "SELECT `blog_id` FROM $wpdb->blogs" );
1225 - $tables = '';
1226 - $old_blog = $wpdb->blogid;
1227 - foreach ( $blogids as $blog_id ) {
1228 - switch_to_blog( $blog_id );
1229 - delete_option( 'pdfprnt_options_array' );
1230 - }
1231 - switch_to_blog( $old_blog );
1232 - delete_site_option( 'pdfprnt_options_array' );
1233 - } else {
1234 - delete_option( 'pdfprnt_options_array' );
1235 - }
1236 -
1237 - require_once( dirname( __FILE__ ) . '/bws_menu/bws_include.php' );
1238 - bws_include_init( plugin_basename( __FILE__ ) );
1239 - bws_delete_plugin( plugin_basename( __FILE__ ) );
1240 - }
1241 -}
1242 -
1243 -/* Adding function to output PDF document or pirnt page */
1244 -add_action( 'wp', 'pdfprnt_print' );
1245 -add_action( 'wp_head', 'pdfprnt_auto_show_buttons_search_archive' );
1246 -add_action( 'plugins_loaded', 'pdfprnt_plugins_loaded' );
1247 -/* Initialization */
1248 -add_action( 'init', 'pdfprnt_init' );
1249 -add_action( 'admin_init', 'pdfprnt_admin_init' );
1250 -/* Adding stylesheets */
1251 -add_action( 'admin_enqueue_scripts', 'pdfprnt_admin_head' );
1252 -add_action( 'wp_enqueue_scripts', 'pdfprnt_admin_head' );
1253 -/* Adding 'BWS Plugins' admin menu */
1254 -add_action( 'admin_menu', 'pdfprnt_add_pages' );
1255 -/* Add query vars */
1256 -add_filter( 'query_vars', 'print_vars_callback' );
1257 -/* Additional links on the plugin page */
1258 -add_filter( 'plugin_action_links', 'pdfprnt_action_links', 10, 2 );
1259 -add_filter( 'plugin_row_meta', 'pdfprnt_links', 10, 2 );
1260 -/* Adding buttons plugin to content */
1261 -add_filter( 'the_content', 'pdfprnt_content' );
1262 -/* load additional fonts */
1263 -add_action( 'wp_ajax_pdfprnt_load_fonts', 'pdfprnt_load_fonts' );
1264 -/* Adding banner */
1265 -add_action( 'admin_notices', 'pdfprnt_plugin_banner' );
1266 -/* Plugin uninstall function */
1267 -
1268 -add_action( 'bwsplgns_display_pdf_print_buttons', 'pdfprnt_display_plugin_butttons', 10, 2 );
1269 -register_uninstall_hook( __FILE__, 'pdfprnt_uninstall' );
1 +<?php
2 +/*
3 +Plugin Name: PDF & Print
4 +Plugin URI: http://bestwebsoft.com/plugin/
5 +Description: Plugin adds PDF creation and Print button on your site.
6 +Author: BestWebSoft
7 +Version: 1.7.3
8 +Author URI: http://bestwebsoft.com/
9 +License: GPLv2 or later
10 +*/
11 +
12 +/* © Copyright 2014 BestWebSoft ( http://support.bestwebsoft.com )
13 +
14 + This program is free software; you can redistribute it and/or modify
15 + it under the terms of the GNU General Public License, version 2, as
16 + published by the Free Software Foundation.
17 +
18 + This program is distributed in the hope that it will be useful,
19 + but WITHOUT ANY WARRANTY; without even the implied warranty of
20 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 + GNU General Public License for more details.
22 +
23 + You should have received a copy of the GNU General Public License
24 + along with this program; if not, write to the Free Software
25 + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
26 +*/
27 +
28 +/* Add our own menu */
29 +if ( ! function_exists( 'pdfprnt_add_pages' ) ) {
30 + function pdfprnt_add_pages() {
31 + global $bstwbsftwppdtplgns_options, $wpmu, $bstwbsftwppdtplgns_added_menu;
32 + $bws_menu_info = get_plugin_data( plugin_dir_path( __FILE__ ) . "bws_menu/bws_menu.php" );
33 + $bws_menu_version = $bws_menu_info["Version"];
34 + $base = plugin_basename(__FILE__);
35 +
36 + if ( ! isset( $bstwbsftwppdtplgns_options ) ) {
37 + if ( 1 == $wpmu ) {
38 + if ( ! get_site_option( 'bstwbsftwppdtplgns_options' ) )
39 + add_site_option( 'bstwbsftwppdtplgns_options', array(), '', 'yes' );
40 + $bstwbsftwppdtplgns_options = get_site_option( 'bstwbsftwppdtplgns_options' );
41 + } else {
42 + if ( ! get_option( 'bstwbsftwppdtplgns_options' ) )
43 + add_option( 'bstwbsftwppdtplgns_options', array(), '', 'yes' );
44 + $bstwbsftwppdtplgns_options = get_option( 'bstwbsftwppdtplgns_options' );
45 + }
46 + }
47 +
48 + if ( isset( $bstwbsftwppdtplgns_options['bws_menu_version'] ) ) {
49 + $bstwbsftwppdtplgns_options['bws_menu']['version'][ $base ] = $bws_menu_version;
50 + unset( $bstwbsftwppdtplgns_options['bws_menu_version'] );
51 + update_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options, '', 'yes' );
52 + require_once( dirname( __FILE__ ) . '/bws_menu/bws_menu.php' );
53 + } else if ( ! isset( $bstwbsftwppdtplgns_options['bws_menu']['version'][ $base ] ) || $bstwbsftwppdtplgns_options['bws_menu']['version'][ $base ] < $bws_menu_version ) {
54 + $bstwbsftwppdtplgns_options['bws_menu']['version'][ $base ] = $bws_menu_version;
55 + update_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options, '', 'yes' );
56 + require_once( dirname( __FILE__ ) . '/bws_menu/bws_menu.php' );
57 + } else if ( ! isset( $bstwbsftwppdtplgns_added_menu ) ) {
58 + $plugin_with_newer_menu = $base;
59 + foreach ( $bstwbsftwppdtplgns_options['bws_menu']['version'] as $key => $value ) {
60 + if ( $bws_menu_version < $value && is_plugin_active( $base ) ) {
61 + $plugin_with_newer_menu = $key;
62 + }
63 + }
64 + $plugin_with_newer_menu = explode( '/', $plugin_with_newer_menu );
65 + $wp_content_dir = defined( 'WP_CONTENT_DIR' ) ? basename( WP_CONTENT_DIR ) : 'wp-content';
66 + if ( file_exists( ABSPATH . $wp_content_dir . '/plugins/' . $plugin_with_newer_menu[0] . '/bws_menu/bws_menu.php' ) )
67 + require_once( ABSPATH . $wp_content_dir . '/plugins/' . $plugin_with_newer_menu[0] . '/bws_menu/bws_menu.php' );
68 + else
69 + require_once( dirname( __FILE__ ) . '/bws_menu/bws_menu.php' );
70 + $bstwbsftwppdtplgns_added_menu = true;
71 + }
72 +
73 + add_menu_page( 'BWS Plugins', 'BWS Plugins', 'manage_options', 'bws_plugins', 'bws_add_menu_render', plugins_url( 'images/px.png', __FILE__ ), 1001 );
74 + add_submenu_page( 'bws_plugins', __( 'PDF & Print Settings', 'pdf-print' ), __( 'PDF & Print', 'pdf-print' ), 'manage_options', "pdf-print.php", 'pdfprnt_settings_page' );
75 + }
76 +}
77 +
78 +/* Init plugin */
79 +if ( ! function_exists ( 'pdfprnt_init' ) ) {
80 + function pdfprnt_init() {
81 + /* Internationalization, first(!) */
82 + load_plugin_textdomain( 'pdf-print', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
83 + /* Get/Register and check settings for plugin */
84 + if ( ! is_admin() || ( isset( $_GET['page'] ) && "pdf-print.php" == $_GET['page'] ) )
85 + pdfprnt_settings();
86 + }
87 +}
88 +
89 +if ( ! function_exists( 'pdfprnt_admin_init' ) ) {
90 + function pdfprnt_admin_init() {
91 + global $bws_plugin_info, $pdfprnt_plugin_info;
92 +
93 + if ( ! $pdfprnt_plugin_info )
94 + $pdfprnt_plugin_info = get_plugin_data( __FILE__ );
95 +
96 + if ( ! isset( $bws_plugin_info ) || empty( $bws_plugin_info ) )
97 + $bws_plugin_info = array( 'id' => '101', 'version' => $pdfprnt_plugin_info["Version"] );
98 + /* Function check if plugin is compatible with current WP version */
99 + pdfprnt_version_check();
100 + }
101 +}
102 +
103 +/* Register settings for plugin */
104 +if ( ! function_exists( 'pdfprnt_settings' ) ) {
105 + function pdfprnt_settings() {
106 + global $pdfprnt_options_array, $pdfprnt_output_count_buttons, $wpmu, $pdfprnt_plugin_info;
107 +
108 + if ( ! $pdfprnt_plugin_info ) {
109 + if ( ! function_exists( 'get_plugin_data' ) )
110 + require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
111 + $pdfprnt_plugin_info = get_plugin_data( __FILE__ );
112 + }
113 +
114 + /* Variable to verify performance number of once function. */
115 + $pdfprnt_output_count_buttons = 0;
116 + $pdfprnt_default_post_types = array();
117 + /* Default post types of WordPress. */
118 + foreach ( get_post_types( array( 'public' => 1, 'show_ui' => 1, '_builtin' => true ), 'names' ) as $value )
119 + $pdfprnt_default_post_types[] = $value;
120 +
121 + $pdfprnt_options_array_defaults = array(
122 + 'plugin_option_version' => $pdfprnt_plugin_info["Version"],
123 + 'position' => 'top-right',
124 + 'position_search_archive' => 'left',
125 + 'position_custom' => 'left',
126 + 'show_btn_print' => 1,
127 + 'show_btn_pdf' => 1,
128 + 'show_btn_print_search_archive' => 1,
129 + 'show_btn_pdf_search_archive' => 1,
130 + 'show_btn_print_custom' => 1,
131 + 'show_btn_pdf_custom' => 1,
132 + 'use_theme_stylesheet' => 0,
133 + 'tmpl_post' => 1,
134 + 'tmpl_search' => 1,
135 + 'tmpl_custom' => 1,
136 + 'tmpl_shorcode' => 1,
137 + 'use_types_posts' => $pdfprnt_default_post_types,
138 + 'show_print_window' => 0
139 + );
140 +
141 + if ( 1 == $wpmu ) {
142 + if ( ! get_site_option( 'pdfprnt_options_array' ) )
143 + add_site_option( 'pdfprnt_options_array', $pdfprnt_options_array_defaults, '', 'yes' );
144 +
145 + $pdfprnt_options_array = get_site_option( 'pdfprnt_options_array' );
146 + } else {
147 + if ( ! get_option( 'pdfprnt_options_array' ) )
148 + add_option( 'pdfprnt_options_array', $pdfprnt_options_array_defaults, '', 'yes' );
149 +
150 + $pdfprnt_options_array = get_option( 'pdfprnt_options_array' );
151 + }
152 +
153 + if ( ! isset( $pdfprnt_options_array['plugin_option_version'] ) || $pdfprnt_options_array['plugin_option_version'] != $pdfprnt_plugin_info["Version"] ) {
154 + $pdfprnt_options_array = array_merge( $pdfprnt_options_array_defaults, $pdfprnt_options_array );
155 + $pdfprnt_options_array['plugin_option_version'] = $pdfprnt_plugin_info["Version"];
156 + update_option( 'pdfprnt_options_array', $pdfprnt_options_array );
157 + }
158 + }
159 +}
160 +
161 +/* Function check if plugin is compatible with current WP version */
162 +if ( ! function_exists ( 'pdfprnt_version_check' ) ) {
163 + function pdfprnt_version_check() {
164 + global $wp_version, $pdfprnt_plugin_info;
165 + if ( ! $pdfprnt_plugin_info )
166 + $pdfprnt_plugin_info = get_plugin_data( __FILE__, false );
167 + $require_wp = "3.0"; /* Wordpress at least requires version */
168 + $plugin = plugin_basename( __FILE__ );
169 + if ( version_compare( $wp_version, $require_wp, "<" ) ) {
170 + if ( is_plugin_active( $plugin ) ) {
171 + deactivate_plugins( $plugin );
172 + wp_die( "<strong>" . $pdfprnt_plugin_info['Name'] . " </strong> " . __( 'requires', 'pdf-print' ) . " <strong>WordPress" . $require_wp . " </strong> " . __( 'or higher, that is why it has been deactivated! Please upgrade WordPress and try again.', 'pdf-print') . "<br /><br />" . __( 'Back to the WordPress', 'pdf-print') . " <a href='" . get_admin_url( null, 'plugins.php' ) . "'>" . __( 'Plugins page', 'pdf-print') . "</a>." );
173 + }
174 + }
175 + }
176 +}
177 +
178 +/* Add admin page */
179 +if ( ! function_exists ( 'pdfprnt_settings_page' ) ) {
180 + function pdfprnt_settings_page () {
181 + global $pdfprnt_options_array, $wp_version, $pdfprnt_plugin_info;
182 + $message = $error = "";
183 +
184 + $pdfprnt_positions_values = array(
185 + 'top-left' => __( 'Top Left', 'pdf-print' ),
186 + 'top-right' => __( 'Top Right', 'pdf-print' ),
187 + 'bottom-left' => __( 'Bottom Left', 'pdf-print' ),
188 + 'bottom-right' => __( 'Bottom Right', 'pdf-print' )
189 + );
190 +
191 + if ( isset( $_REQUEST['pdfprnt_position'] ) &&
192 + isset( $_REQUEST['pdfprnt_position_search_archive'] ) &&
193 + isset( $_REQUEST['pdfprnt_position_custom'] ) &&
194 + isset( $_REQUEST['pdfprnt_use_theme_stylesheet'] ) &&
195 + isset( $_REQUEST['pdfprnt_tmpl_post'] ) &&
196 + isset( $_REQUEST['pdfprnt_tmpl_custom'] ) &&
197 + isset( $_REQUEST['pdfprnt_tmpl_search'] ) &&
198 + check_admin_referer( plugin_basename( __FILE__ ), 'pdfprnt_nonce_name' ) ) {
199 + $pdfprnt_options_array['position'] = $_REQUEST['pdfprnt_position'];
200 + $pdfprnt_options_array['position_search_archive'] = $_REQUEST['pdfprnt_position_search_archive'];
201 + $pdfprnt_options_array['position_custom'] = $_REQUEST['pdfprnt_position_custom'];
202 + $pdfprnt_options_array['tmpl_post'] = $_REQUEST['pdfprnt_tmpl_post'];
203 + $pdfprnt_options_array['tmpl_search'] = $_REQUEST['pdfprnt_tmpl_search'];
204 + $pdfprnt_options_array['tmpl_custom'] = $_REQUEST['pdfprnt_tmpl_custom'];
205 + $pdfprnt_options_array['use_theme_stylesheet'] = $_REQUEST['pdfprnt_use_theme_stylesheet'];
206 + $pdfprnt_options_array['show_btn_pdf'] = isset( $_REQUEST['pdfprnt_show_btn_pdf'] ) ? 1 : 0;
207 + $pdfprnt_options_array['show_btn_print'] = isset( $_REQUEST['pdfprnt_show_btn_print'] ) ? 1 : 0;
208 + $pdfprnt_options_array['show_btn_pdf_search_archive'] = isset( $_REQUEST['pdfprnt_show_btn_pdf_search_archive'] ) ? 1 : 0;
209 + $pdfprnt_options_array['show_btn_print_search_archive'] = isset( $_REQUEST['pdfprnt_show_btn_print_search_archive'] ) ? 1 : 0;
210 + $pdfprnt_options_array['show_btn_pdf_custom'] = isset( $_REQUEST['pdfprnt_show_btn_pdf_custom'] ) ? 1 : 0;
211 + $pdfprnt_options_array['show_btn_print_custom'] = isset( $_REQUEST['pdfprnt_show_btn_print_custom'] ) ? 1 : 0;
212 + $pdfprnt_options_array['tmpl_shorcode'] = isset( $_REQUEST['pdfprnt_tmpl_shorcode'] ) ? 1 : 0;
213 + $pdfprnt_options_array['show_print_window'] = isset( $_REQUEST['pdfprnt_show_print_window'] ) ? 1 : 0;
214 + $pdfprnt_options_array['use_types_posts'] = isset( $_REQUEST['pdfprnt_use_types_posts'] ) ? $_REQUEST['pdfprnt_use_types_posts'] : array();
215 + update_option ( 'pdfprnt_options_array', $pdfprnt_options_array );
216 + $message = __( 'Settings saved.', 'pdf-print' );
217 + }
218 + /* GO PRO */
219 + if ( isset( $_GET['action'] ) && 'go_pro' == $_GET['action'] ) {
220 + global $wpmu;
221 +
222 + $bws_license_key = ( isset( $_POST['bws_license_key'] ) ) ? trim( $_POST['bws_license_key'] ) : "";
223 + $bstwbsftwppdtplgns_options_defaults = array();
224 + if ( 1 == $wpmu ) {
225 + if ( !get_site_option( 'bstwbsftwppdtplgns_options' ) )
226 + add_site_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options_defaults, '', 'yes' );
227 + $bstwbsftwppdtplgns_options = get_site_option( 'bstwbsftwppdtplgns_options' );
228 + } else {
229 + if ( !get_option( 'bstwbsftwppdtplgns_options' ) )
230 + add_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options_defaults, '', 'yes' );
231 + $bstwbsftwppdtplgns_options = get_option( 'bstwbsftwppdtplgns_options' );
232 + }
233 +
234 + if ( isset( $_POST['bws_license_submit'] ) && check_admin_referer( plugin_basename( __FILE__ ), 'bws_license_nonce_name' ) ) {
235 + if ( '' != $bws_license_key ) {
236 + if ( strlen( $bws_license_key ) != 18 ) {
237 + $error = __( "Wrong license key", 'pdf-print' );
238 + } else {
239 + $bws_license_plugin = trim( $_POST['bws_license_plugin'] );
240 + if ( isset( $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['count'] ) && $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['time'] < ( time() + (24 * 60 * 60) ) ) {
241 + $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['count'] = $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['count'] + 1;
242 + } else {
243 + $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['count'] = 1;
244 + $bstwbsftwppdtplgns_options['go_pro'][ $bws_license_plugin ]['time'] = time();
245 + }
246 +
247 + /* download Pro */
248 + if ( !function_exists( 'get_plugins' ) )
249 + require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
250 + if ( ! function_exists( 'is_plugin_active_for_network' ) )
251 + require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
252 + $all_plugins = get_plugins();
253 + $active_plugins = get_option( 'active_plugins' );
254 +
255 + if ( ! array_key_exists( $bws_license_plugin, $all_plugins ) ) {
256 + $current = get_site_transient( 'update_plugins' );
257 + if ( is_array( $all_plugins ) && !empty( $all_plugins ) && isset( $current ) && is_array( $current->response ) ) {
258 + $to_send = array();
259 + $to_send["plugins"][ $bws_license_plugin ] = array();
260 + $to_send["plugins"][ $bws_license_plugin ]["bws_license_key"] = $bws_license_key;
261 + $to_send["plugins"][ $bws_license_plugin ]["bws_illegal_client"] = true;
262 + $options = array(
263 + 'timeout' => ( ( defined('DOING_CRON') && DOING_CRON ) ? 30 : 3 ),
264 + 'body' => array( 'plugins' => serialize( $to_send ) ),
265 + 'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ) );
266 + $raw_response = wp_remote_post( 'http://bestwebsoft.com/wp-content/plugins/paid-products/plugins/update-check/1.0/', $options );
267 +
268 + if ( is_wp_error( $raw_response ) || 200 != wp_remote_retrieve_response_code( $raw_response ) ) {
269 + $error = __( "Something went wrong. Try again later. If the error will appear again, please, contact us <a href=http://support.bestwebsoft.com>BestWebSoft</a>. We are sorry for inconvenience.", 'pdf-print' );
270 + } else {
271 + $response = maybe_unserialize( wp_remote_retrieve_body( $raw_response ) );
272 +
273 + if ( is_array( $response ) && !empty( $response ) ) {
274 + foreach ( $response as $key => $value ) {
275 + if ( "wrong_license_key" == $value->package ) {
276 + $error = __( "Wrong license key", 'pdf-print' );
277 + } elseif ( "wrong_domain" == $value->package ) {
278 + $error = __( "This license key is bind to another site", 'pdf-print' );
279 + } elseif ( "you_are_banned" == $value->package ) {
280 + $error = __( "Unfortunately, you have exceeded the number of available tries. Please, upload the plugin manually.", 'pdf-print' );
281 + }
282 + }
283 + if ( '' == $error ) {
284 + global $wpmu;
285 + $bstwbsftwppdtplgns_options[ $bws_license_plugin ] = $bws_license_key;
286 +
287 + $url = 'http://bestwebsoft.com/wp-content/plugins/paid-products/plugins/downloads/?bws_first_download=' . $bws_license_plugin . '&bws_license_key=' . $bws_license_key . '&download_from=5';
288 + $uploadDir = wp_upload_dir();
289 + $zip_name = explode( '/', $bws_license_plugin );
290 + if ( file_put_contents( $uploadDir["path"] . "/" . $zip_name[0] . ".zip", file_get_contents( $url ) ) ) {
291 + @chmod( $uploadDir["path"] . "/" . $zip_name[0] . ".zip", octdec( 755 ) );
292 + if ( class_exists( 'ZipArchive' ) ) {
293 + $zip = new ZipArchive();
294 + if ( $zip->open( $uploadDir["path"] . "/" . $zip_name[0] . ".zip" ) === TRUE ) {
295 + $zip->extractTo( WP_PLUGIN_DIR );
296 + $zip->close();
297 + } else {
298 + $error = __( "Failed to open the zip archive. Please, upload the plugin manually", 'pdf-print' );
299 + }
300 + } elseif ( class_exists( 'Phar' ) ) {
301 + $phar = new PharData( $uploadDir["path"] . "/" . $zip_name[0] . ".zip" );
302 + $phar->extractTo( WP_PLUGIN_DIR );
303 + } else {
304 + $error = __( "Your server does not support either ZipArchive or Phar. Please, upload the plugin manually", 'pdf-print' );
305 + }
306 + @unlink( $uploadDir["path"] . "/" . $zip_name[0] . ".zip" );
307 + } else {
308 + $error = __( "Failed to download the zip archive. Please, upload the plugin manually", 'pdf-print' );
309 + }
310 +
311 + /* activate Pro */
312 + if ( file_exists( WP_PLUGIN_DIR . '/' . $zip_name[0] ) ) {
313 + array_push( $active_plugins, $bws_license_plugin );
314 + update_option( 'active_plugins', $active_plugins );
315 + $pro_plugin_is_activated = true;
316 + } elseif ( '' == $error ) {
317 + $error = __( "Failed to download the zip archive. Please, upload the plugin manually", 'pdf-print' );
318 + }
319 + }
320 + } else {
321 + $error = __( "Something went wrong. Try again later or upload the plugin manually. We are sorry for inconvienience.", 'pdf-print' );
322 + }
323 + }
324 + }
325 + } else {
326 + /* activate Pro */
327 + if ( ! ( in_array( $bws_license_plugin, $active_plugins ) || is_plugin_active_for_network( $bws_license_plugin ) ) ) {
328 + array_push( $active_plugins, $bws_license_plugin );
329 + update_option( 'active_plugins', $active_plugins );
330 + $pro_plugin_is_activated = true;
331 + }
332 + }
333 + update_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options, '', 'yes' );
334 + }
335 + } else {
336 + $error = __( "Please, enter Your license key", 'pdf-print' );
337 + }
338 + }
339 + }
340 + ?>
341 + <div class="wrap">
342 + <div class="icon32 icon32-bws" id="icon-options-general"></div>
343 + <h2><?php echo __( 'PDF & Print Settings', 'pdf-print' ); ?></h2>
344 + <h2 class="nav-tab-wrapper">
345 + <a class="nav-tab<?php if ( !isset( $_GET['action'] ) ) echo ' nav-tab-active'; ?>" href="admin.php?page=pdf-print.php"><?php _e( 'Settings', 'pdf-print' ); ?></a>
346 + <a class="nav-tab<?php if ( isset( $_GET['action'] ) && 'extra' == $_GET['action'] ) echo ' nav-tab-active'; ?>" href="admin.php?page=pdf-print.php&amp;action=extra"><?php _e( 'Extra settings', 'pdf-print' ); ?></a>
347 + <a class="nav-tab" href="http://bestwebsoft.com/plugin/pdf-print/#faq" target="_blank"><?php _e( 'FAQ', 'pdf-print' ); ?></a>
348 + <a class="nav-tab bws_go_pro_tab<?php if ( isset( $_GET['action'] ) && 'go_pro' == $_GET['action'] ) echo ' nav-tab-active'; ?>" href="admin.php?page=pdf-print.php&amp;action=go_pro"><?php _e( 'Go PRO', 'pdf-print' ); ?></a>
349 + </h2>
350 + <div class="updated fade" <?php if ( empty( $message ) || "" != $error ) echo "style=\"display:none\""; ?>><p><strong><?php echo $message; ?></strong></p></div>
351 + <div id="pdfprnt_settings_notice" class="updated fade" style="display:none"><p><strong><?php _e( "Notice:", 'pdf-print' ); ?></strong> <?php _e( "The plugin's settings have been changed. In order to save them please don't forget to click the 'Save Changes' button.", 'pdf-print' ); ?></p></div>
352 + <div class="error" <?php if ( "" == $error ) echo "style=\"display:none\""; ?>><p><strong><?php echo $error; ?></strong></p></div>
353 + <?php if ( ! isset( $_GET['action'] ) ) { ?>
354 + <form method="post" action="admin.php?page=pdf-print.php" id="pdfprnt_settings_form">
355 + <table class="form-table pdfprnt_settings_table">
356 + <tr>
357 + <th scope="row"><?php echo __( 'Use of theme stylesheet or plugin default style:', 'pdf-print' ); ?></th>
358 + <td>
359 + <select name="pdfprnt_use_theme_stylesheet">
360 + <option value="0" <?php if ( 0 == $pdfprnt_options_array['use_theme_stylesheet'] ) echo 'selected="selected"'; ?>><?php echo __( 'Default stylesheet', 'pdf-print' ); ?></option>
361 + <option value="1" <?php if ( 1 == $pdfprnt_options_array['use_theme_stylesheet'] ) echo 'selected="selected"'; ?>><?php echo __( 'Current theme stylesheet', 'pdf-print' ); ?></option>
362 + </select>
363 + </td>
364 + </tr>
365 + <tr>
366 + <th scope="row"><?php echo __( 'The types of posts that the plugin will use:', 'pdf-print' ); ?></th>
367 + <td>
368 + <select name="pdfprnt_use_types_posts[]" multiple="multiple">
369 + <?php foreach ( get_post_types( array( 'public' => 1, 'show_ui' => 1 ), 'objects' ) as $key => $value ) : ?>
370 + <option value="<?php echo $key; ?>" <?php if ( in_array( $key, $pdfprnt_options_array['use_types_posts'] ) ) echo 'selected="selected"'; ?>><?php echo $value->label; ?></option>
371 + <?php endforeach; ?>
372 + </select>
373 + </td>
374 + </tr>
375 + <?php
376 + $active_plugins = get_option( 'active_plugins' );
377 + if( 0 < count( preg_grep( '/portfolio\/portfolio.php/', $active_plugins ) ) ) : ?>
378 + <tr>
379 + <th scope="row"></th>
380 + <td>
381 + <span class="pdfprnt_explanation"><?php echo __( 'If you are using a Portfolio plugin (powered by bestwebsoft.com) and you need the output pdf and print buttons next to each post, you just need to insert the strings in loop into the template source code in files portfolio.php and portfolio-post.php', 'pdf-print' ) . ' &#60;?php if ( function_exists( \'pdfprnt_show_buttons_for_bws_portfolio_post\' ) ) echo pdfprnt_show_buttons_for_bws_portfolio_post(); ?&#62;<br/> ' . __( ' In order to use PDF and Print buttons for all posts you need to put the strings below into the template source code in file portfolio.php', 'pdf-print' ) . ' &#60;?php if ( function_exists( \'pdfprnt_show_buttons_for_bws_portfolio\' ) ) echo pdfprnt_show_buttons_for_bws_portfolio(); ?&#62;'; ?></span>
382 + </td>
383 + </tr>
384 + <?php endif; ?>
385 + <tr>
386 + <th scope="row">
387 + <?php echo __( 'Position of buttons in content:', 'pdf-print' ); ?>
388 + </th>
389 + <td>
390 + <select name="pdfprnt_position">
391 + <?php foreach ( $pdfprnt_positions_values as $key => $value ) : ?>
392 + <option value="<?php echo $key; ?>" <?php if ( $pdfprnt_options_array['position'] == $key ) echo 'selected="selected"'; ?>><?php echo $value; ?></option>
393 + <?php endforeach; ?>
394 + </select>
395 + </td>
396 + </tr>
397 + <tr>
398 + <th scope="row"><?php echo __( 'Show:', 'pdf-print' ); ?></th>
399 + <td>
400 + <label><input type="checkbox" name="pdfprnt_show_btn_pdf" <?php if ( 1 == $pdfprnt_options_array['show_btn_pdf'] ) echo 'checked="checked"'; ?> /> <span><?php echo __( 'PDF button', 'pdf-print' ); ?></span></label><br />
401 + <label><input type="checkbox" name="pdfprnt_show_btn_print" <?php if ( 1 == $pdfprnt_options_array['show_btn_print'] ) echo 'checked="checked"'; ?> /> <span><?php echo __( 'Print button', 'pdf-print' ); ?></span></label>
402 + </td>
403 + </tr>
404 + <tr>
405 + <th scope="row">
406 + <?php echo __( 'Default template setting for post:', 'pdf-print' ); ?>
407 + </th>
408 + <td>
409 + <div>
410 + <label>
411 + <img src="<?php echo plugins_url( 'images/template_left.jpg', __FILE__ ); ?>" alt="template_left" />
412 + <input type="radio" name="pdfprnt_tmpl_post" value="1" <?php if ( 1 == $pdfprnt_options_array['tmpl_post'] ) echo 'checked="checked"'; ?> />
413 + </label>
414 + </div>
415 + <div>
416 + <label>
417 + <img src="<?php echo plugins_url( 'images/template_center.jpg', __FILE__ ); ?>" alt="template_center" />
418 + <input type="radio" name="pdfprnt_tmpl_post" value="2" <?php if ( 2 == $pdfprnt_options_array['tmpl_post'] ) echo 'checked="checked"'; ?> />
419 + </label>
420 + </div>
421 + <div>
422 + <label>
423 + <img src="<?php echo plugins_url( 'images/template_right.jpg', __FILE__ ); ?>" alt="template_right" />
424 + <input type="radio" name="pdfprnt_tmpl_post" value="3" <?php if ( 3 == $pdfprnt_options_array['tmpl_post'] ) echo 'checked="checked"'; ?> />
425 + </label>
426 + </div>
427 + </td>
428 + </tr>
429 + <tr>
430 + <th scope="row">
431 + <?php echo __( 'Position of buttons in content for custom post:', 'pdf-print' ); ?>
432 + </th>
433 + <td>
434 + <select name="pdfprnt_position_custom">
435 + <option value="pdfprnt-left" <?php if ( 'left' == $pdfprnt_options_array['position_custom'] ) echo 'selected="selected"'; ?>><?php echo __( 'Align Left', 'pdf-print' ); ?></option>
436 + <option value="pdfprnt-right" <?php if ( 'right' == $pdfprnt_options_array['position_custom'] ) echo 'selected="selected"'; ?>><?php echo __( 'Align Right', 'pdf-print' ); ?></option>
437 + </select>
438 + </td>
439 + </tr>
440 + <tr>
441 + <th scope="row"><?php echo __( 'Show for custom posts:', 'pdf-print' ); ?></th>
442 + <td>
443 + <label><input type="checkbox" name="pdfprnt_show_btn_pdf_custom" <?php if ( 1 == $pdfprnt_options_array['show_btn_pdf_custom'] ) echo 'checked="checked"'; ?> /> <span><?php echo __( 'PDF button', 'pdf-print' ); ?></span></label><br />
444 + <label><input type="checkbox" name="pdfprnt_show_btn_print_custom" <?php if ( 1 == $pdfprnt_options_array['show_btn_print_custom'] ) echo 'checked="checked"'; ?> /> <span><?php echo __( 'Print button', 'pdf-print' ); ?></span></label>
445 + </td>
446 + </tr>
447 + <tr>
448 + <th scope="row">
449 + <?php echo __( 'Default template setting for custom posts:', 'pdf-print' ); ?>
450 + </th>
451 + <td>
452 + <div>
453 + <label>
454 + <img src="<?php echo plugins_url( 'images/template_left.jpg', __FILE__ ); ?>" alt="template_left" />
455 + <input type="radio" name="pdfprnt_tmpl_custom" value="1" <?php if ( 1 == $pdfprnt_options_array['tmpl_custom'] ) echo 'checked="checked"'; ?> />
456 + </label>
457 + </div>
458 + <div>
459 + <label>
460 + <img src="<?php echo plugins_url( 'images/template_center.jpg', __FILE__ ); ?>" alt="template_center" />
461 + <input type="radio" name="pdfprnt_tmpl_custom" value="2" <?php if ( 2 == $pdfprnt_options_array['tmpl_custom'] ) echo 'checked="checked"'; ?> />
462 + </label>
463 + </div>
464 + <div>
465 + <label>
466 + <img src="<?php echo plugins_url( 'images/template_right.jpg', __FILE__ ); ?>" alt="template_right" />
467 + <input type="radio" name="pdfprnt_tmpl_custom" value="3" <?php if ( 3 == $pdfprnt_options_array['tmpl_custom'] ) echo 'checked="checked"'; ?> />
468 + </label>
469 + </div>
470 + </td>
471 + </tr>
472 + <tr>
473 + <th scope="row"></th>
474 + <td>
475 + <span class="pdfprnt_explanation"><?php echo __( 'In order to use PDF and Print buttons on the custom page you should use the', 'pdf-print' ) . '&#60;?php if ( function_exists( \'pdfprnt_show_buttons_for_custom_post_type\' ) ) echo pdfprnt_show_buttons_for_custom_post_type( $custom_query ); ?&#62;' . __( ' where you have to specify query parameters for your custom post.<br/> For example: ', 'pdf-print' ) . '&#60;?php if ( function_exists( \'pdfprnt_show_buttons_for_custom_post_type\' ) ) echo pdfprnt_show_buttons_for_custom_post_type( \'post_type=gallery&orderby=post_date\' ); ?&#62;' . __(' or ', 'pdf-print') . '&#60;?php if ( function_exists( \'pdfprnt_show_buttons_for_custom_post_type\' ) ) echo pdfprnt_show_buttons_for_custom_post_type( array( \'post_type\' => \'gallery\', \'orderby\' => \'post_date\' ) ); ?&#62;.' . __( ' For more information on the syntax for assigning parameters to function see <a target="_blank" href="http://codex.wordpress.org/Class_Reference/WP_Query#Parameters">here</a>.', 'pdf-print' ); ?></span>
476 + </td>
477 + </tr>
478 + <tr>
479 + <th scope="row">
480 + <?php echo __( 'Position of buttons on search or archive page:', 'pdf-print' ); ?>
481 + </th>
482 + <td>
483 + <select name="pdfprnt_position_search_archive">
484 + <option value="pdfprnt-left" <?php if ( 'left' == $pdfprnt_options_array['position_search_archive'] ) echo 'selected="selected"'; ?>><?php echo __( 'Align Left', 'pdf-print' ); ?></option>
485 + <option value="pdfprnt-right" <?php if ( 'right' == $pdfprnt_options_array['position_search_archive'] ) echo 'selected="selected"'; ?>><?php echo __( 'Align Right', 'pdf-print' ); ?></option>
486 + </select>
487 + </td>
488 + </tr>
489 + <tr>
490 + <th scope="row"><?php echo __( 'Show for search or archive page:', 'pdf-print' ); ?></th>
491 + <td>
492 + <label><input type="checkbox" name="pdfprnt_show_btn_pdf_search_archive" <?php if ( 1 == $pdfprnt_options_array['show_btn_pdf_search_archive'] ) echo 'checked="checked"'; ?> /> <span><?php echo __( 'PDF button', 'pdf-print' ); ?></span></label><br />
493 + <label><input type="checkbox" name="pdfprnt_show_btn_print_search_archive" <?php if ( 1 == $pdfprnt_options_array['show_btn_print_search_archive'] ) echo 'checked="checked"'; ?> /> <span><?php echo __( 'Print button', 'pdf-print' ); ?></span></label>
494 + </td>
495 + </tr>
496 + <tr>
497 + <th scope="row">
498 + <?php echo __( 'Default template setting for search and archive:', 'pdf-print' ); ?>
499 + </th>
500 + <td>
501 + <div>
502 + <label>
503 + <img src="<?php echo plugins_url( 'images/template_left.jpg', __FILE__ ); ?>" alt="template_left" />
504 + <input type="radio" name="pdfprnt_tmpl_search" value="1" <?php if ( 1 == $pdfprnt_options_array['tmpl_search'] ) echo 'checked="checked"'; ?> />
505 + </label>
506 + </div>
507 + <div>
508 + <label>
509 + <img src="<?php echo plugins_url( 'images/template_center.jpg', __FILE__ ); ?>" alt="template_center" />
510 + <input type="radio" name="pdfprnt_tmpl_search" value="2" <?php if ( 2 == $pdfprnt_options_array['tmpl_search'] ) echo 'checked="checked"'; ?> />
511 + </label>
512 + </div>
513 + <div>
514 + <label>
515 + <img src="<?php echo plugins_url( 'images/template_right.jpg', __FILE__ ); ?>" alt="template_right" />
516 + <input type="radio" name="pdfprnt_tmpl_search" value="3" <?php if ( 3 == $pdfprnt_options_array['tmpl_search'] ) echo 'checked="checked"'; ?> />
517 + </label>
518 + </div>
519 + </td>
520 + </tr>
521 + <tr>
522 + <th scope="row"></th>
523 + <td>
524 + <span class="pdfprnt_explanation"><?php echo __( 'In order to use PDF and Print buttons on the search page or archive page you should put the strings below into the template source code in files search.php or archives.php ', 'pdf-print' ) . ' &#60;?php if ( function_exists( \'pdfprnt_show_buttons_search_archive\' ) ) echo pdfprnt_show_buttons_search_archive(); ?&#62;'; ?></span>
525 + </td>
526 + </tr>
527 + <tr>
528 + <th scope="row">
529 + <?php echo __( 'Settings for shorcodes:', 'pdf-print' ); ?>
530 + </th>
531 + <td>
532 + <label><input type="checkbox" name="pdfprnt_tmpl_shorcode" <?php if ( 1 == $pdfprnt_options_array['tmpl_shorcode'] ) echo 'checked="checked"'; ?> /> <span><?php echo __( 'Do!', 'pdf-print' ); ?></span></label>
533 + </td>
534 + </tr>
535 + <tr>
536 + <th scope="row"><?php echo __( 'Show the print window', 'pdf-print' ); ?></th>
537 + <td>
538 + <label><input type="checkbox" name="pdfprnt_show_print_window" <?php if ( 1 == $pdfprnt_options_array['show_print_window'] ) echo 'checked="checked"'; ?> /> <span><?php echo __( 'Mark the checkbox to show it', 'pdf-print' ); ?></span></label><br />
539 + </td>
540 + </tr>
541 + </table>
542 + <input type="hidden" name="pdfprnt_form_submit" value="1" />
543 + <p class="submit">
544 + <input type="submit" class="button-primary" value="<?php _e( 'Save Changes', 'pdf-print' ); ?>" />
545 + </p>
546 + <?php wp_nonce_field( plugin_basename( __FILE__ ), 'pdfprnt_nonce_name' ); ?>
547 + </form>
548 + <div class="bws-plugin-reviews">
549 + <div class="bws-plugin-reviews-rate">
550 + <?php _e( 'If you enjoy our plugin, please give it 5 stars on WordPress', 'pdf-print' ); ?>:
551 + <a href="http://wordpress.org/support/view/plugin-reviews/pdf-print" target="_blank" title="PDF &amp; Print reviews"><?php _e( 'Rate the plugin', 'pdf-print' ); ?></a>
552 + </div>
553 + <div class="bws-plugin-reviews-support">
554 + <?php _e( 'If there is something wrong about it, please contact us', 'pdf-print' ); ?>:
555 + <a href="http://support.bestwebsoft.com">http://support.bestwebsoft.com</a>
556 + </div>
557 + </div>
558 + <?php } elseif ( 'extra' == $_GET['action'] ) { ?>
559 + <div class="bws_pro_version_bloc">
560 + <div class="bws_pro_version_table_bloc">
561 + <div class="bws_table_bg"></div>
562 + <table class="form-table bws_pro_version">
563 + <tr valign="top">
564 + <td colspan="2">
565 + <?php _e( 'Please choose the necessary post types (or single pages) where PDF & Print buttons will be displayed:', 'pdf-print' ); ?>
566 + </td>
567 + </tr>
568 + <tr valign="top">
569 + <td colspan="2">
570 + <label>
571 + <input disabled="disabled" checked="checked" id="twttrpr_jstree_url" type="checkbox" name="twttrpr_jstree_url" value="1" />
572 + <?php _e( "Show URL for pages", 'pdf-print' );?>
573 + </label>
574 + </td>
575 + </tr>
576 + <tr valign="top">
577 + <td colspan="2">
578 + <img src="<?php echo plugins_url( 'images/pro_screen_1.png', __FILE__ ); ?>" alt="<?php _e( "Example of site pages' tree", 'pdf-print' ); ?>" title="<?php _e( "Example of site pages' tree", 'pdf-print' ); ?>" />
579 + </td>
580 + </tr>
581 + <tr valign="top">
582 + <td colspan="2">
583 + <input disabled="disabled" type="submit" class="button-primary" value="<?php _e( 'Save Changes', 'pdf-print' ); ?>" />
584 + </td>
585 + </tr>
586 + <tr valign="top">
587 + <th scope="row" colspan="2">
588 + * <?php _e( 'If you upgrade to Pro version all your settings will be saved.', 'pdf-print' ); ?>
589 + </th>
590 + </tr>
591 + </table>
592 + </div>
593 + <div class="bws_pro_version_tooltip">
594 + <div class="bws_info">
595 + <?php _e( 'Unlock premium options by upgrading to a PRO version.', 'pdf-print' ); ?>
596 + <a href="http://bestwebsoft.com/plugin/pdf-print-pro/?k=d9da7c9c2046bed8dfa38d005d4bffdb&pn=101&v=<?php echo $pdfprnt_plugin_info["Version"]; ?>&wp_v=<?php echo $wp_version; ?>" target="_blank" title="PDF & Print Pro"><?php _e( 'Learn More', 'pdf-print' ); ?></a>
597 + </div>
598 + <a class="bws_button" href="http://bestwebsoft.com/plugin/pdf-print-pro/?k=d9da7c9c2046bed8dfa38d005d4bffdb&pn=101&v=<?php echo $pdfprnt_plugin_info["Version"]; ?>&wp_v=<?php echo $wp_version; ?>#purchase" target="_blank" title="PDF & Print Pro">
599 + <?php _e( 'Go', 'pdf-print' ); ?> <strong>PRO</strong>
600 + </a>
601 + <div class="clear"></div>
602 + </div>
603 + </div>
604 + <?php } elseif ( 'go_pro' == $_GET['action'] ) { ?>
605 + <?php if ( isset( $pro_plugin_is_activated ) && true === $pro_plugin_is_activated ) { ?>
606 + <script type="text/javascript">
607 + window.setTimeout( function() {
608 + window.location.href = 'admin.php?page=pdf-print-pro.php';
609 + }, 5000 );
610 + </script>
611 + <p><?php _e( "Congratulations! The PRO version of the plugin is successfully download and activated.", 'pdf-print' ); ?></p>
612 + <p>
613 + <?php _e( "Please, go to", 'pdf-print' ); ?> <a href="admin.php?page=pdf-print-pro.php"><?php _e( 'the setting page', 'pdf-print' ); ?></a>
614 + (<?php _e( "You will be redirected automatically in 5 seconds.", 'pdf-print' ); ?>)
615 + </p>
616 + <?php } else { ?>
617 + <form method="post" action="admin.php?page=pdf-print.php&amp;action=go_pro">
618 + <p>
619 + <?php _e( 'You can download and activate', 'pdf-print' ); ?>
620 + <a href="http://bestwebsoft.com/plugin/pdf-print-pro/?k=d9da7c9c2046bed8dfa38d005d4bffdb&pn=101&v=<?php echo $pdfprnt_plugin_info["Version"]; ?>&wp_v=<?php echo $wp_version; ?>" target="_blank" title="PDF & Print Pro">PRO</a>
621 + <?php _e( 'version of this plugin by entering Your license key.', 'pdf-print' ); ?><br />
622 + <span style="color: #888888;font-size: 10px;">
623 + <?php _e( 'You can find your license key on your personal page Client area, by clicking on the link', 'pdf-print' ); ?>
624 + <a href="http://bestwebsoft.com/wp-login.php">http://bestwebsoft.com/wp-login.php</a>
625 + <?php _e( '(your username is the email you specify when purchasing the product).', 'pdf-print' ); ?>
626 + </span>
627 + </p>
628 + <?php if ( isset( $bstwbsftwppdtplgns_options['go_pro']['pdf-print-pro/pdf-print-pro.php']['count'] ) &&
629 + '5' < $bstwbsftwppdtplgns_options['go_pro']['pdf-print-pro/pdf-print-pro.php']['count'] &&
630 + $bstwbsftwppdtplgns_options['go_pro']['pdf-print-pro/pdf-print-pro.php']['time'] < ( time() + ( 24 * 60 * 60 ) ) ) { ?>
631 + <p>
632 + <input disabled="disabled" type="text" name="bws_license_key" value="<?php echo $bws_license_key; ?>" />
633 + <input disabled="disabled" type="submit" class="button-primary" value="<?php _e( 'Go!', 'pdf-print' ); ?>" />
634 + </p>
635 + <p>
636 + <?php _e( "Unfortunately, you have exceeded the number of available tries per day. Please, upload the plugin manually.", 'pdf-print' ); ?>
637 + </p>
638 + <?php } else { ?>
639 + <p>
640 + <input type="text" name="bws_license_key" value="<?php echo $bws_license_key; ?>" />
641 + <input type="hidden" name="bws_license_plugin" value="pdf-print-pro/pdf-print-pro.php" />
642 + <input type="hidden" name="bws_license_submit" value="submit" />
643 + <input type="submit" class="button-primary" value="<?php _e( 'Go!', 'pdf-print' ); ?>" />
644 + <?php wp_nonce_field( plugin_basename(__FILE__), 'bws_license_nonce_name' ); ?>
645 + </p>
646 + <?php } ?>
647 + </form>
648 + <?php }
649 + } ?>
650 + </div>
651 + <?php }
652 +}
653 +
654 +/* Positioning buttons in the page */
655 +if( ! function_exists( 'pdfprnt_content' ) ) {
656 + function pdfprnt_content( $content ) {
657 + global $pdfprnt_options_array, $post;
658 + if ( ! in_array( get_post_type( $post ), $pdfprnt_options_array['use_types_posts'] ) ) // Check for existence the type of posts.
659 + return $content;
660 + if ( 1 == $pdfprnt_options_array['show_btn_pdf'] || 1 == $pdfprnt_options_array['show_btn_print'] ) {
661 + $position = ( 'top-left' == $pdfprnt_options_array['position'] || 'top-right' == $pdfprnt_options_array['position'] ) ? true : false;
662 + $str = '<div class="pdfprnt-' . $pdfprnt_options_array['position'] . '">';
663 + if ( 1 == $pdfprnt_options_array['show_btn_pdf'] ) {
664 + if ( ! is_front_page () )
665 + $permalink = add_query_arg( 'print' , 'pdf' , get_permalink( $post->ID ) );
666 + else
667 + $permalink = add_query_arg( 'print' , 'pdf' , get_permalink() . '?page-id=' . $post->ID );
668 + $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/pdf.png', __FILE__ ) . '" alt="image_pdf" title="View PDF" /></a>';
669 + }
670 + if ( 1 == $pdfprnt_options_array['show_btn_print'] ) {
671 + if ( ! is_front_page () )
672 + $permalink = add_query_arg( 'print' , 'print' , get_permalink( $post->ID ) );
673 + else
674 + $permalink = add_query_arg( 'print' , 'print' , get_permalink() . '?page-id=' . $post->ID );
675 + $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/print.gif', __FILE__ ) . '" alt="image_print" title="Print Content" /></a>';
676 + }
677 + $str .= '</div>';
678 + if ( $position )
679 + $content = $str . $content;
680 + else
681 + $content = $content . $str;
682 + unset( $position );
683 + unset( $str );
684 + }
685 + return $content;
686 + }
687 +}
688 +
689 +/* Output buttons for search or archive pages */
690 +if( ! function_exists( 'pdfprnt_show_buttons_search_archive' ) ) {
691 + function pdfprnt_show_buttons_search_archive() {
692 + global $pdfprnt_options_array, $pdfprnt_output_count_buttons, $wp, $posts;
693 + if ( 0 < $pdfprnt_output_count_buttons )
694 + return;
695 + if ( 1 !== $pdfprnt_options_array['show_btn_pdf_search_archive'] && 1 !== $pdfprnt_options_array['show_btn_print_search_archive'] )
696 + return;
697 + if ( ( ! is_search() && ! is_archive() ) || ( is_category() || ! have_posts() ) )
698 + return;
699 + /* Check for existence the type of posts. */
700 + $is_return = true;
701 + foreach ( $posts as $post ) {
702 + if ( in_array( get_post_type( $post ), $pdfprnt_options_array['use_types_posts'] ) ) {
703 + $is_return = false;
704 + break;
705 + }
706 + }
707 + if ( $is_return )
708 + return;
709 + $pdfprnt_output_count_buttons++;
710 + if ( empty( $wp->request ) )
711 + $current_url = add_query_arg( $wp->query_string, '', home_url() );
712 + else
713 + $current_url = home_url( $wp->request );
714 + $str = '<div class="' . $pdfprnt_options_array['position_search_archive'] . '">';
715 + if ( 1 == $pdfprnt_options_array['show_btn_pdf_search_archive'] ) {
716 + $permalink = add_query_arg( 'print' , 'pdf-page' , $current_url );
717 + $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/pdf.png', __FILE__ ) . '" alt="image_pdf" title="Print PDF" /></a>';
718 + }
719 + if ( 1 == $pdfprnt_options_array['show_btn_print_search_archive'] ) {
720 + $permalink = add_query_arg( 'print' , 'print-page' , $current_url );
721 + $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/print.gif', __FILE__ ) . '" alt="image_print" title="Print Content" /></a>';
722 + }
723 + $str .= '</div>';
724 + unset( $current_url );
725 + unset( $permalink );
726 + echo $str;
727 + }
728 +}
729 +if ( ! function_exists( 'pdfprnt_auto_show_buttons_search_archive' ) ) {
730 + function pdfprnt_auto_show_buttons_search_archive() {
731 + if ( is_archive() || is_search() )
732 + add_action( 'loop_start', 'pdfprnt_show_buttons_search_archive' );
733 + }
734 + add_action( 'wp_head', 'pdfprnt_auto_show_buttons_search_archive' );
735 +}
736 +
737 +/* Output buttons of page for BWS Portfolio plugin */
738 +if( ! function_exists( 'pdfprnt_show_buttons_for_bws_portfolio' ) ) {
739 + function pdfprnt_show_buttons_for_bws_portfolio() {
740 + global $pdfprnt_options_array, $pdfprnt_output_count_buttons, $wp;
741 + if ( 0 < $pdfprnt_output_count_buttons )
742 + return;
743 + if ( 1 !== $pdfprnt_options_array['show_btn_pdf_custom'] && 1 !== $pdfprnt_options_array['show_btn_print_custom'] )
744 + return;
745 + if ( ! in_array( 'portfolio', $pdfprnt_options_array['use_types_posts'] ) )
746 + return;
747 + $pdfprnt_output_count_buttons++;
748 + if ( empty( $wp->request ) )
749 + $current_url = add_query_arg( $wp->query_string, '', home_url() );
750 + else
751 + $current_url = home_url( $wp->request );
752 + $str = '<div class="' . $pdfprnt_options_array['position_custom'] . '">';
753 + if ( 1 == $pdfprnt_options_array['show_btn_pdf_custom'] ) {
754 + $permalink = add_query_arg( 'print' , 'pdf-portfolio-page' , $current_url );
755 + $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/pdf.png', __FILE__ ) . '" alt="image_pdf" title="Print PDF" /></a>';
756 + }
757 + if ( 1 == $pdfprnt_options_array['show_btn_print_custom'] ) {
758 + $permalink = add_query_arg( 'print' , 'print-portfolio-page' , $current_url );
759 + $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/print.gif', __FILE__ ) . '" alt="image_print" title="Print Content" /></a>';
760 + }
761 + $str .= '</div>';
762 + unset( $current_url );
763 + unset( $permalink );
764 + return $str;
765 + }
766 +}
767 +
768 +/* Output buttons of post for BWS Portfolio plugin */
769 +if ( ! function_exists( 'pdfprnt_show_buttons_for_bws_portfolio_post' ) ) {
770 + function pdfprnt_show_buttons_for_bws_portfolio_post() {
771 + global $pdfprnt_options_array, $post;
772 + if ( 1 !== $pdfprnt_options_array['show_btn_pdf_custom'] && 1 !== $pdfprnt_options_array['show_btn_print_custom'] )
773 + return;
774 + if ( ! in_array( get_post_type( $post ), $pdfprnt_options_array['use_types_posts'] ) )
775 + return;
776 + $current_url = get_permalink();
777 + $str = '<div class="' . $pdfprnt_options_array['position_custom'] . '">';
778 + if ( 1 == $pdfprnt_options_array['show_btn_pdf_custom'] ) {
779 + $permalink = add_query_arg( 'print' , 'pdf-portfolio' , $current_url );
780 + $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/pdf.png', __FILE__ ) . '" alt="image_pdf" title="Print PDF" /></a>';
781 + }
782 + if ( 1 == $pdfprnt_options_array['show_btn_print_custom'] ) {
783 + $permalink = add_query_arg( 'print' , 'print-portfolio' , $current_url );
784 + $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/print.gif', __FILE__ ) . '" alt="image_print" title="Print Content" /></a>';
785 + }
786 + $str .= '</div>';
787 + unset( $current_url );
788 + unset( $permalink );
789 + return $str;
790 + }
791 +}
792 +
793 +/* Output buttons of page for custom post type */
794 +if ( ! function_exists( 'pdfprnt_show_buttons_for_custom_post_type' ) ) {
795 + function pdfprnt_show_buttons_for_custom_post_type( $custom_query ) {
796 + global $pdfprnt_options_array, $pdfprnt_output_count_buttons;
797 + if ( 0 < $pdfprnt_output_count_buttons )
798 + return;
799 + if ( 1 !== $pdfprnt_options_array['show_btn_pdf_custom'] && 1 !== $pdfprnt_options_array['show_btn_print_custom'] )
800 + return;
801 + if ( ! is_array( $custom_query ) && ! is_string( $custom_query ) )
802 + return;
803 + $custom_query = new WP_Query( $custom_query );
804 + /* Check for existence the type of posts. */
805 + $is_return = true;
806 + foreach ( $custom_query->posts as $post ) {
807 + if ( in_array( get_post_type( $post ), $pdfprnt_options_array['use_types_posts'] ) ) {
808 + $is_return = false;
809 + break;
810 + }
811 + }
812 + if ( $is_return )
813 + return;
814 + $pdfprnt_output_count_buttons++;
815 + $current_url = add_query_arg( $custom_query->query, '', home_url() );
816 + $str = '<div class="' . $pdfprnt_options_array['position_custom'] . '">';
817 + if ( 1 == $pdfprnt_options_array['show_btn_pdf_custom'] ) {
818 + $permalink = add_query_arg( 'print' , 'pdf-custom-page' , $current_url );
819 + $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/pdf.png', __FILE__ ) . '" alt="image_pdf" title="Print PDF" /></a>';
820 + }
821 + if ( 1 == $pdfprnt_options_array['show_btn_print_custom'] ) {
822 + $permalink = add_query_arg( 'print' , 'print-custom-page' , $current_url );
823 + $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/print.gif', __FILE__ ) . '" alt="image_print" title="Print Content" /></a>';
824 + }
825 + $str .= '</div>';
826 + unset( $current_url );
827 + unset( $permalink );
828 + unset( $is_return );
829 + unset( $custom_query );
830 + return $str;
831 + }
832 +}
833 +
834 +/* Add links */
835 +if ( ! function_exists( 'pdfprnt_action_links' ) ) {
836 + function pdfprnt_action_links( $links, $file ) {
837 + $base = plugin_basename( __FILE__ );
838 + if ( $file == $base ) {
839 + $settings_link = '<a href="admin.php?page=pdf-print.php">' . __( 'Settings', 'pdf-print' ) . '</a>';
840 + array_unshift( $links, $settings_link );
841 + }
842 + return $links;
843 + }
844 +}
845 +
846 +/* Add links */
847 +if ( ! function_exists( 'pdfprnt_links' ) ) {
848 + function pdfprnt_links( $links, $file ) {
849 + $base = plugin_basename( __FILE__ );
850 + if ( $file == $base ) {
851 + $links[] = '<a href="admin.php?page=pdf-print.php">' . __( 'Settings', 'pdf-print' ) . '</a>';
852 + $links[] = '<a href="http://wordpress.org/plugins/pdf-print/faq/" target="_blank">' . __( 'FAQ', 'pdf-print' ) . '</a>';
853 + $links[] = '<a href="http://support.bestwebsoft.com">' . __( 'Support', 'pdf-print' ) . '</a>';
854 + }
855 + return $links;
856 + }
857 +}
858 +
859 +/* Add stylesheets */
860 +if ( ! function_exists ( 'pdfprnt_admin_head' ) ) {
861 + function pdfprnt_admin_head() {
862 + global $wp_version;
863 + if ( $wp_version < 3.8 )
864 + wp_enqueue_style( 'pdfprnt_stylesheet', plugins_url( 'css/style_wp_before_3.8.css', __FILE__ ) );
865 + else
866 + wp_enqueue_style( 'pdfprnt_stylesheet', plugins_url( 'css/style.css', __FILE__ ) );
867 +
868 + if ( isset( $_GET['page'] ) && "pdf-print.php" == $_GET['page'] )
869 + wp_enqueue_script( 'pdfprnt_script', plugins_url( 'js/script.js', __FILE__ ) );
870 + }
871 +}
872 +
873 +/* Generate templates for pdf file or print */
874 +if ( ! function_exists( 'pdfprnt_generate_template' ) ) {
875 + function pdfprnt_generate_template( $content, $template = false, $isprint = false ) {
876 + global $pdfprnt_options_array;
877 + $tmpl = isset( $_GET['tmpl'] ) ? $_GET['tmpl'] : "";
878 + ob_start(); /* Starting output buffering */
879 + ?>
880 + <html>
881 + <head>
882 + <?php if ( 1 == $pdfprnt_options_array['use_theme_stylesheet'] ) : ?>
883 + <link type="text/css" rel="stylesheet" href="<?php echo get_bloginfo( 'stylesheet_url' ); ?>" media="all" />
884 + <?php else: ?>
885 + <link type="text/css" rel="stylesheet" href="<?php echo plugins_url( 'css/default.css', __FILE__ ); ?>" media="all" />
886 + <?php endif;
887 + if ( ! $template )
888 + $template = $pdfprnt_options_array['tmpl_post'];
889 + switch ( $template ) { /* Using template choosed on settings page */
890 + case 1: /* Allign left template */
891 + ?>
892 + <style type="text/css">
893 + h1, h2, h3, h4, h5, h6 {
894 + text-align: left;
895 + }
896 + img {
897 + float: right;
898 + }
899 + </style>
900 + <?php
901 + break;
902 + case 2: /* Allign center template */
903 + ?>
904 + <style type="text/css">
905 + h1, h2, h3, h4, h5, h6 {
906 + text-align: center;
907 + }
908 + img {
909 + float: left;
910 + }
911 + </style>
912 + <?php
913 + break;
914 + case 3: /* Allign right template */
915 + ?>
916 + <style type="text/css">
917 + h1, h2, h3, h4, h5, h6 {
918 + text-align: right;
919 + }
920 + img {
921 + float: left;
922 + }
923 + </style>
924 + <?php
925 + break;
926 + }
927 + switch ( $tmpl ) { /* If got something by GET (from admin bar) */
928 + case 1: /* Allign left template */
929 + ?>
930 + <style type="text/css">
931 + h1, h2, h3, h4, h5, h6 {
932 + text-align: left;
933 + }
934 + img {
935 + float: right;
936 + }
937 + </style>
938 + <?php
939 + break;
940 + case 2: /* Allign center template */
941 + ?>
942 + <style type="text/css">
943 + h1, h2, h3, h4, h5, h6 {
944 + text-align: center;
945 + }
946 + img {
947 + float: left;
948 + }
949 + </style>
950 + <?php
951 + break;
952 + case 3: /* Allign right template */
953 + ?>
954 + <style type="text/css">
955 + h1, h2, h3, h4, h5, h6 {
956 + text-align: right;
957 + }
958 + img {
959 + float: left;
960 + }
961 + </style>
962 + <?php break;
963 + }
964 + if ( $isprint ) : ?>
965 + <script type="text/javascript" src="<?php echo plugins_url( 'js/pdfprnt.print.js', __FILE__ ); ?>"></script>
966 + <?php if ( 1 == $pdfprnt_options_array['show_print_window'] ) {
967 + echo '<script>window.onload = function(){ window.print(); };</script>'; } ?>
968 + <?php endif; ?>
969 + </head>
970 + <body>
971 + <?php echo $content; ?>
972 + </body>
973 + </html>
974 + <?php
975 + $html = ob_get_contents(); /* Getting output buffering */
976 + ob_end_clean(); /* Closing output buffering */
977 + return $html; /* Now we done with template */
978 + }
979 +}
980 +
981 +if ( ! function_exists( 'pdfprnt_generate_template_for_bws_portfolio' ) ) {
982 + function pdfprnt_generate_template_for_bws_portfolio() {
983 + global $post;
984 + ob_start(); /* Starting output buffering */
985 + $portfolio_options = get_option( 'prtfl_options' );
986 + $meta_values = get_post_custom( $post->ID );
987 + $post_thumbnail_id = get_post_thumbnail_id( $post->ID );
988 + if( empty ( $post_thumbnail_id ) ) {
989 + $args = array(
990 + 'post_parent' => $post->ID,
991 + 'post_type' => 'attachment',
992 + 'post_mime_type' => 'image',
993 + 'numberposts' => 1
994 + );
995 + $attachments = get_children( $args );
996 + $post_thumbnail_id = key( $attachments );
997 + }
998 + $image = wp_get_attachment_image_src( $post_thumbnail_id, 'portfolio-thumb' );
999 + $image_alt = get_post_meta( $post_thumbnail_id, '_wp_attachment_image_alt', true );
1000 + $image_desc = get_post( $post_thumbnail_id );
1001 + $image_desc = $image_desc->post_content;
1002 + if ( '1' == get_option( 'prtfl_postmeta_update' ) ) {
1003 + $post_meta = get_post_meta( $post->ID, 'prtfl_information', true );
1004 + $date_compl = $post_meta['_prtfl_date_compl'];
1005 + if ( ! empty( $date_compl ) && 'in progress' != $date_compl ) {
1006 + $date_compl = explode( '/', $date_compl );
1007 + $date_compl = date( get_option( 'date_format' ), strtotime( $date_compl[1] . '-' . $date_compl[0] . '-' . $date_compl[2] ) );
1008 + }
1009 + $link = $post_meta['_prtfl_link'];
1010 + $short_descr = $post_meta['_prtfl_short_descr'];
1011 + } else {
1012 + $date_compl = get_post_meta( $post->ID, '_prtfl_date_compl', true );
1013 + if ( ! empty( $date_compl ) && 'in progress' != $date_compl ) {
1014 + $date_compl = explode( '/', $date_compl );
1015 + $date_compl = date( get_option( 'date_format' ), strtotime( $date_compl[1] . '-' . $date_compl[0] . '-' . $date_compl[2] ) );
1016 + }
1017 + $link = get_post_meta( $post->ID, '_prtfl_link', true);
1018 + $short_descr = $post_meta['_prtfl_short_descr'];
1019 + } ?>
1020 + <img src="<?php echo $image[0]; ?>" width="<?php echo $image[1]; ?>" alt="<?php echo $image_alt; ?>" />
1021 + <div>
1022 + <p>
1023 + <strong><?php _e( 'Date of completion', 'pdf-print' ); ?>:</strong> <?php echo $date_compl; ?><br/>
1024 + <strong><?php _e( 'Link', 'pdf-print' ); ?>:</strong> <a href="<?php echo $link; ?>"><?php echo $link; ?></a><br/>
1025 + <strong><?php _e( 'Description', 'pdf-print' ); ?>:</strong> <?php echo $short_descr; ?><br/>
1026 + </p>
1027 + </div>
1028 + <?php $terms = wp_get_object_terms( $post->ID, 'portfolio_technologies' );
1029 + if ( is_array( $terms ) && count( $terms ) > 0 ) { ?>
1030 + <div style="clear:both;">
1031 + <strong><?php _e( 'Technologies', 'pdf-print' ); ?>: </strong>
1032 + <?php $count = 0;
1033 + foreach ( $terms as $term ) {
1034 + if( 0 < $count )
1035 + echo ', ';
1036 + echo '<a href="' . get_term_link( $term->slug, 'portfolio_technologies' ) . '" title="' . sprintf( __( "View all posts in %s" ), $term->name ) . '" ' . '>' . $term->name . '</a>';
1037 + $count++;
1038 + } ?>
1039 + </div>
1040 + <?php }
1041 + $content = ob_get_contents(); /* Getting output buffering */
1042 + ob_end_clean(); /* Closing output buffering */
1043 + return $content; /* Now we done with template */
1044 + }
1045 +}
1046 +
1047 +/* Generate query posts for Portfolio plugin */
1048 +if ( ! function_exists( 'generate_query_posts_for_portfolio' ) ) {
1049 + function generate_query_posts_for_portfolio() {
1050 + global $wp_query;
1051 + $paged = isset( $wp_query->query_vars['paged'] ) ? $wp_query->query_vars['paged'] : 1;
1052 + $technologies = isset( $wp_query->query_vars["technologies"] ) ? $wp_query->query_vars["technologies"] : "";
1053 + if ( "" != $technologies ) {
1054 + $args = array(
1055 + 'post_type' => 'portfolio',
1056 + 'post_status' => 'publish',
1057 + 'posts_per_page' => get_option('posts_per_page'),
1058 + 'paged' => $paged,
1059 + 'tax_query' => array(
1060 + array(
1061 + 'taxonomy' => 'portfolio_technologies',
1062 + 'field' => 'slug',
1063 + 'terms' => $technologies
1064 + )
1065 + )
1066 + );
1067 + } else {
1068 + $args = array(
1069 + 'post_type' => 'portfolio',
1070 + 'post_status' => 'publish',
1071 + 'posts_per_page' => get_option('posts_per_page'),
1072 + 'paged' => $paged
1073 + );
1074 + }
1075 + query_posts( $args );
1076 + }
1077 +}
1078 +
1079 +/* Output print page or pdf document and include plugin script */
1080 +if ( ! function_exists( 'pdfprnt_print' ) ) {
1081 + function pdfprnt_print( $query ) {
1082 + global $pdfprnt_options_array, $posts, $post;
1083 + if ( $print = get_query_var( 'print' ) ) {
1084 + remove_all_filters( 'the_content' );
1085 + add_filter( 'the_content', 'capital_P_dangit', 11 );
1086 + add_filter( 'the_content', 'wptexturize' );
1087 + add_filter( 'the_content', 'convert_smilies' );
1088 + add_filter( 'the_content', 'convert_chars' );
1089 + add_filter( 'the_content', 'wpautop' );
1090 + if ( 1 == $pdfprnt_options_array['tmpl_shorcode'] ) {
1091 + add_filter( 'the_content', 'do_shortcode' ); /* executing shorcodes on the page */
1092 + } else {
1093 + $pattern = get_shortcode_regex();
1094 + if ( preg_match_all( '/'. $pattern .'/s', $post->post_content, $matches ) ) { /* getting all shortcodes we are using */
1095 + foreach ( array_unique( $matches[0] ) as $value) {
1096 + $post->post_content = str_replace( $value, "", $post->post_content ); /* replacing shorcodes to an empty string */
1097 + }
1098 + }
1099 + }
1100 + switch ( $print ) {
1101 + case 'pdf': /* Content for PDF from post */
1102 + include ( 'mpdf/mpdf.php' );
1103 + $mpdf = new mPDF( get_bloginfo( 'charset' ) );
1104 + $mpdf = new mPDF('+aCJK');
1105 + $user_info = get_userdata( $post->post_author );
1106 + $mpdf->SetAutoFont(AUTOFONT_ALL);
1107 + $mpdf->SetAuthor( $user_info->display_name );
1108 + $mpdf->SetTitle( $post->post_title );
1109 + $mpdf->SetSubject( get_bloginfo( 'blogdescription' ) );
1110 + $html = '<div class="container">
1111 + <div class="title"><h1><a href="' . get_permalink( $post->ID ) . '">' . $post->post_title . '</a></h1></div><br/>
1112 + <div class="content">' . apply_filters( 'the_content', $post->post_content ) . '</div>
1113 + </div>';
1114 + $mpdf->WriteHTML( pdfprnt_generate_template( $html ) );
1115 + $mpdf->Output();
1116 + unset( $user_info );
1117 + unset( $html );
1118 + unset( $mpdf );
1119 + die();
1120 + break;
1121 + case 'print': /* Content for printing from post */
1122 + $html = '<div class="container">
1123 + <div class="title"><h1>' . $post->post_title . '</h1></div><br/>
1124 + <div class="content">' . apply_filters( 'the_content', $post->post_content ) . '</div>
1125 + </div>';
1126 + echo pdfprnt_generate_template( $html, false, true );
1127 + unset( $html );
1128 + die();
1129 + break;
1130 + case 'pdf-page': /* Content for PDF from archive or searching page */
1131 + $html = '';
1132 + $titles = array();
1133 + $authors = array();
1134 + include ( 'mpdf/mpdf.php' );
1135 + $mpdf = new mPDF( get_bloginfo( 'charset' ) );
1136 + $mpdf = new mPDF('+aCJK');
1137 + foreach ( $posts as $p ) {
1138 + if ( ! in_array( get_post_type( $p ), $pdfprnt_options_array['use_types_posts'] ) )
1139 + continue;
1140 + $titles[] = $p->post_title;
1141 + $user_info = get_userdata( $p->post_author );
1142 + $authors[] = $user_info->display_name;
1143 + $html .= '<div class="container">
1144 + <div class="title"><h1><a href="' . get_permalink( $p->ID ) . '">' . $p->post_title . '</a></h1></div><br/>
1145 + <div class="content">' . apply_filters( 'the_content', $p->post_content ) . '</div>
1146 + </div><br/><hr/><br/>';
1147 + unset( $user_info );
1148 + }
1149 + $titles = array_unique( $titles );
1150 + $authors = array_unique( $authors );
1151 + $mpdf->SetAutoFont(AUTOFONT_ALL);
1152 + $mpdf->SetTitle( implode( ',', $titles ) );
1153 + $mpdf->SetAuthor( implode( ',', $authors ) );
1154 + $mpdf->SetSubject( get_bloginfo( 'blogdescription' ) );
1155 + $mpdf->WriteHTML( pdfprnt_generate_template( $html, $pdfprnt_options_array['tmpl_search'] ) );
1156 + $mpdf->Output();
1157 + unset( $authors );
1158 + unset( $titles );
1159 + unset( $html );
1160 + unset( $mpdf );
1161 + die();
1162 + break;
1163 + case 'print-page': /* Content for printing from archive or searching page */
1164 + $html = '';
1165 + foreach ( $posts as $p ) {
1166 + if ( ! in_array( get_post_type( $p ), $pdfprnt_options_array['use_types_posts'] ) )
1167 + continue;
1168 + $html .= '<div class="container">
1169 + <div class="title"><h1>' . $p->post_title . '</h1></div><br/>
1170 + <div class="content">' . apply_filters( 'the_content', $p->post_content ) . '</div>
1171 + </div><br/><hr/><br/>';
1172 + }
1173 + echo pdfprnt_generate_template( $html, $pdfprnt_options_array['tmpl_search'], true );
1174 + unset( $html );
1175 + die();
1176 + break;
1177 + case 'pdf-portfolio': /* Content for PDF from portfolio post */
1178 + include ( 'mpdf/mpdf.php' );
1179 + $mpdf = new mPDF( get_bloginfo( 'charset' ) );
1180 + $mpdf = new mPDF( '+aCJK' );
1181 + $user_info = get_userdata( $post->post_author );
1182 + $mpdf->SetAutoFont( AUTOFONT_ALL );
1183 + $mpdf->SetAuthor( $user_info->display_name );
1184 + $mpdf->SetTitle( $post->post_title );
1185 + $mpdf->SetSubject( get_bloginfo( 'blogdescription' ) );
1186 + $html = '<div class="container">
1187 + <div class="title"><h1><a href="' . get_permalink( $post->ID ) . '">' . $post->post_title . '</a></h1></div><br/>
1188 + <div class="content">' . pdfprnt_generate_template_for_bws_portfolio() . '</div>
1189 + </div>';
1190 + $mpdf->WriteHTML( pdfprnt_generate_template( $html, $pdfprnt_options_array['tmpl_custom'] ) );
1191 + $mpdf->Output();
1192 + unset( $html );
1193 + unset( $user_info );
1194 + unset( $mpdf );
1195 + die();
1196 + break;
1197 + case 'print-portfolio': /* Content for printing from porfolio post */
1198 + $html = '<div class="container">
1199 + <div class="title"><h1>' . $post->post_title . '</h1></div><br/>
1200 + <div class="content">' . pdfprnt_generate_template_for_bws_portfolio() . '</div>
1201 + </div>';
1202 + echo pdfprnt_generate_template( $html, $pdfprnt_options_array['tmpl_custom'], true );
1203 + unset( $html );
1204 + die();
1205 + break;
1206 + case 'pdf-portfolio-page': /* Content for PDF from portfolio page */
1207 + $html = '';
1208 + $titles = array();
1209 + $authors = array();
1210 + generate_query_posts_for_portfolio();
1211 + while ( have_posts() ) {
1212 + the_post();
1213 + global $post;
1214 + if ( ! in_array( get_post_type( $post ), $pdfprnt_options_array['use_types_posts'] ) )
1215 + continue;
1216 + $titles[] = $post->post_title;
1217 + $user_info = get_userdata( $post->post_author );
1218 + $authors[] = $user_info->display_name;
1219 + $html .= '<div class="container">
1220 + <div class="title"><h1><a href="' . get_permalink( $post->ID ) . '">' . $post->post_title . '</a></h1></div><br/>
1221 + <div class="content">' . pdfprnt_generate_template_for_bws_portfolio() . '</div>
1222 + </div><br/><hr/><br/>';
1223 + unset( $user_info );
1224 + }
1225 + include ( 'mpdf/mpdf.php' );
1226 + $mpdf = new mPDF( get_bloginfo( 'charset' ) );
1227 + $mpdf = new mPDF( '+aCJK' );
1228 + $titles = array_unique( $titles );
1229 + $authors = array_unique( $authors );
1230 + $mpdf->SetAutoFont( AUTOFONT_ALL );
1231 + $mpdf->SetTitle( implode( ',', $titles ) );
1232 + $mpdf->SetAuthor( implode( ',', $authors ) );
1233 + $mpdf->SetSubject( get_bloginfo( 'blogdescription' ) );
1234 + $mpdf->WriteHTML( pdfprnt_generate_template( $html, $pdfprnt_options_array['tmpl_custom'] ) );
1235 + $mpdf->Output();
1236 + unset( $authors );
1237 + unset( $titles );
1238 + unset( $html );
1239 + unset( $mpdf );
1240 + die();
1241 + break;
1242 + case 'print-portfolio-page': /* Content for printing from portfolio page */
1243 + generate_query_posts_for_portfolio();
1244 + $html = '';
1245 + while ( have_posts() ) {
1246 + the_post();
1247 + global $post;
1248 + if ( ! in_array( get_post_type( $post ), $pdfprnt_options_array['use_types_posts'] ) )
1249 + continue;
1250 + $html .= '<div class="container">
1251 + <div class="title"><h1>' . $post->post_title . '</h1></div><br/>
1252 + <div class="content">' . pdfprnt_generate_template_for_bws_portfolio() . '</div>
1253 + </div><br/><hr/><br/>';
1254 + }
1255 + echo pdfprnt_generate_template( $html, $pdfprnt_options_array['tmpl_custom'], true );
1256 + unset( $html );
1257 + die();
1258 + break;
1259 + case 'pdf-custom-page': /* Content for PDF from custom post */
1260 + $html = '';
1261 + $titles = $authors = array();
1262 + foreach ( $posts as $p ) {
1263 + if ( ! in_array( get_post_type( $p ), $pdfprnt_options_array['use_types_posts'] ) )
1264 + continue;
1265 + $titles[] = $p->post_title;
1266 + $user_info = get_userdata( $p->post_author );
1267 + $authors[] = $user_info->display_name;
1268 + $html .= '<div class="container">';
1269 + $html .= '<div class="title"><h1><a href="' . get_permalink( $p->ID ) . '">' . $p->post_title . '</a></h1></div><br/>';
1270 + $html .= '<div class="content">';
1271 + if ( has_post_thumbnail( $p->ID ) )
1272 + $html .= get_the_post_thumbnail( $p->ID, 'thumbnail' );
1273 + $html .= apply_filters( 'the_content', $p->post_content ) . '</div></div><br/><hr/><br/>';
1274 + unset( $user_info );
1275 + }
1276 + include ( 'mpdf/mpdf.php' );
1277 + $mpdf = new mPDF( get_bloginfo( 'charset' ) );
1278 + $mpdf = new mPDF( '+aCJK' );
1279 + $titles = array_unique( $titles );
1280 + $authors = array_unique( $authors );
1281 + $mpdf->SetAutoFont( AUTOFONT_ALL );
1282 + $mpdf->SetTitle( implode( ',', $titles ) );
1283 + $mpdf->SetAuthor( implode( ',', $authors ) );
1284 + $mpdf->SetSubject( get_bloginfo( 'blogdescription' ) );
1285 + $mpdf->WriteHTML( pdfprnt_generate_template( $html, $pdfprnt_options_array['tmpl_custom'] ) );
1286 + $mpdf->Output();
1287 + unset( $authors );
1288 + unset( $titles );
1289 + unset( $html );
1290 + unset( $mpdf );
1291 + die();
1292 + break;
1293 + case 'print-custom-page': /* Content for printing from custom post */
1294 + $html = '';
1295 + foreach ( $posts as $p ) {
1296 + if ( ! in_array( get_post_type( $p ), $pdfprnt_options_array['use_types_posts'] ) )
1297 + continue;
1298 + $html .= '<div class="container">';
1299 + $html .= '<div class="title"><h1>' . $p->post_title . '</h1></div><br/>';
1300 + $html .= '<div class="content">';
1301 + if ( has_post_thumbnail( $p->ID ) )
1302 + $html .= get_the_post_thumbnail( $p->ID, 'thumbnail' );
1303 + $html .= apply_filters( 'the_content', $p->post_content ) . '</div>
1304 + </div><br/><hr/><br/>';
1305 + }
1306 + echo pdfprnt_generate_template( $html, $pdfprnt_options_array['tmpl_custom'], true );
1307 + unset( $html );
1308 + die();
1309 + break;
1310 + }
1311 + }
1312 + }
1313 +}
1314 +
1315 +/* Add query vars */
1316 +if ( ! function_exists( 'print_vars_callback' ) ) {
1317 + function print_vars_callback( $query_vars ) {
1318 + $query_vars[] = 'print';
1319 + $query_vars[] = 'tmpl';
1320 + return $query_vars;
1321 + }
1322 +}
1323 +
1324 +/* Add custom admin bar menu */
1325 +if ( ! function_exists( 'pdfprnt_admin_bar_menu' ) ) {
1326 + function pdfprnt_admin_bar_menu() {
1327 + global $pdfprnt_options_array, $wp_admin_bar, $wp, $posts;
1328 + if ( ! is_super_admin() || ! is_admin_bar_showing() || is_admin() ) /* Checking user */
1329 + return;
1330 + if ( ( ! is_search() && ! is_archive() ) || ( is_category() || ! have_posts() ) )
1331 + return;
1332 + $is_return = true;
1333 + foreach ( $posts as $post ) {
1334 + if ( in_array( get_post_type( $post ), $pdfprnt_options_array['use_types_posts'] ) ) {
1335 + $is_return = false;
1336 + break;
1337 + }
1338 + }
1339 + if ( $is_return )
1340 + return;
1341 + if ( empty( $wp->request ) )
1342 + $current_url = add_query_arg( $wp->query_string, '', home_url() );
1343 + else
1344 + $current_url = home_url( $wp->request );
1345 + $permalink = add_query_arg( 'print', 'pdf-page', $current_url );
1346 + $wp_admin_bar->add_menu( array(
1347 + 'id' => 'pdfprnt-bar-menu',
1348 + 'title' => '<span class="admin-bar-menu-bws-icon"></span>PDF',
1349 + 'href' => $permalink
1350 + ) );
1351 + $template_url = add_query_arg( 'tmpl', '1', $permalink ); /* Adding parametrs to link */
1352 + $wp_admin_bar->add_menu( array(
1353 + 'parent' => 'pdfprnt-bar-menu',
1354 + 'id' => 'pdfprnt-template-1',
1355 + 'title' => '<img src="' . plugins_url( 'images/template_left.jpg', __FILE__ ) . '" alt="template_left" />',
1356 + 'href' => $template_url
1357 + ) );
1358 + $template_url = add_query_arg( 'tmpl', '2', $permalink ); /* Adding parametrs to link */
1359 + $wp_admin_bar->add_menu( array(
1360 + 'parent' => 'pdfprnt-bar-menu',
1361 + 'id' => 'pdfprnt-template-2',
1362 + 'title' => '<img src="' . plugins_url( 'images/template_center.jpg', __FILE__ ) . '" alt="template_center" />',
1363 + 'href' => $template_url
1364 + ) );
1365 + $template_url = add_query_arg( 'tmpl', '3', $permalink ); /* Adding parametrs to link */
1366 + $wp_admin_bar->add_menu( array(
1367 + 'parent' => 'pdfprnt-bar-menu',
1368 + 'id' => 'pdfprnt-template-3',
1369 + 'title' => '<img src="' . plugins_url( 'images/template_right.jpg', __FILE__ ) . '" alt="template_right" />',
1370 + 'href' => $template_url
1371 + ) );
1372 + unset( $current_url );
1373 + unset( $permalink );
1374 + unset( $template_url );
1375 + }
1376 +}
1377 +
1378 +if ( ! function_exists ( 'pdfprnt_plugin_banner' ) ) {
1379 + function pdfprnt_plugin_banner() {
1380 + global $hook_suffix, $pdfprnt_plugin_info;
1381 + if ( 'plugins.php' == $hook_suffix ) {
1382 + $banner_array = array(
1383 + array( 'sndr_hide_banner_on_plugin_page', 'sender/sender.php', '0.5' ),
1384 + array( 'srrl_hide_banner_on_plugin_page', 'user-role/user-role.php', '1.4' ),
1385 + array( 'pdtr_hide_banner_on_plugin_page', 'updater/updater.php', '1.12' ),
1386 + array( 'cntctfrmtdb_hide_banner_on_plugin_page', 'contact-form-to-db/contact_form_to_db.php', '1.2' ),
1387 + array( 'cntctfrmmlt_hide_banner_on_plugin_page', 'contact-form-multi/contact-form-multi.php', '1.0.7' ),
1388 + array( 'gglmps_hide_banner_on_plugin_page', 'bws-google-maps/bws-google-maps.php', '1.2' ),
1389 + array( 'fcbkbttn_hide_banner_on_plugin_page', 'facebook-button-plugin/facebook-button-plugin.php', '2.29' ),
1390 + array( 'twttr_hide_banner_on_plugin_page', 'twitter-plugin/twitter.php', '2.34' ),
1391 + array( 'pdfprnt_hide_banner_on_plugin_page', 'pdf-print/pdf-print.php', '1.7.1' ),
1392 + array( 'gglplsn_hide_banner_on_plugin_page', 'google-one/google-plus-one.php', '1.1.4' ),
1393 + array( 'gglstmp_hide_banner_on_plugin_page', 'google-sitemap-plugin/google-sitemap-plugin.php', '2.8.4' ),
1394 + array( 'cntctfrmpr_for_ctfrmtdb_hide_banner_on_plugin_page', 'contact-form-pro/contact_form_pro.php', '1.14' ),
1395 + array( 'cntctfrm_for_ctfrmtdb_hide_banner_on_plugin_page', 'contact-form-plugin/contact_form.php', '3.62' ),
1396 + array( 'cntctfrm_hide_banner_on_plugin_page', 'contact-form-plugin/contact_form.php', '3.47' ),
1397 + array( 'cptch_hide_banner_on_plugin_page', 'captcha/captcha.php', '3.8.4' ),
1398 + array( 'gllr_hide_banner_on_plugin_page', 'gallery-plugin/gallery-plugin.php', '3.9.1' )
1399 + );
1400 + if ( ! $pdfprnt_plugin_info )
1401 + $pdfprnt_plugin_info = get_plugin_data( __FILE__ );
1402 + if ( ! function_exists( 'is_plugin_active_for_network' ) )
1403 + require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
1404 + $active_plugins = get_option( 'active_plugins' );
1405 + $all_plugins = get_plugins();
1406 + $this_banner = 'pdfprnt_hide_banner_on_plugin_page';
1407 + foreach ( $banner_array as $key => $value ) {
1408 + if ( $this_banner == $value[0] ) {
1409 + global $wp_version, $bstwbsftwppdtplgns_cookie_add;
1410 + if ( ! isset( $bstwbsftwppdtplgns_cookie_add ) ) {
1411 + echo '<script type="text/javascript" src="' . plugins_url( 'js/c_o_o_k_i_e.js', __FILE__ ) . '"></script>';
1412 + $bstwbsftwppdtplgns_cookie_add = true;
1413 + } ?>
1414 + <script type="text/javascript">
1415 + (function($) {
1416 + $(document).ready( function() {
1417 + var hide_message = $.cookie( "pdfprnt_hide_banner_on_plugin_page" );
1418 + if ( hide_message == "true") {
1419 + $( ".pdfprnt_message" ).css( "display", "none" );
1420 + } else {
1421 + $( ".pdfprnt_message" ).css( "display", "block" );
1422 + };
1423 + $( ".pdfprnt_close_icon" ).click( function() {
1424 + $( ".pdfprnt_message" ).css( "display", "none" );
1425 + $.cookie( "pdfprnt_hide_banner_on_plugin_page", "true", { expires: 32 } );
1426 + });
1427 + });
1428 + })(jQuery);
1429 + </script>
1430 + <div class="updated" style="padding: 0; margin: 0; border: none; background: none;">
1431 + <div class="pdfprnt_message bws_banner_on_plugin_page" style="display: none;">
1432 + <img class="pdfprnt_close_icon close_icon" title="" src="<?php echo plugins_url( 'images/close_banner.png', __FILE__ ); ?>" alt=""/>
1433 + <div class="button_div">
1434 + <a class="button" target="_blank" href="http://bestwebsoft.com/plugin/pdf-print-pro/?k=e2f2549f4d70bc4cb9b48071169d264e&pn=101&v=<?php echo $pdfprnt_plugin_info["Version"]; ?>&wp_v=<?php echo $wp_version; ?>"><?php _e( "Learn More", 'pdf-print' ); ?></a>
1435 + </div>
1436 + <div class="text">
1437 + <?php _e( "It's time to upgrade your <strong>PDF & Print</strong> to <strong>PRO</strong> version", 'pdf-print' ); ?>!<br />
1438 + <span><?php _e( 'Extend standard plugin functionality with new great options', 'pdf-print' ); ?>.</span>
1439 + </div>
1440 + <div class="icon">
1441 + <img title="" src="<?php echo plugins_url( 'images/banner.png', __FILE__ ); ?>" alt=""/>
1442 + </div>
1443 + </div>
1444 + </div>
1445 + <?php break;
1446 + }
1447 + if ( isset( $all_plugins[ $value[1] ] ) && $all_plugins[ $value[1] ]["Version"] >= $value[2] && ( 0 < count( preg_grep( '/' . str_replace( '/', '\/', $value[1] ) . '/', $active_plugins ) ) || is_plugin_active_for_network( $value[1] ) ) && ! isset( $_COOKIE[ $value[0] ] ) ) {
1448 + break;
1449 + }
1450 + }
1451 + }
1452 + }
1453 +}
1454 +
1455 +/* Deleting plugin options on uninstalling */
1456 +if ( ! function_exists( 'pdfprnt_uninstall' ) ) {
1457 + function pdfprnt_uninstall() {
1458 + delete_option( 'pdfprnt_options_array' );
1459 + delete_site_option( 'pdfprnt_options_array' );
1460 + }
1461 +}
1462 +
1463 +/* Adding function to output PDF document or pirnt page */
1464 +add_action( 'wp', 'pdfprnt_print' );
1465 +/* Initialization */
1466 +add_action( 'init', 'pdfprnt_init' );
1467 +add_action( 'admin_init', 'pdfprnt_admin_init' );
1468 +/* Adding stylesheets */
1469 +add_action( 'admin_enqueue_scripts', 'pdfprnt_admin_head' );
1470 +add_action( 'wp_enqueue_scripts', 'pdfprnt_admin_head' );
1471 +/* Adding 'BWS Plugins' admin menu */
1472 +add_action( 'admin_menu', 'pdfprnt_add_pages' );
1473 +/* Add menu to bar menu WordPress */
1474 +add_action( 'admin_bar_menu', 'pdfprnt_admin_bar_menu', 1000 );
1475 +/* Add query vars */
1476 +add_filter( 'query_vars', 'print_vars_callback' );
1477 +/* Additional links on the plugin page */
1478 +add_filter( 'plugin_action_links', 'pdfprnt_action_links', 10, 2 );
1479 +add_filter( 'plugin_row_meta', 'pdfprnt_links', 10, 2 );
1480 +/* Adding buttons plugin to content */
1481 +add_filter( 'the_content', 'pdfprnt_content' );
1482 +/* Adding banner */
1483 +add_action( 'admin_notices', 'pdfprnt_plugin_banner' );
1484 +/* Plugin uninstall function */
1485 +register_uninstall_hook( __FILE__, 'pdfprnt_uninstall' );
1486 +?>