HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux WebLive 5.15.0-79-generic #86-Ubuntu SMP Mon Jul 10 16:07:21 UTC 2023 x86_64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/wpmuhibbah_err/wp-content/plugins/pdf-embedder/src/Viewer/Viewer.php
<?php

namespace PDFEmbedder\Viewer;

use PDFEmbedder\Options;
use PDFEmbedder\Helpers\Links;
use PDFEmbedder\Helpers\Check;
use PDFEmbedder\Helpers\Assets;

/**
 * Render the PDF file.
 *
 * @since 4.8.0
 */
class Viewer implements ViewerInterface {

	/**
	 * Processed and ready-to-use attributes.
	 *
	 * @since 4.8.0
	 *
	 * @var array
	 */
	protected $atts = [];

	/**
	 * Pass the options needed for the viewer.
	 *
	 * @since 4.8.0
	 *
	 * @param array $atts Attributes.
	 */
	public function set_options( array $atts = [] ) {

		$this->atts = array_merge( Options::unprefix( pdf_embedder()->options()->get() ), $atts );
	}

	/**
	 * Render the PDF viewer.
	 *
	 * @since 4.8.0
	 */
	public function render(): string { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh

		$title = ! empty( $this->atts['title'] ) ? $this->atts['title'] : Links::make_title_from_url( $this->atts['url'] );

		$html_node   = '';
		$extra_style = '';

		/*
		 * Extra styles based on the PDF width and height settings.
		 */
		if ( is_numeric( $this->atts['width'] ) ) {
			$extra_style .= 'width:' . (int) $this->atts['width'] . 'px;';
		} elseif ( $this->atts['width'] !== 'max' && $this->atts['width'] !== 'auto' ) {
			$this->atts['width'] = 'max';
		}

		if ( is_numeric( $this->atts['height'] ) ) {
			$extra_style .= 'height:' . (int) $this->atts['height'] . 'px;';
		} elseif ( $this->atts['height'] === 'auto' ) {
			$this->atts['height'] = 'max';
		} elseif ( $this->atts['height'] !== 'max' && $this->atts['height'] !== 'auto' ) {
			$this->atts['height'] = 'max';
		}

		/**
		 * Filter the HTML attributes for the PDF Embedder shortcode.
		 *
		 * @since 4.7.0
		 *
		 * @param array $html_attr HTML attributes.
		 */
		$html_attr = apply_filters(
			'pdfemb_shortcode_html_attributes',
			[
				'class'              => 'pdfemb-viewer',
				'style'              => $extra_style,
				'data-width'         => $this->atts['width'],
				'data-height'        => $this->atts['height'],
				'data-toolbar'       => $this->atts['toolbar'],
				'data-toolbar-fixed' => $this->atts['toolbarfixed'],
			]
		);

		$html_node .= '<a href="' . esc_url( set_url_scheme( $this->atts['url'] ) ) . '"';

		foreach ( $html_attr as $key => $value ) {
			if ( ! is_scalar( $key ) || ! is_scalar( $value ) ) {
				continue;
			}

			$html_node .= ' ' . sanitize_key( (string) $key ) . '="' . esc_attr( (string) $value ) . '"';
		}

		$html_node .= '>';

		$html_node .= esc_html( $title );

		$html_node .= '</a>';

		return $html_node;
	}

	/**
	 * Inline scripts and styles for the shortcode.
	 *
	 * @since 4.8.0
	 */
	public function enqueue_inline_assets() { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks

		// Assets should be enqueued only once on a page.
		// They are shared across all instances of the shortcode.
		static $is_enqueued = false;

		if ( $is_enqueued ) {
			return;
		}

		$is_enqueued = true;

		wp_enqueue_script( 'pdfemb_embed_pdf' );

		wp_enqueue_style(
			'pdfemb_embed_pdf_css',
			Assets::url( 'css/pdfemb.css', true ),
			[],
			Assets::ver()
		);
	}
}