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__('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() { ?>