przymierzam się do zbudowania czegoś większego

ogólnie rozumiem o co chodzi w MVC (albo mnie poprawcie, proszę):
kontroler:on decyduje który model i widok odpalić i co modelowi kazać, czyli np. dodaję nowego użytkownika:
kontroler:załaduj model "użytkownicy"=>
model:dodaj nowego=>
model:daj mi listę wszystkich=>
model:daj mi info czy nowy się dodał=>
kontroler:załaduj widok "użytkownicy"=>
kontroler:poinformuj widok co się z nowym stało=>
kontroler:daj widokowi listę wszystkich
widok:wyświetl listę i inne takie.
widok:on w konstruktorze dostaje wszystkie dane i ma je zaprezentować, czasem objawi jakiś formularz który potem kontroler przekaże modelowi itp...
model:on po załadowaniu dostaje od kontrolera rozkazy w stylu: dodaj to, usuń tamto, wyświetl (w sensie zwróć) cośtam kontrolerowi, żeby on mógł przekazać to dalej do widoku (nie bezpośrednio: model=>widok)
a co jeśli wszystko poszło zgodnie z planem, widok dostał np. listę użytkowników, ale chciałby każdemu zrobić listę 3 ostatnich wpisów na forum?
Muszę wtedy z widoku odwołać się do modelu? Czy muszę wtedy zmienić kontroler, tak żeby zawczasu przekazał dodatkowe potrzebne dane?
i jak zrobić kilka wersji strony na różne okazje?
model jest zawsze ten sam, ale na komputerze mogę potrzebować tych ostatnich 3 wpisów na forum dla każdego, ale na telefonie już nie.
-Trzeba wtedy zrobić kilka kontrolerów które będą decydowały jaki widok (na jakie urządzenie) i które modele (odpowiednik widoku w wersji na telefon nie potrzebuje wszystkich danych co widok na komputer) trzeba załadować?
-Czy może tylko jeden kontroler i to widok ma decydować który szablon (telefon/komputer) załadować? (trochę marnotrawstwo zasobów, jeśli widok dostanie dane których nie potrzebuje)
To chyba tyle na razie

edukuję się na ten temat tu na forum i na php.pl i co jeszcze google znajdzie, ale niektóre przykłady są przekombinowane


z góry dzięki za odpowiedzi i pozdrawiam
Paweł Lis