Files
marianek.pl/autoload/Shared/Tpl/Tpl.php
Jacek Pyziak fc45bbf20e Add view classes for articles, banners, languages, menu, newsletter, containers, shop categories, clients, payment methods, products, and search
- Created `Articles` class for rendering article views including full articles, miniature lists, and news sections.
- Added `Banners` class for handling banner displays.
- Introduced `Languages` class for rendering language options.
- Implemented `Menu` class for rendering page and menu structures.
- Developed `Newsletter` class for newsletter rendering.
- Created `Scontainers` class for rendering specific containers.
- Added `ShopCategory` class for managing shop category views and pagination.
- Implemented `ShopClient` class for client-related views including address management and login forms.
- Created `ShopPaymentMethod` class for displaying payment methods in the basket.
- Added `ShopProduct` class for generating product URLs.
- Introduced `ShopSearch` class for rendering a simple search form.
- Added `.htaccess` file in the plugins directory to enhance security by restricting access to sensitive files and directories.
2026-02-21 23:00:54 +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];
}
}