Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt strony głównej - starter index.php
Forum PHP.pl > Forum > PHP
malesja
Wiecie może gdzie mógłbym znaleźć jakiś tutorial, poradnik albo skrypt do przeanalizowania jak stworzyć szkielet strony w php tzn. chodzi mi o starter index.php, który załaduje górne menu z pliku, treść na starcie z innego pliku do części środkowej (część ta będzie wykorzystywana na ładowanie danych z menu głównego jak i pozostałe rzeczy, które będą się pokazywać tam w zależności od wybranego menu czy innego działania na stronie.)
I trzeci element stopka, która będzie zawsze widoczna na każdej stronie ładowana z 3 pliku.

Czyli menu i stopka będzie zawsze i wszędzie taka sama, a tylko część środkowa będzie się zmieniać w zależności od wybranego menu.

Możecie podpowiedzieć jak to zrobić albo wskazać jakieś źródła opisujące ten problem?

Chce to zrobić z wykorzystaniem php, xhtm i css bez JavaScript i nie stosując przestarzałych technologii jak np..: ramki.
erix
require" title="Zobacz w manualu PHP" target="_manual/include" title="Zobacz w manualu PHP" target="_manual... dry.gif

To w pierwszym rozdziale każdego kursu PHP jest...
malesja
no a to jak mam w tym menu okreslic gdzie ma ladowac zawartosc z danego menu?

jak uruchomie index.php ktory wczytuje 3 pliki (menu, zawartosc, stopka) tak jak podales to jak ja mam to poukladać żeby wszystko było na swoim miejscu i jak wskazaz że menu maja sie ladowac do danego np diva.
erix
No tam, gdzie umieścisz te instrukcje, to tam będzie zawartość pliku wczytana.
MaestroS
Łap mój index.php. Rozkoduj go sam o(^.^)o

  1. <?
  2. /* Plik główny */
  3. //Start bufora
  4. ob_start() or die("Inicjalizacja bufora nie powiodła się.");
  5.  
  6. //Start sesji
  7. session_start() or die("Inicjalizacja sesji nie powiodła się.");
  8.  
  9. function __autoload($class) {
  10.   $classpath = 'inc/classes/'.$class . '.php';
  11.   if ( file_exists($classpath)) {
  12.      require_once $classpath;
  13.    }
  14. }
  15.  
  16. //Load core file
  17. require_once "inc/sys_exterior/smarty/Smarty.class.php";
  18.  
  19. define("nCore", __FILE__);
  20.  
  21. //Inicjalizacja źródła
  22. $core = new Core();
  23. $core->precheck();
  24.  
  25. $db = new mySQL;
  26. $db->connect();
  27.  
  28. $usr = new User;
  29. $register = new SchoolRegister;
  30.  
  31. //Inicjalizacja systemu szablonów
  32. $cache = new Smarty();
  33. $cache->compile_dir = "templates/templates_c";
  34.  
  35. if (isset($_SESSION['USER'])) {
  36.    $cache->assign("isLogged", 1);
  37.    $cache->assign("accountType", $_SESSION["USER"]["ACCTYPE"]);
  38.    $cache->assign("clientName", $_SESSION["USER"]["NSR"]);
  39.    $cache->assign("currentDay", Date("N", time()));
  40. } else {
  41.    $cache->assign("isLogged", 0);
  42. }
  43.  
  44. //Udostępnianie zmiennych systemowi szablonów
  45. $cache->assign("schoolName", schoolName);
  46. $cache->assign("appVersion", appVersion);
  47. $cache->assign("styleDir", activeTemplate);
  48.  
  49. //Wyświetlana strona główna
  50. $cache->display("header.tpl");
  51.  
  52. $moduleId = addslashes(strip_tags($_GET['action']));
  53.  
  54. $moduleFile = 'module/'.$moduleId.'.php';
  55.  
  56. if (!isset($_GET['action']) || empty($_GET['action'])) {
  57.    if (isset($_SESSION['USER'])) {
  58.        Header("Location: index.php?action=overview");
  59.    } else {
  60.        include("module/homepage.php");
  61.    }
  62. } else {
  63.    if (file_exists($moduleFile)) {
  64.        include($moduleFile);
  65.    } else {
  66.        include("module/homepage.php");
  67.    }
  68. }
  69.  
  70. //Wyświetlana stopka
  71. $cache->display("footer.tpl");
  72.  
  73.  
  74. ?>
erix
Ekhm...? I co ja mam z tym zrobić?
Kojak
Podział na nagłówek, a pod spodem dwie kolumny i środkowe okno na treść i pod tym stopka:

  1. <head>
  2. <!-- Tutaj masz definicje nagłówka -->
  3. </head>
  4. <body>
  5. <div id="container">
  6. <div id="header"> <-- Nagłówek strony -->
  7. <?
  8. include("template/header.inc.php"); // ładowanie nagłówka z pliku 'template/header.inc.php';
  9. ?>
  10. </div>
  11. <div id="content"> <!-- główna treść strony podzielona na 2 kolumny + środkowa zawartość strony -->
  12. <div id="left-panel">
  13. <?
  14. include("template/left-panel.inc.php"); // ładowanie lewego panelu z pliku 'template/left-panel.inc.php';
  15. ?>
  16. </div>
  17. <div id="main-content">
  18. <?
  19. include("template/main-content.inc.php"); // ładowanie zawartości głównej z pliku 'template/main-content.inc.php';
  20. ?>
  21. </div>
  22. <div id="right-panel">
  23. <?
  24. include("template/right-panel.inc.php"); // ładowanie prawego panelu z pliku 'template/right-panel.inc.php';
  25. ?>
  26. </div>
  27. </div>
  28. <div id="footer"> <-- Stopka strony -->
  29. <?
  30. include("template/footer.inc.php"); // ładowanie stopki z pliku 'template/footer.inc.php';
  31. ?>
  32. </div>
  33. </div>
  34. </body>
  35. </html>


Do tego dodasz sobie w stylach css identyfikatory: container, header, footer, content, left-panel, right-panel i main-content. Do tego tworzysz w katalogu templates pliki gdzie będą ładowane skrypty (za pomocą include): header.inc.php, footer.inc.php, left-panel.inc.php, right-panel.inc.php, main-content.inc.php.

Ewentualnie możesz zrobić to tak jak kolega wyżej: w oparciu o system szablonów Smarty. Poczytaj o tym.
Pilsener
Kojak, tak robiło się strony na początku lat 90'tych, echowanie na górze nagłówka a na dole stopki to amatorska prowizorka, na generowanie strony musimy patrzeć jak na całość, proces tworzenia strony www składa się z 4 zasadniczych etapów:

1. Przyjmowanie parametrów - czyli zmiennych środowiskowych, parametrów z adresu, pliku konfiguracyjnego itp.
2. Generowanie poszczególnych elementów strony - zajmuje się tym tak zwany silnik, który na podstawie parametrów wejścia przygotowuje zawartość meta, listę szablonów, stylów, treści z poszczególnych modułów, paneli etc.
3. Połączenie wygenerowanych elementów z kodem HTML - to jest strefa dla backendowców
4. Wysłanie gotowej strony do przeglądarki - dopiero gdy strona jest gotowa jako całość, to wysyłamy ją do przeglądarki

Gdy wyechujesz nagłówek to jak wstawisz do niego meta wygenerowane na podstawie treści? A jak pojawi się błąd to karzesz przeglądarce zwrócić to co jej wysłałeś i zastąpisz stroną błędu? Przy całościowym procesie tworzenia strony nie ma to znaczenia - możesz zacząć od stopki, a za jej miejsce na stronie odpowiada szablon strony, który powinien wyglądać mniej więcej tak:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>{title}</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset={charset}" />
  6. <meta name="keywords" content="{keywords}" />
  7. <meta name="description" content="{description}" />
  8. <meta name="Robots" content="index,follow" />
  9. {css}{base}
  10. </head>
  11. <p>Tutaj zaprojektuj układ strony i wstaw niezbędne zmienne</p>
  12. </body>
  13. </html>
- zacznij od tego, żeby Twój silnik generował odpowiednie elementy strony na podstawie parametrów - dopiero na samym końcu łączysz to z szablonem strony, który rzecz jasna także zależy od parametrów wejścia - może być inny dla każdej kategorii.

Możesz oczywiście robić strony na zasadzie: statyczna całość a podmieniam tylko środek (jak widzę takie strony, za które w dodatku ludzie biorą ciężką kasę to mnie mdli), jednak chyba nie po to tu jesteś?
Kojak
Cytat
Kojak, tak robiło się strony na początku lat 90'tych


W sumie masz rację.. chciałem mu tylko pokazać sposób, żeby miał o co się oprzeć. Ja sam robię strony w oparciu o Smarty, to jest dużo wygodniejsze, dlatego też napisałem mu żeby o tym poczytał. Tam to jest dużo lepiej przemyślane.
malesja
Dzięki chłopaki, ale jak niektórzy mi tu zaproponowali aby skorzystać z szablonów itp. to jednak takie rozwiązanie odpada. Chce stworzyć swój własny szablon menu i stopka bedzie niezmienne (w menu bedzie się tylko pokazywał panel logowania i już po zalogowaniu dostep do edycji swojego konta) część przeznaczona na ładowanie treści będzie tylko się zmieniać. Nie chcę wchodzić w szablony i kminić teraz jak je obsłużyć itd. Chce stworzyć prosty, ale dobry skrypt w php, który poskłada mi wszysko w całość i strona będzie funkcjonowała tak ja planuje.
Także potrzebuje informacji jak zakodzić to w php, jak złożyć odpowiednio kod w xhtmlu i w zasadzie nic więcej.

To co podał Pilsner mi się podoba, ale to wyższa szkoła jazdy. Wcześniej myśałem właśnie nad takim rozwiązaniem jak podał Kojak, że w kodzie xhtmla definiuje sobie gdzie i co jak ma być załadowane tylko jak kazać menu, że klikając w daną ikonkę aby załadowała się treść w części przeznaczonej na tego typu rzeczy. Tka jak było to kiedyś z ramkami. Mieliśmy lewe menu, górną część na naglówek a część środkkową z przeznaczeniem na ładowanie treści z menu. Wiecie o co chodzi z tymi ramkami. Ale to nie jest rozwiązanie dla php i na obecne czasy, ale nie chce wchodzić w zawiłe rzeczy bo sobie z tym nie poradze chce coś dobrego, ale i prostego.

P.S a nie macie jakichś gotowych przykładów, które mógłbym sobie uruchomić i podpatrzeć jak to działa?
erix
Przecież napisałem, jak zrobić... Czytaj, człowieku, co się do Ciebie pisze...

A to, o czym wspomniałem na samym początku, jest opisane w chyba każdym kursie PHP, więc może od tego zacznij, bo po co mówić o czymś N-ty raz, skoro już zostało to powiedziane...?
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.