Hello,
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:
"[b]Fatal error[/b]: Call to a member function assign() on a non-object in [b]/home/xavipl/domains/xavi.pl/public_html/xaff/articles.php[/b] on line [b]2"
[/b]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
define('OPT_DIR', 'opt/');
// 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>
$name_sciezka = strip_tags($name);
//Wstawienie na końcu rozszerzenia .php<wymagane do poprawnego działania>
$name_sciezka .= ".php";
//Sprawdzenie czy moduł istnieje.
$name_y = file_exists("modules/".$name_sciezka);
//Jeżeli nie istnieje
if(!$name_y){
echo 'Nie ma takiej scieżki!';
}else{
//Jeżeli istneieje.
define('SCRIPT_PATH', modules);
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:(</php>