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
pdf-print / pdf-print.php

pdf-print.php in PDF & Print by BestWebSoft – WordPress Posts and Pages PDF Generator Plugin 1.7.3, at pdf-print.php

1,486 lines 70.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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 ?>