diff options
Diffstat (limited to 'phpBB/phpbb/style')
| -rw-r--r-- | phpBB/phpbb/style/extension_path_provider.php | 137 | ||||
| -rw-r--r-- | phpBB/phpbb/style/path_provider.php | 62 | ||||
| -rw-r--r-- | phpBB/phpbb/style/path_provider_interface.php | 42 | ||||
| -rw-r--r-- | phpBB/phpbb/style/resource_locator.php | 348 | ||||
| -rw-r--r-- | phpBB/phpbb/style/style.php | 241 | 
5 files changed, 0 insertions, 830 deletions
| diff --git a/phpBB/phpbb/style/extension_path_provider.php b/phpBB/phpbb/style/extension_path_provider.php deleted file mode 100644 index ec1d85f821..0000000000 --- a/phpBB/phpbb/style/extension_path_provider.php +++ /dev/null @@ -1,137 +0,0 @@ -<?php -/** -* -* @package phpBB3 -* @copyright (c) 2011 phpBB Group -* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ -	exit; -} - -/** -* Provides a style resource locator with core style paths and extension style paths -* -* Finds installed style paths and makes them available to the resource locator. -* -* @package phpBB3 -*/ -class phpbb_style_extension_path_provider extends phpbb_extension_provider implements phpbb_style_path_provider_interface -{ -	/** -	* Optional prefix for style paths searched within extensions. -	* -	* Empty by default. Relative to the extension directory. As an example, it -	* could be adm/ for admin style. -	* -	* @var string -	*/ -	protected $ext_dir_prefix = ''; - -	/** -	* A provider of paths to be searched for styles -	* @var phpbb_style_path_provider -	*/ -	protected $base_path_provider; - -	/** @var string */ -	protected $phpbb_root_path; - -	/** -	* Constructor stores extension manager -	* -	* @param phpbb_extension_manager $extension_manager phpBB extension manager -	* @param phpbb_style_path_provider $base_path_provider A simple path provider -	*            to provide paths to be located in extensions -	* @param string		$phpbb_root_path	phpBB root path -	*/ -	public function __construct(phpbb_extension_manager $extension_manager, phpbb_style_path_provider $base_path_provider, $phpbb_root_path) -	{ -		parent::__construct($extension_manager); -		$this->base_path_provider = $base_path_provider; -		$this->phpbb_root_path = $phpbb_root_path; -	} - -	/** -	* Sets a prefix for style paths searched within extensions. -	* -	* The prefix is inserted between the extension's path e.g. ext/foo/ and -	* the looked up style path, e.g. styles/bar/. So it should not have a -	* leading slash, but should have a trailing slash. -	* -	* @param string $ext_dir_prefix The prefix including trailing slash -	* @return null -	*/ -	public function set_ext_dir_prefix($ext_dir_prefix) -	{ -		$this->ext_dir_prefix = $ext_dir_prefix; -	} - -	/** -	* Finds style paths using the extension manager -	* -	* Locates a path (e.g. styles/prosilver/) in all active extensions. -	* Then appends the core style paths based in the current working -	* directory. -	* -	* @return array     List of style paths -	*/ -	public function find() -	{ -		$directories = array(); - -		$finder = $this->extension_manager->get_finder(); -		foreach ($this->base_path_provider as $key => $paths) -		{ -			if ($key == 'style') -			{ -				foreach ($paths as $path) -				{ -					$directories['style'][] = $path; -					if ($path && !phpbb_is_absolute($path)) -					{ -						// Remove phpBB root path from the style path, -						// so the finder is able to find extension styles, -						// when the root path is not ./ -						if (strpos($path, $this->phpbb_root_path) === 0) -						{ -							$path = substr($path, strlen($this->phpbb_root_path)); -						} - -						$result = $finder->directory('/' . $this->ext_dir_prefix . $path) -							->get_directories(true, false, true); -						foreach ($result as $ext => $ext_path) -						{ -							// Make sure $ext_path has no ending slash -							if (substr($ext_path, -1) === '/') -							{ -								$ext_path = substr($ext_path, 0, -1); -							} -							$directories[$ext][] = $ext_path; -						} -					} -				} -			} -		} - -		return $directories; -	} - -	/** -	* Overwrites the current style paths -	* -	* @param array $styles An array of style paths. The first element is the main style. -	* @return null -	*/ -	public function set_styles(array $styles) -	{ -		$this->base_path_provider->set_styles($styles); -		$this->items = null; -	} -} diff --git a/phpBB/phpbb/style/path_provider.php b/phpBB/phpbb/style/path_provider.php deleted file mode 100644 index 731d682e88..0000000000 --- a/phpBB/phpbb/style/path_provider.php +++ /dev/null @@ -1,62 +0,0 @@ -<?php -/** -* -* @package phpBB3 -* @copyright (c) 2011 phpBB Group -* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ -	exit; -} - -/** -* Provides a style resource locator with paths -* -* Finds installed style paths and makes them available to the resource locator. -* -* @package phpBB3 -*/ -class phpbb_style_path_provider implements IteratorAggregate, phpbb_style_path_provider_interface -{ -	protected $paths = array(); - -	/** -	* Ignores the extension dir prefix -	* -	* @param string $ext_dir_prefix The prefix including trailing slash -	* @return null -	*/ -	public function set_ext_dir_prefix($ext_dir_prefix) -	{ -	} - -	/** -	* Overwrites the current style paths -	* -	* The first element of the passed styles map, is considered the main -	* style. -	* -	* @param array $styles An array of style paths. The first element is the main style. -	* @return null -	*/ -	public function set_styles(array $styles) -	{ -		$this->paths = array('style' => $styles); -	} - -	/** -	* Retrieve an iterator over all style paths -	* -	* @return ArrayIterator An iterator for the array of style paths -	*/ -	public function getIterator() -	{ -		return new ArrayIterator($this->paths); -	} -} diff --git a/phpBB/phpbb/style/path_provider_interface.php b/phpBB/phpbb/style/path_provider_interface.php deleted file mode 100644 index 1a6153a4d3..0000000000 --- a/phpBB/phpbb/style/path_provider_interface.php +++ /dev/null @@ -1,42 +0,0 @@ -<?php -/** -* -* @package phpBB3 -* @copyright (c) 2011 phpBB Group -* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ -	exit; -} - -/** -* Provides a style resource locator with paths -* -* Finds installed style paths and makes them available to the resource locator. -* -* @package phpBB3 -*/ -interface phpbb_style_path_provider_interface extends Traversable -{ -	/** -	* Defines a prefix to use for style paths in extensions -	* -	* @param string $ext_dir_prefix The prefix including trailing slash -	* @return null -	*/ -	public function set_ext_dir_prefix($ext_dir_prefix); - -	/** -	* Overwrites the current style paths -	* -	* @param array $styles An array of style paths. The first element is the main style. -	* @return null -	*/ -	public function set_styles(array $styles); -} diff --git a/phpBB/phpbb/style/resource_locator.php b/phpBB/phpbb/style/resource_locator.php deleted file mode 100644 index 4cf767c062..0000000000 --- a/phpBB/phpbb/style/resource_locator.php +++ /dev/null @@ -1,348 +0,0 @@ -<?php -/** -* -* @package phpBB3 -* @copyright (c) 2011 phpBB Group -* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ -	exit; -} - - -/** -* Style resource locator.  -* Maintains mapping from template handles to source template file paths. -* Locates style files: resources (such as .js and .css files) and templates. -* -* Style resource locator is aware of styles tree, and can return actual -* filesystem paths (i.e., the "child" style or the "parent" styles) -* depending on what files exist. -* -* Root paths stored in locator are paths to style directories. Templates are -* stored in subdirectory that $template_path points to. -* -* @package phpBB3 -*/ -class phpbb_style_resource_locator implements phpbb_template_locator -{ -	/** -	* Paths to style directories. -	* @var array -	*/ -	private $roots = array(); - -	/** -	* Location of templates directory within style directories. -	* Must have trailing slash. Empty if templates are stored in root -	* style directory, such as admin control panel templates. -	* @var string -	*/ -	private $template_path; - -	/** -	* Map from root index to handles to source template file paths. -	* Normally it only contains paths for handles that are used -	* (or are likely to be used) by the page being rendered and not -	* all templates that exist on the filesystem. -	* @var array -	*/ -	private $files = array(); - -	/** -	* Map from handles to source template file names. -	* Covers the same data as $files property but maps to basenames -	* instead of paths. -	* @var array -	*/ -	private $filenames = array(); - -	/** -	* Constructor. -	* -	* Sets default template path to template/. -	*/ -	public function __construct() -	{ -		$this->set_default_template_path(); -	} - -	/** -	* Sets the list of style paths -	* -	* These paths will be searched for style files in the provided order. -	* Paths may be outside of phpBB, but templates loaded from these paths -	* will still be cached. -	* -	* @param array $style_paths An array of paths to style directories -	* @return null -	*/ -	public function set_paths($style_paths) -	{ -		$this->roots = array(); -		$this->files = array(); -		$this->filenames = array(); - -		foreach ($style_paths as $key => $paths) -		{ -			foreach ($paths as $path) -			{ -				// Make sure $path has no ending slash -				if (substr($path, -1) === '/') -				{ -					$path = substr($path, 0, -1); -				} -				$this->roots[$key][] = $path; -			} -		} -	} - -	/** -	* Sets the location of templates directory within style directories. -	* -	* The location must be a relative path, with a trailing slash. -	* Typically it is one directory level deep, e.g. "template/". -	* -	* @param string $template_path Relative path to templates directory within style directories -	* @return null -	*/ -	public function set_template_path($template_path) -	{ -		$this->template_path = $template_path; -	} - -	/** -	* Sets the location of templates directory within style directories -	* to the default, which is "template/". -	* -	* @return null -	*/ -	public function set_default_template_path() -	{ -		$this->template_path = 'template/'; -	} - -	/** -	* {@inheritDoc} -	*/ -	public function set_filenames(array $filename_array) -	{ -		foreach ($filename_array as $handle => $filename) -		{ -			if (empty($filename)) -			{ -				trigger_error("style resource locator: set_filenames: Empty filename specified for $handle", E_USER_ERROR); -			} - -			$this->filename[$handle] = $filename; - -			foreach ($this->roots as $root_key => $root_paths) -			{ -				foreach ($root_paths as $root_index => $root) -				{ -					$this->files[$root_key][$root_index][$handle] = $root . '/' . $this->template_path . $filename; -				} -			} -		} -	} - -	/** -	* {@inheritDoc} -	*/ -	public function get_filename_for_handle($handle) -	{ -		if (!isset($this->filename[$handle])) -		{ -			trigger_error("style resource locator: get_filename_for_handle: No file specified for handle $handle", E_USER_ERROR); -		} -		return $this->filename[$handle]; -	} - -	/** -	* {@inheritDoc} -	*/ -	public function get_virtual_source_file_for_handle($handle) -	{ -		// If we don't have a file assigned to this handle, die. -		if (!isset($this->files['style'][0][$handle])) -		{ -			trigger_error("style resource locator: No file specified for handle $handle", E_USER_ERROR); -		} - -		$source_file = $this->files['style'][0][$handle]; -		return $source_file; -	} - -	/** -	* {@inheritDoc} -	*/ -	public function get_source_file_for_handle($handle, $find_all = false) -	{ -		// If we don't have a file assigned to this handle, die. -		if (!isset($this->files['style'][0][$handle])) -		{ -			trigger_error("style resource locator: No file specified for handle $handle", E_USER_ERROR); -		} - -		// locate a source file that exists -		$source_file = $this->files['style'][0][$handle]; -		$tried = $source_file; -		$found = false; -		$found_all = array(); -		foreach ($this->roots as $root_key => $root_paths) -		{ -			foreach ($root_paths as $root_index => $root) -			{ -				$source_file = $this->files[$root_key][$root_index][$handle]; -				$tried .= ', ' . $source_file; -				if (file_exists($source_file)) -				{ -					$found = true; -					break; -				} -			} -			if ($found) -			{ -				if ($find_all) -				{ -					$found_all[] = $source_file; -					$found = false; -				} -				else -				{ -					break; -				} -			} -		} - -		// search failed -		if (!$found && !$find_all) -		{ -			trigger_error("style resource locator: File for handle $handle does not exist. Could not find: $tried", E_USER_ERROR); -		} - -		return ($find_all) ? $found_all : $source_file; -	} - -	/** -	* {@inheritDoc} -	*/ -	public function get_first_file_location($files, $return_default = false, $return_full_path = true) -	{ -		// set default value -		$default_result = false; - -		// check all available paths -		foreach ($this->roots as $root_paths) -		{ -			foreach ($root_paths as $path) -			{ -				// check all files -				foreach ($files as $filename) -				{ -					$source_file = $path . '/' . $filename; -					if (file_exists($source_file)) -					{ -						return ($return_full_path) ? $source_file : $filename; -					} - -					// assign first file as result if $return_default is true -					if ($return_default && $default_result === false) -					{ -						$default_result = $source_file; -					} -				} -			} -		} - -		// search failed -		return $default_result; -	} - -	/** -	* Obtains filesystem path for a template file. -	* -	* The simplest use is specifying a single template file as a string -	* in the first argument. This template file should be a basename -	* of a template file in the selected style, or its parent styles -	* if template inheritance is being utilized. -	* -	* Note: "selected style" is whatever style the style resource locator -	* is configured for. -	* -	* The return value then will be a path, relative to the current -	* directory or absolute, to the template file in the selected style -	* or its closest parent. -	* -	* If the selected style does not have the template file being searched, -	* (and if inheritance is involved, none of the parents have it either), -	* false will be returned. -	* -	* Specifying true for $return_default will cause the function to -	* return the first path which was checked for existence in the event -	* that the template file was not found, instead of false. -	* This is the path in the selected style itself, not any of its -	* parents. -	* -	* $files can be given an array of templates instead of a single -	* template. When given an array, the function will try to resolve -	* each template in the array to a path, and will return the first -	* path that exists, or false if none exist. -	* -	* If $files is an array and template inheritance is involved, first -	* each of the files will be checked in the selected style, then each -	* of the files will be checked in the immediate parent, and so on. -	* -	* If $return_full_path is false, then instead of returning a usable -	* path (when the template is found) only the template's basename -	* will be returned. This can be used to check which of the templates -	* specified in $files exists. Naturally more than one template must -	* be given in $files. -	* -	* This function works identically to get_first_file_location except -	* it operates on a list of templates, not files. Practically speaking, -	* the templates given in the first argument first are prepended with -	* the template path (property in this class), then given to -	* get_first_file_location for the rest of the processing. -	* -	* Templates given to this function can be relative paths for templates -	* located in subdirectories of the template directories. The paths -	* should be relative to the templates directory (template/ by default). -	* -	* @param string or array $files List of templates to locate. If there is only -	*				one template, $files can be a string to make code easier to read. -	* @param bool $return_default Determines what to return if template does not -	*				exist. If true, function will return location where template is -	*				supposed to be. If false, function will return false. -	* @param bool $return_full_path If true, function will return full path -	*				to template. If false, function will return template file name. -	*				This parameter can be used to check which one of set of template -	*				files is available. -	* @return string or boolean Source template path if template exists or $return_default is -	*				true. False if template does not exist and $return_default is false -	*/ -	public function get_first_template_location($templates, $return_default = false, $return_full_path = true) -	{ -		// add template path prefix -		$files = array(); -		if (is_string($templates)) -		{ -			$files[] = $this->template_path . $templates; -		} -		else -		{ -			foreach ($templates as $template) -			{ -				$files[] = $this->template_path . $template; -			} -		} - -		return $this->get_first_file_location($files, $return_default, $return_full_path); -	} -} diff --git a/phpBB/phpbb/style/style.php b/phpBB/phpbb/style/style.php deleted file mode 100644 index 034f518091..0000000000 --- a/phpBB/phpbb/style/style.php +++ /dev/null @@ -1,241 +0,0 @@ -<?php -/** -* -* @package phpBB3 -* @copyright (c) 2005 phpBB Group, sections (c) 2001 ispi of Lincoln Inc -* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ -	exit; -} - -/** -* Base Style class. -* @package phpBB3 -*/ -class phpbb_style -{ -	/** -	* Template class. -	* Handles everything related to templates. -	* @var phpbb_template -	*/ -	private $template; - -	/** -	* phpBB root path -	* @var string -	*/ -	private $phpbb_root_path; - -	/** -	* PHP file extension -	* @var string -	*/ -	private $php_ext; - -	/** -	* phpBB config instance -	* @var phpbb_config -	*/ -	private $config; - -	/** -	* Current user -	* @var phpbb_user -	*/ -	private $user; - -	/** -	* Style resource locator -	* @var phpbb_style_resource_locator -	*/ -	private $locator; - -	/** -	* Style path provider -	* @var phpbb_style_path_provider -	*/ -	private $provider; - -	/** -	* Constructor. -	* -	* @param string $phpbb_root_path phpBB root path -	* @param user $user current user -	* @param phpbb_style_resource_locator $locator style resource locator -	* @param phpbb_style_path_provider $provider style path provider -	* @param phpbb_template $template template -	*/ -	public function __construct($phpbb_root_path, $php_ext, $config, $user, phpbb_style_resource_locator $locator, phpbb_style_path_provider_interface $provider, phpbb_template $template) -	{ -		$this->phpbb_root_path = $phpbb_root_path; -		$this->php_ext = $php_ext; -		$this->config = $config; -		$this->user = $user; -		$this->locator = $locator; -		$this->provider = $provider; -		$this->template = $template; -	} - -	/** -	* Get the style tree of the style preferred by the current user -	* -	* @return array Style tree, most specific first -	*/ -	public function get_user_style() -	{ -		$style_list = array( -			$this->user->style['style_path'], -		); - -		if ($this->user->style['style_parent_id']) -		{ -			$style_list = array_merge($style_list, array_reverse(explode('/', $this->user->style['style_parent_tree']))); -		} - -		return $style_list; -	} - -	/** -	* Set style location based on (current) user's chosen style. -	* -	* @param array $style_directories The directories to add style paths for -	* 	E.g. array('ext/foo/bar/styles', 'styles') -	* 	Default: array('styles') (phpBB's style directory) -	* @return bool true -	*/ -	public function set_style($style_directories = array('styles')) -	{ -		$this->names = $this->get_user_style(); - -		$paths = array(); -		foreach ($style_directories as $directory) -		{ -			foreach ($this->names as $name) -			{ -				$path = $this->get_style_path($name, $directory); - -				if (is_dir($path)) -				{ -					$paths[] = $path; -				} -			} -		} - -		$this->provider->set_styles($paths); -		$this->locator->set_paths($this->provider); - -		$new_paths = array(); -		foreach ($paths as $path) -		{ -			$new_paths[] = $path . '/template/'; -		} - -		$this->template->set_style_names($this->names, $new_paths, ($style_directories === array('styles'))); - -		return true; -	} - -	/** -	* Set custom style location (able to use directory outside of phpBB). -	* -	* Note: Templates are still compiled to phpBB's cache directory. -	* -	* @param string $name Name of style, used for cache prefix. Examples: "admin", "prosilver" -	* @param array or string $paths Array of style paths, relative to current root directory -	* @param array $names Array of names of templates in inheritance tree order, used by extensions. If empty, $name will be used. -	* @param string $template_path Path to templates, relative to style directory. False if path should be set to default (templates/). -	* @return bool true -	*/ -	public function set_custom_style($name, $paths, $names = array(), $template_path = false) -	{ -		if (is_string($paths)) -		{ -			$paths = array($paths); -		} - -		if (empty($names)) -		{ -			$names = array($name); -		} -		$this->names = $names; - -		$this->provider->set_styles($paths); -		$this->locator->set_paths($this->provider); - -		if ($template_path !== false) -		{ -			$this->locator->set_template_path($template_path); -		} - -		$new_paths = array(); -		foreach ($paths as $path) -		{ -			$new_paths[] = $path . '/' . (($template_path !== false) ? $template_path : 'template/'); -		} - -		$this->template->set_style_names($names, $new_paths); - -		return true; -	} - -	/** -	* Get location of style directory for specific style_path -	* -	* @param string $path Style path, such as "prosilver" -	* @param string $style_base_directory The base directory the style is in -	* 	E.g. 'styles', 'ext/foo/bar/styles' -	* 	Default: 'styles' -	* @return string Path to style directory, relative to current path -	*/ -	public function get_style_path($path, $style_base_directory = 'styles') -	{ -		return $this->phpbb_root_path . trim($style_base_directory, '/') . '/' . $path; -	} - -	/** -	* Defines a prefix to use for style paths in extensions -	* -	* @param string $ext_dir_prefix The prefix including trailing slash -	* @return null -	*/ -	public function set_ext_dir_prefix($ext_dir_prefix) -	{ -		$this->provider->set_ext_dir_prefix($ext_dir_prefix); -	} - -	/** -	* Locates source file path, accounting for styles tree and verifying that -	* the path exists. -	* -	* @param string or array $files List of files to locate. If there is only -	*				one file, $files can be a string to make code easier to read. -	* @param bool $return_default Determines what to return if file does not -	*				exist. If true, function will return location where file is -	*				supposed to be. If false, function will return false. -	* @param bool $return_full_path If true, function will return full path -	*				to file. If false, function will return file name. This -	*				parameter can be used to check which one of set of files -	*				is available. -	* @return string or boolean Source file path if file exists or $return_default is -	*				true. False if file does not exist and $return_default is false -	*/ -	public function locate($files, $return_default = false, $return_full_path = true) -	{ -		// convert string to array -		if (is_string($files)) -		{ -			$files = array($files); -		} - -		// use resource locator to find files -		return $this->locator->get_first_file_location($files, $return_default, $return_full_path); -	} -} | 
