![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 359 Pomógł: 12 Dołączył: 16.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
wpadłem na oryginalną koncepcję średniej strony internetowej jednocześnie wykorzystując szablon, a w plikach dołączeniowych nadawać zmiennym odpowiednie wartości. Niestety mam pewien problem, mianowicie mając taki kod:
Dużym problemem jest to, że zmienna $title jest w plikach dołączanych i w związku z tym zanim się ona załaduje, tytuł jest już gotowy ale bez tej zmiennej. Czy ma ktoś z was pomysł na rozwiązanie tego problemu ? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%) ![]() ![]() |
Eee, jak zmienna może być ustawiana w .html ? Chyba, że źle zrozumiałem. Popraw bezpieczeństwo - takie coś jak include ($_GET['page'].".html"); to spora dziura w kodzie.
PS. Po co wyświetlasz napis "Zmienna ..."? (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Nom daj tam jakis basename() chociaz albo statyczna tablice plikow do include() a jak ci sie nie chce podaj adres www strony to zawsze jak mi sie bedzie nudzic mozna cos pokombinowac (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 359 Pomógł: 12 Dołączył: 16.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Znaczy jeśli chodzi o includowanie plików, to te linijki miały po prostu oznaczać, że ten kod ma się tam pojawić (zastosowałem już mechanizmy zabezpieczające i tak dalej, tylko wpisałem taki prosty kod, aby wszystko było przejrzyście). Więc o to się nie musicie martwić. Bardziej mnie martwi jak wyciągnąć tą zmienną.
Ten napis Zmienna wpisałem, ponieważ na początku myślałem, że nic się w ogóle nie chce pojawić. Nie wiem, czy dobrze mnie zrozumieliście, więc może wytłumaczę jeszcze raz: Każdy plik, którego mogę wrzucić treść do szablonu ma na samym początku zmienną z opisem tytułu. Nie mogę jednak go wgrać, ponieważ najpierw jest pobierana zmienna z tytułem (której jeszcze tak naprawdę nie ma), a potem jest includowana treść razem ze zmienną. Mephistofeles o .html też się nie martw - w konfiguracji serwera dopisałem linijkę przetwarzającą kod php także w plikach z rozszerzeniem .html Sorry, że odświeżam, ale jakoś nikt mi nie odpowiedział, a problem został :/ . Żeby nie było, że chcę gotowca, wymyśliłem parę rozwiązań. ROZWIĄZANIE I Utworzenie pliku na przykład strona.phtml, w którym są zmienne, używane w szablonie: 1. Przez zmienne:
2. Przez tablice asocjacyjne 3. Przez utworzenie klasy page, i różnych fajnych pól/metod ROZWIĄZANIE II Polegałoby na tym, aby wszystkie potrzebne rzeczy, które mogą się różnić, trzymać w bazie danych, na przykład tabeli pages Kod |page_id|page_title|page_content| itd...1. Dzięki klasie pobierać te dane i potem je wrzucać w odpowiednie miejsca. 2. Używać statycznych funkcji zwracających dane. albo wypisujących je w odpowiedniej postaci. Które rozwiązanie by nie było najlepsze, najchętniej (nie koniecznie) zrobiłbym to używając OOP, ponieważ wydaje mi się to dobrym rozwiązaniem. A może wy macie jakiś sposób ? Ten post edytował Asmox 12.03.2009, 22:22:37 |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
A nie możesz po prostu wdrożyć modelu MVC?
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 359 Pomógł: 12 Dołączył: 16.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
ok tylko nie wiem za bardzo jak to zrobić. Nie mów mi co to mvc, bo to już akurat wiem, nie wiem tylko jak wykorzystać ten model w moim przykładzie
@EDIT: Nie chcę być niemiły, ale jeżeli w końcu niewiadomo jak z tym MVC, to powiedzcie coś o moich pomysłach (te, co napisałem wyżej). |
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat ok tylko nie wiem za bardzo jak to zrobić. Nie mów mi co to mvc, bo to już akurat wiem Jedno przeczy drugiemu... Cytat Nie chcę być niemiły, ale jeżeli w końcu niewiadomo jak z tym MVC A nie pomyślałeś, że są Święta i nie każdy siedzi przed PC? Poza tym, mogłeś za ten czas spokojnie liznąć podstaw, co to jest ten "MVC" w praktyce. A właśnie on jest rozwiązaniem Twojego problemu. Podpowiem: właściwie, to próbujesz go zrealizować, ale najpierw poczytaj co nieco. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 32 Dołączył: 14.04.2008 Skąd: Lenkowski.net Ostrzeżenie: (0%) ![]() ![]() |
MVC jest proste, najlepiej przyjrzyj się istniejącym frameworkom.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 359 Pomógł: 12 Dołączył: 16.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Powiem tak: Wiem co to jest model MVC, jak działa i gdzie się przydaje, wiem co to jest Zend Framework, ale nie wiem jak wykorzystać te narzędzia w praktyce. Czy moglibyście mi podpowiedzieć, jak można by było to zrobić, albo podali jakiś tutorial do FW?
|
|
|
![]()
Post
#10
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Czy moglibyście mi podpowiedzieć, jak można by było to zrobić, albo podali jakiś tutorial do FW? Cytat najlepiej przyjrzyj się istniejącym frameworkom.
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 74 Pomógł: 4 Dołączył: 7.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
na poczatek przeklep linijka po linijce i zobacz jak dziala potem stanie sie jasnosc
http://wortal.php.pl/phppl/wortal/artykuly...e_aplikacji/mvc |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 359 Pomógł: 12 Dołączył: 16.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
No już coś kojarzę coraz lepiej z tym MVC, ale na razie próbuję jeszcze robić to po swojemu, chociaż niektórzy mówią, że moje "dzieła", upodabniają się do MVC. Tak więc jestem chyba na dobrej drodze. Wiem, że zaraz ktoś znowu wyskoczy z pomysłem "daruj sobie, obejrzyj ZF/Symfony/KOHANA/(tu wstaw nazwę swojego ulubionego frameworka)", ale na razie jakoś nie potrafię.
Ostatnio doznałem pewnego olśnienia, mianowicie coś takiego: (1) Tworzymy plik szablonu, dając ewentualne zmienne w nawiasy klamrowe, na przykład: <title>{title}</title>. (2) Tworzymy plik tekstowy/htmlowy/inny według zasady, że pierwsza linijka będzie traktowana jako tytuł strony, pozostała jako treść (3) W pliku głównym includowany jest plik treści i renderowany, czy coś takiego, z plikiem szablonu, zamieniając zmienne {var} w tekst z pliku. Chciałbym usłyszeć, co o tym twierdzicie, jakie są wady tego rozwiązania itd... chociaż mam wrażenie, że będzie ich dużo :| P.S. Właśnie sobie poczytałem coś o Smarty, z którego zaczerpnąłem szablony: http://wortal.php.pl/phppl/wortal/artykuly...y_szablonowania Wygląda na to, że mój pomysł nie był w ogóle dobry. Może spróbowałbym te strony zrobić podejściem obiektowym...? Sorry, że marudzę, ale na razie jakoś mnie odpycha od frameworków. Ten post edytował Asmox 1.06.2009, 19:26:00 |
|
|
![]()
Post
#13
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Sorry, że marudzę, ale na razie jakoś mnie odpycha od frameworków. Prędzej czy później MVC/frameworki Cię po prostu czekają... Cytat "daruj sobie, obejrzyj ZF/Symfony/KOHANA/(tu wstaw nazwę swojego ulubionego frameworka)", ale na razie jakoś nie potrafię. To poszukaj jakichś prostych implementacji MVC typu TinyMVC, etc. |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 359 Pomógł: 12 Dołączył: 16.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Już żeby nie zakładać nowego tematu to będę dalej pisał tutaj:
W ogóle nie rozumiem podejścia MVC dlatego, że nie umiem stworzyć kontrolera. Gdzie bym nie szukał, to albo piszą jak zrobić MVC dla newsów albo łączą niektóre elementy tego wzorca ze sobą (na przykład na php.pl). Bardzo chciałbym sobie jakoś z tym poradzić, ale nie wiem paru rzeczy: 1. Na czym polega ta cała "wymienność widoków i kontrolerów"? 2. Skąd kontroler ma wiedzieć, którego modelu użyć do pobrania danych dla widoku? 3. Czy jedynym zadaniem akcji zainkludowanie widoku i wyświetlenie go na stronie? |
|
|
![]()
Post
#15
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat 1. Na czym polega ta cała "wymienność widoków i kontrolerów"? Masz model, który wyciąga dane z pliku. Ale masz inny kaprys i zmieniasz na taki model, który wyciąga z bazy. Co do widoków - jeden generuje Ci HTML, chcesz RSS? Zostawiasz kontroler i modele te same, zmieniasz widok na generujący XML. Cytat 2. Skąd kontroler ma wiedzieć, którego modelu użyć do pobrania danych dla widoku? To piszesz w kodzie kontrolera. [; Cytat 3. Czy jedynym zadaniem akcji zainkludowanie widoku i wyświetlenie go na stronie? Nie - załadowanie modeli, przetworzenie parametrów zapytania, przygotowanie zmiennych dla widoku. To w takim skrócie. [; |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 32 Dołączył: 14.04.2008 Skąd: Lenkowski.net Ostrzeżenie: (0%) ![]() ![]() |
Kiedyś też miałem z tym straszne problemy (każdy kiedyś zaczynał). Więc polecam Ci odwiedzić stronę http://framework.zend.com i obejrzeć sobie video tutorial, od razu zrozumiesz jak to działa. Dodatkowo odwieź phpedię, jest tam to całkiem banalnie wyjaśnione.
A najprosciej. Zacznij od pliku php który za pomocą odpowiednich parametrów adresu, czy to GET czy ścieżka php (index.php/sraka), wywołaj odpowiedni kontroller - czyli to czym się zajmuje aplikacja i tym co przetwarza ci zadania, czyli pobiera ci modele (po prostu includuje klasy modelu i używa je), i rysuje odpowiednią stronę za pomocą pliku z kodem html i tym co każde napisać konrtoller. Proste? mam nadzieję że zrozumiałeś (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 359 Pomógł: 12 Dołączył: 16.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Jeszcze mam pytanie w sprawie tego co napisał erix.
Cytat Masz model, który wyciąga dane z pliku. Ale masz inny kaprys i zmieniasz na taki model, który wyciąga z bazy. Co do widoków - jeden generuje Ci HTML, chcesz RSS? Zostawiasz kontroler i modele te same, zmieniasz widok na generujący XML. Czyli jeden kontroler może obsługiwać tylko jeden model i tylko jeden widok ? Cytat Zacznij od pliku php który za pomocą odpowiednich parametrów adresu, czy to GET czy ścieżka php (index.php/sraka), wywołaj odpowiedni kontroller - czyli to czym się zajmuje aplikacja i tym co przetwarza ci zadania, czyli pobiera ci modele (po prostu includuje klasy modelu i używa je), i rysuje odpowiednią stronę za pomocą pliku z kodem html i tym co każde napisać konrtoller. Proste? mam nadzieję że zrozumiałeś (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Wybacz, ale nic nie zrozumiałem. Załóżmy że mam stronę i chcę zastosować na niej MVC. Ponieważ nagłówek i stopka mają być w każdym przypadku takie same, chciałbym je przenieść do innego pliku, na przykład zrobić taki nagłówek: Wtedy w widoku miałbym coś takiego:
Nie wiem, czy model miałby się zajmować załączaniem plików, czy nie, ale mógłby mi ktoś pokazać w jaki mniej więcej sposób to zrobić? (W sensie pokazać co ma być w modelu co w kontrolerze i jakie funkcje) Bo ja sam już się w tym pogubiłem Ten post edytował Asmox 20.06.2009, 21:04:14 |
|
|
![]()
Post
#18
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Czyli jeden kontroler może obsługiwać tylko jeden model Nie - masz np. kontroler strony głównej - wczytujesz model newsów, użytkownika, itp. Cytat i tylko jeden widok ? Generalnie jeden, ale można również stosować zagnieżdżenia; wszystko zależy od implementacji. |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 359 Pomógł: 12 Dołączył: 16.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Zobaczcie jeszcze na mój edit
Ten post edytował Asmox 20.06.2009, 21:05:24 |
|
|
![]()
Post
#20
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Nie wiem, czy model miałby się zajmować załączaniem plików, czy nie, ale mógłby mi ktoś pokazać w jaki mniej więcej sposób to zrobić? (W sensie pokazać co ma być w modelu co w kontrolerze i jakie funkcje) Bo ja sam już się w tym pogubiłem No to przecież tytuł jest globalny dla strony, nie? Tak w ogóle, to możesz stosować coś takiego w akcji kontrolera:
A jeśli chodzi o nagłówki, itp - to już zależy od widoku; możesz dołączać. PS. Do widoku przydaje się extract" title="Zobacz w manualu PHP" target="_manual pod warunkiem, że działa w trybie tworzenia referencji. [; |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 16:43 |