95 lines
2.4 KiB
PHP
95 lines
2.4 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace Template;
|
||
|
|
||
|
use Exception;
|
||
|
use Utopia\View;
|
||
|
|
||
|
class Template extends View
|
||
|
{
|
||
|
/**
|
||
|
* Render
|
||
|
*
|
||
|
* Render view .phtml template file if template has not been set as rendered yet using $this->setRendered(true).
|
||
|
* In case path is not readable throws Exception.
|
||
|
*
|
||
|
* @return string
|
||
|
* @throws Exception
|
||
|
*/
|
||
|
public function render()
|
||
|
{
|
||
|
if ($this->rendered) { // Don't render any template
|
||
|
return '';
|
||
|
}
|
||
|
|
||
|
if (is_readable($this->path)) {
|
||
|
$template = file_get_contents($this->path); // Include template file
|
||
|
}
|
||
|
else {
|
||
|
throw new Exception('"' . $this->path . '" template is not readable or not found');
|
||
|
}
|
||
|
|
||
|
$template = str_replace(array_keys($this->params), array_values($this->params), $template);
|
||
|
|
||
|
return $template;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Parse URL
|
||
|
*
|
||
|
* Parse URL string to array
|
||
|
*
|
||
|
* @param $url
|
||
|
* @return mixed On seriously malformed URLs, parse_url() may return FALSE.
|
||
|
*/
|
||
|
static public function parseURL($url)
|
||
|
{
|
||
|
return parse_url($url);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Un-Parse URL
|
||
|
*
|
||
|
* Convert PHP array to query string
|
||
|
*
|
||
|
* @param $url
|
||
|
* @return string
|
||
|
*/
|
||
|
static public function unParseURL(array $url)
|
||
|
{
|
||
|
$scheme = isset($url['scheme']) ? $url['scheme'] . '://' : '';
|
||
|
$host = isset($url['host']) ? $url['host'] : '';
|
||
|
$port = isset($url['port']) ? ':' . $url['port'] : '';
|
||
|
|
||
|
$user = isset($url['user']) ? $url['user'] : '';
|
||
|
$pass = isset($url['pass']) ? ':' . $url['pass'] : '';
|
||
|
$pass = ($user || $pass) ? "$pass@" : '';
|
||
|
|
||
|
$path = isset($url['path']) ? $url['path'] : '';
|
||
|
$query = isset($url['query']) && !empty($url['query']) ? '?' . $url['query'] : '';
|
||
|
|
||
|
$fragment = isset($url['fragment']) ? '#' . $url['fragment'] : '';
|
||
|
|
||
|
return $scheme . $user . $pass . $host . $port . $path . $query . $fragment;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Merge Query
|
||
|
*
|
||
|
* Merge array of params to query string
|
||
|
*
|
||
|
* @param $query1
|
||
|
* @param array $query2
|
||
|
* @return string
|
||
|
*/
|
||
|
static public function mergeQuery($query1, array $query2)
|
||
|
{
|
||
|
$parsed = [];
|
||
|
|
||
|
parse_str($query1, $parsed);
|
||
|
|
||
|
$parsed = array_merge($parsed, $query2);
|
||
|
|
||
|
return http_build_query($parsed);
|
||
|
}
|
||
|
}
|