Blame view

sources/lib/private/template/resourcelocator.php 1.79 KB
31b7f2792   Kload   Upgrade to ownclo...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  <?php
  /**
   * Copyright (c) 2013 Bart Visscher <bartv@thisnet.nl>
   * This file is licensed under the Affero General Public License version 3 or
   * later.
   * See the COPYING-README file.
   */
  
  namespace OC\Template;
  
  abstract class ResourceLocator {
  	protected $theme;
  	protected $form_factor;
  
  	protected $mapping;
  	protected $serverroot;
  	protected $thirdpartyroot;
  	protected $webroot;
  
  	protected $resources = array();
6d9380f96   Cédric Dupont   Update sources OC...
21
22
23
24
  	/**
  	 * @param string $theme
  	 * @param string $form_factor
  	 */
31b7f2792   Kload   Upgrade to ownclo...
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
  	public function __construct( $theme, $form_factor, $core_map, $party_map ) {
  		$this->theme = $theme;
  		$this->form_factor = $form_factor;
  		$this->mapping = $core_map + $party_map;
  		$this->serverroot = key($core_map);
  		$this->thirdpartyroot = key($party_map);
  		$this->webroot = $this->mapping[$this->serverroot];
  	}
  
  	abstract public function doFind( $resource );
  	abstract public function doFindTheme( $resource );
  
  	public function find( $resources ) {
  		try {
  			foreach($resources as $resource) {
  				$this->doFind($resource);
  			}
  			if (!empty($this->theme)) {
  				foreach($resources as $resource) {
  					$this->doFindTheme($resource);
  				}
  			}
  		} catch (\Exception $e) {
  			throw new \Exception($e->getMessage().' formfactor:'.$this->form_factor
  						.' serverroot:'.$this->serverroot);
  		}
  	}
  
  	/*
6d9380f96   Cédric Dupont   Update sources OC...
54
55
56
57
  	 * append the $file resource if exist at $root
  	 * @param string $root path to check
  	 * @param string $file the filename
  	 * @param string|null $webroot base for path, default map $root to $webroot
31b7f2792   Kload   Upgrade to ownclo...
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
  	 */
  	protected function appendIfExist($root, $file, $webroot = null) {
  		if (is_file($root.'/'.$file)) {
  			if (!$webroot) {
  				$webroot = $this->mapping[$root];
  			}
  			$this->resources[] = array($root, $webroot, $file);
  			return true;
  		}
  		return false;
  	}
  
  	public function getResources() {
  		return $this->resources;
  	}
  }