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