Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 535 Pomógł: 27 Dołączył: 3.05.2005 Ostrzeżenie: (20%)
|
Witam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Natknąłem się w swojej aplikacji na problem jakim jest zarządzanie inludowanymi plikami .js jak i .css . Aplikacja jest tak zbudowana iż wywoływana jest funkcja view::headerSite() z odpowiednimi parametrami. Jednak pisanie przed każdym wywołaniem nagłówka takiego kodu jest trochę nieporęczne i może wprowadzić zamęt:
Jak wy to rozwiązujecie ? Pozdrawiam i przepraszam kilka osób za jeden z moich poprzednich tematów. Jednak uwagi tych osób były konstruktywne i po głębszym zastanowieniu przyniosły pożądany efekt. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 31 Dołączył: 13.11.2006 Skąd: się znamy? Ostrzeżenie: (0%)
|
Czemu chcesz to pisać za każdym razem? Nie możesz pobrać przez Config (nie całe <link... tylko lokalizację i nazwę pliku)?
Potem wrzucasz automatycznie przy renderowaniu w layout (DOM, odpowiedni preg, wywołanie helpera...). Swoją drogą
jest pozbawione sensu, przecież możesz określić parametr tak:
Co to za funkcje w kodzie? Gdzie? Pokaż cały kod. |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 535 Pomógł: 27 Dołączył: 3.05.2005 Ostrzeżenie: (20%)
|
W klasie tej jest taki mały router który wywołuje od razu metody w klasie view gdyż są to dane statyczne które nie ulegają zmianie i tym samym nie potrzebują modeli. Nie modę podać samej nazwy gdyż czasem są to pliki typu .js a czasem .css Ten post edytował wlamywacz 8.06.2008, 13:25:48 |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 1 333 Pomógł: 137 Dołączył: 25.03.2008 Skąd: jesteś?? Ostrzeżenie: (0%)
|
Możesz podzielić to na dwie części, $this->includeStyle i $this->includeJs. Tym sposobem dopisując jedną linię do class'y ułatwisz sobie pracę, a resztę napisz jak kolega wyżej napisał. Odpowiednie linki w klasie bierz, a tylko adres podawaj...
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 535 Pomógł: 27 Dołączył: 3.05.2005 Ostrzeżenie: (20%)
|
Tak zrobię wykonam class parsującą pliki ini z danymi do includowania i natrafiłem na pierwszy problem
Plik ini nie może mieć = w treść jak temu zaradzić ? :/ |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%)
|
Kod [errorblog]
exceptions[] = "<link rel='Stylesheet' type='text/css' href='templates/index/wlasciwosci.css' />" |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 535 Pomógł: 27 Dołączył: 3.05.2005 Ostrzeżenie: (20%)
|
Ok rozwiązałem to tak:
include.ini
Wywołanie:
|
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 18 Dołączył: 19.04.2008 Ostrzeżenie: (10%)
|
Hm, powiem ci, ze jesli chcesz pomoc temu SOBIE w przyszlosci, to nie dawaj mu takiego spapranego kodu...
$ini_array[$param]['include'][$i] - co to niby znaczy ? jak dobrze nazwiesz zmienne to komentarz mocno ograniczysz a zrozumienie i analize poprawisz. dziwaczne odwolania przez petle.. daj spokoj - nazwij zmienne konfiguracyjne z INI, potem dodatkowo dzieki temu przez zwykle $_CFG->get( grupa, klucz); mozesz w dowolnym miejscu w kodzie odwolywac sie do nich, a te twoje inklude_inklude_ini_inklude... pfff Przyklad: $_CFG->get( 'system', 'sql_on'); $_CFG->get( 'user', 'address'); itd. Nie inkluduj tez tak dziwacznie plikow JS bo to kompletnie nie ma sensu, natomiast jest sens jak pliki JS albo CSS polaczysz dynamicznie w 1 i sciagniesz JEDEN a nie 5 zyskasz szybsze ladowanie strony. W css np @import + 1 plik glowny a w JS mozna roznie, np. generujac z nich 1 plik na serwerze i zapisujac do cache. I na koniec - zrob sobie prosty system szablonowania bo z tym php w html to daleko nie zajedziesz. Ten post edytował cbagov 9.06.2008, 11:36:38 |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 535 Pomógł: 27 Dołączył: 3.05.2005 Ostrzeżenie: (20%)
|
Cytat Nie inkluduj tez tak dziwacznie plikow JS bo to kompletnie nie ma sensu, natomiast jest sens jak pliki JS albo CSS polaczysz dynamicznie w 1 i sciagniesz JEDEN a nie 5 zyskasz szybsze ladowanie strony. Zrozum że to nie są małe pliki i to Twoje rozwiązanie uważam za bezsensowne. Kolejne pytanie po co mam w to ingerować szablony ? :| Trzymajmy się MCV jednak bez przesady. |
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%)
|
Trzymajmy się MCV jednak bez przesady. Chyba MVC (lub czasem mylony z MVP, a dla PHP to już prawie synonimy). A ja nie widzę abyś się trzymał tego wzorca, te <link> i <script> w konfiguracji jasno to pokazują. Nie wiem czemu takie informacje chcesz mieć w config, a nie wstawisz sobie include w szablonie głównym (bo chyba taki masz?). |
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 18 Dołączył: 19.04.2008 Ostrzeżenie: (10%)
|
Moze nie sa to male pliki z tego samego powodu, co jakosc pokazanego kodu, czyli nieporzadek.
Bezsensownych rozwiazan niestety nie stosuje. A szablony SWOJE bo to banalne do napisania. Wszystko razem powoduje, ze masz problem, ale skoro ja pisze bez sensu, to nie moj problem, pozdr. |
|
|
|
Post
#12
|
|
|
Grupa: Zarejestrowani Postów: 535 Pomógł: 27 Dołączył: 3.05.2005 Ostrzeżenie: (20%)
|
Cytat Chyba MVC (lub czasem mylony z MVP, a dla PHP to już prawie synonimy). A ja nie widzę abyś się trzymał tego wzorca, te <link> i <script> w konfiguracji jasno to pokazują. Nie wiem czemu takie informacje chcesz mieć w config, a nie wstawisz sobie include w szablonie głównym (bo chyba taki masz?). Bo jest taka opcja że jeden nagłówek jest wykorzystywany w wielu miejscach i nie chce aby w każdym jego wywołaniu includowało mi po 40 plików css i js które będą mieć ogromną wagę a tylko te które są potrzebne. A więc co doradzicie, rozumiem że config to nieodpowiednie miejsce dla jednak nie wiem jak to inaczej wykonać ? Po co szablony do tego ? Ten post edytował wlamywacz 9.06.2008, 20:28:49 |
|
|
|
Post
#13
|
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. |
Pliki js i css powinny być przypisane do konkretnych widoków lub akcji (zależy jak masz szkielet zaprojektowany).
Działa to na prostej zasadzie: Cytat layout: js: [plik, plik2] css: [plik1, plik2] templatka: js: [plik, plik2] css: [plik1, plik2] inna_templatka: js: [plik, plik2] css: [plik1, plik2] Zauważ, że wczytując inna_templatka w layout masz inne pliki niż templatka i layout Proste. Co do ilości plików - lepiej upoakować wszystko w jeden plik - dynamicznie podczas tworzenia cache. Zajmuje więcej miejsca, ale w dzisiejszych czasach to nawet nie jest zauważalne - byle było dobrze zarzadzane. Pozdrawiam. |
|
|
|
Post
#14
|
|
|
Grupa: Zarejestrowani Postów: 535 Pomógł: 27 Dołączył: 3.05.2005 Ostrzeżenie: (20%)
|
No to miałem takie coś przed wywołaniem każdej akcji wyświetlenia nagłówka:
i pierw mówili że źle to więc jak mam to zrobić ? |
|
|
|
Post
#15
|
|
|
Grupa: Zarząd Postów: 1 512 Pomógł: 2 Dołączył: 22.04.2002 Skąd: Koszalin |
poczytac jakies kursy o OOP i wrocic do nas z pytaniami :-) a nie robic chat z forum ...
zamykam |
|
|
|
![]() ![]() |
|
Aktualny czas: 12.03.2026 - 12:01 |