Plugin Directory

Changeset 3383033


Ignore:
Timestamp:
10/23/2025 03:48:07 AM (4 months ago)
Author:
bannersky
Message:

version 3.7.1

Location:
bsk-pdf-manager/trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • bsk-pdf-manager/trunk/bsk-pdf-manager.php

    r3278709 r3383033  
    55* Plugin URI: http://www.bannersky.com/bsk-pdf-manager/
    66* Description: Help you manage your PDF documents. PDF documents can be filter by category. Support short code to show special PDF documents or all PDF documents under  category. Widget supported.
    7 * Version: 3.7
     7* Version: 3.7.1
    88* Author: BannerSky.com
    99* Author URI: http://www.bannersky.com/
     
    3333    public static $_notifications_tbl_name = 'bsk_pdf_manager_notifications';
    3434   
    35     public static $_PLUGIN_VERSION_ = '3.7';
    36     private static $_plugin_db_version = '3.0';
     35    public static $_PLUGIN_VERSION_ = '3.7.1';
     36    private static $_plugin_db_version = '3.1';
    3737    private static $_plugin_saved_db_version_option = '_bsk_pdf_manager_db_ver_';
    3838    private static $_plugin_db_rels_done_option = '_bsk_pdf_manager_rels_done_';
     
    6666   
    6767    public static $_category_max_depth = 3;
    68 
    69     public static $_dropdown_shortcodes_pages_option = 'bsk_pdfm_dropdown_shortcodes_pages_';
    7068   
    7169    //objects
     
    442440                                          `size` int(11) NOT NULL DEFAULT 0,
    443441                                          `redirect_permalink` tinyint(1) NOT NULL DEFAULT 0,
     442                                          `restricted` tinyint(1) NOT NULL DEFAULT 0,
    444443                                          UNIQUE KEY id (id)
    445444                                        ) $charset_collate;";
     
    616615
    617616        }
     617
     618        //upgrade db version to 3.1
     619        if ( version_compare( $db_version, '3.1', '<' ) ) {
     620            require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
     621
     622            $table_name = $wpdb->prefix . self::$_pdfs_tbl_name;
     623            $sql = 'ALTER TABLE `'.$table_name.'` ADD `restricted` tinyint(1) NOT NULL DEFAULT 0 AFTER `redirect_permalink`;';
     624            $wpdb->query( $sql );
     625
     626        }
    618627       
    619628        //update db version to latest
  • bsk-pdf-manager/trunk/classes/common/display.php

    r3053029 r3383033  
    3232        return $return_bool;
    3333    }//end of function
    34        
    35     public static function show_pdf_item_single_div(
    36                                                      $pdf_item_obj,
    37                                                      $description,
    38                                                      $featured_image, $featured_image_size,
    39                                                      $default_thumbnail_html,
    40                                                      $open_target_str, $nofollow_tag_str, $column_class_item,
    41                                                      $show_pdf_title, $pdf_title_position,
    42                                                      $show_date_in_title, $date_format_str, $date_before_title
    43                                                    ){
    44         $utc_timezone = new DateTimeZone( 'UTC' );
    45         $date_class = ' data-date="'.wp_date( 'Y-m-d-D', strtotime($pdf_item_obj->last_date), $utc_timezone ).'"';
    46        
    47         $file_url = site_url().'/'.$pdf_item_obj->file_name;
    48         if( $pdf_item_obj->by_media_uploader ){
    49             $file_url = wp_get_attachment_url( $pdf_item_obj->by_media_uploader );
    50             if( $file_url == false ){
    51                 return '';
    52             }
    53         }
    54        
    55         //PDF titile str
    56         $pdf_item_obj_title = esc_html($pdf_item_obj->title);
    57         $pdf_title_str = '<span class="bsk-pdfm-pdf-title-string">'.$pdf_item_obj_title.'</span>';
    58         if( $pdf_title_str == "" ){
    59             $pdf_item_obj_title_array = explode( '/', $file_url );
    60             $pdf_title_str = esc_html($pdf_item_obj_title_array[count($pdf_item_obj_title_array) - 1]);
    61         }
    62         if( $show_date_in_title ){
    63             $date_str = '<span class="bsk-pdfm-pdf-date">'.esc_html(date($date_format_str, strtotime($pdf_item_obj->last_date))).'</span>';
    64             $pdf_title_str = $date_before_title ? $date_str.$pdf_title_str : $pdf_title_str.$date_str;
    65         }
    66        
    67         //pdf title link
    68         $pdf_title_str = '<a href="'.esc_url($file_url).'"'.esc_attr($open_target_str.$nofollow_tag_str).'  title="'.esc_attr($pdf_item_obj_title).'" class="bsk-pdfm-pdf-link-for-title pdf-id-'.esc_attr($pdf_item_obj->id).'">'.$pdf_title_str.'</a>';
    69         /*
    70           * organise return str
    71           */
    72         $forStr = '<div class="bsk-pdfm-columns-single'.esc_attr($column_class_item).' pdf-id-'.esc_attr($pdf_item_obj->id).'"'.$date_class.'>';
    73         $forStr .= '<h3>'.$pdf_title_str.'</h3>';
    74         $forStr .= '</div>'."\n";
    75        
    76         return $forStr;
    77     }
    7834   
    7935    public static function show_pdfs_in_dropdown( $pdf_items_results,
     
    8440                                                $date_format_str,
    8541                                                $date_before_title,
    86                                                 $default_enable_permalink
     42                                                $default_enable_permalink,
     43                                                $form_id_random
    8744                                              ){
    8845        if( !$pdf_items_results || !is_array($pdf_items_results) || count($pdf_items_results) < 1 ){
     
    9047        }
    9148       
    92         //read global embeded viewer settings
    93         $embedded_viewer_settings = self::get_embedded_viewer_settings();
    94 
    9549        $utc_timezone = new DateTimeZone( 'UTC' );
    9650       
    9751        $forStr = '';
    98         $forStr .= '<select class="'.esc_attr($class).'"'.$target.'>'."\n";
     52        $forStr .= '<select class="'.esc_attr($class).'" id="bsk_pdfm_pdfs_dropdown_'.rand( 20, 90 ).'" data-from-id="'.$form_id_random.'">'."\n";
    9953        if( $option_none_str ){
    10054            $forStr .= '<option value="" selected="selected">'.esc_attr($option_none_str).'</option>';
     
    11670            if( is_array( $file_extension_array ) && count($file_extension_array) > 1 ){
    11771                $file_extension = strtolower( $file_extension_array[count($file_extension_array) - 1] );
    118             }
    119 
    120             //if pdfjs enabled
    121             if ( $embedded_viewer_settings['enable'] && $file_extension == 'pdf' ) {
    122                 $file_url = BSK_PDFM_PLUGIN_URL . 'pdfjs/web/viewer.html?file=' . $file_url . $embedded_viewer_settings['paras'];
    12372            }
    12473
     
    15099                                                    $default_enable_permalink
    151100                                                  ){
    152         //read global embeded viewer settings
    153         $embedded_viewer_settings = self::get_embedded_viewer_settings();
    154101        $utc_timezone = new DateTimeZone( 'UTC' );
    155102       
     
    177124                }
    178125               
    179                 //if pdfjs enabled
    180                 if ( $embedded_viewer_settings['enable'] && $file_extension == 'pdf' ) {
    181                     $file_url = BSK_PDFM_PLUGIN_URL . 'pdfjs/web/viewer.html?file=' . $file_url . $embedded_viewer_settings['paras'];
    182                 }
    183 
    184126                if( $default_enable_permalink ){
    185127                    $file_url = site_url().'/bsk-pdf-manager/'.$pdf_item_obj->slug.'/';
     
    209151                                                    $show_date_in_title,
    210152                                                    $date_format_str,
    211                                                     $date_before_title
     153                                                    $date_before_title,
     154                                                    $form_id_random
    212155                                                  ){
    213156
    214157        $forStr = '';
    215         $forStr .= '<select class="'.esc_attr($class).'"'.$target.' style="display: none;">'."\n";
     158        $forStr .= '<select class="'.esc_attr($class).'" style="display: none;" id="bsk_pdfm_pdfs_dropdown_'.rand( 20, 90 ).'" data-from-id="'.$form_id_random.'">'."\n";
    216159        if( $option_none_str ){
    217160            $forStr .= '<option value="" selected="selected">'.esc_attr($option_none_str).'</option>';
     
    255198        }
    256199       
    257         //read global embeded viewer settings
    258         $embedded_viewer_settings = self::get_embedded_viewer_settings();
    259200        $utc_timezone = new DateTimeZone( 'UTC' );
    260201       
     
    275216            if( is_array( $file_extension_array ) && count($file_extension_array) > 1 ){
    276217                $file_extension = strtolower( $file_extension_array[count($file_extension_array) - 1] );
    277             }
    278 
    279             //if pdfjs enabled
    280             if ( $embedded_viewer_settings['enable'] && $file_extension == 'pdf' ) {
    281                 $file_url = BSK_PDFM_PLUGIN_URL . 'pdfjs/web/viewer.html?file=' . $file_url . $embedded_viewer_settings['paras'];
    282218            }
    283219
     
    353289
    354290        $paras_string_array = array();
     291        $paras_array = array();
    355292        if ( isset( $embedded_viewer_settings['disable_right_click'] ) && $embedded_viewer_settings['disable_right_click'] == true ) {
    356293            $paras_string_array[] = 'mright=1';
     294            $paras_array['mright'] = 1;
    357295        }
    358296        if ( isset( $embedded_viewer_settings['show_toolbar'] ) && $embedded_viewer_settings['show_toolbar'] == false ) {
    359297            $paras_string_array[] = 'toolbar=1';
     298            $paras_array['toolbar'] = 1;
    360299        } else {
    361300            if ( isset( $embedded_viewer_settings['text_button'] ) && $embedded_viewer_settings['text_button'] == false ) {
    362301                $paras_string_array[] = 'freetext=1';
     302                $paras_array['freetext'] = 1;
    363303            }
    364304            if ( isset( $embedded_viewer_settings['draw_button'] ) && $embedded_viewer_settings['draw_button'] == false ) {
    365305                $paras_string_array[] = 'ink=1';
     306                $paras_array['ink'] = 1;
    366307            }
    367308            if ( isset( $embedded_viewer_settings['stamp_button'] ) && $embedded_viewer_settings['stamp_button'] == false ) {
    368309                $paras_string_array[] = 'stamp=1';
     310                $paras_array['stamp'] = 1;
    369311            }
    370312            if ( isset( $embedded_viewer_settings['download_button'] ) && $embedded_viewer_settings['download_button'] == false ) {
    371313                $paras_string_array[] = 'download=1';
     314                $paras_array['download'] = 1;
    372315            }
    373316            if ( isset( $embedded_viewer_settings['print_button'] ) && $embedded_viewer_settings['print_button'] == false ) {
    374317                $paras_string_array[] = 'print=1';
     318                $paras_array['print'] = 1;
    375319            }
    376320            if ( isset( $embedded_viewer_settings['open_file_button'] ) && $embedded_viewer_settings['open_file_button'] == false ) {
    377321                $paras_string_array[] = 'open=1';
     322                $paras_array['open'] = 1;
    378323            }
    379324            if ( isset( $embedded_viewer_settings['text_selection_tool'] ) && $embedded_viewer_settings['text_selection_tool'] == false ) {
    380325                $paras_string_array[] = 'textsel=1';
     326                $paras_array['textsel'] = 1;
    381327            }
    382328            if ( isset( $embedded_viewer_settings['document_properties_menu'] ) && $embedded_viewer_settings['document_properties_menu'] == false ) {
    383329                $paras_string_array[] = 'docprop=1';
     330                $paras_array['docprop'] = 1;
    384331            }
    385332        }
     
    390337
    391338        $return_array['paras'] = '&' . implode( '&', $paras_string_array );
     339        $return_array['paras_array'] = $paras_array;
    392340        return $return_array;
    393341    }
     
    439387            //if pdfjs enabled
    440388            if ( $embedded_viewer_settings['enable'] && $file_extension == 'pdf' ) {
    441                 $file_url = BSK_PDFM_PLUGIN_URL . 'pdfjs/web/viewer.html?file=' . $file_url . $embedded_viewer_settings['paras'];
     389                $file_url = BSK_PDFM_PLUGIN_URL . 'pdfjs/web/viewer.html?file=' . rawurlencode( $file_url ) . $embedded_viewer_settings['paras'];
    442390            }
    443391
     
    506454        //if pdfjs enabled
    507455        if ( $embedded_viewer_settings['enable'] && $file_extension == 'pdf' ) {
    508             $file_url = BSK_PDFM_PLUGIN_URL . 'pdfjs/web/viewer.html?file=' . $file_url . $embedded_viewer_settings['paras'];
     456            $file_url = BSK_PDFM_PLUGIN_URL . 'pdfjs/web/viewer.html?file=' . rawurlencode( $file_url ) . $embedded_viewer_settings['paras'];
    509457        }
    510458       
  • bsk-pdf-manager/trunk/classes/dashboard/dashboard.php

    r3106691 r3383033  
    147147        add_action( 'wp_print_scripts', array ( $this, 'bsk_pdfm_remove_the_event_calendar_js_fun' ), 999 );
    148148
    149         add_action( 'admin_notices', array ( $this, 'bsk_pdfm_dropdown_warning_fun' ) );
    150149    }
    151150   
     
    777776        }
    778777    }
    779 
    780     function bsk_pdfm_dropdown_warning_fun() {
    781 
    782         $_dropdown_shortcodes_pages = get_option( BSKPDFManager::$_dropdown_shortcodes_pages_option, array() );
    783         if ( count( $_dropdown_shortcodes_pages ) < 1 ) {
    784             return;
    785         }
    786 
    787         $page = isset( $_GET['page'] ) ? $_GET['page'] : '';
    788         if ( $page == '' || ! in_array( $page, self::$_bsk_pdfm_pro_pages ) ) {
    789             return;
    790         }
    791         ?>
    792         <div class="notice notice-warning is-dismissible">
    793             <p>You are using dropdown layout to display PDFs / documents on the below page(s): </p>
    794             <ul>
    795             <?php
    796             foreach( $_dropdown_shortcodes_pages as $page_ID ) {
    797             ?>
    798             <a href="<?php echo get_permalink( $page_ID ); ?>"><?php echo get_permalink( $page_ID ); ?></a>
    799             <?php
    800             }
    801             ?>
    802             </ul>
    803             <p>The PDF/document is designed to open in a new tab/window when the dropdown changes. But some browsers block new tabs/windows by default. To avoid this trouble, please update to our <a href="https://www.bannersky.com/document/bsk-pdf-manager-documentatio-v2/how-to-upgrade-to-pro-version/" target="_blank">Pro version</a>. The pro version doesn't have this problem because it uses a different method.
    804         </div>
    805         <?php
    806     }
    807778}
  • bsk-pdf-manager/trunk/classes/permalink-access/permalink-access.php

    r3053029 r3383033  
    124124        $embedded_viewer_settings = BSKPDFM_Common_Display::get_embedded_viewer_settings();
    125125
    126         if ( isset( $wp->query_vars[$default_permalink_base] ) && $wp->query_vars[$default_permalink_base] ) {
    127             $pdf_slug = $wp->query_vars[$default_permalink_base];
    128             $pdf_obj = BSKPDFM_Common_Data_Source::get_document_obj_by_slug( $pdf_slug );
    129             if( $pdf_obj == false ){
    130                 global $wp_query;
    131                
    132                 $wp_query->set_404();
    133                 status_header( 404 );
    134                 get_template_part( 404 );
    135                
    136                 exit();
    137             }
    138            
    139             $file_path = '';
    140             $file_ext = '';
    141             $file_url = '';
    142             if( $pdf_obj->file_name ){
    143                 $file_path = BSKPDFManager::$_upload_root_path.$pdf_obj->file_name;
    144                 $file_ext = pathinfo( $pdf_obj->file_name, PATHINFO_EXTENSION );
    145                 $file_url = site_url().'/'.$pdf_obj->file_name;
    146             }
    147             $file_ext = strtolower( $file_ext );
    148 
    149             if( !file_exists( $file_path ) ){
    150                 global $wp_query;
    151                
    152                 $wp_query->set_404();
    153                 status_header( 404 );
    154                 get_template_part( 404 );
    155                
    156                 exit();
    157             }
    158            
     126        if ( ! isset( $wp->query_vars[$default_permalink_base] ) || ! $wp->query_vars[$default_permalink_base] ) {
     127            return;
     128        }
     129
     130        $pdf_slug = $wp->query_vars[$default_permalink_base];
     131        $pdf_obj = BSKPDFM_Common_Data_Source::get_document_obj_by_slug( $pdf_slug );
     132        if( $pdf_obj == false ){
     133            global $wp_query;
     134           
     135            $wp_query->set_404();
     136            status_header( 404 );
     137            get_template_part( 404 );
     138           
     139            exit();
     140        }
     141       
     142        $file_path = '';
     143        $file_ext = '';
     144        $file_url = '';
     145        if ( $pdf_obj->file_name ) {
     146            $file_path = BSKPDFManager::$_upload_root_path.$pdf_obj->file_name;
     147            $file_ext = pathinfo( $pdf_obj->file_name, PATHINFO_EXTENSION );
     148            $file_url = site_url().'/'.$pdf_obj->file_name;
     149        }
     150        $file_ext = strtolower( $file_ext );
     151
     152        if ( ! file_exists( $file_path ) ) {
     153            global $wp_query;
     154           
     155            $wp_query->set_404();
     156            status_header( 404 );
     157            get_template_part( 404 );
     158           
     159            exit();
     160        }
     161        //if a PDF is restricted, then cannot be redirected to its file url
     162        if ( $pdf_obj->restricted ) {
     163            //TO DO......
     164           //need check user's permission
     165           
     166           /* echo '<p>You are now alloed to access this document / PDF.</p>';
     167           exit; */
     168        } else {
    159169            if ( $permalink_redirect_to == 'YES' ||
    160                  ( $permalink_redirect_to == 'NO' && $pdf_obj->redirect_permalink ) ) {
    161                      
     170                    ( $permalink_redirect_to == 'NO' && $pdf_obj->redirect_permalink ) ) {
     171                        
    162172                if( $file_url == "" ){
    163173                    wp_die( 'Cannot get valid URL for the document, document slug: '.$pdf_slug );
     
    175185                exit;
    176186            }
    177 
    178             //output docment content
    179             if ( is_array( $embedded_viewer_settings ) && isset( $embedded_viewer_settings ) && $embedded_viewer_settings['enable'] && $file_ext == 'pdf' ) {
    180                 ob_start();
    181                 ?>
    182                 <!DOCTYPE html>
    183                 <html>
    184                     <head>
    185                         <meta name="viewport" content="width=device-width, initial-scale=1">
    186                         <title><?php echo $pdf_obj->title; ?></title>
    187                         <style>
    188                         .container {
    189                             position: relative;
    190                             width: 100%;
    191                             overflow: hidden;
    192                             padding-top: 56.25%; /* 16:9 Aspect Ratio */
    193                         }
    194 
    195                         .responsive-iframe {
    196                             position: absolute;
    197                             top: 0;
    198                             left: 0;
    199                             bottom: 0;
    200                             right: 0;
    201                             width: 100%;
    202                             height: 100%;
    203                             border: none;
    204                         }
    205                         </style>
    206                     </head>
    207                     <body>
    208                         <div class="container">
    209                         <iframe class="responsive-iframe" src="<?php echo BSK_PDFM_PLUGIN_URL . 'pdfjs/web/viewer.html?file=' . $file_url . $embedded_viewer_settings['paras']; ?>"></iframe>
    210                         </div>
    211                     </body>
    212                 </html>
    213                 <?php
    214                 $html_content = ob_get_contents();
    215                 ob_end_clean();
    216 
    217                 echo $html_content;
    218             } else {
    219                 $wp_filetype = wp_check_filetype( $file_path, null );
    220                
    221                 // Header content type
    222                 header('Content-Type: '.$wp_filetype['type']);
    223                 header("Content-Length: " . filesize( $file_path ) );
    224                 header('Content-Disposition: inline; filename="' . basename( $file_path ) . '"');
    225                 header('Content-Transfer-Encoding: binary');
    226                 header('Accept-Ranges: bytes');
    227 
    228                 // Read the file
    229                 @readfile( $file_path );
    230             }
    231             exit();
    232         }
     187        }
     188
     189        if ( isset( $_GET['read'] ) && intval( $_GET['read'] ) == 1 ) {
     190
     191            $wp_filetype = wp_check_filetype( $file_path, null );
     192            // Header content type
     193            header('Content-Type: '.$wp_filetype['type']);
     194            header("Content-Length: " . filesize( $file_path ) );
     195            header('Content-Disposition: inline; filename="' . basename( $file_path ) . '"');
     196            header('Content-Transfer-Encoding: binary');
     197            header('Accept-Ranges: bytes');
     198
     199            // Read the file
     200            @readfile( $file_path );
     201        }
     202
     203        //output docment content
     204        if ( is_array( $embedded_viewer_settings ) && isset( $embedded_viewer_settings ) && $embedded_viewer_settings['enable'] && $file_ext == 'pdf' ) {
     205            ob_start();
     206
     207            //for restricted file, the url should be change to use permalink with read=1
     208            if ( $pdf_obj->restricted ) {
     209                $file_url = site_url().'/'.$default_permalink_base.'/'.$pdf_obj->slug.'/?read=1';
     210            }
     211            ?>
     212            <!DOCTYPE html>
     213            <html>
     214                <head>
     215                    <meta name="viewport" content="width=device-width, initial-scale=1">
     216                    <title><?php echo $pdf_obj->title; ?></title>
     217                    <style>
     218                    .container {
     219                        position: relative;
     220                        width: 100%;
     221                        overflow: hidden;
     222                        padding-top: 56.25%; /* 16:9 Aspect Ratio */
     223                    }
     224
     225                    .responsive-iframe {
     226                        position: absolute;
     227                        top: 0;
     228                        left: 0;
     229                        bottom: 0;
     230                        right: 0;
     231                        width: 100%;
     232                        height: 100%;
     233                        border: none;
     234                    }
     235                    </style>
     236                </head>
     237                <body>
     238                    <div class="container">
     239                    <iframe class="responsive-iframe" src="<?php echo BSK_PDFM_PLUGIN_URL . 'pdfjs/web/viewer.html?file=' . rawurlencode( $file_url ) . $embedded_viewer_settings['paras']; ?>"></iframe>
     240                    </div>
     241                </body>
     242            </html>
     243            <?php
     244            $html_content = ob_get_contents();
     245            ob_end_clean();
     246
     247            echo $html_content;
     248        } else {
     249            $wp_filetype = wp_check_filetype( $file_path, null );
     250           
     251            // Header content type
     252            header('Content-Type: '.$wp_filetype['type']);
     253            header("Content-Length: " . filesize( $file_path ) );
     254            header('Content-Disposition: inline; filename="' . basename( $file_path ) . '"');
     255            header('Content-Transfer-Encoding: binary');
     256            header('Accept-Ranges: bytes');
     257
     258            // Read the file
     259            @readfile( $file_path );
     260        }
     261        exit();
    233262    }
    234263   
  • bsk-pdf-manager/trunk/classes/shortcodes/category/category-dropdown.php

    r2985503 r3383033  
    9494            $total_pdfs = $cat_pdfs_query_results['total'];
    9595        }
     96
     97        //read global embeded viewer settings
     98        $embedded_viewer_settings = BSKPDFM_Common_Display::get_embedded_viewer_settings();
    9699       
    97100        $output_container_class = $shortcode_atts['output_container_class'] ? ' '.$shortcode_atts['output_container_class'] : '';
    98101        $str_body = '<div class="bsk-pdfm-output-container shortcode-category layout-dropdown' . esc_attr( $output_container_class ) . '">';
    99102
     103        $form_id_random = rand( 10000000,99999999 ) ;
    100104        $target_str = '';
    101105        if( $cat_pdfs_query_results ){
     
    161165                }
    162166
    163                 $dropdown_output = '<select class="bsk-pdfm-pdfs-dropdown"'.$target_str.'>';
     167                $dropdown_output = '<select class="bsk-pdfm-pdfs-dropdown" id="bsk_pdfm_pdfs_dropdown_'.rand( 20, 90 ).'" data-from-id="'.$form_id_random.'">';
    164168                $option_none_str = trim($shortcode_atts['option_none']);
    165169                if( $option_none_str ){
     
    192196                $dropdown_output .= '</select>';
    193197
     198                //form with method:get to open file in new window
     199                $form_target_str = '';
     200                if( $shortcode_atts['target'] == '_blank' ){
     201                    $form_target_str = ' target="_blank"';
     202                }
     203                $action = '';
     204                $pdfjs_paras = '';
     205                //if pdfjs enabled
     206                if ( $embedded_viewer_settings['enable'] ) {
     207                    $action = BSK_PDFM_PLUGIN_URL . 'pdfjs/web/viewer.html';
     208                    foreach ( $embedded_viewer_settings['paras_array'] as $para_name => $para_value ) {
     209                        $pdfjs_paras .= '<input type="hidden" value="' . $para_value . '" name="' . $para_name . '" class="bsk-pdfm-pdfs-dropdown-form-fields" />';
     210                    }
     211                }
     212                $str_body .= '<form action="' . $action . '" method="get" id="bsk_pdfm_pdfs_dropdown_open_form_ID_'.$form_id_random.'"' . $form_target_str . '>
     213                                <input type="hidden" value="default" name="file" id="bsk_pdfm_pdfs_dropdown_to_open_ID_'.$form_id_random.'" class="bsk-pdfm-pdfs-dropdown-form-fields" />'
     214                                . $pdfjs_paras .
     215                             '</form>';
     216
    194217                $str_body .= '<div class="bsk-pdfm-category-output cat-'.esc_attr(implode('-', $cat_ids_for_container)).' category-hierarchical-depth-1 pdfs-in-dropdown" data-cat-id="'.esc_attr(implode('-', $cat_ids_for_container)).'">';
    195218                $str_body .= $dropdown_output;
     
    201224        $str_body .= $this->get_shortcode_parameters_output( $shortcode_atts );
    202225
     226        //pdfjs embeded
     227        if ( $embedded_viewer_settings['enable'] ) {
     228            $str_body .= '<input type="hidden" class="bsk-pdfm-pdfs-dropdown-pdfs-enable" value="YES">';
     229        } else {
     230            $str_body .= '<input type="hidden" class="bsk-pdfm-pdfs-dropdown-pdfs-enable" value="NO">';
     231        }
     232
    203233        $str_body .= '</div><!-- //bsk-pdfm-output-container -->';
    204 
    205         global $post;
    206        
    207         if ( $post->ID && $target_str ) {
    208             $_dropdown_shortcodes_pages = get_option( BSKPDFManager::$_dropdown_shortcodes_pages_option, array() );
    209             $_dropdown_shortcodes_pages[$post->ID] = $post->ID;
    210 
    211             update_option( BSKPDFManager::$_dropdown_shortcodes_pages_option, $_dropdown_shortcodes_pages );
    212         }
    213234
    214235        return $str_body;
     
    223244                                            ){
    224245       
     246        //read global embeded viewer settings
     247        $embedded_viewer_settings = BSKPDFM_Common_Display::get_embedded_viewer_settings();
    225248        $depth_class = ' category-hierarchical-depth-'.$category_depth;
    226249        $caegory_title_tag = 'h'.($category_depth + 1);
     
    253276            $date_format_str = $shortcode_atts['date_format'];
    254277        }
    255        
    256         $categor_output_str .= '<select class="bsk-pdfm-pdfs-dropdown"'.$target_str.'>';
     278
     279        $form_id_random = rand( 10000000,99999999 ) ;
     280       
     281        $categor_output_str .= '<select class="bsk-pdfm-pdfs-dropdown" id="bsk_pdfm_pdfs_dropdown_'.rand( 20, 90 ).'" data-from-id="'.$form_id_random.'">';
    257282        $option_none_str = trim($shortcode_atts['option_none']);
    258283        if( $option_none_str ){
     
    271296        $categor_output_str .= '</select>';
    272297       
     298        //form with method:get to open file in new window
     299        $form_target_str = '';
     300        if( $shortcode_atts['target'] == '_blank' ){
     301            $form_target_str = ' target="_blank"';
     302        }
     303        $action = '';
     304        $pdfjs_paras = '';
     305        //if pdfjs enabled
     306        if ( $embedded_viewer_settings['enable'] ) {
     307            $action = BSK_PDFM_PLUGIN_URL . 'pdfjs/web/viewer.html';
     308            foreach ( $embedded_viewer_settings['paras_array'] as $para_name => $para_value ) {
     309                $pdfjs_paras .= '<input type="hidden" value="' . $para_value . '" name="' . $para_name . '" class="bsk-pdfm-pdfs-dropdown-form-fields" />';
     310            }
     311        }
     312        $categor_output_str .= '<form action="' . $action . '" method="get" id="bsk_pdfm_pdfs_dropdown_open_form_ID_'.$form_id_random.'"' . $form_target_str . '>
     313                                    <input type="hidden" value="default" name="file" id="bsk_pdfm_pdfs_dropdown_to_open_ID_'.$form_id_random.'" class="bsk-pdfm-pdfs-dropdown-form-fields" />'
     314                                    . $pdfjs_paras .
     315                               '</form>';
     316       
    273317        $categor_output_str .= '<!--//bsk-pdfm-category-output cat-'.esc_attr($category_obj->id).'-->';
    274318        $categor_output_str .= '</div>';
     
    406450        }
    407451
     452        //read global embeded viewer settings
     453        $embedded_viewer_settings = BSKPDFM_Common_Display::get_embedded_viewer_settings();
    408454       
    409455        $str_body = '';
     
    483529                }
    484530                $dropdown_output .= '</select>';
     531
     532                //form with method:get to open file in new window
     533                $form_target_str = '';
     534                if( $shortcode_atts['target'] == '_blank' ){
     535                    $form_target_str = ' target="_blank"';
     536                }
     537                $action = '';
     538                $pdfjs_paras = '';
     539                //if pdfjs enabled
     540                if ( $embedded_viewer_settings['enable'] ) {
     541                    $action = BSK_PDFM_PLUGIN_URL . 'pdfjs/web/viewer.html';
     542                    foreach ( $embedded_viewer_settings['paras_array'] as $para_name => $para_value ) {
     543                        $pdfjs_paras .= '<input type="hidden" value="' . $para_value . '" name="' . $para_name . '" class="bsk-pdfm-pdfs-dropdown-form-fields" />';
     544                    }
     545                }
     546                $str_body .= '<form action="' . $action . '" method="get" id="bsk_pdfm_pdfs_dropdown_open_form_ID_'.$form_id_random.'"' . $form_target_str . '>
     547                                <input type="hidden" value="default" name="file" id="bsk_pdfm_pdfs_dropdown_to_open_ID_'.$form_id_random.'" class="bsk-pdfm-pdfs-dropdown-form-fields" />'
     548                                . $pdfjs_paras .
     549                             '</form>';
    485550               
    486551                $str_body .= '<div class="bsk-pdfm-category-output cat-'.implode('-', esc_attr($cat_ids_for_container)).' category-hierarchical-depth-1 pdfs-in-dropdown" data-cat-id="'.esc_attr(implode('-', $cat_ids_for_container)).'">';
  • bsk-pdf-manager/trunk/classes/shortcodes/embed/pdfs-embed.php

    r3117750 r3383033  
    141141            ?>
    142142            <div class="bsk-pdfm-output-container embeded-pdf-container">
    143                 <iframe class="responsive-iframe" src="<?php echo BSK_PDFM_PLUGIN_URL . 'pdfjs/web/viewer.html?file=' . $file_url . $embedded_viewer_settings['paras']; ?>" width="<?php echo $width; ?>" height="<?php echo $height; ?>" <?php echo $style_string; ?>></iframe>
     143                <iframe class="responsive-iframe" src="<?php echo BSK_PDFM_PLUGIN_URL . 'pdfjs/web/viewer.html?file=' . rawurlencode( $file_url ) . $embedded_viewer_settings['paras']; ?>" width="<?php echo $width; ?>" height="<?php echo $height; ?>" <?php echo $style_string; ?>></iframe>
    144144            </div><!-- //end for bsk-pdfm-output-container embeded-pdf-container-->
    145145            <?php
  • bsk-pdf-manager/trunk/classes/shortcodes/pdfs/pdfs-dropdown.php

    r3278709 r3383033  
    132132            $total_pdfs = $pdfs_query_return['total'];
    133133        }
     134
     135        $form_id_random = rand( 10000000,99999999 ) ;
     136
     137        //read global embeded viewer settings
     138        $embedded_viewer_settings = BSKPDFM_Common_Display::get_embedded_viewer_settings();
    134139       
    135140        $output_container_class = trim($shortcode_atts['output_container_class']) ? ' '.trim($shortcode_atts['output_container_class']) : '';
     
    158163                                             $show_date,
    159164                                             $date_format_str,
    160                                              $date_before_title
     165                                             $date_before_title,
     166                                             $form_id_random
    161167                                        );
    162         }else{
     168        } else {
    163169            //show count description bar
    164170            $str_body .= BSKPDFM_Common_Count_Desc_Bar::show_count_desc_bar(
     
    177183                                                 $date_format_str,
    178184                                                 $date_before_title,
    179                                                  $default_enable_permalink
     185                                                 $default_enable_permalink,
     186                                                 $form_id_random
    180187                                            );
    181188        }
     189
     190        //form with method:get to open file in new window
     191        $form_target_str = '';
     192        if( $shortcode_atts['target'] == '_blank' ){
     193            $form_target_str = ' target="_blank"';
     194        }
     195        $action = '';
     196        $pdfjs_paras = '';
     197        //if pdfjs enabled
     198        if ( $embedded_viewer_settings['enable'] ) {
     199            $action = BSK_PDFM_PLUGIN_URL . 'pdfjs/web/viewer.html';
     200            foreach ( $embedded_viewer_settings['paras_array'] as $para_name => $para_value ) {
     201                $pdfjs_paras .= '<input type="hidden" value="' . $para_value . '" name="' . $para_name . '" class="bsk-pdfm-pdfs-dropdown-form-fields" />';
     202            }
     203        }
     204
     205        $str_body .= '<form action="' . $action . '" method="get" id="bsk_pdfm_pdfs_dropdown_open_form_ID_'.$form_id_random.'"' . $form_target_str . '>
     206                        <input type="hidden" value="default" name="file" id="bsk_pdfm_pdfs_dropdown_to_open_ID_'.$form_id_random.'" class="bsk-pdfm-pdfs-dropdown-form-fields" />'
     207                        . $pdfjs_paras .
     208                     '</form>';
     209
    182210        $str_body .= '</div><!--// bsk-pdfm-pdfs-output-->';
    183211       
     
    185213        $str_body .= BSKPDFM_Common_Display::get_shortcode_attributes_and_ajax_nonce( $shortcode_atts );
    186214       
     215        //pdfjs embeded
     216        if ( $embedded_viewer_settings['enable'] ) {
     217            $str_body .= '<input type="hidden" class="bsk-pdfm-pdfs-dropdown-pdfs-enable" value="YES">';
     218        } else {
     219            $str_body .= '<input type="hidden" class="bsk-pdfm-pdfs-dropdown-pdfs-enable" value="NO">';
     220        }
     221       
    187222        $str_body .= '</div><!--// bsk-pdfm-output-container-->';
    188 
    189         global $post;
    190        
    191         if ( $post->ID && $open_target_str ) {
    192             $_dropdown_shortcodes_pages = get_option( BSKPDFManager::$_dropdown_shortcodes_pages_option, array() );
    193             $_dropdown_shortcodes_pages[$post->ID] = $post->ID;
    194 
    195             update_option( BSKPDFManager::$_dropdown_shortcodes_pages_option, $_dropdown_shortcodes_pages );
    196         }
    197223
    198224        return $str_body;
  • bsk-pdf-manager/trunk/js/bsk_pdf_manager_pro.js

    r2426160 r3383033  
    55      */
    66    $(".bsk-pdfm-output-container").on("change", ".bsk-pdfm-pdfs-dropdown", function(){
    7         var target = $(this).data("target");
     7       
     8        var output_container = $(this).parents(".bsk-pdfm-output-container");
    89        var url = $(this).val();
    9 
    10         target = target == '_blank' ? '_blank' : '_self';
    11         if( url ){
    12             window.open( url, target);
     10       
     11        if ( url ) {
     12            //window.open( url, target);
     13            var form_ID_random = $( this ).data( "from-id" );
     14
     15            //if pdfjs enabled
     16            var pdfjs_enabled = output_container.find( ".bsk-pdfm-pdfs-dropdown-pdfs-enable" ).val();
     17            var permalink_enabled = output_container.find( ".bsk_pdfm_settings_enalbe_permalink_cls" ).val() > 0 ? true : false ;
     18            var file_extension = bsk_pdfm_get_fiel_extension( url );
     19            if ( pdfjs_enabled == 'YES' && permalink_enabled == false && file_extension == 'PDF' ) {
     20                //change file's value
     21                $( "#bsk_pdfm_pdfs_dropdown_to_open_ID_" + form_ID_random ).val( url );
     22            } else {
     23                //change form's action
     24                $( "#bsk_pdfm_pdfs_dropdown_open_form_ID_" + form_ID_random ).prop( "action", url );
     25                //remove all form's fields
     26                $( "#bsk_pdfm_pdfs_dropdown_open_form_ID_" + form_ID_random ).find( ".bsk-pdfm-pdfs-dropdown-form-fields" ).remove();
     27            }
     28            $( "#bsk_pdfm_pdfs_dropdown_open_form_ID_" + form_ID_random ).submit();
    1329        }
    1430    });
     31
     32    function bsk_pdfm_get_fiel_extension(url) {
     33        try {
     34          const urlObj = new URL(url);
     35          const pathname = urlObj.pathname;
     36         
     37          if (!pathname.includes('.')) {
     38            return null;
     39          }
     40         
     41          const filename = pathname.split('/').pop();
     42          const extension = filename.split('.').pop();
     43         
     44          if (extension === filename) {
     45            return null;
     46          }
     47         
     48          return extension.toUpperCase();
     49        } catch (error) {
     50          console.error('Invalid URL:', error);
     51          return null;
     52        }
     53    }
    1554   
    1655    $(".bsk-pdfm-output-container").on("click", ".bsk-pdfm-extension-filter-anchor, .bsk-pdfm-tags-filter-anchor", function(){
  • bsk-pdf-manager/trunk/readme.txt

    r3278709 r3383033  
    44Tags: PDF manager, meeting minutes tool, printable forms tool, data sheets tool, embed PDF
    55Requires at least: 5.3
    6 Tested up to: 6.8
    7 Stable tag: 3.7
     6Tested up to: 6.8.3
     7Stable tag: 3.7.1
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
     
    5454== Changelog ==
    5555
     563.7.1
     57
     58* Added: A new implementation to open PDF/documents from the drop-down menu. This way, the browser will no longer display security warnings or warnings when opening PDF/documents in a new window.
     59
     60* Compatible: Wordpress 6.8.3
     61
    56623.7
    5763
     
    6066* Fixed: warning mesage when display documents / PDFs in list and dropdown mode.
    6167
    62 * Compatible: Wordpress 6.8.x
     68* Compatible: Wordpress 6.8.1
    6369
    6470( In addition to the above, the Pro version also does the following )
Note: See TracChangeset for help on using the changeset viewer.