Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [CMS] Szablony - rozmieszczenie, Problem wtyczek i panelu admina
WebCM
post
Post #1





Grupa: Zarejestrowani
Postów: 375
Pomógł: 20
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----


Kod: http://www.unit1.pl/pb-819

Na początku przechowywałem wszystkie szablony w 1 folderze - VIEW. Miały być specyficzne dla danego serwisu - do edycji przez webmastera lub totalnej wymiany. Do skórek (zmienianych przez użytkowników) należały ikony, arkusze stylów CSS i główny layout.

Doszedłem do wniosku, że takie rozwiązanie stanie się uciążliwe, gdyż szablony nie będą uniwersalne dla każdej skórki (głównie dla CSS). Przykład - webmaster nie mógłby zmienić <li> na <table> bądź odwrotnie bez dokonywania zmian w CSS. Teraz do skórki należą wszystkie szablony. Czy to dobre posunięcie? Czy poprzednie było lepsze?

Kolejna sprawa - wtyczki. Przecież one też będą wprowadzać swoje szablony. Prawdopodobnie będzie dla nich miejsce w folderze STYLE (chyba, że lepiej w folderze PLUGINS?).

Problem w tym, że... w jądrze od razu ustawiam katalog, w którym znajdują się wtyczki.
  1. <?php
  2. #Katalog skórki
  3. define('SKIN_DIR', './style/'.$nstyl.'/');
  4. define('VIEW_DIR', './cache/view/');
  5. ?>
Następnie w pliku index.php:
  1. <?php
  2. $content->file = array($_GET['co']); //Fragment kodu bezpieczny
  3. ?>

Co zrobić, aby nie utrudniać wtyczkom dołączania własnych szablonów? To samo dotyczy panelu admina (jeśli jego szablony mają być odrębne, a nie częścią skórek). Może tak:
  1. <?php
  2. $content->file = array(VIEW_DIR . $_GET['co']); //index.php
  3. $content->file = array('./style/admin/' . $A); //admin.php
  4. ?>
Tak też być nie może. Jądro ustawi VIEW_DIR dla domyślnej skórki. Specyficzne szablony (Info, 404, Message), które są dołączane przez klasę Content, też mogą wchodzić w skład skórek np. dla forum jako wtyczki (a stała VIEW_DIR jest niezmienna). Oczywistym zaś jest, że dodatki typu "księga gości" lub "shoutbox" będą korzystać z domyślnych plików CSS i szablonów: Info, 404, Message...

Zadziałają też może takie rozwiązania, ale po co kombinować? Przykład:
  1. <?php
  2. $content->file = array('../pluginName/' . $sth . '.html');
  3. ?>

Ewentualnie zamiast stałych można wprowadzić zmienne do klasy $content. $content->file musiałby jednak znów zawierać pełną ścieżkę do szablonu.

Inne wyjście - nic nie zmieniać, a katalogi z szablonami skórek i panelu admina umieścić w skórce domyślnej. Przy kompilacji lista plików ze stylu DEFAULT stanie się wzorem. Jeśli w kompilowanej skórze zabraknie jakiegoś pliku, zostanie on pobrany z domyślnej. Pozostaje znów problem wtyczek z własnymi stylami (layoutem głównym, Info, Message...) - np. forum.

Jakie rozwiązanie tych problemów proponujecie? Ważne, aby nie doszło potem do kolejnych komplikacji. Istotna jest także wydajność.


--------------------
„Jesteśmy różni, pochodzimy z różnych stron Polski, mamy różne zainteresowania, ale łączy nas jeden cel. Cel ten to Ojczyna, dla której chcemy żyć i pracować.” Roman Dmowski
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
cbagov
post
Post #2





Grupa: Zarejestrowani
Postów: 181
Pomógł: 18
Dołączył: 19.04.2008

Ostrzeżenie: (10%)
X----


Nie dyskutuje i nie wnikam za gleboko bo to twoj wariant.
U mnie zastosowalem wzorem Linuksa -user/strona=katalog- wlasne szablony do modyfikacji ale trzymajace sie schematu. W CSS latwo bo uwzgledniasz znaczniki lub nie.

Jest tez katalog systemowo/defaultowy dla templat sztuk 1, choc rozszerzalny ale osobiscie nie planuje.
Backup, kasowanie, przerzucanie dzieki umieszczaniu w 1 folderze dla usera znacznie ulatwiony.

Tyle, ze mam podzial np.:
w dir CFG = *.css i ogolnie LAY,
w dir DAT PAGES = *data, *stat, *work
w dir DAT SHOP = *data, *lay, *work jak ktos ma shop
w dir SHOP = *engine php, sql etc.
no i jeszcze kilka dir ale nie zwiazane z tematem.

Jesli user ma okreslone mozliwosci to ma swoj katalog w adekwatnym "systemowym".
Nie mowie, ze to rozwiazanie idealne, podaje jako moj wariant dla potomnosci.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 11:18