HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux sa-dev.otherchirps.net 5.15.0-139-generic #149-Ubuntu SMP Fri Apr 11 22:06:13 UTC 2025 x86_64
User: www-data (33)
PHP: 8.0.30
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/wp-content/plugins/LayerSlider/assets/classes/class.ls.modules.php
<?php

// Prevent direct file access
defined( 'LS_ROOT_FILE' ) || exit;

class LS_Modules {

	protected $moduleList;

	public $uploadsDir;
	public $uploadsBaseDir;
	public $uploadsBaseURL;
	public $modulesDir;
	public $modulesURL;


	public function __construct() {

		$this->uploadsDir 		= wp_get_upload_dir();
		$this->uploadsBaseDir 	= $this->uploadsDir['basedir'];
		$this->uploadsBaseURL 	= $this->uploadsDir['baseurl'];
		$this->modulesDir 		= $this->uploadsBaseDir.'/layerslider/modules';
		$this->modulesURL 		= $this->uploadsBaseURL.'/layerslider/modules';

		$this->moduleList 		= LS_RemoteData::get('modules');

	}


	public function getModuleData( $handle ) {

		if( empty( $this->moduleList[ $handle ] ) ) {
			return false;
		}

		$moduleData = $this->moduleList[ $handle ];
		$moduleDir 	= $this->modulesDir.'/'.$moduleData['handle'];
		$needsDL 	= ! file_exists( $moduleDir ) || count( glob( "$moduleDir/*" ) ) === 0;

		$moduleData['baseURL'] 		= $this->modulesURL.'/'.$moduleData['handle'];
		$moduleData['installed'] 	= ! $needsDL;
		$moduleData['needsDL'] 		= $needsDL;

		return $moduleData;
	}


	public function getAllModuleData() {

		$modules = [];

		foreach( $this->moduleList as $moduleKey => $moduleData ) {
			$modules[ $moduleKey ] = $this->getModuleData( $moduleKey );
		}

		return $modules;
	}

}