SearchTermsCloud

    Table of contents
    No headers
    /**
     * Terms Cloud
     * Provides a visual cloud of commonly searched terms
     */
    
    var uri = $uri ?? page.uri;
    var limit = $limit ?? 20;
    
    var dateSince = $dateSince;
    var dateBefore = $dateBefore ?? date.now;
    var term = $term; 
    
    // fetch the terms
    var queryTerms = searchanalytics.Terms{
        limit: limit,
        since: dateSince,
        before: dateBefore
    };
    
    if (#queryTerms.terms < 1) {
        <div class="no-results">
            <div class="no-results-text">
                wiki.localize("MindTouch.SearchAnalytics.data.empty")
            </div>
        </div>
    } else {
    
    // Begin output
    <div class="mt-search-terms-cloud">
    
    // results output
    var max = list.reduce(queryTerms.terms, "(($item.count >= $value) ? $item.count : $value)", 0);
    
    // sort terms alphabetically
    var alphaTerms = list.sort(queryTerms.terms, "term");
    
    <ul class="terms">
    foreach (var queryTerm in alphaTerms)
    {
        var average = queryTerm.count / max;
        var class = "term rate-";
        if (average > .75) {
            let class ..= "fire";
        } else if (average > .5) {
            let class ..= "high";
        } else if (average > .25) {
            let class ..= "med";
        } else {
            let class ..= "low";
        }
    
        if (term == queryTerm.term) {
            let class ..= " active";
        }
    
        <li class=(class)>
            <a href=(uri & {term: queryTerm.term})>queryTerm.term</a>
        </li>
    }
    </ul>
    </div>
    } // end no-results
    Tag page (Edit tags)
    • No tags
    Page statistics
    5147 view(s), 1 edit(s) and 1610 character(s)

    Comments

    You must login to post a comment.

    Attach file

    Attachments