HEX
Server: Apache
System: Linux d5123.usc1.stableserver.net 5.14.0-570.17.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Sat May 24 12:53:17 EDT 2025 x86_64
User: d5123 (1001)
PHP: 8.4.21
Disabled: NONE
Upload Files
File: /home/d5123/myboofola_com/wp-content/plugins/popup-more/classes/frontend/ScriptsLoader.php
<?php
namespace ypmFrontend;

use \YpmAdminHelper;

// load popups data's from popups object
class ScriptsLoader
{
	// all loadable popups objects
	private $loadablePopups = array();
	private $isAdmin = false;
	private static $alreadyLoadedPopups = array();

	public function setLoadablePopups($loadablePopups)
	{
		$this->loadablePopups = $loadablePopups;
	}

	public function getLoadablePopups()
	{
		return apply_filters('ypmLoadablePopups', $this->loadablePopups);
	}

	public function setIsAdmin($isAdmin)
	{
		$this->isAdmin = $isAdmin;
	}

	public function getIsAdmin()
	{
		return $this->isAdmin;
	}

	/**
	 * Get encoded popup options
	 *
	 * @since 3.0.4
	 *
	 * @param object $popup
	 *
	 * @return array|mixed|string|void $popupOptions
	 */
	private function getEncodedOptionsFromPopup($popup)
	{
		/*
		 * ToDo check this code
		 * */
		$extraOptions = array();
		//$extraOptions = $popup->getExtraRenderOptions();
		$id = $popup->getId();
		$popupOptions = $popup->getOptions();
		$popupOptions = apply_filters('ypmPopupRenderOptions', $popupOptions);
		/*
		 * ToDo check this code
		 * */
		//$popupCondition = $popup->getConditions();
		$popupCondition = array();

		$popupOptions = array_merge($popupOptions, $extraOptions);
		$popupOptions['ypmConditions'] = apply_filters('ypmRenderCondtions',  $popupCondition);
		// These two lines have been added in order to not use the json_econde and to support PHP 5.3 version.
		$popupOptions = YpmAdminHelper::serializeData($popupOptions);
		$popupOptions = base64_encode($popupOptions);

		return $popupOptions;
	}

	// load popup scripts and styles and add popup data to the footer
	public function loadToFooter()
	{
		$popups = $this->getLoadablePopups();
		$currentPostType = YpmAdminHelper::getCurrentPostType();
		global $wp;
		if (empty($popups)) {
			return false;
		}

		global $post;
		$postId = 0;

		if (!empty($post)) {
			$postId = $post->ID;
		}

		if ($this->getIsAdmin()) {
			$this->loadToAdmin();
			return true;
		}

		foreach ($popups as $popup) {
			$isActive = $popup->isActive();

			if (!$isActive) {
				continue;
			}

			$popupId = $popup->getId();

			//	$popupContent = apply_filters('ypmPopupContentLoadToPage', $popup->getContent(), $popupId);

			$includer = new PopupIncluder();
			$includer->setId($popupId);
			$includer->setPopup($popup);
			$includer->setLoadable(true);
			$includer->setReferBy(2);
			$includer->includePopup();
		}
	}

	public function loadToAdmin()
	{
		$popups = $this->getLoadablePopups();

		foreach ($popups as $popup) {
			$popupId = $popup->getId();

			$events = array();

			$events = json_encode($events);

			$popupOptions = $this->getEncodedOptionsFromPopup($popup);

			$popupContent = apply_filters('ypmPopupContentLoadToPage', $popup->getContent(), $popupId);

			add_action('admin_footer', function() use ($popupId, $events, $popupOptions, $popupContent) {
				$footerPopupContent = '<div style="position:absolute;top: -999999999999999999999px;">
							<div class="ypm-popup-content" id="ypm-popup-content-wrapper-'.$popupId.'" data-id="'.esc_attr($popupId).'" data-events="'.esc_attr($events).'" data-options="'.esc_attr($popupOptions).'">
								<div class="ypm-popup-content-'.esc_attr($popupId).' ypm-popup-content-html">'.$popupContent.'</div>
							</div>
						  </div>';

				echo wp_kses($footerPopupContent, YpmAdminHelper::getAllowedTags());
			});
		}
		$this->includeScripts($popups);

	}
}