Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][OPT] $tpl nie jest obiektem?
Xaviere
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 25.08.2007

Ostrzeżenie: (0%)
-----


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:
"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:
  1. <?php
  2. /*
  3. Jądro Xaff, stworzone przez Xaviego i Riffa.
  4. index.php?module=articles, includuje articles.php z katalogu modules ;-)
  5. */
  6. //Pobranie zestawu funkcji z includes/function.php.xavi.riff
  7. require_once("includes/function.php.xavi.riff");
  8.  
  9.  // ustaw sciezke do biblioteki
  10. define('OPT_DIR', 'opt/');
  11.  
  12.  
  13. // przetwarzanie szablonu
  14.  
  15.  
  16. // zaladuj biblioteke
  17. require(OPT_DIR.'opt.class.php');
  18. try{ 
  19. // utworz obiekt parsera
  20. $tpl = new optClass;
  21. // skonfiguruj OPT
  22.  
  23. $tpl -> root = 'templates/';
  24. $tpl -> compile = 'templates_c/';
  25.  
  26. $tpl -> gzipCompression = 1;
  27. // wyslij naglowki
  28. $tpl -> httpHeaders(OPT_HTML); 
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45. //Jeżeli ktoś wywoła index.php?module=costam
  46. if($_GET['module']){
  47. //Przypisanie zmiennej $module, wartości z GET'a.
  48. $module = $_GET['module'];
  49. //Wywołanie funkcji.
  50. include_module($module);
  51.  
  52.  
  53.  
  54.  
  55. //Jeżeli nie.
  56. }else{
  57.  
  58. //W pliku index.tpl, jak wpiszesz {$Komunikat} to pokaże się napis: Hah!. 
  59. //Możesz używać też funkcji php. np. 
  60. // $tpl -> assign('Data', date(H:i)); 
  61.  $tpl -> assign('Komunikat', "Hah!"); 
  62.  $tpl -> parse('index.tpl'); 
  63. }
  64.  
  65.  //Ustawienie nazwy pliku który będzie odpowiadał za wyświetlenie danych.
  66.  
  67.  
  68. //Tym się nie przejmuj.
  69.  }catch(optException $exception){ 
  70. optErrorHandler($exception); 
  71. } 
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91. ?>

Funcion to proste:
  1. <?php
  2.  
  3.  
  4. function include_module($name){
  5. //Oskubanie argumentu ze zbędnych tagów. <niewymagane> 
  6. $name_sciezka = strip_tags($name);
  7. //Wstawienie na końcu rozszerzenia .php<wymagane do poprawnego działania>
  8. $name_sciezka .= ".php";
  9. //Sprawdzenie czy moduł istnieje.
  10. $name_y = file_exists("modules/".$name_sciezka);
  11. //Jeżeli nie istnieje
  12. if(!$name_y){
  13.  
  14. echo 'Nie ma takiej scieżki!';
  15.  
  16.  
  17. }else{
  18. //Jeżeli istneieje.
  19. define('SCRIPT_PATH', modules);
  20. require_once(SCRIPT_PATH."/".$name_sciezka);
  21.  
  22.  
  23.  
  24. }
  25.  
  26.  
  27.  
  28.  
  29. }
  30.  
  31.  
  32.  
  33. ?>

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>

Ten post edytował Xaviere 28.10.2007, 14:28:00
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 04:56