![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 26.08.2013 Ostrzeżenie: (0%)
|
Witam
Chciałbym aby dla Panelu administracyjnego Stron Panelu klienta Były oddzielne katalogi dla smartów znalazłem w necie Ścieżki dla portalu $smarty=new Smarty(); $smarty->setTemplateDir("_portal/templates"); $smarty->setCompileDir("_portal/templates_c"); $smarty->setCacheDir("_portal/cache"); $smarty->setConfigDir("_portal/configs"); Ściezki dla admina $smarty=new Smarty(); $smarty->setTemplateDir("administration/templates"); $smarty->setCompileDir("administration/templates_c"); $smarty->setCacheDir("administration/cache"); $smarty->setConfigDir("administration/configs"); Ściezki dla Panelu klienta $smarty=new Smarty(); $smarty->setTemplateDir("customerPanel/templates"); $smarty->setCompileDir("customerPanel/templates_c"); $smarty->setCacheDir("customerPanel/cache"); $smarty->setConfigDir("customerPanel/configs"); .... ale powtarzanie tego z każdym php chyba nie ma sensu. Czy można jakoś skonfigurować smarty aby tego kawałka kodu nie powtarzać. Pozdrawiam |
|
|
|
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Jesli masz zamiar to powtarzac w kazdym php, znaczy ze zle zrobiles strukture swojej aplikacji....
Obiekt smarty ma byc tworzony tylko i wyłącznie raz tylko i wyłącznie w jednym pliku i to wlasnie tylko w tym pliku masz ustawic wlasciwe sciezki. |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 26.08.2013 Ostrzeżenie: (0%)
|
Dzięki nospor,
A może znasz jakiś przykład jak poprawnie powinna być napisana struktura aplikacji opartej o smarty, bo nie pisałem nigdy aplikacji opartych o nie. Mam napisanych sporo aplikacji, apartych o jeden silnik, tak więc jak ktoś ma sklep a chce dodac forum to żaden problem, dodaje katalog z forum, dodaje wpis do bazy z informacją jaka domena lub subdomena ma go pokazywać. Obecnie mam napisane tak. 1. Sprawdza po domenie jaki komponent (sklep, portal, forum.....) jest przypisany do niej i jaką ma konfiguracje, jaki szablon, język, walutę itp 2. przechodzi na index komponentu gdzie spradza jaka strona jest wywołana, dzięki temu każdy klient może sobie sam zdefiniować swoje nazwy modrewrite, przy okazji definiuje dla każdej strony szablon jaki ma pokazać. 3. wywołuje daną stronę php np. include("_portal/modules/article.php") 4. wywołuje stronę z szablonami include("_".DB_COMPONENT."/pageOpen.php"); i tutaj dodaje układ strony, każda strona może mieć inny header, foter, inny układ, inne boxy po lewej i prawej, dowolna konfiguracja. 5. ładuje pliki header.php, left.php, right.php i foter 6. i teraz dopiero daje szablony plików. Dzięki takiemu rozwiązaniu jeden admin obsługuje np. 2 strony www i sklep. http://eddd.pl/ - sklep http://www.dezynsekcja.com.pl/ - strona http://dezder.pl/ jedena aplikacja a ma 3 różne strony, były robione 4 lata temu więc mają stare linkowanie. obecnie linkowanie wygląda tak http://sexuelle.pl/ lub tak: http://itcomputerpartner.pl/pl/oferta tak więc możliwośći konfiguracji nieograniczone, chciałem teraz napisać nowe wersje oparte o smarty. Pozdrawiam |
|
|
|
Post
#4
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Poprostu w jednym miejscu masz tworzyć obiekt smartiego. Moze to być chociazby index.php.
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 26.08.2013 Ostrzeżenie: (0%)
|
Dzieki, dla pewności czyli np w index.php dla komponentu tworzę obiekt a np w
header daje ........ $smartHeaderTop = $tpl->display("_".DB_COMPONENT."/templates/".DB_THEME."/header.tpl"); w foter daje ...... $pageFooter = $tpl->display("_".DB_COMPONENT."/templates/".DB_THEME."/footer.tpl"); itd a w pliku szablonu składam to do kupy pageOpen.php $tpl->assign('PAGE_HEADER', empty($smartHeaderTop) ? '' : $smartHeaderTop); // GÓRA STRONY - HEADER $tpl->assign('PAGE_LEFT', empty($pageLeft) ? '' : $pageLeft); // LEWA CZĘŚĆ STRONY $tpl->assign('PAGE_MIDDLE', empty($pageMiddle) ? '' : $pageMiddle); // ŚRODEK STRONY $tpl->assign('PAGE_RIGHT', empty($pageRight) ? '' : $pageRight); // PRAWA CZĘŚĆ STRONY $tpl->assign('PAGE_FOOTER', empty($pageFooter) ? '' : $pageFooter); // STOPKA STRONY $tpl->display("_".DB_COMPONENT."/templates/".DB_THEME."/pageOpen.tpl"); Tak będzie prawidłowo?(IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif) ? I jeszcze jedno czy mozna pozbyć się znaku $ ze zmiennej z pliku tpl tak jak jest to w phpBB bo teraz musze dawać {$PAGE_LEFT} a chciałbym dawać {PAGE_LEFT} Pozdrawiam |
|
|
|
Post
#6
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Masz miec jeden glowny plik szablonu, np. index.tpl
W nim robisz include stopki, include naglowka, include tresci danej strony. Na koncu index.php robisz raz $smarty->display("index.tpl") i juz. Cytat I jeszcze jedno czy mozna pozbyć się znaku $ ze zmiennej z pliku tpl tak jak jest to w phpBB phpBB uzywa innego systemu szablonow wiec ma inny zapis. smarty wymaga $ i tyle w temacie.
|
|
|
|
![]() ![]() |
|
Aktualny czas: 22.12.2025 - 21:18 |