Diskusijų forumai
Diskusijų forumai     Tinklalapių kūrimas ir programavimas     Kitos diskusijos     teisingas tinklapio formavimas



teisingas tinklapio formavimas

madman333
Bendruomenės narys

 
ok mokam kurti dizainus su css ir html pagalba sudelioti puslapi i vieta pildyti turini taciau kaip butent teisingai padaryti viso tinklapio struktura su normaliai ir teisingai veikianciomis nuorodomis placiu turiniu ir pan. negi reikia kiekvienai puslapio skilciai kurti atskira HtmL faila su jam priklausanciu CSS scriptu?
 


Atsakymai į temą

Irmantas
Tinklalapio šeimininkas

 
Na tai jau reikia kurti dinamišką interneto svetainę pasitelkiant PHP (ar kitą) programavimo kalbą. Niekas šiais laikais atskirų html puslapių nebekuria.

tarkim susikuri header.php, index.php, footer.php

index.php failo turinys turėtų atrodyti maždaug taip:
include 'header.php';

echo $data;

include 'footer.php';


Kintamajam $data yra priskirtas puslapio turinys, jo turinys keičiasi priklausomai nuo to koks puslapis atidaromas.
WipeR
Bendruomenės narys

 
Mane irgi labai domina būtent madman333 užvesta tema. Gal kas galėtų daugiau išplėtoti atsakymą?
Edmundas
Tinklalapio šeimininkas

 
Gerai, pabandysiu paaiškinti kuo paprasčiau.

Šiuolaikinis tinklalapis vien su HTML/CSS failais yra beveik nieko vertas. Taip yra todėl, kad HTML failus nepatogu redaguoti norint pakeisti ar pridėti naujos informacijos, redagavimas tampa ilgu ir nuobodžiu procesu. Visi tinklalapių kūrėjai nuo to pradėjo, tačiau tai tik viena iš pirmųjų pakopų.

Panagrinėkime, kodėl sunku atnaujinti tinklalapį, sukurtą su statiniais html failais. Tarkime, kad yra 3 html failai: index.html, straipsniai.html ir kontaktai.html. Žinome, kad tuose failuose yra tam tikra HTML struktūra ir kiekviename faile įterpiamas tas pats CSS failas. Taigi galiu atnaujinti atskirai pagrindinį puslapį (index.html), straipsnius (straipsniai.html) ir kontaktų puslapį (kontaktai.html). Regis, viskas gana paprasta ir aišku. Tačiau ką daryti tokiu atveju, kai noriu pakeisti tinklalapio išvaizdą? Žinau, kad visuose triejuose failuose yra toks pat HTML kodas puslapio struktūrai sudėlioti, tad man nebus kitos išeities kaip tik kiekvieną failą redaguoti atskirai. Čia dar menka problema, bet jeigu tokių failų būs ne 3, o, takime, 20? 60? Akivaizdu, kad su paprastais HTML failais interneto neužkariausi, tad reikia pasitelkti web programavimą.

Visi didesni tinklalapiai turi tam tikrą turinio valdymo sistemą (sutrumpinai „TVS“ arba angliškai „Content Management System“ — „CMS“). Tokiose sistemose duomenys (tekstinė informacija, nustatymai ir pan.) yra saugojami duomenų bazėje (turbūt populiariausias sprendimas duomenų bazėms yra MySQL). Duomenys paimami iš duomenų bazės ir atvaizduojami tinklalapyje atitinkamai pagal vidinę nuorodą (URL). Galima rinktis iš komercinių bei atvirojo kodo (nemokamų) valdymo sistemų arba naudoti unikalią sistemą (kaip pav. mūsų tinklalapyje), kurią sukursite patys arba mokėsite kažkam pinigus, kad sukurtų. Tačiau visais atvejais tikslas tas pats — atskirti informaciją nuo techninės tinklalapio dalies, t.y. padaryti taip, kad informaciją įdėti, atnaujinti ir pašalinti būtų galima labai paprastai, neturint web programavimo žinių ir nesugaištant daug laiko.

Na, dabar grįšiu prie pačios temos esmės. Kaip jau minėjau, informacija visada atvaizduojama pagal nuorodą (URL). Pateiksiu pavyzdį.

Įsivaizduokime, kad turime 3 skirtingas nuorodas:
  index.php?puslapis=pagrindinis
  index.php?puslapis=straipsniai
  index.php?puslapis=kontaktai

Taip pat turime failų struktūrą:
  index.php
  header.php
  footer.php

Taigi išplėtosiu Irmanto duotą pavyzdį.

// Įterpiame header.php failą.
include 'header.php'; 
 
// Paimame ?puslapis= reikšmę iš nuorodos
$puslapis	=	$_GET['puslapis'];

// Pagal nurodytą reikšmę nuorodoje skriptui nurodoma, 
// kaip elgtis toliau, t.y. jeigu situacija tenkina 
// sąlygą, vykdome veikmsus, susijusius su ta sąlyga.
if($puslapis == 'pagrindinis')
{
	// Kadangi nurodyta $_GET kintamojo 'puslapis'
	// reikšmė 'pagrindinis', žinome, jog lankytojas
	// užėjo į pagrindinį puslapį. Todėl čia priskiriame
	// kintamajui informaciją, susijusią su pagr. puslapiu.
	$data	=	'Čia pagrindinio puslapio informacija.';
} 
elseif($puslapis == 'straipsniai')
{
	// Analogiškai kaip ir puslapiui 'pagrindinis',
	// tik čia priskiriame informaciją, skirtą 
	// straipsnių puslapiui.
	$data 	=	'Čia sudėti visi straipsniai.';
}
elseif($puslapis == 'kontaktai')
{
	// Analogiškas atvejis kaip ir anksčiau.
	$data	=	'Kontaktinė informacija.';
}

// Šioje vietoje skriptas jau nustatė, kokiame puslapyje 
// randamės ir priskyrė atitinkamą informaciją, tad 
// belieka ją išspausdinti pačiame tinklalapyje.
echo $data;
 
// Įterpiame footer.php failą.
include 'footer.php';


Viską paaiškinau PHP kode, tik dar noriu atkreipti dėmesį į header.php ir footer.php failų įterpimą. Jeigu atidžiau pažvelgsite į kodą, pamatysite, kad šie failai įterpiami nepriklausomai nuo atidaryto puslapio. Tai reiškia, kad keičiant dizaino viršų (header) ar apačią (footer) nereikės redaguoti daug failų, priešingai negu aprašiau atvejį su HTML failais. Taigi šis variantas yra lankstesnis ir nereikalaujantis švaistyti tiek daug laiko puslapių redagavimui. Nesunku įsivaizduoti, jog panaudojus duomenų bazę galėtume dar labiau supaprastinti informacijos atvaizdavimą, atnaujinimą, pridėjimą ir šalinimą tinklalapyje.

Tikiuosi, kad šiek tiek paaiškėjo, kaip, kas ir kur. wink