Managing views, how do you do it? |
[eluser]eightamrock[/eluser]
Hello All, I'm new to CI, but I am familiar with MVC architectures such as ROR and Cake. The question I have always struggled with is how to properly manage views. Do you construct your views from header and footer files, or do you have a view for every page/function that feeds dynamic data? I am used to one central view that includes a switch function that pulls the proper layout for a page. This makes managing views easy, but I am struggling with how to do something similar in CI. I know ROR offers a default layout that will pass in data from your function automatically. I'm open to suggestion or just a healthy debate on the best way to do it. -Sam
[eluser]John_Betong[/eluser]
[quote author="eightamrock" date="1252451735"]Hello All, I'm new to CI, but I am familiar with MVC architectures such as ROR and Cake. The question I have always struggled with is how to properly manage views. Do you construct your views from header and footer files, or do you have a view for every page/function that feeds dynamic data? I am used to one central view that includes a switch function that pulls the proper layout for a page. This makes managing views easy, but I am struggling with how to do something similar in CI. I know ROR offers a default layout that will pass in data from your function automatically. I'm open to suggestion or just a healthy debate on the best way to do it. -Sam[/quote] Search this forum for "Partial views" and all will be revealed
[eluser]BrianDHall[/eluser]
Personally I use individual views for things relating to my basic site template, like header, footer, leftnav, rightnav. I initialize these into properties I set in my controller in the constructor, such as: Code: class DefaultController extends Controller { Then in my pages I load their specific view, such as 'frontpage', load it into $this->content, and then load the default view which prints out the values for the predefined elements in their proper HTML placements. I further organize by naming views with '_form' that are just forms, and then I stick '_success' and '_failure' as appropriate so I know what they are supposed to be used for - as needed, of course. I like the flexibility and automation it provides, and it allows new pages to be built by just using 2 lines of code: Code: function index() And if I need 1 function for some reason to totally change (or just add to) any of the navigation or page elements its easy and lightweight. And it works, which I like the most of all
[eluser]bretticus[/eluser]
I actually have designers edit my views from time to time so I really stick to the to basics. Heaven forbid that view can't be clearly edited in Dreamweaver Design mode!
[eluser]eightamrock[/eluser]
wow some really great feedback. I searched Partial views and got a lot of great data. BrianD, I really like your method. I am used to something similar in my own app designs. I would construct pages through includes so if the nav changed or anything like that, I would only have to change it in one place. With an MVC architecture, I guess it makes that even easier! Bretticus, I know the feeling. I have worked in a custom website shop for 5 years, designers, copywriters, SEO specialists etc. If they can't GUI it, it cant be done... Thanks!
[eluser]bretticus[/eluser]
Be sure to checkout this simple layout library. Here's a way you can use hooks to generate a base layout.
[eluser]eightamrock[/eluser]
Thanks! This is great, very similar in design to what BrianD was explaining. |
Welcome Guest, Not a member yet? Register Sign In |