<?php

namespace WPDesk\PluginBuilder\Plugin;

/**
 * @deprecated Use wpdesk/wp-view
 *
 * @package WPDesk\PluginBuilder\Plugin
 */
trait TemplateLoad {

	/**
	 * Plugin path.
	 *
	 * @var string
	 */
	protected $plugin_path;

	/**
	 * Template path.
	 *
	 * @var string
	 */
	protected $template_path;

	/**
	 * Init base variables for plugin
	 */
	public function init_template_base_variables() {
		$this->plugin_path   = $this->plugin_info->get_plugin_dir();
		$this->template_path = $this->plugin_info->get_text_domain();
	}

	/**
	 * Renders end returns selected template
	 *
	 * @param string $name Name of the template.
	 * @param string $path Additional inner path to the template.
	 * @param array  $args args Accessible from template.
	 *
	 * @return string
	 */
	public function load_template( $name, $path = '', $args = array() ) {
		$plugin_template_path = trailingslashit( $this->plugin_path ) . 'templates/';

		// Look within passed path within the theme - this is priority.
		$template = locate_template(
			array(
				trailingslashit( $this->get_template_path() ) . trailingslashit( $path ) . $name . '.php',
			)
		);

		if ( ! $template ) {
			$template = $plugin_template_path . trailingslashit( $path ) . $name . '.php';
		}

		extract( $args );
		ob_start();
		include( $template );

		return ob_get_clean();
	}

	/**
	 * Get template path.
	 *
	 * @return string
	 */
	public function get_template_path() {
		return trailingslashit( $this->template_path );
	}


}