Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [CodeIgniter] Widok czy kontroler ?, Wiele widoków czy jeden i wiele metod kontrolera ?
bor1904
post
Post #1





Grupa: Zarejestrowani
Postów: 131
Pomógł: 1
Dołączył: 15.10.2009
Skąd: gdańsk

Ostrzeżenie: (0%)
-----


Witam.

Mam stronę z typowym układem (header, footer, left,right,body) i jak zwykle głównie i w największym stopniu zmienia się zawartość/wygląd body.

Wszystko niby proste i oczywiste, ale z braku doświadczenia co chwile wydaje mi się inaczej - proszę o pomoc.

Chodzi właściwie tylko o sekcje body.

Sekcje body mają w sumie 3 różne układy(layouty).

Dajmy przykład (ARTYKUŁ):

- Nagłówek
- małe zdjęcie po prawej oblane tekstem
- owy tekst (3-5 zdań)
- kilka podpunktów
- Zdanie (opcjonalnie)
- kilka podpunktów (opcjonalnie)
- stały fragment dla wszystkich artykułów (2 zdania)
- linia pozioma (opcjonalnie)
- lista numeryczna (opcjonalnie)


Uważam, że mając około 15 artykułów zawsze wyglądających podobnie powinienem zrobić widok body_art.php i zamieścić w nim oprawe graficzną i przyklejać całe bloki tekstu, które de facto zawarte są w kontrolerze art.php.

Czy to jest dobre rozwiązanie ? Czy dla takich w pełni stycznych rzeczy tworzy się odpowiednią ilość sztywno wypisanych widoków ?
(może dopowiem że artykuły to tylko część przyszłego portaliku)




Dajmy przykład (KALKULATOR):

-nagłówek
-tabela z polami formularza <opis><input> (wprowadzane dane przez userów)
-przyciski wyslij i resetuj
-tabela z polami formularza <opis><input> (przez value wyświetlane wyniki)
-podpis pod tabelą (opcjonalny)


[kalkulatory oprócz wyglądu graficznego bądą się zupełnie różniły i jest ich ponad 10, a może będzie więcej]

Pytanie czy wykorzystać helper form tworząc w osobnych metodach zawartość dla obu tabel formularza i przekazywać je do jednego tylko szablonu widoku czy to też jest statyczna strona i powinna być cała w widoku zdefiniowana a kontroler powinien tylko dokonać obliczeń i przesłąć wynik do widoku?



Wiem, że wielu z Was rozbawi to do łez, ale mimo wszystko prosiłbym o popchnięcie mnie w odpowiednim kierunku.

pozdrawiam
bor1904

PS jeżeli się niejasno wyraziłem to proszę dopytać.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
derdiusz
post
Post #2





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 3.12.2010

Ostrzeżenie: (0%)
-----


ja bym nie dawał w kontrolerze żadnej treści akapitów. co najwyżej np. tytuły wyświetlanych stron.

najlepiej stworzyć kilka widoków layoutów, np.
- layout1_view.php - układ 3 kolumnowy
- layout2_view.php - układ 2 kolumnowy
itp.

każdy layout powinien mieć miejsce na umieszczenie treści np. w postaci zmiennej $content:

  1.  
  2. $data = array(
  3. 'content' => $this->load->view('content/kalkulator1', null, true)
  4. );
  5.  
  6. $this->load->view('layouts/layout1_view', $data);
  7.  


Dzięki temu możesz dynamicznie zmieniać content jak i layout. Najprostszy sposób:

Załóżmy, że to metoda w kontrolerze odpowiedzialna za kalkulatory:
  1. function kalkulator($id)
  2. {
  3. $layout = 'layout-calc';
  4.  
  5. switch($id)
  6. {
  7. case 1: $c = 'kalkulator1'; break;
  8. case 2: $c = 'kalkulator-kredytow'; break;
  9. // ...itd.
  10. }
  11.  
  12. $data = array(
  13. 'content' => $this->load->view('content/calculators/'.$c.'_view', null, true);
  14. );
  15.  
  16. $this->load->view($layout.'_view', $data);
  17.  
  18. }


Switch realizuje wybranie odpowiedniego kalkulatora w zależności od podanego ID, potem pobieramy jego widok i zapisujemy w $data['content'] i wyświetlamy widok bazując na zmiennej $layout i przekazujemy do niego dane z tablicy $data.


--
Warszawa
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: 26.12.2025 - 12:09