"Strukturowa" budowa strony html

Odpowiedz Nowy wątek
2015-02-26 15:38
Mały Terrorysta
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ń :)

Pozostało 580 znaków

2015-02-26 15:59
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.

Pokaż pozostałe 3 komentarze
@dzek69 http://php.net/manual/en/ini.core.php#ini.short-open-tag jakoś nie widzę, żeby było zdeprecjonizowane, co więcej w 5.4 czyli ledwie 2 wersje temu defaultowo stało się włączone ;) o wersje php się nie martw sam ustalam z jakiej korzystam ;) A tutaj jak widać nawet w 7.0 nikt nie myśli tego usuwać ;) https://wiki.php.net/rfc/remove_alternative_php_tags - mr_jaro 2015-02-26 22:59
oj jaro jaro... jak ty z taką precyzją czytasz dokumentację, to wróżę Ci wiele błędów i dziur. Defaultowo włączone to było chyba od zawsze. Różnica jaka nastąpiła w PHP 5.4 to taka, że &lt;?= jest ZAWSZE akceptowane, nawet gdy short_open_tag jest off. Natomiast żeby zadziałało to: &lt;? kod(); - to short_open_tag musi być on. Warto też zwrócić uwagę, że w samym php.ini ODRADZA się korzystanie z tego. Natomiast zdeprecjonowane to jest od wersji 6 - nie mogę nigdzie znaleźć na php.net źródła tego, ale cały internet o tym mówi (w Google jest trochę wyników). - dzek69 2015-02-27 09:16
Sądzę, że wyrzucenie short_open_tag NIE spowoduje braku możliwości korzystania z &lt;?=, z racji, że to jest aktualnie od tego niezależne. Nie będzie działać natomiast &lt;?. - dzek69 2015-02-27 09:17
@dzek69 wersji 6 nie ma i nie będzie więc i decyzje mogli zmienić ;) - mr_jaro 2015-02-27 09:36
Ale to nie zmienia tego, że jest to niezalecane i w niektórych sytuacjach niebezpieczne :p - dzek69 2015-02-27 10:44

Pozostało 580 znaków

2015-02-27 11:47
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ć).


((0b10*0b11*(0b10**0b101-0b10)**0b10+0b110)**0b10+(100-1)**0b10+0x10-1).toString(0b10**0b101+0b100);
edytowany 1x, ostatnio: LukeJL, 2015-02-27 11:47
Zgadza się, Smarty to biblioteka PHP. - dkacperczyk 2015-02-27 13:45

Pozostało 580 znaków

2015-03-01 09:27
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.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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