Plugin Directory

Changeset 768434


Ignore:
Timestamp:
09/08/2013 12:09:55 AM (13 years ago)
Author:
marcelioleal
Message:

add or in expression, fix execution, make examples

File:
1 edited

Legend:

Unmodified
Added
Removed
  • siteapps/trunk/views/widgets/onload.php

    r768400 r768434  
    2323    function mustRunWidget (segments, expression) {
    2424        // expression must be a logical expression of bucket values. eg: (A or B) and C
    25         var userBuckets = segments
     25       
     26        var userSegments = segments
    2627          , expressionForEval = expression.replace(/\s+and\s+/ig, '&&').replace(/\s+or\s+/ig, '||')
    27           , regexString = []
    2828          , regex = null
    2929          , i = 0;
    3030
    31         for(i in userBuckets) {
    32             regexString.push(userBuckets);
     31        var tokensMy = expressionForEval.replace(/\(/g, "").replace(/\)/g, "").replace(/\&\&/g, ' ').replace(/\|\|/g, ' ');
     32        var allSegments = tokensMy.split(' ');
     33
     34        for(var s in allSegments) {
     35            var replacement = 'false';
     36            var seg = allSegments[s];
     37            if (userSegments.indexOf(seg) != -1) {
     38                replacement = 'true';
     39            }
     40            regex = new RegExp(allSegments[s], 'ig');
     41            expressionForEval = expressionForEval.replace(regex, replacement);
    3342        }
    34         regexString = regexString.join('|');
    35         regex = new RegExp(regexString, 'ig');
    36 
    37         expressionForEval = expressionForEval.replace(regex, 'true');
     43        consoleWrite('expression: ' , expressionForEval);
     44       
    3845        try {
    39             eval(expressionForEval);
     46            return eval(expressionForEval);
    4047        } catch (err) {
     48            consoleWrite('error: ' , err);
    4149            return false;
    4250        }
     
    4755    var widgetsToShow = toArray(<?php print $widgetsToShow; ?>),
    4856    widgetsToHide = toArray(<?php print $widgetsToHide; ?>),
    49     expressionsToShow = toArray({"recent-posts-2": "default_new_visitor", "recent-comments-2": "mobile or default_new_visitor"});
     57    expressionsToShow = toArray({"recent-posts-3": "alow", "recent-posts-2": "default_new_visitor", "recent-comments-2": "mobile or default_new_visitor", "archives-2": "((marcelio or errado) and (teste or default_new_visitor)) or default_new_visitor"});
    5058   
    5159
     
    6876            consoleWrite('widget: ', ex);
    6977            var show = mustRunWidget(segments, expression);
    70             consoleWrite('show', show);
    7178            if (show) {
    7279                changeDisplay([ex], "block");
Note: See TracChangeset for help on using the changeset viewer.