Files
pomysloweprezenty.pl/autoload/Shared/Tpl/Tpl.php
Jacek Pyziak 3ecbe628dc Add view classes for articles, banners, languages, menu, newsletter, containers, shop categories, clients, payment methods, products, and search
- Created Articles.php for rendering article views including full articles, miniature lists, and news sections.
- Added Banners.php for handling banner displays.
- Introduced Languages.php for rendering language options.
- Implemented Menu.php for dynamic menu rendering.
- Developed Newsletter.php for newsletter view rendering.
- Created Scontainers.php for rendering specific containers.
- Added ShopCategory.php for category descriptions and product listings.
- Introduced ShopClient.php for managing client-related views such as address editing and order history.
- Implemented ShopPaymentMethod.php for displaying payment methods in the basket.
- Created ShopProduct.php for generating product URLs.
- Added ShopSearch.php for rendering a simple search form.
- Added .htaccess file to enhance security by restricting access to sensitive files and directories.
2026-02-21 23:00:15 +01:00

64 lines
1.3 KiB
PHP

<?php
namespace Shared\Tpl;
class Tpl
{
protected $vars = array();
public static function view($file, $values = '')
{
$tpl = new self;
if (is_array($values)) foreach ($values as $key => $val)
$tpl->$key = $val;
return $tpl->render($file);
}
public function secureHTML($val)
{
$out = stripslashes($val);
$out = str_replace("'", "&#039;", $out);
$out = str_replace('"', "&#34;", $out);
$out = str_replace("<", "&lt;", $out);
$out = str_replace(">", "&gt;", $out);
return $out;
}
public function render($file)
{
$paths = [
'templates_user/' . $file . '.php',
'templates/' . $file . '.php',
'../templates_user/' . $file . '.php',
'../templates/' . $file . '.php',
$file . '.php',
];
foreach ($paths as $path) {
if (file_exists($path)) {
return $this->renderFile($path);
}
}
return '<div class="alert alert-danger" role="alert">Nie znaleziono pliku widoku: <b>' . $file . '.php</b>';
}
private function renderFile($path)
{
ob_start();
include $path;
$out = ob_get_contents();
ob_end_clean();
return $out;
}
public function __set($name, $value)
{
$this->vars[$name] = $value;
}
public function __get($name)
{
return $this->vars[$name];
}
}