[ Index ]

PHP Cross Reference of BuddyPress

title

Body

[close]

/src/bp-forums/bbpress/bb-admin/js/ -> utils.js (source)

   1  // utility functions
   2  function convertEntities(o) {
   3      var c, v;
   4      c = function(s) {
   5          if (/&[^;]+;/.test(s)) {
   6              var e = document.createElement("div");
   7              e.innerHTML = s;
   8              return !e.firstChild ? s : e.firstChild.nodeValue;
   9          }
  10          return s;
  11      }
  12  
  13      if ( typeof o === 'string' ) {
  14          return c(o);
  15      } else if ( typeof o === 'object' ) {
  16          for (v in o) {
  17              if ( typeof o[v] === 'string' ) {
  18                  o[v] = c(o[v]);
  19              }
  20          }
  21      }
  22      return o;
  23  }
  24  
  25  var wpCookies = {
  26  // The following functions are from Cookie.js class in TinyMCE, Moxiecode, used under LGPL.
  27  
  28      each : function(o, cb, s) {
  29          var n, l;
  30  
  31          if (!o)
  32              return 0;
  33  
  34          s = s || o;
  35  
  36          if (typeof(o.length) != 'undefined') {
  37              for (n=0, l = o.length; n<l; n++) {
  38                  if (cb.call(s, o[n], n, o) === false)
  39                      return 0;
  40              }
  41          } else {
  42              for (n in o) {
  43                  if (o.hasOwnProperty(n)) {
  44                      if (cb.call(s, o[n], n, o) === false) {
  45                          return 0;
  46                      }
  47                  }
  48              }
  49          }
  50          return 1;
  51      },
  52  
  53      getHash : function(n) {
  54          var v = this.get(n), h;
  55  
  56          if (v) {
  57              this.each(v.split('&'), function(v) {
  58                  v = v.split('=');
  59                  h = h || {};
  60                  h[v[0]] = v[1];
  61              });
  62          }
  63          return h;
  64      },
  65  
  66      setHash : function(n, v, e, p, d, s) {
  67          var o = '';
  68  
  69          this.each(v, function(v, k) {
  70              o += (!o ? '' : '&') + k + '=' + v;
  71          });
  72  
  73          this.set(n, o, e, p, d, s);
  74      },
  75  
  76      get : function(n) {
  77          var c = document.cookie, e, p = n + "=", b;
  78  
  79          if (!c)
  80              return;
  81  
  82          b = c.indexOf("; " + p);
  83  
  84          if (b == -1) {
  85              b = c.indexOf(p);
  86  
  87              if (b != 0)
  88                  return null;
  89  
  90          } else {
  91              b += 2;
  92          }
  93  
  94          e = c.indexOf(";", b);
  95  
  96          if (e == -1)
  97              e = c.length;
  98  
  99          return decodeURIComponent(c.substring(b + p.length, e));
 100      },
 101  
 102      set : function(n, v, e, p, d, s) {
 103          document.cookie = n + "=" + encodeURIComponent(v) +
 104              ((e) ? "; expires=" + e.toGMTString() : "") +
 105              ((p) ? "; path=" + p : "") +
 106              ((d) ? "; domain=" + d : "") +
 107              ((s) ? "; secure" : "");
 108      },
 109  
 110      remove : function(n, p) {
 111          var d = new Date();
 112  
 113          d.setTime(d.getTime() - 1000);
 114  
 115          this.set(n, '', d, p, d);
 116      }
 117  };
 118  
 119  // Returns the value as string. Second arg or empty string is returned when value is not set.
 120  function getUserSetting( name, def ) {
 121      var o = getAllUserSettings();
 122  
 123      if ( o.hasOwnProperty(name) )
 124          return o[name];
 125  
 126      if ( typeof def != 'undefined' )
 127          return def;
 128  
 129      return '';
 130  }
 131  
 132  // Both name and value must be only ASCII letters, numbers or underscore
 133  // and the shorter, the better (cookies can store maximum 4KB). Not suitable to store text.
 134  function setUserSetting( name, value, del ) {
 135      if ( 'object' !== typeof userSettings )
 136          return false;
 137      
 138      var c = 'bb-user-settings-' + userSettings.uid, o = wpCookies.getHash(c) || {}, d = new Date(), p,
 139      n = name.toString().replace(/[^A-Za-z0-9_]/, ''), v = value.toString().replace(/[^A-Za-z0-9_]/, '');
 140  
 141      if ( del ) {
 142          delete o[n];
 143      } else {
 144          o[n] = v;
 145      }
 146  
 147      d.setTime( d.getTime() + 31536000000 );
 148      p = userSettings.url;
 149  
 150      wpCookies.setHash(c, o, d, p);
 151      wpCookies.set('bb-user-settings-time-'+userSettings.uid, userSettings.time, d, p);
 152      
 153      return name;
 154  }
 155  
 156  function deleteUserSetting( name ) {
 157      return setUserSetting( name, '', 1 );
 158  }
 159  
 160  // Returns all settings as js object.
 161  function getAllUserSettings() {
 162      if ( 'object' !== typeof userSettings )
 163          return {};
 164  
 165      return wpCookies.getHash('bb-user-settings-' + userSettings.uid) || {};
 166  }


Generated: Thu Dec 7 01:01:35 2017 Cross-referenced by PHPXref 0.7.1