abcdefghjklm

Page 4 of 7 Previous  1, 2, 3, 4, 5, 6, 7  Next

View previous topic View next topic Go down

abcdefghjklm - Page 4 Empty Re: abcdefghjklm

Post by Admin Thu Feb 19, 2015 3:50 pm

Code:
/*
Các hàm
expando: nothing
bbcodes: array, nothing
basics: array, nothing
attrReg: RegExp
parseTag: 3 biến
swapReplacers: 3 biến
parse: 1 biến
add: 2 biến
add swap: 2 biến
*/
(function()
{
   var
      h=
      {
      expando:"{LGBB:"+(new Date).getMilliseconds()+"}", //Lấy thời gian theo mili giây
      bbcodes:{},
      basics:[],
      attrReg:/([\w-]+)=("|'|)(.*?)\2(?=[\s\]])/g, //Nhận diện attribute
      parseTag: function(a,b,c)
         {
            for
               (
                  var
                     d=b.insensitive?"i":"",
                     e="\\["+b.tag+"[^\\]]*?\\]", //Tag mở
                     k="\\[\\/"+b.tag+"\\]", //Tag đóng
                     d=c?RegExp("("+e+")(?!.*"+e+")((?:.|[\\r\\n])*?)"+k,d):RegExp(e,d),
                     l=[];
                    
                     d.test(a);
               )
               a=a.replace(d,function(a,d,e)
                  {
                     c||(d=a);
                     var f={},g;
                     for (g in b.defaultAttr) f[g]=b.defaultAttr[g];
                     d=h.attrReg.test(d)?d.match(h.attrReg):[];
                     if (d.length) for
                        (var k=0;g=d[k++];)
                        (a=/([\w-]+)=['"]?(.*?)['"]?$/.exec(g))&&a.length&&(a[1]===b.tag&&(a[1]="default"),f[a[1]]=a[2]);
                     if (b.validate&&(c?!b.validate.call(b,e,f):!b.validate.call(b,f))) return l.push(a),h.expando;
                     a=b.replacement;
                     b.replace&&(g=c?b.replace.call(b,e,f):b.replace(f),"string"===typeof g?a=g:g&&"object"===typeof g&&(e=g.content||e,f=g.attr||f,"string"===typeof f&&(f={"default":f})));
                     return h.swapReplacers(a,e,f)
                  });
            for (d=0;e=l[d++];) a=a.replace(h.expando,e);
            return a
         },
      swapReplacers: function(a,b,c)
         {
            if(!a) return"";
            b||(b="");
            c||(c={});
            a=a.replace(/{CONTENT}/g,b);
            for (var d in c) a=a.replace(RegExp("{ATTR-"+d.toUpperCase()+"}","g"),c[d]);
            c["default"]&&(a=a.replace(/{ATTR}/g,c["default"]));
            return a.replace(/{ATTR(-[A-Z-]+)?}/g,"")
         },
      parse: function(a)
         {
            var b=h.bbcodes, c=h.basics;
            h.expando="{LGBB:"+(new Date).getMilliseconds()+"}";
            for (var d=0,e;e=c[d++];)
               {
                  var k=e[0];
                  if ("string"===typeof k&&-1===e[1].indexOf(k))
                     for (;-1!==a.indexOf(k);) a=a.replace(k,e[1]);
                     else a=a.replace(k,e[1])
               }
            for (var l in b)
               if (b.hasOwnProperty(l)&&(c=b[l])&&c.replacement&&c.tag)
                  try
                     {
                        a=h.parseTag(a,c,c.close)
                     } catch(m) {console.log("LGBB: Error parsing "+c.tag+" tag.",m)} return a
         },
      add: function(a,b)
         {
            if (!/^\w+$/.test(a)) throw new Exception("Invalid LGBB tag name: "+a); //Kiểm tra tính hợp lệ của tag
            b.tag||(b.tag=a); //kiểm tra điều kiện?
            b.defaultAttr?"string"===typeof b.defaultAttr&&(b.defaultAttr={"default":b.defaultAttr}):b.defaultAttr={};
         //Kiểm tra defaultAttr có phải string không và có default không
            "close" in b||(b.close=!1); //Kiểm tra có tag close không
            h.bbcodes[a]=b; //Gán b vào bbcode ở key a
            return this //Trả về
         },
      addSwap: function(a,b)
         {
            h.basics.push([a,b]);
            return this
         }
      };
   window.LGBB=h
})();
$(function(){
  var p = $('.post .content');    
  for (var i = 0, post; (post = p[ i++ ]); ) //
   {
      var codes = post.getElementsByTagName('code'), store = []; //
      for (var j = 0, c; (c = codes[j++]); ) //j=0, mỗi vòng tăng j thêm 1, đưa codes vào c
     {
        store.push(c.innerHTML); //Đẩy html của c vào store
        c.innerHTML = ''; //Biến html của c thành rỗng
      }
      post.innerHTML = LGBB.parse( post.innerHTML ); //Tiến hành dịch
      for(var s, j = 0; (s = store[j]); ) codes[j++].innerHTML = s; //Đưa ra code sau khi dịch
   }
});
Code:
/*
parse
Hàm 1 biến
a=Html / innerHTML
b=bbcode
c=basic
*/
parse: function(a)
         {
            var bbcodes=h.bbcodes, basic=h.basics;
            h.expando="{LGBB:"+(new Date).getMilliseconds()+"}";
            for (var d=0,e;e=basic[d++];) //Lấy từng phần tử trong mảng basic
               {
                  var k=e[0]; //Bắt đầu từ phần tử đầu tiên của mảng basic
                  if ("string"===typeof k&&-1===e[1].indexOf(k)) //Kiểm tra xem k có phải là string hay không, kết hợp với điều kiện k không phải là phần tử cuối của mảng
                     for (;-1!==Html.indexOf(k);) Html=Html.replace(k,e[1]); // Chạy vòng lặp đẩy từng phần từ HTML vào mảng basic
                     else Html=Html.replace(k,e[1])
               }
            for (var l in bbcodes) //Luôn đúng?
               if (bbcodes.hasOwnProperty(l)&&(basic=bbcodes[l])&&basic.replacement&&basic.tag) //Kiểm tra xem trong bbcode có sẵn l chưa, kết hợp với
            //kiểm tra xem
                  try
                     {
                        Html=h.parseTag(Html,basic,basic.close) //Dịch tag
                     } catch(m) {console.log("LGBB: Error parsing "+basic.tag+" tag.",m)} return Html //Bắt lỗi dịch và trả về Html (a)
Code:
/*
parseTag
Hàm 3 biến
a=Html
b=basic
c=basic.close
d=insen
e=open
k=close
*/
parseTag: function(Html,basic,basic.close)
         {
            for
               (
                  var
                     insen=basic.insensitive?"i":"", //Kiểm tra nhạy chữ viết hoa
                     open="\\["+basic.tag+"[^\\]]*?\\]", //Tag mở
                     close="\\[\\/"+basic.tag+"\\]", //Tag đóng
                     d=basic.close?RegExp("("+open+")(?!.*"+open+")((?:.|[\\r\\n])*?)"+close,d):RegExp(open,d), //Kiểm tra tag đơn hay đôi
                     l=[];
                    
                     insen.test(Html); //Kiểm tra trong html có hay không
               )
               Html=Html.replace(d,function(a,d,e)
                  {
                     c||(d=a);
                     var f={},g;
                     for (g in b.defaultAttr) f[g]=b.defaultAttr[g];
                     d=h.attrReg.test(d)?d.match(h.attrReg):[];
                     if (d.length) for
                        (var k=0;g=d[k++];)
                        (a=/([\w-]+)=['"]?(.*?)['"]?$/.exec(g))&&a.length&&(a[1]===b.tag&&(a[1]="default"),f[a[1]]=a[2]);
                     if (b.validate&&(c?!b.validate.call(b,e,f):!b.validate.call(b,f))) return l.push(a),h.expando;
                     a=b.replacement;
                     b.replace&&(g=c?b.replace.call(b,e,f):b.replace(f),"string"===typeof g?a=g:g&&"object"===typeof g&&(e=g.content||e,f=g.attr||f,"string"===typeof f&&(f={"default":f})));
                     return h.swapReplacers(a,e,f)
                  });
            for (d=0;e=l[d++];) a=a.replace(h.expando,e);
            return a
         },
Code:

LGBB.add
(
'div',
{
  close : true,
  insensitive : true,
  replacement : '<div style="{ATTR}" id="{ATTR-ID}">{CONTENT}</div>',
  defaultAttr : {
      'default' : '',
      'id'      : ''
  }
}
);


Last edited by Admin on Sat Feb 21, 2015 9:34 pm; edited 1 time in total



https://gskvn.forumvi.com
Admin
Admin

Badge : 1,2,3,5,7
Postsx : 250
Points : 361
Reputation : 10
Join date : 2015-01-01

Back to top Go down

abcdefghjklm - Page 4 Empty Re: abcdefghjklm

Post by Admin Thu Feb 19, 2015 9:47 pm

Code:
$(function()
{
 var c = "", a, d = 0, b = 0;
 $("div.post").each(function()
 {
 var e = $(".postprofile dt", this).text(); //e là profile hiện tại
 e != c //Kiểm tra xem profile có trống không
 ? //Nếu có
 (
 d++, //d tăng
 b++, //b tăng
 a = $(this), //a là profile hiện tại
 (b % 2) != ((d % 2) && a.toggleClass("row1 row2")), //d%2 trả true nếu d lẻ, b%2
 c = e //c là profile hiện tại
 )
 : //Nếu không
 (
 b++, //b tăng
 $(a).find("div.signature_div").remove(), //
 $("div.postbody", a).append
 (
 $("div.postbody", this).attr("class", "doublepost").attr
 (
 "id", $(this).attr("id").replace(/^p([0-9]+)$/, "$1")
 )
 ),
 $(this).remove()
 )
 });
 var f = location.hash;
 location.hash = "";
 location.hash = f
});


Last edited by Admin on Fri Feb 20, 2015 4:51 pm; edited 1 time in total



https://gskvn.forumvi.com
Admin
Admin

Badge : 1,2,3,5,7
Postsx : 250
Points : 361
Reputation : 10
Join date : 2015-01-01

Back to top Go down

abcdefghjklm - Page 4 Empty Re: abcdefghjklm

Post by aerolima Fri Feb 20, 2015 4:43 pm

aBCDEsound



aerolima

Postsx : 10
Points : 19
Reputation : 9
Join date : 2015-01-03

Back to top Go down

abcdefghjklm - Page 4 Empty Re: abcdefghjklm

Post by Admin Fri Feb 20, 2015 4:51 pm

abcdef



https://gskvn.forumvi.com
Admin
Admin

Badge : 1,2,3,5,7
Postsx : 250
Points : 361
Reputation : 10
Join date : 2015-01-01

Back to top Go down

abcdefghjklm - Page 4 Empty Re: abcdefghjklm

Post by Admin Fri Feb 20, 2015 4:54 pm

ghgf



https://gskvn.forumvi.com
Admin
Admin

Badge : 1,2,3,5,7
Postsx : 250
Points : 361
Reputation : 10
Join date : 2015-01-01

Back to top Go down

abcdefghjklm - Page 4 Empty Re: abcdefghjklm

Post by Sponsored content




Sponsored content


Back to top Go down

Page 4 of 7 Previous  1, 2, 3, 4, 5, 6, 7  Next

View previous topic View next topic Back to top

- Similar topics

Permissions in this forum:
You cannot reply to topics in this forum