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/wptuneprotect/wp-content/plugins/js_composer/include/classes/modules/class-module.php
<?php
/**
 * Abstract class for modules.
 */

if ( ! defined( 'ABSPATH' ) ) {
	die( '-1' );
}

/**
 * Abstract class for modules that help provide common functionality for modules.
 *
 * @note it is not obligatory to use this class for every module.
 * We use it only for our modules that need to have some common functionality,
 * but we don't keep here specific module realization.
 *
 * @since 8.4
 */
abstract class Vc_Module {
	/**
	 * Module currently processed functionality.
	 *
	 * @since 8.4
	 * @var object
	 */
	public $processed_functionality;

	/**
	 * Module functionality list contains all functionality objects.
	 *
	 * @since 8.4
	 * @var array
	 */
	public $functionality_list = [];

	/**
	 * Vc_Module constructor.
	 *
	 * @since 8.4
	 */
	public function __construct() {
		$this->init_common_functionality();
	}

	/**
	 * Magic method that help override functionality methods in module.
	 *
	 * @since 8.4
	 *
	 * @param string $name
	 * @param array $arguments
	 */
	public function __call( $name, $arguments ) {
		return $this->processed_functionality->{$name}( ...$arguments );
	}

	/**
	 * Get module functionality object by name.
	 *
	 * @since 8.4
	 *
	 * @param string $functionality_name
	 *
	 * @return object
	 */
	public function get_module_functionality( $functionality_name ) {
		return $this->functionality_list[ $functionality_name ];
	}

	/**
	 * Init common functionality for some modules
	 *
	 * @since 8.4
	 */
	public function init_common_functionality() {
		if ( empty( $this->module_common_functionality ) || ! is_array( $this->module_common_functionality ) ) {
			return;
		}

		foreach ( $this->module_common_functionality as $functionality_name ) {
			if ( ! is_string( $functionality_name ) ) {
				continue;
			}

			// check if setting class file exist.
			$functionality_class_file = vc_manager()->path( 'MUTUAL_MODULES_DIR', 'functionality/class-module-' . $functionality_name . '.php' );
			if ( ! file_exists( $functionality_class_file ) ) {
				continue;
			}

			require_once $functionality_class_file;
			$functionality_class_name = 'Vc_Module_' . str_replace( '-', '_', ucwords( $functionality_name, '-' ) );
			if ( class_exists( $functionality_class_name ) ) {
				$this->processed_functionality = new $functionality_class_name( $this );
				$this->functionality_list[ $functionality_name ] = $this->processed_functionality;
			}
		}
	}
}