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
-~----------~----~----~----~------~----~------~--~---

Reply via email to