plugin_name = $plugin_name; $this->version = $version; add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts_admin' ) ); add_action( 'admin_init', array( $this, 'settings_init' ) ); add_action( 'admin_menu', array( $this, 'adobe_embedded_pdf_viewer_setup_menu' ) ); add_action( 'init', array( $this, 'set_default_values' ) ); $this->load_dependencies(); } function enqueue_scripts_admin() { wp_enqueue_script( 'admin-script', plugin_dir_url(__FILE__) . 'js/admin.js' ); wp_enqueue_style( 'admin-styles', plugin_dir_url(__FILE__) . 'css/admin-styles.css' ); } function load_dependencies() { require_once (plugin_dir_path( __FILE__ ) . 'validation.php' ); } // Add a menu page to the admin sidebar for the Adobe Embedded PDF Viewer settings function adobe_embedded_pdf_viewer_setup_menu() { add_menu_page( esc_html__( 'Adobe Embedded PDF Viewer', 'adobe-embedded-pdf-viewer' ), esc_html__( 'Adobe Embedded PDF Viewer', 'adobe-embedded-pdf-viewer' ), 'manage_options', 'adobe-embedded-pdf-viewer', array( $this, 'adobe_embedded_pdf_viewer_settings_page_contents' ), plugin_dir_url(__FILE__) . 'images/acrobat-pro-cc.png' ); } // Add the setting input fields function settings_init() { // General Settings add_settings_section( 'general_settings_section', esc_html__( 'General Settings:', 'adobe-embedded-pdf-viewer' ), array( $this, 'general_settings_callback_function' ), 'general_settings_fields' ); // Add the Client ID field to the general settings section add_settings_field( 'adobe_embedded_pdf_viewer_client_id_field', esc_html__( 'Client ID (API Key)', 'adobe-embedded-pdf-viewer' ), array( $this, 'client_id_markup' ), 'general_settings_fields', 'general_settings_section' ); register_setting( 'general_settings_fields', 'adobe_embedded_pdf_viewer_client_id_field', array( 'sanitize_callback' => 'sanitize_text_field', 'default' => '' ) ); // Add the Adobe Analytics Report Suite ID field to the general settings section add_settings_field( 'adobe_embedded_pdf_viewer_adobe_analytics_field', __( 'Adobe Analytics
Report Suite ID', 'adobe-embedded-pdf-viewer' ), array( $this, 'adobe_analytics_id_markup' ), 'general_settings_fields', 'general_settings_section' ); register_setting( 'general_settings_fields', 'adobe_embedded_pdf_viewer_adobe_analytics_field', array( 'sanitize_callback' => 'sanitize_text_field', 'default' => '' ) ); //PDF Viewer Settings add_settings_section( 'view_settings_section', esc_html__( 'View Settings:', 'adobe-embedded-pdf-viewer' ), array( $this, 'view_settings_section_callback_function' ), 'view_settings_fields' ); // Modal Embed Modes add_settings_field( 'adobe_embedded_pdf_viewer_modal_embed_mode_field', esc_html__( 'Embed Mode', 'adobe-embedded-pdf-viewer' ), array( $this, 'view_embed_mode_markup' ), 'view_settings_fields', 'view_settings_section' ); register_setting( 'view_settings_fields', 'adobe_embedded_pdf_viewer_modal_embed_mode_field', array( 'sanitize_callback' => 'validate_embed_mode', 'default' => 'SIZED_CONTAINER' ) ); // Initial Page View add_settings_field( 'adobe_embedded_pdf_viewer_modal_initial_page_view_field', esc_html__( 'Initial Page View', 'adobe-embedded-pdf-viewer' ), array( $this, 'view_page_view_markup' ), 'view_settings_fields', 'view_settings_section', array( 'div_class' => 'noSizedContainer noInLine' ) ); register_setting( 'view_settings_fields', 'adobe_embedded_pdf_viewer_modal_initial_page_view_field', array( 'sanitize_callback' => 'validate_initial_page_view', 'default' => 'FIT_PAGE' ) ); // Modal exit type add_settings_field( 'adobe_embedded_pdf_viewer_modal_exit_type_field', esc_html__( 'Lightbox Exit Type', 'adobe-embedded-pdf-viewer' ), array( $this, 'modal_exit_type_markup' ), 'view_settings_fields', 'view_settings_section', array( 'div_class' => 'noSizedContainer noInLine noFullWindow' ) ); register_setting( 'view_settings_fields', 'adobe_embedded_pdf_viewer_modal_exit_type_field', array( 'sanitize_callback' => 'validate_modal_exit_type', 'default' => 'CLOSE', ) ); // Enable Annotation Tools add_settings_field( 'adobe_embedded_pdf_viewer_modal_annotate_field', esc_html__( 'Enable Annotation Tools', 'adobe-embedded-pdf-viewer' ), array( $this, 'view_settings_checkbox_html' ), 'view_settings_fields', 'view_settings_section', array( 'div_class' => 'noLightBox noSizedContainer noInLine', 'input_id' => 'enableAnnotateSwitch', 'input_name' => 'adobe_embedded_pdf_viewer_modal_annotate_field', 'description' => esc_html__( 'Add annotation tools to the Full Window Viewer.', 'adobe-embedded-pdf-viewer' ) ) ); register_setting( 'view_settings_fields', 'adobe_embedded_pdf_viewer_modal_annotate_field', array( 'sanitize_callback' => 'sanitize_checkbox', 'default' => '1' ) ); // Enable PDF Download add_settings_field( 'adobe_embedded_pdf_viewer_modal_enable_download_field', esc_html__( 'Enable PDF Download', 'adobe-embedded-pdf-viewer' ), array( $this, 'view_settings_checkbox_html' ), 'view_settings_fields', 'view_settings_section', array( 'div_class' => '', 'input_id' => 'enableDownloadSwitch', 'input_name' => 'adobe_embedded_pdf_viewer_modal_enable_download_field', 'description' => esc_html__( 'Add a download button to the Embedded PDF Viewer. Unavailable on mobile.', 'adobe-embedded-pdf-viewer' ) ) ); register_setting( 'view_settings_fields', 'adobe_embedded_pdf_viewer_modal_enable_download_field', array( 'sanitize_callback' => 'sanitize_checkbox', 'default' => '1' ) ); // Enable Printing PDF add_settings_field( 'adobe_embedded_pdf_viewer_modal_enable_print_field', esc_html__( 'Enable Printing PDF', 'adobe-embedded-pdf-viewer' ), array( $this, 'view_settings_checkbox_html' ), 'view_settings_fields', 'view_settings_section', array( 'div_class' => '', 'input_id' => 'enablePrintSwitch', 'input_name' => 'adobe_embedded_pdf_viewer_modal_enable_print_field', 'description' => esc_html__( 'Add a print button to the Embedded PDF Viewer. Unavailable on mobile.', 'adobe-embedded-pdf-viewer' ) ) ); register_setting( 'view_settings_fields', 'adobe_embedded_pdf_viewer_modal_enable_print_field', array( 'sanitize_callback' => 'sanitize_checkbox', 'default' => '1' ) ); // Enable Full Screen mode add_settings_field( 'adobe_embedded_pdf_viewer_modal_full_screen_field', esc_html__( 'Enable Full Screen View', 'adobe-embedded-pdf-viewer' ), array( $this, 'view_settings_checkbox_html' ), 'view_settings_fields', 'view_settings_section', array( 'div_class' => 'noLightBox noFullWindow noInLine', 'input_id' => 'enableFullScreenSwitch', 'input_name' => 'adobe_embedded_pdf_viewer_modal_full_screen_field', 'description' => esc_html__( 'Add a full screen button to the Sized Container Viewer.', 'adobe-embedded-pdf-viewer' ) ) ); register_setting( 'view_settings_fields', 'adobe_embedded_pdf_viewer_modal_full_screen_field', array( 'sanitize_callback' => 'sanitize_checkbox', 'default' => '1' ) ); // Dock Page Controls add_settings_field( 'adobe_embedded_pdf_viewer_modal_dock_page_controls_field', esc_html__( 'Dock Page Controls', 'adobe-embedded-pdf-viewer' ), array( $this, 'view_settings_checkbox_html' ), 'view_settings_fields', 'view_settings_section', array( 'div_class' => 'noLightBox noFullWindow noInLine', 'input_id' => 'dockPageControlsSwitch', 'input_name' => 'adobe_embedded_pdf_viewer_modal_dock_page_controls_field', 'description' => esc_html__( 'Dock the page controls in the Embedded PDF Viewer.', 'adobe-embedded-pdf-viewer' ) ) ); register_setting( 'view_settings_fields', 'adobe_embedded_pdf_viewer_modal_dock_page_controls_field', array( 'sanitize_callback' => 'sanitize_checkbox', 'default' => '1' ) ); // Set the height of the sized container add_settings_field( 'adobe_embedded_pdf_viewer_modal_height_field', esc_html__( 'Height', 'adobe-embedded-pdf-viewer' ), array( $this, 'view_settings_textfield_html' ), 'view_settings_fields', 'view_settings_section', array( 'div_class' => 'noLightBox noFullWindow noInLine', 'input_id' => 'height_field', 'input_name' => 'adobe_embedded_pdf_viewer_modal_height_field', 'description' => esc_html__( 'Height of the Sized Container Viewer. Valid CSS widths are accepted.', 'adobe-embedded-pdf-viewer' ) ) ); register_setting( 'view_settings_fields', 'adobe_embedded_pdf_viewer_modal_height_field', array( 'sanitize_callback' => 'validate_height', 'default' => '400px' ) ); // Set the max width of the sized container add_settings_field( 'adobe_embedded_pdf_viewer_modal_maxwidth_field', esc_html__( 'Width', 'adobe-embedded-pdf-viewer' ), array( $this, 'view_settings_textfield_html' ), 'view_settings_fields', 'view_settings_section', array( 'div_class' => 'noLightBox noFullWindow', 'input_id' => 'maxwidth_field', 'input_name' => 'adobe_embedded_pdf_viewer_modal_maxwidth_field', 'description' => esc_html__( 'Width of the Sized Container and In-Line Viewer. Valid CSS widths are accepted.', 'adobe-embedded-pdf-viewer' ) ) ); register_setting( 'view_settings_fields', 'adobe_embedded_pdf_viewer_modal_maxwidth_field', array( 'sanitize_callback' => 'validate_max_width', 'default' => '500px' ) ); } // Add the contents to the plugin settings page function adobe_embedded_pdf_viewer_settings_page_contents() { ?>

'esc_html'] ); $active_tab = $tab ?: 'general_settings'; ?>
'; submit_button(); } elseif ( $active_tab === 'view_settings' ) { settings_errors(); settings_fields( 'view_settings_fields' ); do_settings_sections( 'view_settings_fields' ); echo '
'; submit_button(); } ?>


' . esc_html__('These settings affect how the embedded PDF will be presented. The values set here are used as defaults for the Modal View and Gutenberg block and can be overwritten for each use case individually. Setting changes will not impact previously applied settings in the block editor. Non-applicable settings to the embed mode are grayed out.') . '

'; } function view_embed_mode_markup() { ?>