2013-03-19 01:32:32 +04:00
|
|
|
<?php
|
|
|
|
/**
|
2015-02-26 13:37:37 +03:00
|
|
|
* 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.
|
2013-03-19 01:32:32 +04:00
|
|
|
*/
|
2015-02-26 13:37:37 +03:00
|
|
|
|
2013-03-19 01:32:32 +04:00
|
|
|
namespace OC\Template;
|
|
|
|
|
|
|
|
class TemplateFileLocator {
|
|
|
|
protected $dirs;
|
2013-07-18 01:27:25 +04:00
|
|
|
private $path;
|
2013-03-19 01:32:32 +04:00
|
|
|
|
2014-02-06 19:30:58 +04:00
|
|
|
/**
|
|
|
|
* @param string[] $dirs
|
|
|
|
*/
|
2014-11-12 14:37:50 +03:00
|
|
|
public function __construct( $dirs ) {
|
2013-03-19 01:32:32 +04:00
|
|
|
$this->dirs = $dirs;
|
|
|
|
}
|
|
|
|
|
2014-02-06 19:30:58 +04:00
|
|
|
/**
|
|
|
|
* @param string $template
|
2014-10-06 14:38:59 +04:00
|
|
|
* @return string
|
|
|
|
* @throws \Exception
|
2014-02-06 19:30:58 +04:00
|
|
|
*/
|
2013-03-19 01:32:32 +04:00
|
|
|
public function find( $template ) {
|
2013-07-19 19:40:07 +04:00
|
|
|
if ($template === '') {
|
2013-03-19 01:32:32 +04:00
|
|
|
throw new \InvalidArgumentException('Empty template name');
|
|
|
|
}
|
|
|
|
|
|
|
|
foreach($this->dirs as $dir) {
|
|
|
|
$file = $dir.$template.'.php';
|
|
|
|
if (is_file($file)) {
|
|
|
|
$this->path = $dir;
|
|
|
|
return $file;
|
|
|
|
}
|
|
|
|
}
|
2014-11-12 14:37:50 +03:00
|
|
|
throw new \Exception('template file not found: template:'.$template);
|
2013-03-19 01:32:32 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
public function getPath() {
|
|
|
|
return $this->path;
|
|
|
|
}
|
|
|
|
}
|