Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dwa layouty
Forum PHP.pl > Forum > Przedszkole
Wieviór
Zwracam się do użytkowników, którzy mają coś takiego u siebie na stronie lub kiedyś coś takiego robili. Chciałbym dać moim użytkownikom możliwość wyboru layoutu. Jaki jest najlepszy sposób na to? Mój pomysł:

- każdy user jest zalogowany, w tabeli users jest pole "layout", gdy jest 0 wybieramy domyślny layout, gdy 1 wybieramy ten drugi. Tyle tylko, że tutaj trzeba przed pokazaniem całej strony połączyć się do bazy, a jeśli user nie jest zalogowany?

- Zapisujemy wybrany layout w sesji z długim lifetimem, logowanie to już co innego.

Teraz sprawa nieco inna. Jak to rozwiązać od strony kodu? Czy lepiej robić przy każdym pliku:

  1. <?
  2. if ($layout == 0) { echo 'layout pierwszy'; }
  3. if ($layout == 1) { echo 'layout drugi'; }
  4. ?>


Czy może zrobić dwa katalogi:
  • Layout1
  • Layout2

A może jeszcze jakoś inaczej. Pomysły ludzi w tej kwesti doświadczonych bardzo mile widziane. cool.gif
gszesiek
to jak nie jest zalogowany to niech domyślnie będzie do czegoś przywiązany i daj mu możliwość zmiany, a zmiany zapisz w cookie
wipo
Większość systemów opartych o szablony stosuje katalogi.

Jeżeli chodzi o stosowanie dużej ilości if to proponuje zastosować switch case lub przynajmniej else
dr_bonzo
Zrob to tak zeby wybor szablonu nastepowalo przez podmienienie TYLKO jednej zmiennej, czyli np. rozwiazanie z katalogami bedzie dobre:
pobierasz szablony z katalogu "szablony/$szablon/...." i juz.

Cytat
Czy lepiej robić przy każdym pliku:
Stanowczo nie! Aco jak dodasz trzeci layout? Bedziesz musial wyedytowac wszystkie pliki z poprzednich layoutow, a metoda z katalogami dodasz tylko nowy katalog i nazwe tego katalogu do zbioru dostepnych skorek/templatow.

A jak nie jest zalogowany to niech sie zaloguje smile.gif Bedzie mial bonusa.
Niezalogowaniu userzy tez maja sesje i mozesz tam zapisac jego ustawienia zamiast w ustawieniach usera.
Wieviór
Dzięki za rady. Doszedłem do wniosku, że zmienię nieco strukturę mojej strony i w katalogu "pliki" będą zachowane takie pliki z kodem wewnętrznym jakby.

Natomiast w głównym katalogu będą tylko pliki:
  • index.php
  • layout1.php
  • layout2.php
  • dzial1.php
  • dzial2.php

Plik index.php będzie includował layout1.php lub layout2.php zaraz na początku skryptu, gdy tylko ustali jaki wybrał użytkownik, jeśli user nie zalogowany to pokaże layout1.php, czyli jakby domyślny. Pliki dzial.php i dzial2.php będą includować pliki z katalogu. Bo w sumie zawartość będzie taka sama pod względem wyglądu, ew. style troszkę inne, ale to nie problem.

Jakieś uwagi? Dobrze wymyśliłem? smile.gif
hwao
Jeżeli jest to tylko zmiana w wyglądzie strony, tzn bez zmian tresci to polecam zrobic 2 arkusze stylów. Następnie zrobic w Js przelaczanie midzy nimi
Wieviór
Cytat(hwao @ 1.10.2006, 11:18:05 ) *
Jeżeli jest to tylko zmiana w wyglądzie strony, tzn bez zmian tresci to polecam zrobic 2 arkusze stylów. Następnie zrobic w Js przelaczanie midzy nimi


Tzn. zmiana jest nieco głębsza niż np. podmienienie obrazka, bo układ jest zmieniony. Chodzi o to, że i w jednym i w drugim jest pole do treści działu, a ta już i tutaj i tutaj będzie taka sama, bo to w sumie tylko tekst i jakieś fotki w sumie.

EDIT:

Zobaczyłem u ciebie na blogu z tym przełączaniem. Fajnie to wygląda, ale to niestety nie dla mnie, bo za duże zmiany smile.gif
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.