* @version 1.0
*/
abstract class Module_Base {
/**
* Plugin object
*
* @since 7.0
* @var \Wbcr_Factory427_Plugin
*/
public $plugin;
/**
* Current license key
*
* @since 7.0
* @var string
*/
protected $license_key = "";
protected $module_dir;
protected $module_url;
/**
* Titan module constructor.
*
*/
public function __construct( ) {
$this->plugin = Plugin::app();
if(Plugin::app()->premium->is_activate())
$this->license_key = Plugin::app()->premium->get_license()->get_key();
}
/**
* Method renders layout template
*
* @param string $template_name Template name without ".php"
* @param array|string|int|float|bool|object $args Template arguments
*
* @return false|string
*/
protected function render_template( $template_name, $args = array()) {
$path = $this->module_dir."/views/$template_name.php";
if( file_exists($path) ) {
ob_start();
extract($args);
include $path;
unset($path);
return ob_get_clean();
} else {
return __('This template does not exist!', 'titan-security');
}
}
/**
* Method renders Java Script
*
* @param string $script_name Template name with ".js" "/module/assets/js/$script_name"
*
* @param array[] $args Arguments are converted to JS variables similar to the wp_localize_script function
*
* @return false|string
*/
protected function render_script( $script_name, $args = array()) {
$path = $this->module_dir."/assets/js/$script_name";
$url = $this->module_url."/assets/js/$script_name";
if( file_exists($path) ) {
ob_start();
echo "";
echo "";
unset($path);
return ob_get_clean();
} else {
return __('This script file does not exist!', 'titan-security');
}
}
abstract public function showPageContent();
}