Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Includowanie plików...
Forum PHP.pl > Forum > Przedszkole
Lee
Mam główny plik index.tpl w katalogu templates/Default/index.tpl, który zawiera główny szkielet strony, tzn wyglada tak

  1. <?php
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  3. <html>
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8829-2" />
  6. <meta name="Description" content="{$description}">
  7. <meta name="Keywords" content="{$keywords}">
  8. <link rel="stylesheet" href="templates/Default/style.css" type="text/css">
  9. <title>{$SiteTitle}</title>
  10. </head>
  11. <body>
  12. <table cellspacing="0" cellpadding="0" align="center" style="width: 780px; border: 1px solid #000000">
  13. <tr><td colspan="2" class="header">{$SiteTitle}</td></tr>
  14. <tr>
  15. <td class="left_menu">Lewe Menu</td>
  16. <td class="center_menu">{CZYTAJ NI&#379;EJ !}</td>
  17. </tr>
  18. <tr><td colspan="2" class="footer">&#352; Copyright 2006 by Lee</td></tr>
  19. </table>
  20. </body>
  21. </html>
  22. ?>

no i w miejscu CZYTAJ NIŻEJ chcę aby includowało plik z danym modułem np. news.php (który jest w katalogu głównym) ale jak dam {include_php file="news.php"} to mi wywala bład
Cytat
Fatal error: Cannot redeclare class news in /home/lee/public_html/php/library/news.class.php on line 40

kod pliku news.php
  1. <?php 
  2.  
  3. require_once('config.php');
  4.  
  5. require('library/news.class.php');
  6.  
  7. if (empty($_GET['mod'])) {
  8. $News -> db_query = "SELECT * FROM news ORDER BY id DESC";
  9. $News -> news();
  10. $News -> category($news['id']);
  11. foreach ($News -> row as $news) {
  12. $News -> comments($news['id']);
  13.  
  14. if (!empty($news['long_text'])) {
  15. $read_more = '<a href="news.php?mod=more&id='.$news['id'].'">Czytaj Więcej</a> | ';
  16. $smarty -> assign('read_more', $read_more);
  17. } else {
  18. $read_more = NULL;
  19. $smarty -> assign('read_more', $read_more);
  20. }
  21. if (!empty($News -> image)) {
  22. $image = '<img src='.$image.' border="0">';
  23. $smarty -> assign('news_image', $image);
  24. } else {
  25. $image = NULL;
  26. $smarty -> assign('news_image', $image);
  27. }
  28.  
  29. $smarty -> assign('id', $news['id']);
  30. $smarty -> assign('comment', $News -> comment);
  31. $smarty -> assign('title', $news['title']);
  32. $smarty -> assign('short_text', $news['short_text']);
  33. $smarty -> assign('long_text', $news['long_text']);
  34. $smarty -> assign('author', $news['author']);
  35. $smarty -> assign('data', $news['data']);
  36. $smarty -> display('Default/news.tpl');
  37.  
  38. }
  39. } // end if (empty($_GET['mod']))
  40. if ($_GET['mod'] == 'more') {
  41.  // kod - wyciąłem...
  42. } // end else if ($_GET['mod'] == 'more')
  43. $smarty -> assign('module', 'news.php');
  44. $smarty -> display('Default/index.tpl');s
  45. ?>


jak coś jest niejasne to pytajcie bo w tym chaosie boje się, że coś pominąłem albo źle napisałem worriedsmiley.gif

aha zapomniałem dodać, że poboczny plik np news.tpl etc wyglądają mniej więcej tak
  1. <table cellspacing="0" cellpadding="0" width="500" align="center">
  2.  
  3. <tr>
  4.  
  5. <td colspan="2" style="background-color: {$color_1}"><b>{$title}</b></td>
  6.  
  7. </tr>
  8.  
  9. <tr>
  10.  
  11. <td colspan="2" align="justify" style="background-color: {$color_2}; padding: 2px 2px 2px 2px;">{$news_image}{$short_text}</td>
  12.  
  13. </tr>
  14.  
  15. <tr>
  16.  
  17. <td style="width: 250px; background-color: {$color_1}; padding-left: 2px;"><b>Autor:</b> {$author} | <b>Data:</b> {$data}</td>
  18.  
  19. <td align="right" style="width: 250px; background-color: {$color_1}; padding-right: 2px;">{$read_more} <a href="news.php?mod=comment&id={$id}">Komentarzy[{$comment}]</a></td>
  20.  
  21. </tr>
  22.  
  23. </table><br />
nospor
zamiast:
require('library/news.class.php');
powinno byc:
require_once('library/news.class.php');

Ale to z systemem szablonow nie ma związku smile.gif przenosze
Lee
wywala mi taki bład...
Cytat
Fatal error: Call to undefined method stdClass::news() in /home/lee/public_html/php/news.php on line 9

a dziewiąta linijka to ta 8-10
  1. <?php
  2. $News -> db_query = "SELECT * FROM $tbl_news ORDER BY id DESC"; // 8 linijk
  3. $News -> news(); // 9 linijka
  4. $News -> category($news['id']); // 10 linijak
  5. ?>

coś czuje, że nieźle naknociłem i będe musiał od nowa pisać
nospor
Odnosze wrazenie, ze w pliku news.class.php inicjalizujessz obiekt: $News i on nie jest najzwyklej w swiecie widoczny. Tak, nieźle naknociles smile.gif
Nie mozesz kilka razy includowac pliku z deklaracja klasy. to ci zalatwia _once. Ale z kolei to powoduje ze ten plik zaladuje sie tylko raz i jesli cos tam bylo robione to zrobi sie tylko raz
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.