> I want to have different sidebars, sorry for the confusing
> explanation.
You could pass up which sidebar you want (or even the full ewc for it)
in a phased_var
>
>
> 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
-~----------~----~----~----~------~----~------~--~---