/**
  * Sets up needed actions/filters for the class to initialize.
  *
  * @since 1.0.0
  * @param str   $target_dir_path A path to the templates directory.
  */
 public function __construct()
 {
     $plugin = Cherry_Shortcodes_Templater::get_instance();
     $this->plugin_slug = $plugin->get_plugin_slug();
     $this->target_dir_path = CHERRY_TEMPLATER_UPLOAD_DIR . Cherry_Shortcodes_Templater::$dir_name;
     if (false == Cherry_Shortcodes_Templater::template_dir()) {
         add_action('admin_notices', array($this, 'admin_notice'));
         return;
     }
     /**
      * Default templates.
      * @var array
      *
      * array(
      * 	'shortcode_name_1' => array(
      *  	'location_name' => array(
      *  		'item-*' => array(
      *  			'dir'  => '',
      *  			'path' => '',
      *  		)
      *  	)
      * 	),
      * 	'shortcode_name_2' => array(...),
      * )
      */
     // Enqueue admin-specific stylesheet.
     add_action('admin_enqueue_scripts', array($this, 'enqueue_admin_scripts'), 99);
     // Add the options page and menu item.
     add_action('admin_menu', array($this, 'add_admin_menu'), 11);
 }
 /**
  * Returns the instance.
  *
  * @since  1.0.0
  * @return object
  */
 public static function get_instance()
 {
     // If the single instance hasn't been set, set it now.
     if (null == self::$instance) {
         self::$instance = new self();
     }
     return self::$instance;
 }