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ść.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 24.12.2025 - 17:30