I want to have different sidebars, sorry for the confusing
explanation.
Using your hook/1, this is the setup I have now for a sidebar that is
always the same:
html_container_controller.erl:
index(A, Ewc) ->
Ewc.
html_container_view.et:
<%@ index(Data) %>
<html>
<head>
</head>
<body>
<div id="header">
header
</div>
<div id="content">
<% Data %>
</div>
<div id="footer">
footer
</div>
</body>
</html>
main_layout_controller.erl:
index(A, Ewc) ->
[Ewc, {ewc, sidebar, [A]}].
main_layout_view.et:
<%@ index([Data, Sidebar]) %>
<div id="main">
<% Data %>
</div>
<div id="sidebar">
<% Sidebar %>
</div>
For a different sidebar on each page, does it mean to get rid of the
main_layout_controller/view and put the stuff in entry_controller/view
and so on?
e.g.:
entry_controller.erl:
index(A) ->
Entries = entry:find_with({order_by, [{id, desc}]}),
[[{ewc, entry, entry, [A, Entry]} || Entry <- Entries], {ewc,
sidebar, entry_index, [A]}].
entry_view.et:
<%@ index([Entry, Sidebar]) %>
<div id="main">
<h1>Entries</h1>
<% Entry %>
</div>
<div id="sidebar">
<% Sidebar %>
</div>
<%@ entry(...) %>
...
This would mean to repeat the #main and #sidebar divs in every view,
so it doesn´t feel right to me.
Another thing I can´t understand is how to make use of the phasedvars,
which controller should I put them in and what would my views look
like then.
Say I want to have a html_container_view.et like this:
<html>
<head>
<% Title %>
<% RSS-Link %>
<% Whatever %>
</head>
<body>
<div id="header">
header
</div>
<div id="content">
<% Data %>
</div>
<div id="footer">
footer
</div>
</body>
</html>
Thanks in advance for bringing some light in the dark. :)
On 19 Dez., 01:16, "Yariv Sadan" <[EMAIL PROTECTED]> wrote:
> On Dec 17, 2007 10:01 PM, maddiin <[EMAIL PROTECTED]> wrote:
>
>
>
>
>
> > Hi,
>
> > thanks for the answers, it was quite helpful. Most important: I found
> > out how to make use of the component system and was able to put all
> > logic in controllers.
>
> > Following the checklist:
>
> > 1. I copied David´s example and it works for now. I will ask later for
> > more help about it.
>
> > 2.+4. Now that I know how to use controllers and views correctly it
> > seems odd to me to have directories for each component. :=) Most
> > confusing for me was that I thought I have to use an app_view.erl, saw
> > that in the musician example and the tutorial from
> > progexpr.blogspot.com. So if you talk about views you mean .et files,
> > I wasn´t sure about and that was confusing me. The example in the
> > foreach-topic was really helpful, more examples would be great.
>
> The app views used to be a part of ErlyWeb, but they were replaced by
> components + 'phased' rendering. Unfortunately, those old tutorials
> are still on my blog so I see where the confusion would come from :)
>
>
>
> > 3. Still not understanding this, I just know how to use a sidebar that
> > is the same on every page. I would appreciate if someone could give me
> > an example based on the blog instead of a general explanation.
>
> Do you want a different sidebar for every page, or the same sidebar
> (but with dynamic contents)? If you want a different sidebar, you can
> include it in your components directly, so each component could chose
> which sidebar to include. If you want the same sidebar, include it in
> the html_container (or the main_layout_container as in my previous
> email).
>
> I think you probably want the same sidebar, in which case I would
> create a sidebar component and include it in main_layout_container
> next to the requested component, e.g.:
>
> sidebar_controller:
>
> index(A) ->
> {data, ...}.
>
> sidebar_view:
>
> <%@ index(Data) %>
> <div id="sidebar">
> <h1>sidebar</h1>
> <% Data %>
> </div>
>
> main_layout_container_controller:
>
> index(A, Ewc) ->
> [{ewc, sidebar, [A]},
> Ewc].
>
> main_layout_container_view.et:
>
> <%@ index([Sidebar, Data]) %>
> <table>
> <tr>
> <td><% Sidebar %></td>
> <td><% Data %></td>
> </tr>
> </table>
>
> app_controller:
>
> hook(A) ->
> {phased,
> {ewc, A},
> fun(Ewc, Data, _PhasedVars) ->
> {ewc, html_container, [A, {ewc_main_layout_container, [A, {data,
> Data}]}]}
> end}
>
>
>
> > 5. I renamed the tables to use singular names and ran into a name
> > clash (using author now instead of user). So if you are new to Erlang/
> > ErlyWeb, too, then have a look athttp://erlang.org/doc/man_index.html
> > and make sure, you don´t name your sql-tables/controllers like one of
> > the modules listed in the Erlang manual page.
>
> That one got me too. Now I use 'usr' :)
>
> Yariv
>
>
>
> > maddiin
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"erlyweb" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/erlyweb?hl=en
-~----------~----~----~----~------~----~------~--~---