Postanowiłem użyć singletona...Wygląda on tak:
<?
class smarty_singleton extends Smarty{
private static $oInstance = false; {
if( self::$oInstance == false )
{
self::$oInstance = new Smarty();
}
return self::$oInstance;
}
private function __construct() {}
}
?>
Wywołanie
$smarty=smarty_singleton::getInstance();
Plik wyswietl.php
<?
function skroc_link($params){
$linkParams=$params['link'];
include 'podstrony/'.$linkParams[0].'.php';
}
//rejestracja funckji
$smarty->register_function('skroc', 'skroc_link');
?>
Wywołanie funkcji skroc_link w szablonie smarty:
<div id="zaw">{skroc link=$link}
</div>
Przykładowo, gdy próbuję zawrzeć stronę(->funkcją skroc_link@ostatnia linia), wszystko działa prawidłowo, tzn. strona wyświetla się. Jednak, gdy próbuję wyświetlić tpla wewnątrz zaincludowanej strony, poprzez $smarty->display('artykuly.tpl');, pojawia się błąd
Fatal error: Call to a member function display() on a non-object in C:\xampp\htdocs\negatyw\podstrony\artykuly.php on line 2
Co trzeba poprawić, żeby metoda była widoczna w funkcji skroc_link, a tym samym, także w pliku dołączanym?