PluginProbe
PDF & Print by BestWebSoft – WordPress Posts and Pages PDF Generator Plugin / 1.7.4
PDF & Print by BestWebSoft – WordPress Posts and Pages PDF Generator Plugin v1.7.4
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.4, at pdf-print.php

1,490 lines 70.7 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.4
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 if ( is_admin() )
658 return;
659
660 global $pdfprnt_options_array, $post;
661 if ( ! in_array( get_post_type( $post ), $pdfprnt_options_array['use_types_posts'] ) ) // Check for existence the type of posts.
662 return $content;
663 if ( 1 == $pdfprnt_options_array['show_btn_pdf'] || 1 == $pdfprnt_options_array['show_btn_print'] ) {
664 $position = ( 'top-left' == $pdfprnt_options_array['position'] || 'top-right' == $pdfprnt_options_array['position'] ) ? true : false;
665 $str = '<div class="pdfprnt-' . $pdfprnt_options_array['position'] . '">';
666 if ( 1 == $pdfprnt_options_array['show_btn_pdf'] ) {
667 if ( ! is_front_page () )
668 $permalink = add_query_arg( 'print' , 'pdf' , get_permalink( $post->ID ) );
669 else
670 $permalink = add_query_arg( 'print' , 'pdf' , get_permalink() . '?page-id=' . $post->ID );
671 $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/pdf.png', __FILE__ ) . '" alt="image_pdf" title="View PDF" /></a>';
672 }
673 if ( 1 == $pdfprnt_options_array['show_btn_print'] ) {
674 if ( ! is_front_page () )
675 $permalink = add_query_arg( 'print' , 'print' , get_permalink( $post->ID ) );
676 else
677 $permalink = add_query_arg( 'print' , 'print' , get_permalink() . '?page-id=' . $post->ID );
678 $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/print.gif', __FILE__ ) . '" alt="image_print" title="Print Content" /></a>';
679 }
680 $str .= '</div>';
681 if ( $position )
682 $content = $str . $content;
683 else
684 $content = $content . $str;
685 unset( $position );
686 unset( $str );
687 }
688 return $content;
689 }
690 }
691
692 /* Output buttons for search or archive pages */
693 if( ! function_exists( 'pdfprnt_show_buttons_search_archive' ) ) {
694 function pdfprnt_show_buttons_search_archive() {
695 global $pdfprnt_options_array, $pdfprnt_output_count_buttons, $wp, $posts;
696 if ( 0 < $pdfprnt_output_count_buttons )
697 return;
698 if ( 1 !== $pdfprnt_options_array['show_btn_pdf_search_archive'] && 1 !== $pdfprnt_options_array['show_btn_print_search_archive'] )
699 return;
700 if ( ( ! is_search() && ! is_archive() ) || ( is_category() || ! have_posts() ) )
701 return;
702 /* Check for existence the type of posts. */
703 $is_return = true;
704 foreach ( $posts as $post ) {
705 if ( in_array( get_post_type( $post ), $pdfprnt_options_array['use_types_posts'] ) ) {
706 $is_return = false;
707 break;
708 }
709 }
710 if ( $is_return )
711 return;
712 $pdfprnt_output_count_buttons++;
713 if ( empty( $wp->request ) )
714 $current_url = add_query_arg( $wp->query_string, '', home_url() );
715 else
716 $current_url = home_url( $wp->request );
717 $str = '<div class="' . $pdfprnt_options_array['position_search_archive'] . '">';
718 if ( 1 == $pdfprnt_options_array['show_btn_pdf_search_archive'] ) {
719 $permalink = add_query_arg( 'print' , 'pdf-page' , $current_url );
720 $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/pdf.png', __FILE__ ) . '" alt="image_pdf" title="Print PDF" /></a>';
721 }
722 if ( 1 == $pdfprnt_options_array['show_btn_print_search_archive'] ) {
723 $permalink = add_query_arg( 'print' , 'print-page' , $current_url );
724 $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/print.gif', __FILE__ ) . '" alt="image_print" title="Print Content" /></a>';
725 }
726 $str .= '</div>';
727 unset( $current_url );
728 unset( $permalink );
729 echo $str;
730 }
731 }
732 if ( ! function_exists( 'pdfprnt_auto_show_buttons_search_archive' ) ) {
733 function pdfprnt_auto_show_buttons_search_archive() {
734 if ( is_archive() || is_search() )
735 add_action( 'loop_start', 'pdfprnt_show_buttons_search_archive' );
736 }
737 add_action( 'wp_head', 'pdfprnt_auto_show_buttons_search_archive' );
738 }
739
740 /* Output buttons of page for BWS Portfolio plugin */
741 if( ! function_exists( 'pdfprnt_show_buttons_for_bws_portfolio' ) ) {
742 function pdfprnt_show_buttons_for_bws_portfolio() {
743 global $pdfprnt_options_array, $pdfprnt_output_count_buttons, $wp;
744 if ( 0 < $pdfprnt_output_count_buttons )
745 return;
746 if ( 1 !== $pdfprnt_options_array['show_btn_pdf_custom'] && 1 !== $pdfprnt_options_array['show_btn_print_custom'] )
747 return;
748 if ( ! in_array( 'portfolio', $pdfprnt_options_array['use_types_posts'] ) )
749 return;
750 $pdfprnt_output_count_buttons++;
751 if ( empty( $wp->request ) )
752 $current_url = add_query_arg( $wp->query_string, '', home_url() );
753 else
754 $current_url = home_url( $wp->request );
755 $str = '<div class="' . $pdfprnt_options_array['position_custom'] . '">';
756 if ( 1 == $pdfprnt_options_array['show_btn_pdf_custom'] ) {
757 $permalink = add_query_arg( 'print' , 'pdf-portfolio-page' , $current_url );
758 $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/pdf.png', __FILE__ ) . '" alt="image_pdf" title="Print PDF" /></a>';
759 }
760 if ( 1 == $pdfprnt_options_array['show_btn_print_custom'] ) {
761 $permalink = add_query_arg( 'print' , 'print-portfolio-page' , $current_url );
762 $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/print.gif', __FILE__ ) . '" alt="image_print" title="Print Content" /></a>';
763 }
764 $str .= '</div>';
765 unset( $current_url );
766 unset( $permalink );
767 return $str;
768 }
769 }
770
771 /* Output buttons of post for BWS Portfolio plugin */
772 if ( ! function_exists( 'pdfprnt_show_buttons_for_bws_portfolio_post' ) ) {
773 function pdfprnt_show_buttons_for_bws_portfolio_post() {
774 global $pdfprnt_options_array, $post;
775 if ( 1 !== $pdfprnt_options_array['show_btn_pdf_custom'] && 1 !== $pdfprnt_options_array['show_btn_print_custom'] )
776 return;
777 if ( ! in_array( get_post_type( $post ), $pdfprnt_options_array['use_types_posts'] ) )
778 return;
779 $current_url = get_permalink();
780 $str = '<div class="' . $pdfprnt_options_array['position_custom'] . '">';
781 if ( 1 == $pdfprnt_options_array['show_btn_pdf_custom'] ) {
782 $permalink = add_query_arg( 'print' , 'pdf-portfolio' , $current_url );
783 $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/pdf.png', __FILE__ ) . '" alt="image_pdf" title="Print PDF" /></a>';
784 }
785 if ( 1 == $pdfprnt_options_array['show_btn_print_custom'] ) {
786 $permalink = add_query_arg( 'print' , 'print-portfolio' , $current_url );
787 $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/print.gif', __FILE__ ) . '" alt="image_print" title="Print Content" /></a>';
788 }
789 $str .= '</div>';
790 unset( $current_url );
791 unset( $permalink );
792 return $str;
793 }
794 }
795
796 /* Output buttons of page for custom post type */
797 if ( ! function_exists( 'pdfprnt_show_buttons_for_custom_post_type' ) ) {
798 function pdfprnt_show_buttons_for_custom_post_type( $custom_query ) {
799 global $pdfprnt_options_array, $pdfprnt_output_count_buttons;
800 if ( 0 < $pdfprnt_output_count_buttons )
801 return;
802 if ( 1 !== $pdfprnt_options_array['show_btn_pdf_custom'] && 1 !== $pdfprnt_options_array['show_btn_print_custom'] )
803 return;
804 if ( ! is_array( $custom_query ) && ! is_string( $custom_query ) )
805 return;
806 $custom_query = new WP_Query( $custom_query );
807 /* Check for existence the type of posts. */
808 $is_return = true;
809 foreach ( $custom_query->posts as $post ) {
810 if ( in_array( get_post_type( $post ), $pdfprnt_options_array['use_types_posts'] ) ) {
811 $is_return = false;
812 break;
813 }
814 }
815 if ( $is_return )
816 return;
817 $pdfprnt_output_count_buttons++;
818 $current_url = add_query_arg( $custom_query->query, '', home_url() );
819 $str = '<div class="' . $pdfprnt_options_array['position_custom'] . '">';
820 if ( 1 == $pdfprnt_options_array['show_btn_pdf_custom'] ) {
821 $permalink = add_query_arg( 'print' , 'pdf-custom-page' , $current_url );
822 $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/pdf.png', __FILE__ ) . '" alt="image_pdf" title="Print PDF" /></a>';
823 }
824 if ( 1 == $pdfprnt_options_array['show_btn_print_custom'] ) {
825 $permalink = add_query_arg( 'print' , 'print-custom-page' , $current_url );
826 $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/print.gif', __FILE__ ) . '" alt="image_print" title="Print Content" /></a>';
827 }
828 $str .= '</div>';
829 unset( $current_url );
830 unset( $permalink );
831 unset( $is_return );
832 unset( $custom_query );
833 return $str;
834 }
835 }
836
837 /* Add links */
838 if ( ! function_exists( 'pdfprnt_action_links' ) ) {
839 function pdfprnt_action_links( $links, $file ) {
840 $base = plugin_basename( __FILE__ );
841 if ( $file == $base ) {
842 $settings_link = '<a href="admin.php?page=pdf-print.php">' . __( 'Settings', 'pdf-print' ) . '</a>';
843 array_unshift( $links, $settings_link );
844 }
845 return $links;
846 }
847 }
848
849 /* Add links */
850 if ( ! function_exists( 'pdfprnt_links' ) ) {
851 function pdfprnt_links( $links, $file ) {
852 $base = plugin_basename( __FILE__ );
853 if ( $file == $base ) {
854 $links[] = '<a href="admin.php?page=pdf-print.php">' . __( 'Settings', 'pdf-print' ) . '</a>';
855 $links[] = '<a href="http://wordpress.org/plugins/pdf-print/faq/" target="_blank">' . __( 'FAQ', 'pdf-print' ) . '</a>';
856 $links[] = '<a href="http://support.bestwebsoft.com">' . __( 'Support', 'pdf-print' ) . '</a>';
857 }
858 return $links;
859 }
860 }
861
862 /* Add stylesheets */
863 if ( ! function_exists ( 'pdfprnt_admin_head' ) ) {
864 function pdfprnt_admin_head() {
865 global $wp_version;
866 if ( $wp_version < 3.8 )
867 wp_enqueue_style( 'pdfprnt_stylesheet', plugins_url( 'css/style_wp_before_3.8.css', __FILE__ ) );
868 else
869 wp_enqueue_style( 'pdfprnt_stylesheet', plugins_url( 'css/style.css', __FILE__ ) );
870
871 if ( isset( $_GET['page'] ) && "pdf-print.php" == $_GET['page'] )
872 wp_enqueue_script( 'pdfprnt_script', plugins_url( 'js/script.js', __FILE__ ) );
873 }
874 }
875
876 /* Generate templates for pdf file or print */
877 if ( ! function_exists( 'pdfprnt_generate_template' ) ) {
878 function pdfprnt_generate_template( $content, $template = false, $isprint = false ) {
879 global $pdfprnt_options_array;
880 $tmpl = isset( $_GET['tmpl'] ) ? $_GET['tmpl'] : "";
881 ob_start(); /* Starting output buffering */
882 ?>
883 <html>
884 <head>
885 <?php if ( 1 == $pdfprnt_options_array['use_theme_stylesheet'] ) : ?>
886 <link type="text/css" rel="stylesheet" href="<?php echo get_bloginfo( 'stylesheet_url' ); ?>" media="all" />
887 <?php else: ?>
888 <link type="text/css" rel="stylesheet" href="<?php echo plugins_url( 'css/default.css', __FILE__ ); ?>" media="all" />
889 <?php endif;
890 if ( ! $template )
891 $template = $pdfprnt_options_array['tmpl_post'];
892 switch ( $template ) { /* Using template choosed on settings page */
893 case 1: /* Allign left template */
894 ?>
895 <style type="text/css">
896 h1, h2, h3, h4, h5, h6 {
897 text-align: left;
898 }
899 img {
900 float: right;
901 }
902 </style>
903 <?php
904 break;
905 case 2: /* Allign center template */
906 ?>
907 <style type="text/css">
908 h1, h2, h3, h4, h5, h6 {
909 text-align: center;
910 }
911 img {
912 float: left;
913 }
914 </style>
915 <?php
916 break;
917 case 3: /* Allign right template */
918 ?>
919 <style type="text/css">
920 h1, h2, h3, h4, h5, h6 {
921 text-align: right;
922 }
923 img {
924 float: left;
925 }
926 </style>
927 <?php
928 break;
929 }
930 switch ( $tmpl ) { /* If got something by GET (from admin bar) */
931 case 1: /* Allign left template */
932 ?>
933 <style type="text/css">
934 h1, h2, h3, h4, h5, h6 {
935 text-align: left;
936 }
937 img {
938 float: right;
939 }
940 </style>
941 <?php
942 break;
943 case 2: /* Allign center template */
944 ?>
945 <style type="text/css">
946 h1, h2, h3, h4, h5, h6 {
947 text-align: center;
948 }
949 img {
950 float: left;
951 }
952 </style>
953 <?php
954 break;
955 case 3: /* Allign right template */
956 ?>
957 <style type="text/css">
958 h1, h2, h3, h4, h5, h6 {
959 text-align: right;
960 }
961 img {
962 float: left;
963 }
964 </style>
965 <?php break;
966 }
967 if ( $isprint ) : ?>
968 <script type="text/javascript" src="<?php echo plugins_url( 'js/pdfprnt.print.js', __FILE__ ); ?>"></script>
969 <?php if ( 1 == $pdfprnt_options_array['show_print_window'] ) {
970 echo '<script>window.onload = function(){ window.print(); };</script>'; } ?>
971 <?php endif; ?>
972 </head>
973 <body>
974 <?php echo $content; ?>
975 </body>
976 </html>
977 <?php
978 $html = ob_get_contents(); /* Getting output buffering */
979 ob_end_clean(); /* Closing output buffering */
980 return $html; /* Now we done with template */
981 }
982 }
983
984 if ( ! function_exists( 'pdfprnt_generate_template_for_bws_portfolio' ) ) {
985 function pdfprnt_generate_template_for_bws_portfolio() {
986 global $post;
987 ob_start(); /* Starting output buffering */
988 $portfolio_options = get_option( 'prtfl_options' );
989 $meta_values = get_post_custom( $post->ID );
990 $post_thumbnail_id = get_post_thumbnail_id( $post->ID );
991 if( empty ( $post_thumbnail_id ) ) {
992 $args = array(
993 'post_parent' => $post->ID,
994 'post_type' => 'attachment',
995 'post_mime_type' => 'image',
996 'numberposts' => 1
997 );
998 $attachments = get_children( $args );
999 $post_thumbnail_id = key( $attachments );
1000 }
1001 $image = wp_get_attachment_image_src( $post_thumbnail_id, 'portfolio-thumb' );
1002 $image_alt = get_post_meta( $post_thumbnail_id, '_wp_attachment_image_alt', true );
1003 $image_desc = get_post( $post_thumbnail_id );
1004 $image_desc = $image_desc->post_content;
1005 if ( '1' == get_option( 'prtfl_postmeta_update' ) ) {
1006 $post_meta = get_post_meta( $post->ID, 'prtfl_information', true );
1007 $date_compl = $post_meta['_prtfl_date_compl'];
1008 if ( ! empty( $date_compl ) && 'in progress' != $date_compl ) {
1009 $date_compl = explode( '/', $date_compl );
1010 $date_compl = date( get_option( 'date_format' ), strtotime( $date_compl[1] . '-' . $date_compl[0] . '-' . $date_compl[2] ) );
1011 }
1012 $link = $post_meta['_prtfl_link'];
1013 $short_descr = $post_meta['_prtfl_short_descr'];
1014 } else {
1015 $date_compl = get_post_meta( $post->ID, '_prtfl_date_compl', true );
1016 if ( ! empty( $date_compl ) && 'in progress' != $date_compl ) {
1017 $date_compl = explode( '/', $date_compl );
1018 $date_compl = date( get_option( 'date_format' ), strtotime( $date_compl[1] . '-' . $date_compl[0] . '-' . $date_compl[2] ) );
1019 }
1020 $link = get_post_meta( $post->ID, '_prtfl_link', true);
1021 $short_descr = $post_meta['_prtfl_short_descr'];
1022 } ?>
1023 <img src="<?php echo $image[0]; ?>" width="<?php echo $image[1]; ?>" alt="<?php echo $image_alt; ?>" />
1024 <div>
1025 <p>
1026 <strong><?php _e( 'Date of completion', 'pdf-print' ); ?>:</strong> <?php echo $date_compl; ?><br/>
1027 <strong><?php _e( 'Link', 'pdf-print' ); ?>:</strong> <a href="<?php echo $link; ?>"><?php echo $link; ?></a><br/>
1028 <strong><?php _e( 'Description', 'pdf-print' ); ?>:</strong> <?php echo $short_descr; ?><br/>
1029 </p>
1030 </div>
1031 <?php $terms = wp_get_object_terms( $post->ID, 'portfolio_technologies' );
1032 if ( is_array( $terms ) && count( $terms ) > 0 ) { ?>
1033 <div style="clear:both;">
1034 <strong><?php _e( 'Technologies', 'pdf-print' ); ?>: </strong>
1035 <?php $count = 0;
1036 foreach ( $terms as $term ) {
1037 if( 0 < $count )
1038 echo ', ';
1039 echo '<a href="' . get_term_link( $term->slug, 'portfolio_technologies' ) . '" title="' . sprintf( __( "View all posts in %s" ), $term->name ) . '" ' . '>' . $term->name . '</a>';
1040 $count++;
1041 } ?>
1042 </div>
1043 <?php }
1044 $content = ob_get_contents(); /* Getting output buffering */
1045 ob_end_clean(); /* Closing output buffering */
1046 return $content; /* Now we done with template */
1047 }
1048 }
1049
1050 /* Generate query posts for Portfolio plugin */
1051 if ( ! function_exists( 'generate_query_posts_for_portfolio' ) ) {
1052 function generate_query_posts_for_portfolio() {
1053 global $wp_query;
1054 $paged = isset( $wp_query->query_vars['paged'] ) ? $wp_query->query_vars['paged'] : 1;
1055 $technologies = isset( $wp_query->query_vars["technologies"] ) ? $wp_query->query_vars["technologies"] : "";
1056 if ( "" != $technologies ) {
1057 $args = array(
1058 'post_type' => 'portfolio',
1059 'post_status' => 'publish',
1060 'posts_per_page' => get_option('posts_per_page'),
1061 'paged' => $paged,
1062 'tax_query' => array(
1063 array(
1064 'taxonomy' => 'portfolio_technologies',
1065 'field' => 'slug',
1066 'terms' => $technologies
1067 )
1068 )
1069 );
1070 } else {
1071 $args = array(
1072 'post_type' => 'portfolio',
1073 'post_status' => 'publish',
1074 'posts_per_page' => get_option('posts_per_page'),
1075 'paged' => $paged
1076 );
1077 }
1078 query_posts( $args );
1079 }
1080 }
1081
1082 /* Output print page or pdf document and include plugin script */
1083 if ( ! function_exists( 'pdfprnt_print' ) ) {
1084 function pdfprnt_print( $query ) {
1085 global $pdfprnt_options_array, $posts, $post;
1086 if ( $print = get_query_var( 'print' ) ) {
1087 remove_all_filters( 'the_content' );
1088 add_filter( 'the_content', 'capital_P_dangit', 11 );
1089 add_filter( 'the_content', 'wptexturize' );
1090 add_filter( 'the_content', 'convert_smilies' );
1091 add_filter( 'the_content', 'convert_chars' );
1092 add_filter( 'the_content', 'wpautop' );
1093 if ( 1 == $pdfprnt_options_array['tmpl_shorcode'] ) {
1094 add_filter( 'the_content', 'do_shortcode' ); /* executing shorcodes on the page */
1095 } else {
1096 $pattern = get_shortcode_regex();
1097 if ( preg_match_all( '/'. $pattern .'/s', $post->post_content, $matches ) ) { /* getting all shortcodes we are using */
1098 foreach ( array_unique( $matches[0] ) as $value) {
1099 $post->post_content = str_replace( $value, "", $post->post_content ); /* replacing shorcodes to an empty string */
1100 }
1101 }
1102 }
1103 switch ( $print ) {
1104 case 'pdf': /* Content for PDF from post */
1105 include ( 'mpdf/mpdf.php' );
1106 $mpdf = new mPDF( get_bloginfo( 'charset' ) );
1107 $mpdf = new mPDF('+aCJK');
1108 $user_info = get_userdata( $post->post_author );
1109 $mpdf->SetAutoFont(AUTOFONT_ALL);
1110 $mpdf->SetAuthor( $user_info->display_name );
1111 $mpdf->SetTitle( $post->post_title );
1112 $mpdf->SetSubject( get_bloginfo( 'blogdescription' ) );
1113 $html = '<div class="container">
1114 <div class="title"><h1><a href="' . get_permalink( $post->ID ) . '">' . $post->post_title . '</a></h1></div><br/>
1115 <div class="content">' . apply_filters( 'the_content', $post->post_content ) . '</div>
1116 </div>';
1117 $mpdf->WriteHTML( pdfprnt_generate_template( $html ) );
1118 $mpdf->Output();
1119 unset( $user_info );
1120 unset( $html );
1121 unset( $mpdf );
1122 die();
1123 break;
1124 case 'print': /* Content for printing from post */
1125 $html = '<div class="container">
1126 <div class="title"><h1>' . $post->post_title . '</h1></div><br/>
1127 <div class="content">' . apply_filters( 'the_content', $post->post_content ) . '</div>
1128 </div>';
1129 echo pdfprnt_generate_template( $html, false, true );
1130 unset( $html );
1131 die();
1132 break;
1133 case 'pdf-page': /* Content for PDF from archive or searching page */
1134 $html = '';
1135 $titles = array();
1136 $authors = array();
1137 include ( 'mpdf/mpdf.php' );
1138 $mpdf = new mPDF( get_bloginfo( 'charset' ) );
1139 $mpdf = new mPDF('+aCJK');
1140 foreach ( $posts as $p ) {
1141 if ( ! in_array( get_post_type( $p ), $pdfprnt_options_array['use_types_posts'] ) )
1142 continue;
1143 $titles[] = $p->post_title;
1144 $user_info = get_userdata( $p->post_author );
1145 $authors[] = $user_info->display_name;
1146 $html .= '<div class="container">
1147 <div class="title"><h1><a href="' . get_permalink( $p->ID ) . '">' . $p->post_title . '</a></h1></div><br/>
1148 <div class="content">' . apply_filters( 'the_content', $p->post_content ) . '</div>
1149 </div><br/><hr/><br/>';
1150 unset( $user_info );
1151 }
1152 $titles = array_unique( $titles );
1153 $authors = array_unique( $authors );
1154 $mpdf->SetAutoFont(AUTOFONT_ALL);
1155 $mpdf->SetTitle( implode( ',', $titles ) );
1156 $mpdf->SetAuthor( implode( ',', $authors ) );
1157 $mpdf->SetSubject( get_bloginfo( 'blogdescription' ) );
1158 $mpdf->WriteHTML( pdfprnt_generate_template( $html, $pdfprnt_options_array['tmpl_search'] ) );
1159 $mpdf->Output();
1160 unset( $authors );
1161 unset( $titles );
1162 unset( $html );
1163 unset( $mpdf );
1164 die();
1165 break;
1166 case 'print-page': /* Content for printing from archive or searching page */
1167 $html = '';
1168 foreach ( $posts as $p ) {
1169 if ( ! in_array( get_post_type( $p ), $pdfprnt_options_array['use_types_posts'] ) )
1170 continue;
1171 $html .= '<div class="container">
1172 <div class="title"><h1>' . $p->post_title . '</h1></div><br/>
1173 <div class="content">' . apply_filters( 'the_content', $p->post_content ) . '</div>
1174 </div><br/><hr/><br/>';
1175 }
1176 echo pdfprnt_generate_template( $html, $pdfprnt_options_array['tmpl_search'], true );
1177 unset( $html );
1178 die();
1179 break;
1180 case 'pdf-portfolio': /* Content for PDF from portfolio post */
1181 include ( 'mpdf/mpdf.php' );
1182 $mpdf = new mPDF( get_bloginfo( 'charset' ) );
1183 $mpdf = new mPDF( '+aCJK' );
1184 $user_info = get_userdata( $post->post_author );
1185 $mpdf->SetAutoFont( AUTOFONT_ALL );
1186 $mpdf->SetAuthor( $user_info->display_name );
1187 $mpdf->SetTitle( $post->post_title );
1188 $mpdf->SetSubject( get_bloginfo( 'blogdescription' ) );
1189 $html = '<div class="container">
1190 <div class="title"><h1><a href="' . get_permalink( $post->ID ) . '">' . $post->post_title . '</a></h1></div><br/>
1191 <div class="content">' . pdfprnt_generate_template_for_bws_portfolio() . '</div>
1192 </div>';
1193 $mpdf->WriteHTML( pdfprnt_generate_template( $html, $pdfprnt_options_array['tmpl_custom'] ) );
1194 $mpdf->Output();
1195 unset( $html );
1196 unset( $user_info );
1197 unset( $mpdf );
1198 die();
1199 break;
1200 case 'print-portfolio': /* Content for printing from porfolio post */
1201 $html = '<div class="container">
1202 <div class="title"><h1>' . $post->post_title . '</h1></div><br/>
1203 <div class="content">' . pdfprnt_generate_template_for_bws_portfolio() . '</div>
1204 </div>';
1205 echo pdfprnt_generate_template( $html, $pdfprnt_options_array['tmpl_custom'], true );
1206 unset( $html );
1207 die();
1208 break;
1209 case 'pdf-portfolio-page': /* Content for PDF from portfolio page */
1210 $html = '';
1211 $titles = array();
1212 $authors = array();
1213 generate_query_posts_for_portfolio();
1214 while ( have_posts() ) {
1215 the_post();
1216 global $post;
1217 if ( ! in_array( get_post_type( $post ), $pdfprnt_options_array['use_types_posts'] ) )
1218 continue;
1219 $titles[] = $post->post_title;
1220 $user_info = get_userdata( $post->post_author );
1221 $authors[] = $user_info->display_name;
1222 $html .= '<div class="container">
1223 <div class="title"><h1><a href="' . get_permalink( $post->ID ) . '">' . $post->post_title . '</a></h1></div><br/>
1224 <div class="content">' . pdfprnt_generate_template_for_bws_portfolio() . '</div>
1225 </div><br/><hr/><br/>';
1226 unset( $user_info );
1227 }
1228 include ( 'mpdf/mpdf.php' );
1229 $mpdf = new mPDF( get_bloginfo( 'charset' ) );
1230 $mpdf = new mPDF( '+aCJK' );
1231 $titles = array_unique( $titles );
1232 $authors = array_unique( $authors );
1233 $mpdf->SetAutoFont( AUTOFONT_ALL );
1234 $mpdf->SetTitle( implode( ',', $titles ) );
1235 $mpdf->SetAuthor( implode( ',', $authors ) );
1236 $mpdf->SetSubject( get_bloginfo( 'blogdescription' ) );
1237 $mpdf->WriteHTML( pdfprnt_generate_template( $html, $pdfprnt_options_array['tmpl_custom'] ) );
1238 $mpdf->Output();
1239 unset( $authors );
1240 unset( $titles );
1241 unset( $html );
1242 unset( $mpdf );
1243 die();
1244 break;
1245 case 'print-portfolio-page': /* Content for printing from portfolio page */
1246 generate_query_posts_for_portfolio();
1247 $html = '';
1248 while ( have_posts() ) {
1249 the_post();
1250 global $post;
1251 if ( ! in_array( get_post_type( $post ), $pdfprnt_options_array['use_types_posts'] ) )
1252 continue;
1253 $html .= '<div class="container">
1254 <div class="title"><h1>' . $post->post_title . '</h1></div><br/>
1255 <div class="content">' . pdfprnt_generate_template_for_bws_portfolio() . '</div>
1256 </div><br/><hr/><br/>';
1257 }
1258 echo pdfprnt_generate_template( $html, $pdfprnt_options_array['tmpl_custom'], true );
1259 unset( $html );
1260 die();
1261 break;
1262 case 'pdf-custom-page': /* Content for PDF from custom post */
1263 $html = '';
1264 $titles = $authors = array();
1265 foreach ( $posts as $p ) {
1266 if ( ! in_array( get_post_type( $p ), $pdfprnt_options_array['use_types_posts'] ) )
1267 continue;
1268 $titles[] = $p->post_title;
1269 $user_info = get_userdata( $p->post_author );
1270 $authors[] = $user_info->display_name;
1271 $html .= '<div class="container">';
1272 $html .= '<div class="title"><h1><a href="' . get_permalink( $p->ID ) . '">' . $p->post_title . '</a></h1></div><br/>';
1273 $html .= '<div class="content">';
1274 if ( has_post_thumbnail( $p->ID ) )
1275 $html .= get_the_post_thumbnail( $p->ID, 'thumbnail' );
1276 $html .= apply_filters( 'the_content', $p->post_content ) . '</div></div><br/><hr/><br/>';
1277 unset( $user_info );
1278 }
1279 include ( 'mpdf/mpdf.php' );
1280 $mpdf = new mPDF( get_bloginfo( 'charset' ) );
1281 $mpdf = new mPDF( '+aCJK' );
1282 $titles = array_unique( $titles );
1283 $authors = array_unique( $authors );
1284 $mpdf->SetAutoFont( AUTOFONT_ALL );
1285 $mpdf->SetTitle( implode( ',', $titles ) );
1286 $mpdf->SetAuthor( implode( ',', $authors ) );
1287 $mpdf->SetSubject( get_bloginfo( 'blogdescription' ) );
1288 $mpdf->WriteHTML( pdfprnt_generate_template( $html, $pdfprnt_options_array['tmpl_custom'] ) );
1289 $mpdf->Output();
1290 unset( $authors );
1291 unset( $titles );
1292 unset( $html );
1293 unset( $mpdf );
1294 die();
1295 break;
1296 case 'print-custom-page': /* Content for printing from custom post */
1297 $html = '';
1298 foreach ( $posts as $p ) {
1299 if ( ! in_array( get_post_type( $p ), $pdfprnt_options_array['use_types_posts'] ) )
1300 continue;
1301 $html .= '<div class="container">';
1302 $html .= '<div class="title"><h1>' . $p->post_title . '</h1></div><br/>';
1303 $html .= '<div class="content">';
1304 if ( has_post_thumbnail( $p->ID ) )
1305 $html .= get_the_post_thumbnail( $p->ID, 'thumbnail' );
1306 $html .= apply_filters( 'the_content', $p->post_content ) . '</div>
1307 </div><br/><hr/><br/>';
1308 }
1309 echo pdfprnt_generate_template( $html, $pdfprnt_options_array['tmpl_custom'], true );
1310 unset( $html );
1311 die();
1312 break;
1313 }
1314 }
1315 }
1316 }
1317
1318 /* Add query vars */
1319 if ( ! function_exists( 'print_vars_callback' ) ) {
1320 function print_vars_callback( $query_vars ) {
1321 $query_vars[] = 'print';
1322 $query_vars[] = 'tmpl';
1323 return $query_vars;
1324 }
1325 }
1326
1327 /* Add custom admin bar menu */
1328 if ( ! function_exists( 'pdfprnt_admin_bar_menu' ) ) {
1329 function pdfprnt_admin_bar_menu() {
1330 global $pdfprnt_options_array, $wp_admin_bar, $wp, $posts;
1331 if ( ! is_super_admin() || ! is_admin_bar_showing() || is_admin() ) /* Checking user */
1332 return;
1333 if ( ( ! is_search() && ! is_archive() ) || ( is_category() || ! have_posts() ) )
1334 return;
1335 $is_return = true;
1336 foreach ( $posts as $post ) {
1337 if ( in_array( get_post_type( $post ), $pdfprnt_options_array['use_types_posts'] ) ) {
1338 $is_return = false;
1339 break;
1340 }
1341 }
1342 if ( $is_return )
1343 return;
1344 if ( empty( $wp->request ) )
1345 $current_url = add_query_arg( $wp->query_string, '', home_url() );
1346 else
1347 $current_url = home_url( $wp->request );
1348 $permalink = add_query_arg( 'print', 'pdf-page', $current_url );
1349 $wp_admin_bar->add_menu( array(
1350 'id' => 'pdfprnt-bar-menu',
1351 'title' => '<span class="admin-bar-menu-bws-icon"></span>PDF',
1352 'href' => $permalink
1353 ) );
1354 $template_url = add_query_arg( 'tmpl', '1', $permalink ); /* Adding parametrs to link */
1355 $wp_admin_bar->add_menu( array(
1356 'parent' => 'pdfprnt-bar-menu',
1357 'id' => 'pdfprnt-template-1',
1358 'title' => '<img src="' . plugins_url( 'images/template_left.jpg', __FILE__ ) . '" alt="template_left" />',
1359 'href' => $template_url
1360 ) );
1361 $template_url = add_query_arg( 'tmpl', '2', $permalink ); /* Adding parametrs to link */
1362 $wp_admin_bar->add_menu( array(
1363 'parent' => 'pdfprnt-bar-menu',
1364 'id' => 'pdfprnt-template-2',
1365 'title' => '<img src="' . plugins_url( 'images/template_center.jpg', __FILE__ ) . '" alt="template_center" />',
1366 'href' => $template_url
1367 ) );
1368 $template_url = add_query_arg( 'tmpl', '3', $permalink ); /* Adding parametrs to link */
1369 $wp_admin_bar->add_menu( array(
1370 'parent' => 'pdfprnt-bar-menu',
1371 'id' => 'pdfprnt-template-3',
1372 'title' => '<img src="' . plugins_url( 'images/template_right.jpg', __FILE__ ) . '" alt="template_right" />',
1373 'href' => $template_url
1374 ) );
1375 unset( $current_url );
1376 unset( $permalink );
1377 unset( $template_url );
1378 }
1379 }
1380
1381 if ( ! function_exists ( 'pdfprnt_plugin_banner' ) ) {
1382 function pdfprnt_plugin_banner() {
1383 global $hook_suffix, $pdfprnt_plugin_info;
1384 if ( 'plugins.php' == $hook_suffix ) {
1385 $banner_array = array(
1386 array( 'lmtttmpts_hide_banner_on_plugin_page', 'limit-attempts/limit-attempts.php', '1.0.2' ),
1387 array( 'sndr_hide_banner_on_plugin_page', 'sender/sender.php', '0.5' ),
1388 array( 'srrl_hide_banner_on_plugin_page', 'user-role/user-role.php', '1.4' ),
1389 array( 'pdtr_hide_banner_on_plugin_page', 'updater/updater.php', '1.12' ),
1390 array( 'cntctfrmtdb_hide_banner_on_plugin_page', 'contact-form-to-db/contact_form_to_db.php', '1.2' ),
1391 array( 'cntctfrmmlt_hide_banner_on_plugin_page', 'contact-form-multi/contact-form-multi.php', '1.0.7' ),
1392 array( 'gglmps_hide_banner_on_plugin_page', 'bws-google-maps/bws-google-maps.php', '1.2' ),
1393 array( 'fcbkbttn_hide_banner_on_plugin_page', 'facebook-button-plugin/facebook-button-plugin.php', '2.29' ),
1394 array( 'twttr_hide_banner_on_plugin_page', 'twitter-plugin/twitter.php', '2.34' ),
1395 array( 'pdfprnt_hide_banner_on_plugin_page', 'pdf-print/pdf-print.php', '1.7.1' ),
1396 array( 'gglplsn_hide_banner_on_plugin_page', 'google-one/google-plus-one.php', '1.1.4' ),
1397 array( 'gglstmp_hide_banner_on_plugin_page', 'google-sitemap-plugin/google-sitemap-plugin.php', '2.8.4' ),
1398 array( 'cntctfrmpr_for_ctfrmtdb_hide_banner_on_plugin_page', 'contact-form-pro/contact_form_pro.php', '1.14' ),
1399 array( 'cntctfrm_for_ctfrmtdb_hide_banner_on_plugin_page', 'contact-form-plugin/contact_form.php', '3.62' ),
1400 array( 'cntctfrm_hide_banner_on_plugin_page', 'contact-form-plugin/contact_form.php', '3.47' ),
1401 array( 'cptch_hide_banner_on_plugin_page', 'captcha/captcha.php', '3.8.4' ),
1402 array( 'gllr_hide_banner_on_plugin_page', 'gallery-plugin/gallery-plugin.php', '3.9.1' )
1403 );
1404 if ( ! $pdfprnt_plugin_info )
1405 $pdfprnt_plugin_info = get_plugin_data( __FILE__ );
1406 if ( ! function_exists( 'is_plugin_active_for_network' ) )
1407 require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
1408 $active_plugins = get_option( 'active_plugins' );
1409 $all_plugins = get_plugins();
1410 $this_banner = 'pdfprnt_hide_banner_on_plugin_page';
1411 foreach ( $banner_array as $key => $value ) {
1412 if ( $this_banner == $value[0] ) {
1413 global $wp_version, $bstwbsftwppdtplgns_cookie_add;
1414 if ( ! isset( $bstwbsftwppdtplgns_cookie_add ) ) {
1415 echo '<script type="text/javascript" src="' . plugins_url( 'js/c_o_o_k_i_e.js', __FILE__ ) . '"></script>';
1416 $bstwbsftwppdtplgns_cookie_add = true;
1417 } ?>
1418 <script type="text/javascript">
1419 (function($) {
1420 $(document).ready( function() {
1421 var hide_message = $.cookie( "pdfprnt_hide_banner_on_plugin_page" );
1422 if ( hide_message == "true") {
1423 $( ".pdfprnt_message" ).css( "display", "none" );
1424 } else {
1425 $( ".pdfprnt_message" ).css( "display", "block" );
1426 };
1427 $( ".pdfprnt_close_icon" ).click( function() {
1428 $( ".pdfprnt_message" ).css( "display", "none" );
1429 $.cookie( "pdfprnt_hide_banner_on_plugin_page", "true", { expires: 32 } );
1430 });
1431 });
1432 })(jQuery);
1433 </script>
1434 <div class="updated" style="padding: 0; margin: 0; border: none; background: none;">
1435 <div class="pdfprnt_message bws_banner_on_plugin_page" style="display: none;">
1436 <img class="pdfprnt_close_icon close_icon" title="" src="<?php echo plugins_url( 'images/close_banner.png', __FILE__ ); ?>" alt=""/>
1437 <div class="button_div">
1438 <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>
1439 </div>
1440 <div class="text">
1441 <?php _e( "It's time to upgrade your <strong>PDF & Print</strong> to <strong>PRO</strong> version", 'pdf-print' ); ?>!<br />
1442 <span><?php _e( 'Extend standard plugin functionality with new great options', 'pdf-print' ); ?>.</span>
1443 </div>
1444 <div class="icon">
1445 <img title="" src="<?php echo plugins_url( 'images/banner.png', __FILE__ ); ?>" alt=""/>
1446 </div>
1447 </div>
1448 </div>
1449 <?php break;
1450 }
1451 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] ] ) ) {
1452 break;
1453 }
1454 }
1455 }
1456 }
1457 }
1458
1459 /* Deleting plugin options on uninstalling */
1460 if ( ! function_exists( 'pdfprnt_uninstall' ) ) {
1461 function pdfprnt_uninstall() {
1462 delete_option( 'pdfprnt_options_array' );
1463 delete_site_option( 'pdfprnt_options_array' );
1464 }
1465 }
1466
1467 /* Adding function to output PDF document or pirnt page */
1468 add_action( 'wp', 'pdfprnt_print' );
1469 /* Initialization */
1470 add_action( 'init', 'pdfprnt_init' );
1471 add_action( 'admin_init', 'pdfprnt_admin_init' );
1472 /* Adding stylesheets */
1473 add_action( 'admin_enqueue_scripts', 'pdfprnt_admin_head' );
1474 add_action( 'wp_enqueue_scripts', 'pdfprnt_admin_head' );
1475 /* Adding 'BWS Plugins' admin menu */
1476 add_action( 'admin_menu', 'pdfprnt_add_pages' );
1477 /* Add menu to bar menu WordPress */
1478 add_action( 'admin_bar_menu', 'pdfprnt_admin_bar_menu', 1000 );
1479 /* Add query vars */
1480 add_filter( 'query_vars', 'print_vars_callback' );
1481 /* Additional links on the plugin page */
1482 add_filter( 'plugin_action_links', 'pdfprnt_action_links', 10, 2 );
1483 add_filter( 'plugin_row_meta', 'pdfprnt_links', 10, 2 );
1484 /* Adding buttons plugin to content */
1485 add_filter( 'the_content', 'pdfprnt_content' );
1486 /* Adding banner */
1487 add_action( 'admin_notices', 'pdfprnt_plugin_banner' );
1488 /* Plugin uninstall function */
1489 register_uninstall_hook( __FILE__, 'pdfprnt_uninstall' );
1490 ?>