403Webshell
Server IP : 15.235.198.142  /  Your IP : 216.73.216.24
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux ballsack 6.8.0-45-generic #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:02:04 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 8.3.6
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/yme/wp-content/plugins/simply-static/src/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/yme/wp-content/plugins/simply-static/src/class-ss-view.php
<?php
namespace Simply_Static;

// Exit if accessed directly
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Simply Static view class
 */
class View {

	/**
	 * Base directory for views
	 * @var string
	 */
	const DIRECTORY = 'views';

	/**
	 * View script extension
	 * @var string
	 */
	const EXTENSION = '.php';

	/**
	 * View variables array
	 * @var array
	 */
	protected $variables = array();

	/**
	 * Absolute path for view
	 * @var string
	 */
	protected $path = null;

	/**
	 * Template file name to render
	 * @var string
	 */
	protected $template = null;

	/**
	 * Flashes are quick status messages displayed at the top of the page
	 * @var array
	 */
	protected $flashes = array();

	/**
	 * Contructor - Performs initialization of the absolute path for views
	 */
	public function __construct() {
		// Looking for a basic directory where plugin resides
		list($plugin_dir) = explode( '/', plugin_basename( __FILE__ ) );

		// create an absolute path to views directory
		$path_array = array( WP_PLUGIN_DIR, $plugin_dir, self::DIRECTORY );

		$this->path = implode( '/', $path_array );
	}

	/**
	 * Sets a layout that will be used later in render() method
	 * @param string $template The template filename, without extension
	 * @return Simply_Static\View
	 */
	public function set_layout( $layout ) {
		$this->layout = trailingslashit( $this->path ) . 'layouts/' . $layout . self::EXTENSION;

		return $this;
	}

	/**
	 * Sets a template that will be used later in render() method
	 * @param string $template The template filename, without extension
	 * @return Simply_Static\View
	 */
	public function set_template( $template ) {
		$this->template = trailingslashit( $this->path ) . $template . self::EXTENSION;

		return $this;
	}

	/**
	 * Returns a value of the option identified by $name
	 * @param string $name The option name
	 * @return mixed|null
	 */
	public function __get( $name ) {
		$value = array_key_exists( $name, $this->variables ) ? $this->variables[ $name ] : null;
		return $value;
	}

	/**
	* Updates the view variable identified by $name with the value provided in $value
	* @param string $name The variable name
	* @param mixed  $value The variable value
	* @return Simply_Static\View
	*/
	public function __set( $name, $value ) {
		$this->variables[ $name ] = $value;
		return $this;
	}

	/**
	 * Updates the view variable identified by $name with the value provided in $value
	 * @param string $name The variable name
	 * @param mixed $value The variable value
	 * @return Simply_Static\View
	 */
	public function assign( $name, $value ) {
		return $this->__set( $name, $value );
	}

	/**
	 * Add a flash message to be displayed at the top of the page
	 *
	 * Available types: 'updated' (green), 'error' (red), 'notice' (no color)
	 *
	 * @param string $type The type of message to be displayed
	 * @param string $message The message to be displayed
	 * @return void
	 */
	public function add_flash( $type, $message ) {
		array_push( $this->flashes, array( 'type' => $type, 'message' => $message ) );
	}

	/**
	 * Returns the layout (if available) or template
	 *
	 * Checks to make sure that the file exists and is readable.
	 *
	 * @return string|\WP_Error
	 */
	private function get_renderable_file() {

		// must include a template
		if ( ! is_readable( $this->template ) ) {
			return new \WP_Error( 'invalid_template', sprintf( __( "Can't find view template: %s", 'simply-static' ), $this->template ) );
		}

		// layouts are optional. if no layout provided, use the template by itself.
		if ( $this->layout ) {
			if ( ! is_readable( $this->layout ) ) {
				return new \WP_Error( 'invalid_layout', sprintf( __( "Can't find view layout: %s", 'simply-static' ), $this->layout ) );
			} else {
				// the layout should include the template
				return $this->layout;
			}
		} else {
			return $this->template;
		}

	}

	/**
	 * Renders the view script.
	 *
	 * @return Simply_Static\View|\WP_Error
	 */
	public function render() {

		$file = $this->get_renderable_file();

		if ( is_wp_error( $file ) ) {
			return $file;
		} else {
			include $file;
			return $this;
		}

	}

	/**
	 * Returns the view as a string.
	 *
	 * @return string|\WP_Error
	 */
	public function render_to_string() {

		$file = $this->get_renderable_file();

		if ( is_wp_error( $file ) ) {
			return $file;
		} else {
			ob_start();
		include $file;
		return ob_get_clean();
		}

	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit