Info o ciastkach

Eeee...
Żeby strona działała fajnie to trzeba zaakceptować obsługę pewnych plików. Jeśli jesteś nienormalny, nosisz czapkę z amelinium i siedzisz w schronie zbudowanym z poduszek to możesz je sobie wyłączyć. Autor strony nie czerpie żadnych korzyści z cookies (twierdzi nawet, że ten komunikat jest głupi), ale, cóż - Unia wymaga. Korzystając z witryny zgadzasz się z polityką cookies.

Wszystko w budowie...

Budujemy forum. Część 3 - Struktura katalogów i plik index

logo php

No to czas start. Dzisiaj jakoś poukładamy sobie to wszystko w katalogach. Trzeba wiedzieć, że obecnie strona www to pełnoprawna aplikacja internetowa która korzysta z innych plików i bibliotek. Aby nic nam się nie pomieszalo należy jakoś to skategoryzować. No i jeszcze druga rzecz - kiedy będę pisał w PHP to znaczniki otwierające sobie daruję.

Moja struktura katalogu root wyglada tak:

  • /.htaccess - tutaj będą reguły przepisywania adresów
  • /connect.php - tutaj znajdą się ustawienia połączenia z bazą danych
  • /const.js - plik specjalny z konfiguracją JavaScriptu
  • /const.php - plik z ustawieniami PHP
  • /db.php - tutaj będą podstawowe ustawienia strony
  • /index.php - główny plik strony, to tutaj wszystko się dzieje
  • /admin/ - folder dla skryptów CSM, czyli po prostu panel admina
  • /ajax/ - katalog na skrypty PHP dla AJAX
  • /class/ - folder na pliki klas
  • /func/ - katalog na funkcje
  • /grafika/
  • /inc/ - katalog na częśći witryny lub podstrony
  • /js/ - katalog na skrypty JavaScript
  • /lib/ - katalog na biblioteki
  • /style/ - katalog na biblioteki stylów CSS
  • /uploads/ - katalog na pliki które można przesłać na forum

const.js i const.php

Jako, że będziemy wykorzystywać przekierowanie przez htaccess to ścieżka względna może nie działać tak jak tego byśmy chceli. Ja ustawiam pewne rzeczy na stałe. Pliki te posiadają treść w zależności od tego gdzie się znajdują. No bo chodzi też o to, żeby komfortowo trzymać wiele projektów na komputerze. Moja ścieżka na komputerze lokalnym do projektu wyglada tak /localhost/forum/, ścieżka na serwerze będzie wyglądała tak - /. Te pliki będą raz napisane i raz przeslane na serwer oraz załączane do każdego pliku.

Oto zawartość obu plików na komputerze lokalnym.

const.js



ROOT='/forum/';
ROOTADMIN='/forum/admin/';

Na serwerze



ROOT='/';
ROOTADMIN='/admin/';

Zawartość const.php na lokalnym serwerze



define('ROOT','/forum/');
define('ROOTADMIN','/forum/admin/');

const.php na serwerze



define('ROOT','/');
define('ROOTADMIN','/admin/');

Powyższe pliki należy przesłać raz i już ich nie ruszać.

Połączenie z bazą danych - connect.php



define("HOST","localhost");
define("DB_NAME","nazwa_bazy");
define("DB_USER","user");
define("DB_PASS","password");

Tutaj wiadomo, wpisujecie własne dane.

db.php

Uzupełnimy sobie jeszcze ten plik. Na razie damy tutaj nasze dane, czyli całość wygląda tak



protected $autorImie='Michał';
protected $autorNazwisko='Misztal';
protected $autor='Michal Misztal';
protected $mail='adres@email';

head.php

U mnie on wygląda tak



class HEAD{
    private $sMName;
    private $sMKeywords;
    private $sTitle;
    private $aStylesheet=[];
    private $aJScript=[];
    private $aGFonts=[];
    
    public function set_Description($description){
        $this->sMName=$description;
    }
    public function set_Keywords($keywords){
        $this->sMKeywords=$keywords;
    }
    public function set_Title($title){
        $this->sTitle=$title;
    }
    public function set_Stylesheet($stylesheet){
        for($i=1;$i<count($stylesheet);$i++){
            array_push($this->aStylesheet,$stylesheet[0].$stylesheet[$i]);
        }
    }
    public function set_JScript($jscript){
        for($i=1;$i<count($jscript);$i++){
            array_push($this->aJScript,$jscript[0].$jscript[$i]);
        }
    }
    public function set_GFonts($gfonts){
        for($i=0;$i<count($gfonts);$i++){
            array_push($this->aGFonts, $gfonts[$i]);
        }
    }
    
    public function utworz(){
        $DB=new DB();

        echo "<head>";
            echo "<meta charset=\"utf-8\" />";
            echo "<meta name=\"Description\" content=\"$this->sMName\" />";
            echo "<meta name=\"Keywords\" content=\"$this->sMKeywords\" />";
            echo "<meta name=\"Author\" content=\"$DB->autor\" />";
            echo "<meta name=\"Robots\" content=\"index,follow\" />";
            echo "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">";
            echo "<title>$this->sTitle</title>";

            for($i=0;$i<count($this->aStylesheet);$i++){
                echo '<link rel="stylesheet" type="text/css" href="'.$this->aStylesheet[$i].'" media="all" />';
            }
            for($i=0;$i<count($this->aJScript);$i++){
                echo '<script src="'.$this->aJScript[$i].'"></script>';
            }
            if(count($this->aGFonts)>0){
                for($i=0;$i<count($this->aGFonts);$i++){
                    echo '<link href="'.$this->aGFonts[$i].'" rel="stylesheet" type="text/css" />';
                }
            }
            
            
        echo '</head>';
    }
}

Wpisy wyjaśniające "dlaczego tak?" - klik i klik.

JQUERY

Pobierzmy jeszcze dla świętego spokoju bibliotekę jQuery z oficjalnej strony. Niech to będzie wersja 2.x. Czyli klikamy prawym przyciskiem myszy na "Download the compressed, production jQuery 2.2.2" i wybieramy "Zapisz link jako" (lub coś podobnego). Bibliotekę wrzućmy do katalogu js. Jest jeszcze jeden myk - jeśli robicie to na systemie unix to musicie zmienić prawa do uruchamiania i wyświetlania zawartości - najlepiej na 777 (chmod 777 jquery.js).

Styl

Stwórzmy sobie podstawowy plik stylów według tej strony.

index.php

No i zbierzmy to wszystko do kupy. Plik index.php wygląda tak



<!DOCTYPE html>
<html>
<?php
require 'const.php';
require 'connect.php';
require 'db.php';
require 'class/head.php';
//head
$H=new HEAD();
$H->set_Description('Forum nasz zajefajne');
$H->set_Title('Forum CSK');
$H->set_Keywords('forum, csk, słowa kluczowe');
$H->set_JScript([ROOT.'js/','jquery.js']);
$H->set_Stylesheet([ROOT.'css/','style.css']);
$H->utworz();
//head koniec

//body
echo '<body>';

echo '</body>';
//body koniec

?>
</html>

CDN...

Komentarze (0)

Nikt jeszcze nie dodał komentarza. Możesz być pierwszy.

Napisz komentarz lub zgłoś błąd

Dodane w dniu 29 marca 2016 przez Michał Misztal
Kopiowanie powyższych wypocin dozwolone pod warunkiem podania źródła, znaczy tandemu autor + link do strony