/**
  * Function parsed template.
  *
  * @since  1.0.0
  * @param  string          $template_name   Template Name.
  * @param  string|stdClass $class           An instance or class name.
  * @param  string          $macros_callback The regular expression for the callback.
  * @param  string          $macros_variable The regular expression for the variable.
  * @access public
  * @return string|bool
  */
 public function parsed_template($template_name = false, $class = false, $macros_callback = false, $macros_variable = false)
 {
     if ($template_name && $class) {
         if (!$macros_callback) {
             $macros_callback = $this->args['macros_callback'];
         }
         if (!$macros_variable) {
             $macros_variable = $this->args['macros_variable'];
         }
         $search_form_template = $this->cherry_template_manager_class->loader->get_template_by_name($template_name);
         if (!$search_form_template) {
             return false;
         }
         if ('string' === gettype($class) && class_exists($class)) {
             $class = new $class();
         }
         if ($class !== self::$callbacks_class) {
             self::$callbacks_class = $class;
         }
         $ouput = preg_replace_callback($macros_callback, array($this, 'replace_callback'), $search_form_template);
         $ouput = preg_replace_callback($macros_variable, array($this, 'replace_variable'), $ouput);
         return $ouput;
     } else {
         return false;
     }
 }