Template
Class Template
Source
File: src/Tribe/Views/V2/Template.php
class Template extends Base_Template { /** * The slug the template should use to build its path. * * @var string */ protected $slug; /** * The repository instance that provided the template with posts, if any. * * @var Repository_Interface */ protected $repository; /** * Renders and returns the View template contents. * * @since 4.9.2 * * @param array $context_overrides Any context data you need to expose to this file * * @return string The rendered template contents. */ public function render( array $context_overrides = [] ) { $context = wp_parse_args( $context_overrides, $this->context ); $context['_context'] = $context; return parent::template( $this->slug, $context, false ); } /** * Template constructor. * * @param string $slug The slug the template should use to build its path. * * @since 4.9.2 * */ public function __construct( $slug ) { $this->slug = $slug; // Set some global defaults all Views are likely to search for; those will be overridden by each View. $this->set_values( [ 'slug' => $slug, 'prev_url' => '', 'next_url' => '', ], false ); $this->set_template_origin( tribe( 'tec.main' ) ) ->set_template_folder( 'src/views/v2' ) ->set_template_folder_lookup( true ) ->set_template_context_extract( true ); } /** * Returns the template file the View will use to render. * * If a template cannot be found for the view then the base template for the view will be returned. * * @param string|null $name Either a specific name to check or `null` to let the view pick the * template according to the template override rules. * * @return string The path to the template file the View will use to render its contents. * @since 4.9.2 * */ public function get_template_file( $name = null ) { $name = null !== $name ? $name : $this->slug; $template = parent::get_template_file( $name ); return false !== $template ? $template : $this->get_base_template_file(); } /** * Returns the absolute path to the view base template file. * * @since 4.9.2 * * @return string The absolute path to the Views base template. */ public function get_base_template_file() { // Print the lookup folders as relative paths. $this->set( 'lookup_folders', array_map( function ( array $folder ) { $folder['path'] = str_replace( WP_CONTENT_DIR, '', $folder['path'] ); return $folder; }, $this->get_template_path_list() ) ); return parent::get_template_file( 'base' ); } /** * Returns the absolute path to the view "not found" template file. * * @since 4.9.2 * * @return string The absolute path to the Views "not found" template. */ public function get_not_found_template() { return parent::get_template_file( 'not-found' ); } }
Changelog
Version | Description |
---|---|
4.9.2 | Introduced. |
Methods
- __construct — Template constructor.
- get_base_template_file — Returns the absolute path to the view base template file.
- get_context — Returns the current template context.
- get_not_found_template — Returns the absolute path to the view "not found" template file.
- get_template_file — Returns the template file the View will use to render.
- get_view — Returns the current template view, either set in the constructor or using the `set_view` method.
- render — Renders and returns the View template contents.
- set_view — Sets the template view.
- setup_postdata — Sets up the post data and replace the global post variable on all required places.