"Strukturowa" budowa strony html

0

Witam. Ostatnio tworzę coś w rodzaju prostego forum. Mam pewien problem i nie mam pomysłu na jego rozwiązanie. Mianowicie chodzi mi o to że treść tematów, postów, użytkowników będzie generowana automatycznie, to oczywiste. Problem w tym że chciałbym zrobić coś co będzie można z łatwością modyfikować, tzn na niektórych podstronach będzie taki układ:
(To tylko wymyślony przykład)

<html>
	<head>
		<link rel="stylesheet" href="/Style.css" type="text/css">
	</head>
	<body>
		<div class="Nagłówek">Stała treść</div>
		<div class="Użytkownik">Treść pobierana z bazy danych</div>
		<div class="Temat">Treść pobierana z bazy danych</div>
	</body>
</html>

A na innych taki:

<html>
	<head>
		<link rel="stylesheet" href="/Style.css" type="text/css">
	</head>
	<body>
		<div class="Nagłówek">Stała treść</div>
		<div class="Użytkownik">Treść pobierana z bazy danych</div>
		<div class="Temat">Treść pobierana z bazy danych</div>
		<div class="Posty">Treść pobierana z bazy danych</div>
		<div class="Stopka">Stała treść</div>
	</body>
</html>

I chodzi mi tu o to że mam jeden główny plik (index.php) i w tym pliku mam główny szablon w którym dołączam poszczególne elementy (divy) i nadaję im treść. Wszystko było by łatwe tylko że te elementy mają jeszcze kilkanaście innych divów w sobie itp. a nie chcę robić syfu w kodzie i kopiować wszystkiego, zamiast tego chciałbym zrobić dodatkowe dokumenty z samymi szablonami divów podstrony (Nagłówek, Użytkownik itp.) i dodać w nich sekcje które zostaną zastąpione treścią którą nadam w głównym szablonie index.php.

<div class="Temat">
	<div class="Nazwa_tematu">{tytuł}</div>
	<div class="Autor_tematu">{autor}</div>
	<div class="Treść_tematu">{treść}</div>
</div>

I w pliku index php np.

<div class="Temat">{!tytuł}{!autor}{!treść}</div>

Jedyny pomysł jaki mi przychodzi do głowy to użycie include co nie jest dobrym pomysłem. Nie chcę używać smartów ani innych gotowych systemów. Proszę o podsuwanie pomysłów, rozwiązań :)

0

Użyj jakiegoś prostego frameworka php który ma odpowiednio zrobiony szkielet do aplikacji w tym system templatek, i nie nie trzeba korzystać ze smarty, ja nie korzystam wole czysty php w kodzie html niż wynalazki zwalniające generowanie strony.

0

Jedyny pomysł jaki mi przychodzi do głowy to użycie include co nie jest dobrym pomysłem. Nie chcę używać smartów ani innych gotowych systemów. Proszę o podsuwanie pomysłów, rozwiązań

czemu nie, skoro większość stron tak działa? I jest to o wiele prostsze niż wymyślanie koła na nowo? I bardziej eleganckie. Mieszanie kodu z PHP z HTMLem eleganckie nie jest raczej.

Chociaż jeśli chodzi o Smarty to faktycznie, można się pochlastać z niewygody. Wygodniejsze moim zdaniem są szablony inspirowane szablonami Django czy Jinja2 (czyli w PHP bodajże masz system szablonów Twig, jeśli się nie mylę). Ma to też te zalety, że potem łatwiej będzie przepisać apkę na inny język programowania (a Smarty chyba tylko w PHP jest, ale mogę się mylić).

0

Moim zdaniem powinieneś złapać dowolny aktualnie używany silnik template'ów i wdrożyć w projekcie. Jeżeli nie będziesz chciał robić include / require to będziesz musiał używać zwykłych funkcji do operacji na plikach, żeby dostać się do zawartości i wiedzieć co renderować, nie wspominając już o sposobie przekazania tam danych, tak aby to było wydajne i nie generowało biliona niepotrzebnych zmiennych.

Jeżeli projekt to tworzenie forum, a nie tworzenie silnika do renderowania forów, to skupił bym się na produkowaniu funkcjonalności forum i nie marnował czasu na konstruowanie własnych implementacji template'ów.

1 użytkowników online, w tym zalogowanych: 0, gości: 1