6 Commits

Author SHA1 Message Date
mdesouza 75e1f7979c Merge pull request 'Release-v1.0.4' (#5) from release-v1.0.4 into master
Reviewed-on: #5
2025-09-25 16:03:06 -04:00
mdesouza c8d150d752 Release-v1.0.4 2025-09-25 16:02:21 -04:00
mdesouza b7ee83e82a Code improvements. 2025-09-25 16:01:02 -04:00
mdesouza d923c788f9 Merge pull request 'Release-v1.0.3' (#4) from release-v1.0.3 into master
Reviewed-on: #4
2025-09-25 11:52:31 -04:00
mdesouza 000ed4c093 Release-v1.0.3 2025-09-25 11:52:03 -04:00
mdesouza 2dc9c8df1a Code improvements. 2025-09-25 11:47:43 -04:00
3 changed files with 42 additions and 8 deletions
+1 -1
View File
@@ -2,4 +2,4 @@
Utils classes Utils classes
Release-v1.0.2 Release-v1.0.4
-2
View File
@@ -7,8 +7,6 @@ namespace Mdesouza\Utils;
* A database class around the PDO object. * A database class around the PDO object.
*/ */
include_once 'db.inc.php';
/** /**
* A mysql class around the PDO object. * A mysql class around the PDO object.
*/ */
+41 -5
View File
@@ -24,10 +24,17 @@ class TwigRender {
/** /**
* Templates paths. * Templates paths.
* *
* @var array * @var string
*/ */
private $templatesPath; private $templatesPath;
/**
* Template variable name.
*
* @var string
*/
private $tname;
/** /**
* Template data. * Template data.
* *
@@ -38,10 +45,14 @@ class TwigRender {
/** /**
* Constructor. * Constructor.
*/ */
public function __construct(string $template, array $templates_path, array $data = []) { public function __construct(string $template, string $templates_path, array $data = [], string $tname = 'data') {
$this->template = $template; $this->template = $template;
$this->templatesPath = $templates_path; $this->templatesPath = $templates_path;
$this->data = $data; $this->data = $data;
if (!isset($data['host'])) {
$this->data['host'] = $_SERVER['HTTP_HOST'];
}
$this->tname = $tname;
} }
/** /**
@@ -49,14 +60,15 @@ class TwigRender {
*/ */
public function render() : string { public function render() : string {
$this->data['host'] = $_SERVER['HTTP_HOST']; $html = "";
try { try {
$loader = new FilesystemLoader($this->templatesPath); $loader = new FilesystemLoader([]);
$loader = $this->addPaths($loader);
$twig = new Environment($loader, ['debug' => TRUE]); $twig = new Environment($loader, ['debug' => TRUE]);
$twig->addExtension(new DebugExtension()); $twig->addExtension(new DebugExtension());
$twig->addExtension(new MFDESTwigExtension()); $twig->addExtension(new MFDESTwigExtension());
$html = $twig->render($this->template, ['data' => $this->data]); $html = $twig->render($this->template, [$this->tname => $this->data]);
} }
catch (LoaderError $e) { catch (LoaderError $e) {
$html .= "<br/><pre>" . print_r($e->getMessage()); $html .= "<br/><pre>" . print_r($e->getMessage());
@@ -74,4 +86,28 @@ class TwigRender {
return $html; return $html;
} }
/**
* Recursively add all directories under the templates base path.
*/
private function addPaths(FilesystemLoader $loader) : FilesystemLoader {
// Add base path.
$loader->addPath($this->templatesPath);
// Create a recursive iterator to find all subdirectories.
$iterator = new \RecursiveIteratorIterator(
new \RecursiveDirectoryIterator($this->templatesPath, \FilesystemIterator::SKIP_DOTS),
\RecursiveIteratorIterator::SELF_FIRST
);
// Add each sub-dir under the base path.
foreach ($iterator as $info) {
if ($info->isDir()) {
$loader->addPath($info->getPathname());
}
}
return $loader;
}
} }