ListTopicSubpages

    Table of contents
    No headers
    /***
        USAGE:
    
        ListTopicSubpages(topic_page, pages, categories)
            Generates a list of subpages for a given topic page
    
        PARAMETERS:
    
        topic_page : page
            Root topic page for which to display sublist 
    
        pages : list
            List of all topic pages the guide covers. Expected to be tagged with tutorial, reference, troubleshooting or topic.
    
        (optional) categories : list of maps
            Array of items such as [{category: 'tutorial'}, {category:'reference'}] containing the fields to search for and display.
    
    ***/
    
    var topic_page = $topic_page ?? $0;
    var pages = $pages ?? $1;
    var categories = $categories ?? $2 ?? [
        { category: 'topic' },
        { category: 'tutorial' },
        { category: 'reference' },
        { category: 'troubleshooting' }
    ];
    var subpages = [ p foreach var p in pages where p.parent_id == topic_page.id ];
    var pages_in_category = { };
    var has_subpages = false;
    foreach(var c in categories) {
        let pages_in_category = pages_in_category .. {
            (c.category): [ p foreach var p in subpages where p[c.category] ]
        };
        if(#pages_in_category[c.category]) {
            let has_subpages = true;
        }
    }
    if(!has_subpages) {
        return;
    }
    <div class="noindex">
        <div class="mt-idf-subtopic-container">
            foreach (var c in categories) {
                if(#pages_in_category[c.category]) {
                    <ul id=('mt-idf-topic-' .. topic_page.id .. '-' .. c.category .. '-details')
                        class=('mt-idf-topic-' .. topic_page.id .. '-details')
                    >
                        foreach (var p in pages_in_category[c.category]) {
                          <li>
                            web.link(p.uri, p.title);
                            <span class="mt-idf-category">'(' .. wiki.localize('MindTouch.IDF.guide.category.' .. c.category) .. ')'</span>
                         </li>
                       }
                    </ul>
                }
            }
        </div>
    </div>
    
    Tag page
    You must login to post a comment.

    Copyright © 2011 MindTouch, Inc. Powered by