piszę sobie takie jąderko stronki.
moduły wywołuję w ten sposób:
index.php?module=articles <- taki adres szuka pliku articles.php w katalogu modules i jak jest to go includuje na stronke.
Opt sobie zainstalowałem, w index.php to działa, a w modułach nie.
Czemu?
Dostaje error:
"Fatal error: Call to a member function assign() on a non-object in /home/xavipl/domains/xavi.pl/public_html/xaff/articles.php on line 2"
Na ircu powiedziano mi, że to znaczy, że $tpl nie jest obiektem, a czemu?
Kod wygląda tak:
<?php /* Jądro Xaff, stworzone przez Xaviego i Riffa. index.php?module=articles, includuje articles.php z katalogu modules ;-) */ //Pobranie zestawu funkcji z includes/function.php.xavi.riff require_once("includes/function.php.xavi.riff"); // ustaw sciezke do biblioteki // przetwarzanie szablonu // zaladuj biblioteke require(OPT_DIR.'opt.class.php'); try{ // utworz obiekt parsera $tpl = new optClass; // skonfiguruj OPT $tpl -> root = 'templates/'; $tpl -> compile = 'templates_c/'; $tpl -> gzipCompression = 1; // wyslij naglowki $tpl -> httpHeaders(OPT_HTML); //Jeżeli ktoś wywoła index.php?module=costam if($_GET['module']){ //Przypisanie zmiennej $module, wartości z GET'a. $module = $_GET['module']; //Wywołanie funkcji. include_module($module); //Jeżeli nie. }else{ //W pliku index.tpl, jak wpiszesz {$Komunikat} to pokaże się napis: Hah!. //Możesz używać też funkcji php. np. // $tpl -> assign('Data', date(H:i)); $tpl -> assign('Komunikat', "Hah!"); $tpl -> parse('index.tpl'); } //Ustawienie nazwy pliku który będzie odpowiadał za wyświetlenie danych. //Tym się nie przejmuj. }catch(optException $exception){ optErrorHandler($exception); } ?>
Funcion to proste:
<?php function include_module($name){ //Oskubanie argumentu ze zbędnych tagów. <niewymagane> //Wstawienie na końcu rozszerzenia .php<wymagane do poprawnego działania> $name_sciezka .= ".php"; //Sprawdzenie czy moduł istnieje. //Jeżeli nie istnieje if(!$name_y){ }else{ //Jeżeli istneieje. require_once(SCRIPT_PATH."/".$name_sciezka); } } ?>
Domyślam, się, że chodzi o ścieżki do biblioteki opt, ale jak to naprawić aby działało?
Pozdrawiam
Błąd powstaje gdy używam assign w modułach:(
articles.php to:
<php>
<?php
$tpl -> assign('Komunikat', 'To jest moduł articles.php');
?>
</php>