![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 2 Dołączył: 15.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie. Jak mogę stworzyć layout do CI? Znalazłem odpowiednią bibliotekę - Simplicity, ale mam z nią problem. Rozpakowałem ją i zawartość katalogu skopiowałem bezpośrednio do katalogu z CI. Struktura katalogów została więc taka, jaka jest przedstawiona tutaj: http://www.grocerycrud.com/codeigniter-simplicity. Przy próbie uruchomienia przykładu, pojawia się błąd - nie odnaleziono biblioteki jquery, która znajduje się w katalogu assets. Katalog ten (wraz z biblioteką) znajduje się bezpośrednio w katalogu z CI. A może znacie jakieś inne sposoby na stworzenie layoutu?
Pytanie drugie. W kontrolerze ustawiam różne warunki walidacji. W zależności od błędu, który napotka skrypt, wyświetla się inny komunikat, np. "użytkownik o takim loginie istnieje już w systemie", "nieprawidłowy format adresu e-mail", itp. Na całej stronie takich błędów moze być kilkaset. Wstępnie komunikaty o błędach umieściłem w kontrolerze, ale jak dojdzie layout, to pewnie po wystąpieniu błędu zobaczę białą stronę z napisem, czego wolałbym uniknąć. W manualu CI widziałem przykład w którym kod z błędem jest umieszczony w oddzielnym pliku widoku i to byłby dobry sposób, gdybym mógł stworzyć jeden plik dla wszystkich komunikatów o błędach, np. rejestracji. Mógłbym wysyłać kod błędu, a instrukcja Switch wyświetlałaby odpowiedni komunikat. Jak to zrobić? Z góry dzięki za pomoc ![]() Ten post edytował Testosteron 13.10.2014, 08:44:04 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 468 Pomógł: 36 Dołączył: 14.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Może zacznę od drugiego punktu: możesz do błędów użyć flashdata ($this->session->set_flashdata ....)a na stronie zrobic prosty warunek jezeli $this->session->flashdata to wyswietl <p>....</p>
Jeżeli chodzi o pierwszy podpunkt to żeby nie korzystać z zewnętrznych pluginow możesz stworzyć sobie plik template.php w którym zakodujesz sobie header i footer a jako content możesz dać echo $this->load->view($content) i zmienną content przesyłać w metodzie kontrolera czyli
Możesz również żeby nie powtarzać $this->load->view wszędzie zastosować metodę, która będzie wykonywana zawsze po wykonaniu metody kontrolera w kórej umieścisz ładowanie widoku. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 675 Pomógł: 58 Dołączył: 17.12.2013 Ostrzeżenie: (10%) ![]() ![]() |
1) https://github.com/sjlu/CodeIgniter-Bootstrap dobra kompilacja jesli chodzi o front-end. 2) jesli chodzi o jedna strone dla wszystkich bledow... to generalnie jak znasz jquery zachecal bym doinstalowac do wyzej wymienionej paczki angularjs i poczytac troszke o ajaxie / single app page wtedy w ogole nic nie przeladowujesz, caly widok ladujesz raz i tylko routery podmieniasz i data bindings ajaxem. Ten post edytował tzm 13.10.2014, 21:31:59 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 2 Dołączył: 15.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli chodzi o pierwszy podpunkt to żeby nie korzystać z zewnętrznych pluginow możesz stworzyć sobie plik template.php w którym zakodujesz sobie header i footer a jako content możesz dać echo $this->load->view($content) i zmienną content przesyłać w metodzie kontrolera czyli
Możesz również żeby nie powtarzać $this->load->view wszędzie zastosować metodę, która będzie wykonywana zawsze po wykonaniu metody kontrolera w kórej umieścisz ładowanie widoku. Ten sposób poskutkował, chociaż bawienie się modelem mvc nie przychodzi mi jeszcze łatwo i pewnie dużo czasu upłynie, zanim zacznę się swobodnie w tym poruszać. W tym przykładzie łądujesz drugi widok. Co zrobić, jeśli tworzę skrypt php? 2) jesli chodzi o jedna strone dla wszystkich bledow... to generalnie jak znasz jquery zachecal bym doinstalowac do wyzej wymienionej paczki angularjs i poczytac troszke o ajaxie / single app page wtedy w ogole nic nie przeladowujesz, caly widok ladujesz raz i tylko routery podmieniasz i data bindings ajaxem. JQuery zacząłem się uczyć, ale wyjechałem do pracy za granicę, więc musiałem przerwać naukę. Po powrocie zająłem się nauką CI, ale JQuery też chcę się nauczyć. Moja wiedza na dzień dzisiejszy jest skromna, ale mógłbym stworzyć plik widoku z ukrytymi elementami i włączać widoczność wyłącznie w przypadku wystąpienia danego błędu. Pliki, takie jak - style CSS, js, biblioteka JQuery powinna być umieszczona w pliku z widokami i normalnie załadowana? Nie sprawdziłem jeszcze wszystkich rzeczy o których mi napisaliście, ponieważ byłem cały dzień na uczelni. Zajmę się tym jutro. Ten post edytował Testosteron 14.10.2014, 20:43:59 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 468 Pomógł: 36 Dołączył: 14.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli tworzysz skrypt który ma nie wyświetlać widoku to po prostu go nie ładujesz
![]() Pliki do nagłówka możesz ładować normalnie po prostu w nagłówku, możesz stworzyć osobny plik do tego, możesz ładować te które wszędzie będą łądowane a np w zmiennych $data['css'] albo $data['js'] doładowywać do danych podstron te skrypty i style, które Cię interesują. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 2 Dołączył: 15.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Przykładowo - tworzę system rejestracji i mam jakiś tam kod php w kontrolerze. Ładuję widok z layoutem i w content chcę mieć formularz rejestracji. Przy czym, w tym samym pliku dokonuje się walidacja, przetwarzanie danych i wpisanie do MySQL Inny przykład, to np. drukowanie listy artykułów.
Ten post edytował Testosteron 15.10.2014, 06:13:54 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 468 Pomógł: 36 Dołączył: 14.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
no to nie rozumiem problemu
![]()
Jezeli w tej samej metodzie kontrolera bedziesz odbierał requesty formularza to na samej gorze dodaj
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 2 Dołączył: 15.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Chcę umieścić kod w tym samym pliku, np.
Treść jest wyświetlana, ale jednocześnie pojawia się błąd: Cytat Unable to load the requested file: .php
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 468 Pomógł: 36 Dołączył: 14.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
No bo zrobiłeś tam $this->load->view wewnatrz pliku template zapewne a raczej nie masz pliku o nazwie "Przykładowa treść.php", tam podajesz nazwe pliku
![]() |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 2 Dołączył: 15.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
To jak w końcu załadować skrypt znajdujący się w kontrolerze?
Dobre, kod mogę zrobić w jakiejś bibliotece, modelu, itp. Jak z poziomu kontrolera ZAŁADOWAĆ wynik pracy? Załóżmy, że mam dwa pliki (dla uproszczenia). W jednym znajduje się cały layout i z jego poziomu ładuję drugi widok - content. Co wstawić w widoku content? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 11:45 |