PluginProbe ʕ •ᴥ•ʔ
Smash Balloon Social Post Feed – Simple Social Feeds for WordPress / 2.6.1
Smash Balloon Social Post Feed – Simple Social Feeds for WordPress v2.6.1
4.8.1 trunk 1.0 1.1 1.12.1 1.2.3 1.2.4 1.2.5 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.5 1.5.1 1.5.2 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.4.1 1.6.5 1.6.5.1 1.6.6 1.6.6.1 1.6.6.2 1.6.6.3 1.6.7 1.6.7.1 1.6.8 1.6.8.1 1.6.8.2 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.2.1 1.8.2.2 1.8.2.3 1.9.0 1.9.1 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.8.1 1.9.9 1.9.9.1 1.9.9.2 1.9.9.3 2.0 2.0.1 2.1 2.1.1 2.1.2 2.1.3 2.10 2.11 2.11.1 2.12 2.12.1 2.12.2 2.12.3 2.12.4 2.13 2.14 2.14.1 2.15 2.15.1 2.16 2.16.1 2.17 2.17.1 2.18 2.18.1 2.18.2 2.18.3 2.19 2.19.1 2.19.2 2.19.3 2.2 2.2.1 2.3 2.3.1 2.3.10 2.3.2 2.3.3 2.3.4 2.3.6 2.3.7 2.3.8 2.3.9 2.4 2.4.1 2.4.1.1 2.4.1.2 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.5 2.5.1 2.5.2 2.6 2.6.1 2.6.2 2.6.3 2.6.4 2.7 2.7.1 2.7.2 2.8 2.9 2.9.1 4.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.1 4.1.1 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9 4.2 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.3.0 4.3.1 4.3.2 4.3.3 4.3.4 4.7.5 4.7.6 4.7.7
custom-facebook-feed / js / cff-scripts.js
custom-facebook-feed / js Last commit date
cff-admin-scripts.js 8 years ago cff-scripts.js 8 years ago cff-scripts.min.js 8 years ago
cff-scripts.js
165 lines
1 var cff_js_exists = (typeof cff_js_exists !== 'undefined') ? true : false;
2 if(!cff_js_exists){
3
4 function cff_init(){
5
6 jQuery('#cff .cff-item').each(function(){
7 var $self = jQuery(this);
8
9 //Wpautop fix
10 if( $self.find('.cff-viewpost-facebook').parent('p').length ){
11 $self.find('.cff-viewpost-facebook').unwrap('p');
12 }
13 if( $self.find('.cff-author').parent('p').length ){
14 $self.find('.cff-author').eq(1).unwrap('p');
15 $self.find('.cff-author').eq(1).remove();
16 }
17 if( $self.find('#cff .cff-link').parent('p').length ){
18 $self.find('#cff .cff-link').unwrap('p');
19 }
20
21 //Expand post
22 var expanded = false,
23 $post_text = $self.find('.cff-post-text .cff-text'),
24 text_limit = $self.closest('#cff').attr('data-char');
25
26 if (typeof text_limit === 'undefined' || text_limit == '') text_limit = 99999;
27
28 //If the text is linked then use the text within the link
29 if ( $post_text.find('a.cff-post-text-link').length ) $post_text = $self.find('.cff-post-text .cff-text a');
30 var full_text = $post_text.html();
31 if(full_text == undefined) full_text = '';
32
33 //Truncate text taking HTML tags into account
34 var cff_trunc_regx = new RegExp(/(<[^>]*>)/g);
35 var cff_trunc_counter = 0;
36
37 //convert the string to array using the HTML tags as delimiter and keeping them as array elements
38 full_text_arr = full_text.split(cff_trunc_regx);
39
40 for (var i = 0, len = full_text_arr.length; i < len; i++) {
41 //ignore the array elements that are HTML tags
42 if ( !(cff_trunc_regx.test(full_text_arr[i])) ) {
43 //if the counter is 100, remove this element with text
44 if (cff_trunc_counter == text_limit) {
45 full_text_arr.splice(i, 1);
46 continue; //ignore next commands and continue the for loop
47 }
48 //if the counter != 100, increase the counter with this element length
49 cff_trunc_counter = cff_trunc_counter + full_text_arr[i].length;
50 //if is over 100, slice the text of this element to match the total of 100 chars and set the counter to 100
51 if (cff_trunc_counter > text_limit) {
52 var diff = cff_trunc_counter - text_limit;
53 full_text_arr[i] = full_text_arr[i].slice(0, -diff);
54 cff_trunc_counter = text_limit;
55
56 //Show the 'See More' link if needed
57 if (full_text.length > text_limit) $self.find('.cff-expand').show();
58 }
59 }
60 }
61
62 //new string from the array
63 var short_text = full_text_arr.join('');
64
65 //remove empty html tags from the array
66 short_text = short_text.replace(/(<(?!\/)[^>]+>)+(<\/[^>]+>)/g, "");
67
68 //If the short text cuts off in the middle of a <br> tag then remove the stray '<' which is displayed
69 var lastChar = short_text.substr(short_text.length - 1);
70 if(lastChar == '<') short_text = short_text.substring(0, short_text.length - 1);
71
72 //Remove any <br> tags from the end of the short_text
73 short_text = short_text.replace(/(<br>\s*)+$/,'');
74 short_text = short_text.replace(/(<img class="cff-linebreak">\s*)+$/,'');
75
76 //Cut the text based on limits set
77 $post_text.html( short_text );
78
79
80 //Click function
81 $self.find('.cff-expand a').unbind('click').bind('click', function(e){
82 e.preventDefault();
83 var $expand = jQuery(this),
84 $more = $expand.find('.cff-more'),
85 $less = $expand.find('.cff-less');
86 if (expanded == false){
87 $post_text.html( full_text );
88 expanded = true;
89 $more.hide();
90 $less.show();
91 } else {
92 $post_text.html( short_text );
93 expanded = false;
94 $more.show();
95 $less.hide();
96 }
97 cffLinkHashtags();
98 //Add target to links in text when expanded
99 $post_text.find('a').attr('target', '_blank');
100 });
101 //Add target attr to post text links via JS so aren't included in char count
102 $post_text.find('a').add( $self.find('.cff-post-desc a') ).attr({
103 'target' : '_blank',
104 'rel' : 'nofollow'
105 });
106
107 //Hide the shared link box if it's empty
108 $sharedLink = $self.find('.cff-shared-link');
109 if( $sharedLink.text() == '' ){
110 $sharedLink.remove();
111 }
112
113 function cffLinkHashtags(){
114 //Link hashtags
115 var cffTextStr = $self.find('.cff-text').html(),
116 cffDescStr = $self.find('.cff-post-desc').html(),
117 regex = /(^|\s)#(\w*[\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]+\w*)/gi,
118 // regex = /#(\w*[a-z\u00E0-\u00FC一-龠ぁ-ゔァ-ヴー]+\w*)/gi,
119 linkcolor = $self.find('.cff-text').attr('data-color');
120
121 function replacer(hash){
122 //Remove white space at beginning of hash
123 var replacementString = jQuery.trim(hash);
124 //If the hash is a hex code then don't replace it with a link as it's likely in the style attr, eg: "color: #ff0000"
125 if ( /^#[0-9A-F]{6}$/i.test( replacementString ) ){
126 return replacementString;
127 } else {
128 return ' <a href="https://www.facebook.com/hashtag/'+ replacementString.substring(1) +'" target="_blank" rel="nofollow" style="color:#' + linkcolor + '">' + replacementString + '</a>';
129 }
130 }
131
132 if(cfflinkhashtags == 'true'){
133 //Replace hashtags in text
134 var $cffText = $self.find('.cff-text');
135 if($cffText.length > 0){
136 //Add a space after all <br> tags so that #hashtags immediately after them are also converted to hashtag links. Without the space they aren't captured by the regex.
137 cffTextStr = cffTextStr.replace(/<br>/g, "<br> ");
138 $cffText.html( cffTextStr.replace( regex , replacer ) );
139 }
140 }
141
142 //Replace hashtags in desc
143 if( $self.find('.cff-post-desc').length > 0 ) $self.find('.cff-post-desc').html( cffDescStr.replace( regex , replacer ) );
144 }
145 cffLinkHashtags();
146
147 //Add target attr to post text links via JS so aren't included in char count
148 $self.find('.cff-text a').add( $self.find('.cff-post-desc a') ).attr({
149 'target' : '_blank',
150 'rel' : 'nofollow'
151 });
152
153
154 //Share toolip function
155 $self.find('.cff-share-link').unbind().bind('click', function(){
156 $self.find('.cff-share-tooltip').toggle();
157 });
158
159
160 }); //End .cff-item each
161
162 }
163 cff_init();
164
165 } //End cff_js_exists check