# amedea/trunk/config.php

Amedea – Unique Design Elements for Elementor, version trunk. 177 lines.

- Page: https://pluginprobe.com/plugins/amedea/trunk/code/config.php
- Raw: https://pluginprobe.com/plugins/amedea/trunk/raw/config.php
- Modified: 2026-06-12T15:01:24+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/amedea/trunk/code/config.php#L10-L20`.

```php
<?php

namespace Amedea;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

/**
 * Class Plugin
 *
 * Main Plugin class
 * @since 1.0.0
 */
class Amedea {

	/**
	 * Instance
	 *
	 * @since 1.0.0
	 * @access private
	 * @static
	 *
	 * @var Plugin The single instance of the class.
	 */
	private static $_instance = null;

	/**
	 * Instance
	 *
	 * Ensures only one instance of the class is loaded or can be loaded.
	 *
	 * @since 1.0.0
	 * @access public
	 *
	 * @return Plugin An instance of the class.
	 */
	public static function instance() {
		if ( is_null( self::$_instance ) ) {
			self::$_instance = new self();
		}
		return self::$_instance;
	}

	/**
	 * widget_scripts
	 *
	 * Load required plugin core files.
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public function amedea__widget_scripts() {

		wp_enqueue_script('jquery');
		
		//Register Libraries
		foreach (glob(__DIR__ . '/assets/lib/*.js') as $filename) {  
			wp_register_script(basename($filename, '.js'), plugins_url('/assets/lib/'.basename($filename),__FILE__),  array(), true, true);
		}
			
		// Register jQuery  
		foreach (glob(__DIR__ . '/assets/js/*.js') as $filename) {  
			wp_register_script('amedea-'.basename($filename, '.js'), plugins_url('/assets/js/'.basename($filename),__FILE__),  array(), true, true);
		}
		
	}
	
	/**
	 * widget_styles
	 *
	 * Load required plugin core files.
	 *
	 * @since 1.2.0
	 * @access public
	 */
	public function amedea__widget_styles(){

		wp_register_style('amedea',plugins_url('/assets/style.css',__FILE__));
		wp_enqueue_style( 'amedea' );
		
		foreach (glob(__DIR__ . '/assets/css/*.css') as $filename) {  
	
			wp_register_style(basename($filename, '.css'),plugins_url('/assets/css/'.basename($filename),__FILE__));
		}
		
	}	

	/**
	 * Include Widgets files
	 *
	 * Load widgets files
	 *
	 * @since 1.0.0
	 * @access private
	 */
	private function amedea__include_widgets_files() {
		
		foreach (glob(__DIR__ . '/widgets/*/*.php') as $filename) {
			require_once $filename;
		}
	
	}
	
	/**
	 * Register Widgets
	 *
	 * Register new Elementor widgets.
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public function amedea__register_widgets() {
		// Its is now safe to include Widgets files
		$this->amedea__include_widgets_files();
		
		// Get the namespace  
		$namespace = __NAMESPACE__ . '\\Widgets\\amedea__';  

		// Register widgets  
		foreach (glob(__DIR__ . '/widgets/*/*.php') as $filename) {  
			$className = str_replace("-","_",$namespace . basename($filename, '.php'));
			\Elementor\Plugin::instance()->widgets_manager->register_widget_type(new $className());  
		}
		
	}
	
	//category registered
	public function amedea__add_elementor_categories( $elements_manager ) {



		$elements_manager->add_category(
			'amedea-category',
			[
				'title' => esc_html__( 'Amedea', 'amedea' ),
				'icon' => 'fa fa-plug',
			]
		);
		
		$elements_manager->add_category(
			'amedea-theme-widgets-category',
			[
				'title' => esc_html__( 'Amedea:Theme Widgets', 'amedea' ),
				'icon' => 'fa fa-plug',
			]
		);
	}

	/**
	 *  Plugin class constructor
	 *
	 * Register plugin action hooks and filters
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public function __construct() {

		// Enqueue widget styles
        add_action( 'elementor/frontend/after_register_styles', [ $this, 'amedea__widget_styles' ] , 100 );
        add_action( 'admin_enqueue_scripts', [ $this, 'amedea__widget_styles' ] , 100 );

		// Enqueue widget scripts
        add_action( 'elementor/frontend/after_register_scripts', [ $this, 'amedea__widget_scripts' ], 100 );

		// Register widgets
		add_action( 'elementor/widgets/widgets_registered', [ $this, 'amedea__register_widgets' ] );

		// Category registered
		add_action( 'elementor/elements/categories_registered',  [ $this,'amedea__add_elementor_categories' ]);

	}
}

// Instantiate Plugin Class
Amedea::instance();
```
