Commit 64b61abc authored by Taylor Otwell's avatar Taylor Otwell

added paths and extensions options to view class.

Signed-off-by: 's avatarTaylor Otwell <taylorotwell@gmail.com>
parent ca5dfa40
...@@ -37,6 +37,20 @@ class View implements ArrayAccess { ...@@ -37,6 +37,20 @@ class View implements ArrayAccess {
*/ */
public static $names = array(); public static $names = array();
/**
* The extensions a view file can have.
*
* @var array
*/
public static $extensions = array(EXT);
/**
* The path in which a view can live.
*
* @var array
*/
public static $paths = array(DEFAULT_BUNDLE => array(''));
/** /**
* The Laravel view engine event name. * The Laravel view engine event name.
* *
...@@ -99,11 +113,16 @@ class View implements ArrayAccess { ...@@ -99,11 +113,16 @@ class View implements ArrayAccess {
// We need to make sure that the view exists. If it doesn't, we will // We need to make sure that the view exists. If it doesn't, we will
// throw an exception since there is not any point in going further. // throw an exception since there is not any point in going further.
// If it does, we can just return the full view path. // If it does, we can just return the full view path.
$path = $root.Bundle::element($view).EXT; $paths = array_get(static::$paths, Bundle::name($view), array(''));
if (file_exists($path)) foreach ($paths as $path)
{
foreach (static::$extensions as $ext)
{ {
return $path; $file = $root.$path.Bundle::element($view).$ext;
if (file_exists($file)) return $file;
}
} }
throw new \Exception("View [$view] doesn't exist."); throw new \Exception("View [$view] doesn't exist.");
...@@ -211,13 +230,13 @@ class View implements ArrayAccess { ...@@ -211,13 +230,13 @@ class View implements ArrayAccess {
// allows easy attachment of other view parsers. // allows easy attachment of other view parsers.
if (Event::listeners(static::engine)) if (Event::listeners(static::engine))
{ {
return Event::first(static::engine, array($this)); $result = Event::first(static::engine, array($this));
if ($result !== false) return $result;
} }
else
{
return $this->get(); return $this->get();
} }
}
/** /**
* Get the evaluated contents of the view. * Get the evaluated contents of the view.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment