Helma Logo
main list history
previous version  overview  next version

Version 15 by zumbrunn on 07. December 2005, 14:41

This handler is invoked whenever the topiclist view is rendered. When the handler is invoked, "that" is the object which was passed as the second parameter of renderView(view,that) or an empty/default object otherwise. It is the object that will be used as the current and only accessible scope when rendering the view. Views would be E4X Javascript XML objects. When Helma would render these views, it would parse them for "lookup", "if" and "for" attributes and then evaluate them in the context of "that". When parsing the "for" attributes, Helma would loop through the indicated object with <nobr>for(var $foo in foo)</nobr> and repeat the specified element, with <nobr>foo$ == foo[$foo]</nobr>

./Site/topiclist.view.handler

    if (this.topics.count()) {
        that.topics = {};
        for (var topic in this.topics) {
            that.topics.name = this.topics[topic].name;
            that.topics.count = this.topics[topic].comments.count();
        }
    }

./Site/topiclist.view

    <table border="1">
        <tr if="topics">
            <th lookup="true">Topic Name</th>
            <th lookup="true">Comment Count</th>
        </tr>
        <tr for="topics" class="rowcolor{($topics % 2)}">
            <td>topics$.name</td>
            <td if="!topics$.count" lookup="true">No comments yet</td>
            <td if="topics$.count == 1" lookup="true">topics$.count comment</td>
            <td if="topics$.count > 1" lookup="true">topics$.count comments</td>
        </tr>
        <tr if="!topics">
            <td colspan="2" align="center" lookup="true">This list is empty</td>
        </tr>
    </table>

./Site/list.control

    var content = {
        main : this.renderView('topiclist')
    };
    var page = this.renderView(Page.views.default, content);
    return page;


The handler is invoked whenever the topiclist view is rendered. When the handler is invoked, "that" is the object which was passed as the second parameter of renderView(view,that) or otherwise an empty/default object. It is the object that will be used as the current and only accessible scope when rendering the view.

Views would be E4X Javascript XML objects. When Helma would render these views, it would parse them for "lookup", "if" and "for" attributes and then evaluate them in the context of "that". When parsing the "for" attributes, Helma would loop through the indicated object with <nobr>for(var $foo in foo)</nobr> and repeat the specified element, with <nobr>foo$ == foo[$foo]</nobr>

     removed
     added