Skip to content
Snippets Groups Projects
Select Git revision
  • 5c1e330583a0d5eda6426db1c632784feff507e2
  • master default protected
  • feat/woo-template
  • organize-tests
  • feat/add-show-rendered-method
  • devel
  • 2.1.0
  • 2.0.0
  • 1.1.0
  • 1.0.2
  • 1.0.1
  • 1.0
12 results

WPThemeResolver.php

Blame
  • WPThemeResolver.php 932 B
    <?php
    
    namespace WPDesk\View\Resolver;
    
    use WPDesk\View\Renderer\Renderer;
    use WPDesk\View\Resolver\Exception\CanNotResolve;
    
    /**
     * Class should resolve name by standard wp theme resolve
     *
     * @package WPDesk\View\Resolver
     */
    class WPThemeResolver implements Resolver {
    
    	/** @var string */
    	private $template_base_path;
    
    
    	/**
    	 * Base path for templates ie. subdir
    	 *
    	 * @param $template_base_path
    	 */
    	public function __construct( $template_base_path ) {
    		$this->template_base_path = $template_base_path;
    	}
    
    	/**
    	 * Resolve name to full path
    	 *
    	 * @param string $name
    	 * @param Renderer|null $renderer
    	 *
    	 * @return string
    	 */
    	public function resolve( $name, Renderer $renderer = null ) {
    		$templateFile = locate_template(
    			[
    				trailingslashit( $this->template_base_path ) . $name,
    			]
    		);
    		if ( ! $templateFile ) {
    			throw new CanNotResolve( "Cannot resolve {$name}" );
    		}
    
    		return $templateFile;
    	}
    }