Comments – wpDiscuz - Version 4.0.7

Version Description

Release Summary

  • Added: Shortcode for Post Rating [wpdrating]
  • Added: Option to display Post Rating on Top/Bottom and with Shortcode
  • Added: Advanced options to Comment Form Custom Fields to change custom field key
  • New Addon: wpDiscuz - Comment Author Info
  • Fixed Bug: Update post total rating when comment is deleted
  • Fixed Bug: Server Error 500 on new comment submit
  • Fixed Bug: jQuery.cookie.js/jQuery.cookie.min.js scripts fail to load
  • Fixed Bug: Custom Field displaying order

IMPORTANT:

  • If you have JetPack installed please deactivate Jetpack comments, it affects wpDiscuz
  • If you have a Cache Plugin, please delete all caches after wpDiscuz update.
  • If you use CDN and found some issue please purge it.
  • If your server PHP version is lower than 5.4, please change it to hogher
Download this release

Release Info

Developer AdvancedCoding
Plugin Icon 128x128 Comments – wpDiscuz
Version 4.0.7
Comparing to
See all releases

Code changes from version 4.0.6 to 4.0.7

assets/addons/author-info/header-off.png ADDED
Binary file
assets/addons/author-info/header.png ADDED
Binary file
assets/css/wpdiscuz-custom-form.css CHANGED
@@ -71,6 +71,16 @@
71
  .wpdiscuz-wrapper .wpd-form-table td, .wpdiscuz-wrapper .wpd-form-table th{ vertical-align:top; }
72
  .wpdiscuz-wrapper .wpd-form-rel-exixts span{ color:#DD0000;}
73
  .iconpicker-popover{z-index: 1000}
 
 
 
 
 
 
 
 
 
 
74
 
75
  @media screen and (max-width:650px){
76
  .wpdiscuz-wrapper .wpd-field-option label{ width:100%;}
71
  .wpdiscuz-wrapper .wpd-form-table td, .wpdiscuz-wrapper .wpd-form-table th{ vertical-align:top; }
72
  .wpdiscuz-wrapper .wpd-form-rel-exixts span{ color:#DD0000;}
73
  .iconpicker-popover{z-index: 1000}
74
+ .wpd-advaced-options.wpd-field-option{
75
+ margin-top: 10px;
76
+ }
77
+ .wpd-advaced-options-title{
78
+ color: blue;
79
+ cursor: pointer;
80
+ }
81
+ .wpd-advaced-options-cont{
82
+ display: none;
83
+ }
84
 
85
  @media screen and (max-width:650px){
86
  .wpdiscuz-wrapper .wpd-field-option label{ width:100%;}
assets/css/wpdiscuz.css CHANGED
@@ -347,7 +347,12 @@
347
  padding: 5px;
348
  }
349
 
350
-
 
 
 
 
 
351
  @media screen and (max-width:650px){
352
  #wpcomm .wpdiscuz-subscribe-form-option{width:100%!important;padding:0!important}
353
  #wpcomm .wpdiscuz-subscribe-form-email{width:100%!important;padding:0!important;margin-top:5px}
@@ -393,6 +398,10 @@
393
  #wpcomm .wc-comment-footer .wc-footer-right{ float:none; display:block; padding:5px 5px 2px 5px; text-align:left;}
394
  #wpcomm .wc-comment-footer .wc-footer-right .wc-comment-date{ margin-left:0px;}
395
  #wpcomm .wc-comment-footer .wc-footer-left span{ margin-bottom:7px; }
 
 
 
 
396
  }
397
  @media screen and (max-width:420px){
398
  #wpcomm .wpdiscuz-sort-buttons,#wpcomm .wpdiscuz-sort-button{font-size:11px!important}
@@ -406,4 +415,8 @@
406
  #wpcomm .wc-form-wrapper .ed_button{width:18%;padding:0;margin:3px 2px 3px 2px}
407
  #wpcomm .wc-field-comment .wc-field-textarea .wpdiscuz-quicktags-enabled .commentTextMaxLength{top:49px}
408
  #wpcomm .wc-comment-link{display: block; float: none; width: 100%;}
 
 
 
 
409
  }
347
  padding: 5px;
348
  }
349
 
350
+ @media screen and (max-width: 1024px){
351
+ .wpdiscuz-post-rating-wrap.wpd-custom-field > [class ^= wpdiscuz-post-rating-wrap-custom_field]{
352
+ flex-basis: 33%;
353
+ margin-bottom: 10px;
354
+ }
355
+ }
356
  @media screen and (max-width:650px){
357
  #wpcomm .wpdiscuz-subscribe-form-option{width:100%!important;padding:0!important}
358
  #wpcomm .wpdiscuz-subscribe-form-email{width:100%!important;padding:0!important;margin-top:5px}
398
  #wpcomm .wc-comment-footer .wc-footer-right{ float:none; display:block; padding:5px 5px 2px 5px; text-align:left;}
399
  #wpcomm .wc-comment-footer .wc-footer-right .wc-comment-date{ margin-left:0px;}
400
  #wpcomm .wc-comment-footer .wc-footer-left span{ margin-bottom:7px; }
401
+ .wpdiscuz-post-rating-wrap.wpd-custom-field > [class ^= wpdiscuz-post-rating-wrap-custom_field]{
402
+ flex-basis: 50%;
403
+ margin-bottom: 10px;
404
+ }
405
  }
406
  @media screen and (max-width:420px){
407
  #wpcomm .wpdiscuz-sort-buttons,#wpcomm .wpdiscuz-sort-button{font-size:11px!important}
415
  #wpcomm .wc-form-wrapper .ed_button{width:18%;padding:0;margin:3px 2px 3px 2px}
416
  #wpcomm .wc-field-comment .wc-field-textarea .wpdiscuz-quicktags-enabled .commentTextMaxLength{top:49px}
417
  #wpcomm .wc-comment-link{display: block; float: none; width: 100%;}
418
+ .wpdiscuz-post-rating-wrap.wpd-custom-field > [class ^= wpdiscuz-post-rating-wrap-custom_field]{
419
+ flex-basis: 100%;
420
+ margin-bottom: 10px;
421
+ }
422
  }
assets/js/wpdiscuz-custom-form.js CHANGED
@@ -129,6 +129,9 @@ $(document).ready(function ($) {
129
  function wpdFieldLoad() {
130
  $('#TB_ajaxContent').html('<img class="wpdFieldLoad" src="' + wpdFormAdminOptions.loaderImg + '">');
131
  }
 
 
 
132
  });
133
  //===================== OBJECT ========================== //
134
 
129
  function wpdFieldLoad() {
130
  $('#TB_ajaxContent').html('<img class="wpdFieldLoad" src="' + wpdFormAdminOptions.loaderImg + '">');
131
  }
132
+ $(document).delegate('.wpd-advaced-options-title','click', function(){
133
+ $(this).next('.wpd-advaced-options-cont').toggle();
134
+ });
135
  });
136
  //===================== OBJECT ========================== //
137
 
assets/third-party/cookie/jquery.cookie.js DELETED
@@ -1,117 +0,0 @@
1
- /*!
2
- * jQuery Cookie Plugin v1.4.1
3
- * https://github.com/carhartl/jquery-cookie
4
- *
5
- * Copyright 2013 Klaus Hartl
6
- * Released under the MIT license
7
- */
8
- (function (factory) {
9
- if (typeof define === 'function' && define.amd) {
10
- // AMD
11
- define(['jquery'], factory);
12
- } else if (typeof exports === 'object') {
13
- // CommonJS
14
- factory(require('jquery'));
15
- } else {
16
- // Browser globals
17
- factory(jQuery);
18
- }
19
- }(function ($) {
20
-
21
- var pluses = /\+/g;
22
-
23
- function encode(s) {
24
- return config.raw ? s : encodeURIComponent(s);
25
- }
26
-
27
- function decode(s) {
28
- return config.raw ? s : decodeURIComponent(s);
29
- }
30
-
31
- function stringifyCookieValue(value) {
32
- return encode(config.json ? JSON.stringify(value) : String(value));
33
- }
34
-
35
- function parseCookieValue(s) {
36
- if (s.indexOf('"') === 0) {
37
- // This is a quoted cookie as according to RFC2068, unescape...
38
- s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
39
- }
40
-
41
- try {
42
- // Replace server-side written pluses with spaces.
43
- // If we can't decode the cookie, ignore it, it's unusable.
44
- // If we can't parse the cookie, ignore it, it's unusable.
45
- s = decodeURIComponent(s.replace(pluses, ' '));
46
- return config.json ? JSON.parse(s) : s;
47
- } catch(e) {}
48
- }
49
-
50
- function read(s, converter) {
51
- var value = config.raw ? s : parseCookieValue(s);
52
- return $.isFunction(converter) ? converter(value) : value;
53
- }
54
-
55
- var config = $.cookie = function (key, value, options) {
56
-
57
- // Write
58
-
59
- if (value !== undefined && !$.isFunction(value)) {
60
- options = $.extend({}, config.defaults, options);
61
-
62
- if (typeof options.expires === 'number') {
63
- var days = options.expires, t = options.expires = new Date();
64
- t.setTime(+t + days * 864e+5);
65
- }
66
-
67
- return (document.cookie = [
68
- encode(key), '=', stringifyCookieValue(value),
69
- options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
70
- options.path ? '; path=' + options.path : '',
71
- options.domain ? '; domain=' + options.domain : '',
72
- options.secure ? '; secure' : ''
73
- ].join(''));
74
- }
75
-
76
- // Read
77
-
78
- var result = key ? undefined : {};
79
-
80
- // To prevent the for loop in the first place assign an empty array
81
- // in case there are no cookies at all. Also prevents odd result when
82
- // calling $.cookie().
83
- var cookies = document.cookie ? document.cookie.split('; ') : [];
84
-
85
- for (var i = 0, l = cookies.length; i < l; i++) {
86
- var parts = cookies[i].split('=');
87
- var name = decode(parts.shift());
88
- var cookie = parts.join('=');
89
-
90
- if (key && key === name) {
91
- // If second argument (value) is a function it's a converter...
92
- result = read(cookie, value);
93
- break;
94
- }
95
-
96
- // Prevent storing a cookie that we couldn't decode.
97
- if (!key && (cookie = read(cookie)) !== undefined) {
98
- result[name] = cookie;
99
- }
100
- }
101
-
102
- return result;
103
- };
104
-
105
- config.defaults = {};
106
-
107
- $.removeCookie = function (key, options) {
108
- if ($.cookie(key) === undefined) {
109
- return false;
110
- }
111
-
112
- // Must not alter options, thus extending a fresh object...
113
- $.cookie(key, '', $.extend({}, options, { expires: -1 }));
114
- return !$.cookie(key);
115
- };
116
-
117
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/third-party/cookie/jquery.cookie.min.js DELETED
@@ -1,9 +0,0 @@
1
-
2
- /*!
3
- * jQuery Cookie Plugin v1.4.1
4
- * https://github.com/carhartl/jquery-cookie
5
- *
6
- * Copyright 2013 Klaus Hartl
7
- * Released under the MIT license
8
- */
9
- (function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{if(typeof exports==="object"){a(require("jquery"))}else{a(jQuery)}}}(function(f){var a=/\+/g;function d(i){return b.raw?i:encodeURIComponent(i)}function g(i){return b.raw?i:decodeURIComponent(i)}function h(i){return d(b.json?JSON.stringify(i):String(i))}function c(i){if(i.indexOf('"')===0){i=i.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\")}try{i=decodeURIComponent(i.replace(a," "));return b.json?JSON.parse(i):i}catch(j){}}function e(j,i){var k=b.raw?j:c(j);return f.isFunction(i)?i(k):k}var b=f.cookie=function(q,p,v){if(p!==undefined&&!f.isFunction(p)){v=f.extend({},b.defaults,v);if(typeof v.expires==="number"){var r=v.expires,u=v.expires=new Date();u.setTime(+u+r*86400000)}return(document.cookie=[d(q),"=",h(p),v.expires?"; expires="+v.expires.toUTCString():"",v.path?"; path="+v.path:"",v.domain?"; domain="+v.domain:"",v.secure?"; secure":""].join(""))}var w=q?undefined:{};var s=document.cookie?document.cookie.split("; "):[];for(var o=0,m=s.length;o<m;o++){var n=s[o].split("=");var j=g(n.shift());var k=n.join("=");if(q&&q===j){w=e(k,p);break}if(!q&&(k=e(k))!==undefined){w[j]=k}}return w};b.defaults={};f.removeCookie=function(j,i){if(f.cookie(j)===undefined){return false}f.cookie(j,"",f.extend({},i,{expires:-1}));return !f.cookie(j)}}));
 
 
 
 
 
 
 
 
 
assets/third-party/wpdcookiejs/customcookie.js ADDED
@@ -0,0 +1 @@
 
1
+ (function(factory){var registeredInModuleLoader=false;if(typeof define==='function'&&define.amd){define(factory);registeredInModuleLoader=true}if(typeof exports==='object'){module.exports=factory();registeredInModuleLoader=true}if(!registeredInModuleLoader){var OldCookies=window.Cookies;var api=window.Cookies=factory();api.noConflict=function(){window.Cookies=OldCookies;return api}}}(function(){function extend(){var i=0;var result={};for(;i<arguments.length;i++){var attributes=arguments[i];for(var key in attributes){result[key]=attributes[key]}}return result}function init(converter){function api(key,value,attributes){var result;if(typeof document==='undefined'){return}if(arguments.length>1){attributes=extend({path:'/'},api.defaults,attributes);if(typeof attributes.expires==='number'){var expires=new Date();expires.setMilliseconds(expires.getMilliseconds()+attributes.expires*864e+5);attributes.expires=expires}attributes.expires=attributes.expires?attributes.expires.toUTCString():'';try{result=JSON.stringify(value);if(/^[\{\[]/.test(result)){value=result}}catch(e){}if(!converter.write){value=encodeURIComponent(String(value)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent)}else{value=converter.write(value,key)}key=encodeURIComponent(String(key));key=key.replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent);key=key.replace(/[\(\)]/g,escape);var stringifiedAttributes='';for(var attributeName in attributes){if(!attributes[attributeName]){continue}stringifiedAttributes+='; '+attributeName;if(attributes[attributeName]===true){continue}stringifiedAttributes+='='+attributes[attributeName]}return(document.cookie=key+'='+value+stringifiedAttributes)}if(!key){result={}}var cookies=document.cookie?document.cookie.split('; '):[];var rdecode=/(%[0-9A-Z]{2})+/g;var i=0;for(;i<cookies.length;i++){var parts=cookies[i].split('=');var cookie=parts.slice(1).join('=');if(cookie.charAt(0)==='"'){cookie=cookie.slice(1,-1)}try{var name=parts[0].replace(rdecode,decodeURIComponent);cookie=converter.read?converter.read(cookie,name):converter(cookie,name)||cookie.replace(rdecode,decodeURIComponent);if(this.json){try{cookie=JSON.parse(cookie)}catch(e){}}if(key===name){result=cookie;break}if(!key){result[name]=cookie}}catch(e){}}return result}api.set=api;api.get=function(key){return api.call(api,key)};api.getJSON=function(){return api.apply({json:true},[].slice.call(arguments))};api.defaults={};api.remove=function(key,attributes){api(key,'',extend(attributes,{expires:-1}))};api.withConverter=init;return api}return init(function(){})}));
assets/third-party/{cookie/js.cookie.js → wpdcookiejs/js-cookie.js} RENAMED
@@ -1,165 +1,165 @@
1
- /*!
2
- * JavaScript Cookie v2.1.3
3
- * https://github.com/js-cookie/js-cookie
4
- *
5
- * Copyright 2006, 2015 Klaus Hartl & Fagner Brack
6
- * Released under the MIT license
7
- */
8
- ;(function (factory) {
9
- var registeredInModuleLoader = false;
10
- if (typeof define === 'function' && define.amd) {
11
- define(factory);
12
- registeredInModuleLoader = true;
13
- }
14
- if (typeof exports === 'object') {
15
- module.exports = factory();
16
- registeredInModuleLoader = true;
17
- }
18
- if (!registeredInModuleLoader) {
19
- var OldCookies = window.Cookies;
20
- var api = window.Cookies = factory();
21
- api.noConflict = function () {
22
- window.Cookies = OldCookies;
23
- return api;
24
- };
25
- }
26
- }(function () {
27
- function extend () {
28
- var i = 0;
29
- var result = {};
30
- for (; i < arguments.length; i++) {
31
- var attributes = arguments[ i ];
32
- for (var key in attributes) {
33
- result[key] = attributes[key];
34
- }
35
- }
36
- return result;
37
- }
38
-
39
- function init (converter) {
40
- function api (key, value, attributes) {
41
- var result;
42
- if (typeof document === 'undefined') {
43
- return;
44
- }
45
-
46
- // Write
47
-
48
- if (arguments.length > 1) {
49
- attributes = extend({
50
- path: '/'
51
- }, api.defaults, attributes);
52
-
53
- if (typeof attributes.expires === 'number') {
54
- var expires = new Date();
55
- expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);
56
- attributes.expires = expires;
57
- }
58
-
59
- // We're using "expires" because "max-age" is not supported by IE
60
- attributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';
61
-
62
- try {
63
- result = JSON.stringify(value);
64
- if (/^[\{\[]/.test(result)) {
65
- value = result;
66
- }
67
- } catch (e) {}
68
-
69
- if (!converter.write) {
70
- value = encodeURIComponent(String(value))
71
- .replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);
72
- } else {
73
- value = converter.write(value, key);
74
- }
75
-
76
- key = encodeURIComponent(String(key));
77
- key = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);
78
- key = key.replace(/[\(\)]/g, escape);
79
-
80
- var stringifiedAttributes = '';
81
-
82
- for (var attributeName in attributes) {
83
- if (!attributes[attributeName]) {
84
- continue;
85
- }
86
- stringifiedAttributes += '; ' + attributeName;
87
- if (attributes[attributeName] === true) {
88
- continue;
89
- }
90
- stringifiedAttributes += '=' + attributes[attributeName];
91
- }
92
- return (document.cookie = key + '=' + value + stringifiedAttributes);
93
- }
94
-
95
- // Read
96
-
97
- if (!key) {
98
- result = {};
99
- }
100
-
101
- // To prevent the for loop in the first place assign an empty array
102
- // in case there are no cookies at all. Also prevents odd result when
103
- // calling "get()"
104
- var cookies = document.cookie ? document.cookie.split('; ') : [];
105
- var rdecode = /(%[0-9A-Z]{2})+/g;
106
- var i = 0;
107
-
108
- for (; i < cookies.length; i++) {
109
- var parts = cookies[i].split('=');
110
- var cookie = parts.slice(1).join('=');
111
-
112
- if (cookie.charAt(0) === '"') {
113
- cookie = cookie.slice(1, -1);
114
- }
115
-
116
- try {
117
- var name = parts[0].replace(rdecode, decodeURIComponent);
118
- cookie = converter.read ?
119
- converter.read(cookie, name) : converter(cookie, name) ||
120
- cookie.replace(rdecode, decodeURIComponent);
121
-
122
- if (this.json) {
123
- try {
124
- cookie = JSON.parse(cookie);
125
- } catch (e) {}
126
- }
127
-
128
- if (key === name) {
129
- result = cookie;
130
- break;
131
- }
132
-
133
- if (!key) {
134
- result[name] = cookie;
135
- }
136
- } catch (e) {}
137
- }
138
-
139
- return result;
140
- }
141
-
142
- api.set = api;
143
- api.get = function (key) {
144
- return api.call(api, key);
145
- };
146
- api.getJSON = function () {
147
- return api.apply({
148
- json: true
149
- }, [].slice.call(arguments));
150
- };
151
- api.defaults = {};
152
-
153
- api.remove = function (key, attributes) {
154
- api(key, '', extend(attributes, {
155
- expires: -1
156
- }));
157
- };
158
-
159
- api.withConverter = init;
160
-
161
- return api;
162
- }
163
-
164
- return init(function () {});
165
- }));
1
+ /*!
2
+ * JavaScript Cookie v2.1.3
3
+ * https://github.com/js-cookie/js-cookie
4
+ *
5
+ * Copyright 2006, 2015 Klaus Hartl & Fagner Brack
6
+ * Released under the MIT license
7
+ */
8
+ ;(function (factory) {
9
+ var registeredInModuleLoader = false;
10
+ if (typeof define === 'function' && define.amd) {
11
+ define(factory);
12
+ registeredInModuleLoader = true;
13
+ }
14
+ if (typeof exports === 'object') {
15
+ module.exports = factory();
16
+ registeredInModuleLoader = true;
17
+ }
18
+ if (!registeredInModuleLoader) {
19
+ var OldCookies = window.Cookies;
20
+ var api = window.Cookies = factory();
21
+ api.noConflict = function () {
22
+ window.Cookies = OldCookies;
23
+ return api;
24
+ };
25
+ }
26
+ }(function () {
27
+ function extend () {
28
+ var i = 0;
29
+ var result = {};
30
+ for (; i < arguments.length; i++) {
31
+ var attributes = arguments[ i ];
32
+ for (var key in attributes) {
33
+ result[key] = attributes[key];
34
+ }
35
+ }
36
+ return result;
37
+ }
38
+
39
+ function init (converter) {
40
+ function api (key, value, attributes) {
41
+ var result;
42
+ if (typeof document === 'undefined') {
43
+ return;
44
+ }
45
+
46
+ // Write
47
+
48
+ if (arguments.length > 1) {
49
+ attributes = extend({
50
+ path: '/'
51
+ }, api.defaults, attributes);
52
+
53
+ if (typeof attributes.expires === 'number') {
54
+ var expires = new Date();
55
+ expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);
56
+ attributes.expires = expires;
57
+ }
58
+
59
+ // We're using "expires" because "max-age" is not supported by IE
60
+ attributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';
61
+
62
+ try {
63
+ result = JSON.stringify(value);
64
+ if (/^[\{\[]/.test(result)) {
65
+ value = result;
66
+ }
67
+ } catch (e) {}
68
+
69
+ if (!converter.write) {
70
+ value = encodeURIComponent(String(value))
71
+ .replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);
72
+ } else {
73
+ value = converter.write(value, key);
74
+ }
75
+
76
+ key = encodeURIComponent(String(key));
77
+ key = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);
78
+ key = key.replace(/[\(\)]/g, escape);
79
+
80
+ var stringifiedAttributes = '';
81
+
82
+ for (var attributeName in attributes) {
83
+ if (!attributes[attributeName]) {
84
+ continue;
85
+ }
86
+ stringifiedAttributes += '; ' + attributeName;
87
+ if (attributes[attributeName] === true) {
88
+ continue;
89
+ }
90
+ stringifiedAttributes += '=' + attributes[attributeName];
91
+ }
92
+ return (document.cookie = key + '=' + value + stringifiedAttributes);
93
+ }
94
+
95
+ // Read
96
+
97
+ if (!key) {
98
+ result = {};
99
+ }
100
+
101
+ // To prevent the for loop in the first place assign an empty array
102
+ // in case there are no cookies at all. Also prevents odd result when
103
+ // calling "get()"
104
+ var cookies = document.cookie ? document.cookie.split('; ') : [];
105
+ var rdecode = /(%[0-9A-Z]{2})+/g;
106
+ var i = 0;
107
+
108
+ for (; i < cookies.length; i++) {
109
+ var parts = cookies[i].split('=');
110
+ var cookie = parts.slice(1).join('=');
111
+
112
+ if (cookie.charAt(0) === '"') {
113
+ cookie = cookie.slice(1, -1);
114
+ }
115
+
116
+ try {
117
+ var name = parts[0].replace(rdecode, decodeURIComponent);
118
+ cookie = converter.read ?
119
+ converter.read(cookie, name) : converter(cookie, name) ||
120
+ cookie.replace(rdecode, decodeURIComponent);
121
+
122
+ if (this.json) {
123
+ try {
124
+ cookie = JSON.parse(cookie);
125
+ } catch (e) {}
126
+ }
127
+
128
+ if (key === name) {
129
+ result = cookie;
130
+ break;
131
+ }
132
+
133
+ if (!key) {
134
+ result[name] = cookie;
135
+ }
136
+ } catch (e) {}
137
+ }
138
+
139
+ return result;
140
+ }
141
+
142
+ api.set = api;
143
+ api.get = function (key) {
144
+ return api.call(api, key);
145
+ };
146
+ api.getJSON = function () {
147
+ return api.apply({
148
+ json: true
149
+ }, [].slice.call(arguments));
150
+ };
151
+ api.defaults = {};
152
+
153
+ api.remove = function (key, attributes) {
154
+ api(key, '', extend(attributes, {
155
+ expires: -1
156
+ }));
157
+ };
158
+
159
+ api.withConverter = init;
160
+
161
+ return api;
162
+ }
163
+
164
+ return init(function () {});
165
+ }));
class.WpdiscuzCore.php CHANGED
@@ -3,7 +3,7 @@
3
  /*
4
  * Plugin Name: Comments - wpDiscuz
5
  * Description: Better comment system. Wordpress post comments and discussion plugin. Allows your visitors discuss, vote for comments and share.
6
- * Version: 4.0.6
7
  * Author: gVectors Team (A. Chakhoyan, G. Zakaryan, H. Martirosyan)
8
  * Author URI: http://gvectors.com/
9
  * Plugin URI: http://wpdiscuz.com/
@@ -771,7 +771,7 @@ class WpdiscuzCore implements WpDiscuzConstants {
771
  wp_register_script('wpdiscuz-options-js', plugins_url(WPDISCUZ_DIR_NAME . '/assets/js/wpdiscuz-options.js'), array('jquery'));
772
  wp_enqueue_script('wpdiscuz-options-js');
773
  wp_enqueue_script('thickbox');
774
- wp_register_script('wpdiscuz-jquery-cookie', plugins_url(WPDISCUZ_DIR_NAME . '/assets/third-party/cookie/js.cookie.js'), array('jquery'), '2.1.3', true);
775
  wp_enqueue_script('wpdiscuz-jquery-cookie');
776
  wp_register_script('wpdiscuz-contenthover', plugins_url(WPDISCUZ_DIR_NAME . '/assets/third-party/contenthover/jquery.contenthover.min.js'), array('jquery'), '1.0.0', true);
777
  wp_enqueue_script('wpdiscuz-contenthover');
@@ -804,7 +804,7 @@ class WpdiscuzCore implements WpDiscuzConstants {
804
  wp_enqueue_style('wpdiscuz-frontend-rtl-css');
805
  }
806
 
807
- wp_register_script('wpdiscuz-cookie-js', plugins_url(WPDISCUZ_DIR_NAME . '/assets/third-party/cookie/js.cookie.js'), array('jquery'), '2.1.3', false);
808
  wp_enqueue_script('wpdiscuz-cookie-js');
809
  wp_register_script('autogrowtextarea-js', plugins_url(WPDISCUZ_DIR_NAME . '/assets/third-party/autogrow/jquery.autogrowtextarea.min.js'), array('jquery'), '3.0', false);
810
  wp_enqueue_script('autogrowtextarea-js');
3
  /*
4
  * Plugin Name: Comments - wpDiscuz
5
  * Description: Better comment system. Wordpress post comments and discussion plugin. Allows your visitors discuss, vote for comments and share.
6
+ * Version: 4.0.7
7
  * Author: gVectors Team (A. Chakhoyan, G. Zakaryan, H. Martirosyan)
8
  * Author URI: http://gvectors.com/
9
  * Plugin URI: http://wpdiscuz.com/
771
  wp_register_script('wpdiscuz-options-js', plugins_url(WPDISCUZ_DIR_NAME . '/assets/js/wpdiscuz-options.js'), array('jquery'));
772
  wp_enqueue_script('wpdiscuz-options-js');
773
  wp_enqueue_script('thickbox');
774
+ wp_register_script('wpdiscuz-jquery-cookie', plugins_url(WPDISCUZ_DIR_NAME . '/assets/third-party/wpdcookiejs/customcookie.js'), array('jquery'), '2.1.3', true);
775
  wp_enqueue_script('wpdiscuz-jquery-cookie');
776
  wp_register_script('wpdiscuz-contenthover', plugins_url(WPDISCUZ_DIR_NAME . '/assets/third-party/contenthover/jquery.contenthover.min.js'), array('jquery'), '1.0.0', true);
777
  wp_enqueue_script('wpdiscuz-contenthover');
804
  wp_enqueue_style('wpdiscuz-frontend-rtl-css');
805
  }
806
 
807
+ wp_register_script('wpdiscuz-cookie-js', plugins_url(WPDISCUZ_DIR_NAME . '/assets/third-party/wpdcookiejs/customcookie.js'), array('jquery'), '2.1.3', false);
808
  wp_enqueue_script('wpdiscuz-cookie-js');
809
  wp_register_script('autogrowtextarea-js', plugins_url(WPDISCUZ_DIR_NAME . '/assets/third-party/autogrow/jquery.autogrowtextarea.min.js'), array('jquery'), '3.0', false);
810
  wp_enqueue_script('autogrowtextarea-js');
forms/wpDiscuzForm.php CHANGED
@@ -30,6 +30,8 @@ class wpDiscuzForm implements wpdFormConst {
30
  add_action('edit_form_after_title', array(&$this, 'renderFormeGeneralSettings'));
31
  add_action('wp_ajax_wpdiscuzCustomFields', array(&$this, 'wpdiscuzFieldsDialogContent'));
32
  add_action('wp_ajax_adminFieldForm', array(&$this, 'adminFieldForm'));
 
 
33
  if (!$this->options->isCaptchaInSession) {
34
  add_action('wp_ajax_generateCaptcha', array(&$this->form, 'generateCaptcha'));
35
  add_action('wp_ajax_nopriv_generateCaptcha', array(&$this->form, 'generateCaptcha'));
@@ -48,6 +50,7 @@ class wpDiscuzForm implements wpdFormConst {
48
  add_filter('post_row_actions', array(&$this, 'addCloneFormAction'), 10, 2);
49
  add_filter('admin_post_cloneWpdiscuzForm', array(&$this, 'cloneForm'));
50
  add_filter('the_content', array(&$this->form, 'displayRatingMeta'), 10);
 
51
  add_action('admin_notices', array(&$this, 'formExists'));
52
  }
53
 
@@ -478,4 +481,46 @@ class wpDiscuzForm implements wpdFormConst {
478
  }
479
  }
480
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
481
  }
30
  add_action('edit_form_after_title', array(&$this, 'renderFormeGeneralSettings'));
31
  add_action('wp_ajax_wpdiscuzCustomFields', array(&$this, 'wpdiscuzFieldsDialogContent'));
32
  add_action('wp_ajax_adminFieldForm', array(&$this, 'adminFieldForm'));
33
+ add_action('transition_comment_status', array(&$this, 'changeCommentStatus'), 10, 3);
34
+ add_action('delete_comment', array(&$this, 'deleteCommentRating'), 269);
35
  if (!$this->options->isCaptchaInSession) {
36
  add_action('wp_ajax_generateCaptcha', array(&$this->form, 'generateCaptcha'));
37
  add_action('wp_ajax_nopriv_generateCaptcha', array(&$this->form, 'generateCaptcha'));
50
  add_filter('post_row_actions', array(&$this, 'addCloneFormAction'), 10, 2);
51
  add_filter('admin_post_cloneWpdiscuzForm', array(&$this, 'cloneForm'));
52
  add_filter('the_content', array(&$this->form, 'displayRatingMeta'), 10);
53
+ add_shortcode('wpdrating', array(&$this->form, 'getRatingMetaHtml'));
54
  add_action('admin_notices', array(&$this, 'formExists'));
55
  }
56
 
481
  }
482
  }
483
 
484
+ public function deleteCommentRating($commentId) {
485
+ $rating = get_comment_meta($commentId, 'rating', true);
486
+ $comment = get_comment($commentId);
487
+ if ($rating && $comment->comment_approved == 1) {
488
+ $this->updatePostRating($comment, -1);
489
+ }
490
+ }
491
+
492
+ public function changeCommentStatus($new_status, $old_status, $comment) {
493
+ $rating = get_comment_meta($comment->comment_ID, 'rating', true);
494
+ if ($old_status == 'approved' && $rating) {
495
+ $this->updatePostRating($comment, -1);
496
+ } else if ($new_status == 'approved' && $rating) {
497
+ $this->updatePostRating($comment, 1);
498
+ }
499
+ }
500
+
501
+ private function updatePostRating($comment, $difference) {
502
+ $postRatings = get_post_meta($comment->comment_post_ID, 'wpdiscuz_rating_count', true);
503
+ $form = $this->getForm($comment->comment_post_ID);
504
+ $form->initFormFields();
505
+ $formFields = $form->getFormFields();
506
+ foreach ($formFields as $key => $value) {
507
+ if ($value['type'] == 'wpdFormAttr\Field\RatingField') {
508
+ $postRatings = $this->chagePostSingleRating($key, $comment->comment_ID, $difference, $postRatings);
509
+ }
510
+ }
511
+ update_post_meta($comment->comment_post_ID, 'wpdiscuz_rating_count', $postRatings);
512
+ }
513
+
514
+ private function chagePostSingleRating($metaKey, $commentID, $difference, $postRatings) {
515
+ $commentFieldRating = get_comment_meta($commentID, $metaKey, true);
516
+ if (key_exists($metaKey, $postRatings) && $commentFieldRating) {
517
+ if (key_exists($commentFieldRating, $postRatings[$metaKey])) {
518
+ $postRatings[$metaKey][$commentFieldRating] = $postRatings[$metaKey][$commentFieldRating] + $difference;
519
+ } else {
520
+ $postRatings[$metaKey][$commentFieldRating] = $difference;
521
+ }
522
+ }
523
+ return $postRatings;
524
+ }
525
+
526
  }
forms/wpdFormAttr/Field/CheckboxField.php CHANGED
@@ -33,7 +33,7 @@ class CheckboxField extends Field {
33
  <label><?php _e('Field is required', 'wpdiscuz'); ?>:</label>
34
  <input type="checkbox" value="1" <?php checked($this->fieldData['required'], 1, true); ?> name="<?php echo $this->fieldInputName; ?>[required]" />
35
  </div>
36
- <div class="wpd-field-option">
37
  <label><?php _e('Display on reply form', 'wpdiscuz'); ?>:</label>
38
  <input type="checkbox" value="1" <?php checked($this->fieldData['is_show_sform'], 1, true); ?> name="<?php echo $this->fieldInputName; ?>[is_show_sform]" />
39
  </div>
@@ -41,13 +41,26 @@ class CheckboxField extends Field {
41
  <label><?php _e('Display on comment', 'wpdiscuz'); ?>:</label>
42
  <input type="checkbox" value="1" <?php checked($this->fieldData['is_show_on_comment'], 1, true); ?> name="<?php echo $this->fieldInputName; ?>[is_show_on_comment]" />
43
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
44
  <div style="clear:both;"></div>
45
  </div>
46
  <?php
47
  }
48
 
49
  public function editCommentHtml($key, $value, $data, $comment) {
50
- if($comment->comment_parent && !$data['is_show_sform']){
51
  return '';
52
  }
53
  $valuesMeta = maybe_unserialize($value);
@@ -73,8 +86,9 @@ class CheckboxField extends Field {
73
  return;
74
  $hasDesc = $args['desc'] ? true : false;
75
  $required = $args['required'] ? ' wpd-required-group ' : '';
76
-
77
- if (count($args['values']) == 1): ?>
 
78
  <div class="wpdiscuz-item wpd-field-group wpd-field-checkbox wpd-field-single <?php echo $required; ?> <?php echo $hasDesc ? 'wpd-has-desc' : '' ?>">
79
  <div class="wpd-field-group-title">
80
  <div class="wpd-item">
@@ -82,18 +96,18 @@ class CheckboxField extends Field {
82
  <label class="wpd-field-label wpd-cursor-pointer" for="<?php echo $name . '-1_' . $uniqueId; ?>"><?php echo $args['values'][0]; ?></label>
83
  </div>
84
  </div>
85
- <?php if ($args['desc']) { ?>
86
  <div class="wpd-field-desc">
87
  <i class="fa fa-question-circle-o" aria-hidden="true"></i><span><?php echo esc_html($args['desc']); ?></span>
88
  </div>
89
- <?php } ?>
90
  </div>
91
- <?php else: ?>
92
  <div class="wpdiscuz-item wpd-field-group wpd-field-checkbox <?php echo $required; ?> <?php echo $hasDesc ? 'wpd-has-desc' : '' ?>">
93
  <div class="wpd-field-group-title"><?php _e($args['name'], 'wpdiscuz'); ?></div>
94
  <?php if ($args['desc']) { ?>
95
  <div class="wpd-field-desc"><i class="fa fa-question-circle-o" aria-hidden="true"></i><span><?php echo esc_html($args['desc']); ?></span></div>
96
- <?php } ?>
97
  <div class="wpd-item-wrap">
98
  <?php
99
  foreach ($args['values'] as $index => $val) {
@@ -102,8 +116,8 @@ class CheckboxField extends Field {
102
  <input id="<?php echo $name . '-' . ($index + 1) . '_' . $uniqueId; ?>" type="checkbox" name="<?php echo $name; ?>[]" value="<?php echo $index + 1; ?>" class="<?php echo $name; ?> wpd-field" >
103
  <label class="wpd-field-label wpd-cursor-pointer" for="<?php echo $name . '-' . ($index + 1) . '_' . $uniqueId; ?>"><?php echo $val; ?></label>
104
  </div>
105
- <?php }
106
- ?>
107
  </div>
108
  </div>
109
  <?php endif; ?>
@@ -112,17 +126,17 @@ class CheckboxField extends Field {
112
  }
113
 
114
  public function frontHtml($value, $args) {
115
- if(!$args['is_show_on_comment']){
116
  return '';
117
  }
118
  $html = '<div class="wpd-custom-field wpd-cf-text">';
119
- $html .= '<div class="wpd-cf-label">' . $args['name'] . '</div> <div class="wpd-cf-value"> ' . implode(' , ', $value) . '</div>';
120
  $html .= '</div>';
121
  return $html;
122
  }
123
 
124
  public function validateFieldData($fieldName, $args, $options, $currentUser) {
125
- if(!$this->isCommentParentZero() && !$args['is_show_sform']){
126
  return array();
127
  }
128
  $values = filter_input(INPUT_POST, $fieldName, FILTER_VALIDATE_INT, FILTER_REQUIRE_ARRAY);
33
  <label><?php _e('Field is required', 'wpdiscuz'); ?>:</label>
34
  <input type="checkbox" value="1" <?php checked($this->fieldData['required'], 1, true); ?> name="<?php echo $this->fieldInputName; ?>[required]" />
35
  </div>
36
+ <div class="wpd-field-option">
37
  <label><?php _e('Display on reply form', 'wpdiscuz'); ?>:</label>
38
  <input type="checkbox" value="1" <?php checked($this->fieldData['is_show_sform'], 1, true); ?> name="<?php echo $this->fieldInputName; ?>[is_show_sform]" />
39
  </div>
41
  <label><?php _e('Display on comment', 'wpdiscuz'); ?>:</label>
42
  <input type="checkbox" value="1" <?php checked($this->fieldData['is_show_on_comment'], 1, true); ?> name="<?php echo $this->fieldInputName; ?>[is_show_on_comment]" />
43
  </div>
44
+ <div class="wpd-advaced-options wpd-field-option">
45
+ <small class="wpd-advaced-options-title"><?php _e('Advanced Options', 'wpdiscuz'); ?></small>
46
+ <div class="wpd-field-option wpd-advaced-options-cont">
47
+ <div class="wpd-field-option">
48
+ <label><?php _e('Meta Key', 'wpdiscuz'); ?>:</label>
49
+ <input type="text" value="<?php echo $this->name; ?>" name="<?php echo $this->fieldInputName; ?>[meta_key]" required="required"/>
50
+ </div>
51
+ <div class="wpd-field-option">
52
+ <label><?php _e('Replace old meta key', 'wpdiscuz'); ?>:</label>
53
+ <input type="checkbox" value="1" checked="checked" name="<?php echo $this->fieldInputName; ?>[meta_key_replace]" />
54
+ </div>
55
+ </div>
56
+ </div>
57
  <div style="clear:both;"></div>
58
  </div>
59
  <?php
60
  }
61
 
62
  public function editCommentHtml($key, $value, $data, $comment) {
63
+ if ($comment->comment_parent && !$data['is_show_sform']) {
64
  return '';
65
  }
66
  $valuesMeta = maybe_unserialize($value);
86
  return;
87
  $hasDesc = $args['desc'] ? true : false;
88
  $required = $args['required'] ? ' wpd-required-group ' : '';
89
+
90
+ if (count($args['values']) == 1):
91
+ ?>
92
  <div class="wpdiscuz-item wpd-field-group wpd-field-checkbox wpd-field-single <?php echo $required; ?> <?php echo $hasDesc ? 'wpd-has-desc' : '' ?>">
93
  <div class="wpd-field-group-title">
94
  <div class="wpd-item">
96
  <label class="wpd-field-label wpd-cursor-pointer" for="<?php echo $name . '-1_' . $uniqueId; ?>"><?php echo $args['values'][0]; ?></label>
97
  </div>
98
  </div>
99
+ <?php if ($args['desc']) { ?>
100
  <div class="wpd-field-desc">
101
  <i class="fa fa-question-circle-o" aria-hidden="true"></i><span><?php echo esc_html($args['desc']); ?></span>
102
  </div>
103
+ <?php } ?>
104
  </div>
105
+ <?php else: ?>
106
  <div class="wpdiscuz-item wpd-field-group wpd-field-checkbox <?php echo $required; ?> <?php echo $hasDesc ? 'wpd-has-desc' : '' ?>">
107
  <div class="wpd-field-group-title"><?php _e($args['name'], 'wpdiscuz'); ?></div>
108
  <?php if ($args['desc']) { ?>
109
  <div class="wpd-field-desc"><i class="fa fa-question-circle-o" aria-hidden="true"></i><span><?php echo esc_html($args['desc']); ?></span></div>
110
+ <?php } ?>
111
  <div class="wpd-item-wrap">
112
  <?php
113
  foreach ($args['values'] as $index => $val) {
116
  <input id="<?php echo $name . '-' . ($index + 1) . '_' . $uniqueId; ?>" type="checkbox" name="<?php echo $name; ?>[]" value="<?php echo $index + 1; ?>" class="<?php echo $name; ?> wpd-field" >
117
  <label class="wpd-field-label wpd-cursor-pointer" for="<?php echo $name . '-' . ($index + 1) . '_' . $uniqueId; ?>"><?php echo $val; ?></label>
118
  </div>
119
+ <?php }
120
+ ?>
121
  </div>
122
  </div>
123
  <?php endif; ?>
126
  }
127
 
128
  public function frontHtml($value, $args) {
129
+ if (!$args['is_show_on_comment']) {
130
  return '';
131
  }
132
  $html = '<div class="wpd-custom-field wpd-cf-text">';
133
+ $html .= '<div class="wpd-cf-label">' . $args['name'] . '</div> <div class="wpd-cf-value"> ' . apply_filters('wpdiscuz_custom_field_checkbox', implode(' , ', $value) , $args) . '</div>';
134
  $html .= '</div>';
135
  return $html;
136
  }
137
 
138
  public function validateFieldData($fieldName, $args, $options, $currentUser) {
139
+ if (!$this->isCommentParentZero() && !$args['is_show_sform']) {
140
  return array();
141
  }
142
  $values = filter_input(INPUT_POST, $fieldName, FILTER_VALIDATE_INT, FILTER_REQUIRE_ARRAY);
forms/wpdFormAttr/Field/ColorField.php CHANGED
@@ -37,6 +37,19 @@ class ColorField extends Field {
37
  <label><?php _e('Display on comment', 'wpdiscuz'); ?>:</label>
38
  <input type="checkbox" value="1" <?php checked($this->fieldData['is_show_on_comment'], 1, true); ?> name="<?php echo $this->fieldInputName; ?>[is_show_on_comment]" />
39
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  <div style="clear:both;"></div>
41
  </div>
42
  <?php
@@ -85,7 +98,7 @@ class ColorField extends Field {
85
  return '';
86
  }
87
  $html = '<div class="wpd-custom-field wpd-cf-color">';
88
- $html .= '<div class="wpd-cf-label">' . $args['name'] . '</div> <div class="wpd-cf-value" style="background:' . $value . ';"> ' . $value . ' </div>';
89
  $html .= '</div>';
90
  return $html;
91
  }
37
  <label><?php _e('Display on comment', 'wpdiscuz'); ?>:</label>
38
  <input type="checkbox" value="1" <?php checked($this->fieldData['is_show_on_comment'], 1, true); ?> name="<?php echo $this->fieldInputName; ?>[is_show_on_comment]" />
39
  </div>
40
+ <div class="wpd-advaced-options wpd-field-option">
41
+ <small class="wpd-advaced-options-title"><?php _e('Advanced Options', 'wpdiscuz'); ?></small>
42
+ <div class="wpd-field-option wpd-advaced-options-cont">
43
+ <div class="wpd-field-option">
44
+ <label><?php _e('Meta Key', 'wpdiscuz'); ?>:</label>
45
+ <input type="text" value="<?php echo $this->name; ?>" name="<?php echo $this->fieldInputName; ?>[meta_key]" required="required"/>
46
+ </div>
47
+ <div class="wpd-field-option">
48
+ <label><?php _e('Replace old meta key', 'wpdiscuz'); ?>:</label>
49
+ <input type="checkbox" value="1" checked="checked" name="<?php echo $this->fieldInputName; ?>[meta_key_replace]" />
50
+ </div>
51
+ </div>
52
+ </div>
53
  <div style="clear:both;"></div>
54
  </div>
55
  <?php
98
  return '';
99
  }
100
  $html = '<div class="wpd-custom-field wpd-cf-color">';
101
+ $html .= '<div class="wpd-cf-label">' . $args['name'] . '</div> <div class="wpd-cf-value" style="background:' . $value . ';"> ' . apply_filters('wpdiscuz_custom_field_color', $value , $args) . ' </div>';
102
  $html .= '</div>';
103
  return $html;
104
  }
forms/wpdFormAttr/Field/DateField.php CHANGED
@@ -37,6 +37,19 @@ class DateField extends Field {
37
  <label><?php _e('Display on comment', 'wpdiscuz'); ?>:</label>
38
  <input type="checkbox" value="1" <?php checked($this->fieldData['is_show_on_comment'], 1, true); ?> name="<?php echo $this->fieldInputName; ?>[is_show_on_comment]" />
39
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  <div style="clear:both;"></div>
41
  </div>
42
  <?php
@@ -85,7 +98,7 @@ class DateField extends Field {
85
  return '';
86
  }
87
  $html = '<div class="wpd-custom-field wpd-cf-text">';
88
- $html .= '<div class="wpd-cf-label">' . $args['name'] . '</div> <div class="wpd-cf-value"> ' . $value . '</div>';
89
  $html .= '</div>';
90
  return $html;
91
  }
37
  <label><?php _e('Display on comment', 'wpdiscuz'); ?>:</label>
38
  <input type="checkbox" value="1" <?php checked($this->fieldData['is_show_on_comment'], 1, true); ?> name="<?php echo $this->fieldInputName; ?>[is_show_on_comment]" />
39
  </div>
40
+ <div class="wpd-advaced-options wpd-field-option">
41
+ <small class="wpd-advaced-options-title"><?php _e('Advanced Options', 'wpdiscuz'); ?></small>
42
+ <div class="wpd-field-option wpd-advaced-options-cont">
43
+ <div class="wpd-field-option">
44
+ <label><?php _e('Meta Key', 'wpdiscuz'); ?>:</label>
45
+ <input type="text" value="<?php echo $this->name; ?>" name="<?php echo $this->fieldInputName; ?>[meta_key]" required="required"/>
46
+ </div>
47
+ <div class="wpd-field-option">
48
+ <label><?php _e('Replace old meta key', 'wpdiscuz'); ?>:</label>
49
+ <input type="checkbox" value="1" checked="checked" name="<?php echo $this->fieldInputName; ?>[meta_key_replace]" />
50
+ </div>
51
+ </div>
52
+ </div>
53
  <div style="clear:both;"></div>
54
  </div>
55
  <?php
98
  return '';
99
  }
100
  $html = '<div class="wpd-custom-field wpd-cf-text">';
101
+ $html .= '<div class="wpd-cf-label">' . $args['name'] . '</div> <div class="wpd-cf-value"> ' . apply_filters('wpdiscuz_custom_field_date', $value , $args) . '</div>';
102
  $html .= '</div>';
103
  return $html;
104
  }
forms/wpdFormAttr/Field/Field.php CHANGED
@@ -52,6 +52,9 @@ abstract class Field {
52
  _e(' (Submit Button)', 'wpdiscuz');
53
  } elseif ($args['type'] == 'wpdFormAttr\Field\DefaultField\Captcha') {
54
  _e(' (CAPTCHA)', 'wpdiscuz');
 
 
 
55
  }
56
  ?>
57
  <div class="wpd-field-actions">
52
  _e(' (Submit Button)', 'wpdiscuz');
53
  } elseif ($args['type'] == 'wpdFormAttr\Field\DefaultField\Captcha') {
54
  _e(' (CAPTCHA)', 'wpdiscuz');
55
+ }elseif(!strstr($args['type'], 'wpdFormAttr\Field\DefaultField')){
56
+ $fieldLable = str_replace('wpdFormAttr\Field\\', '', $args['type']);
57
+ echo ' ( ' .str_replace('Field', '', $fieldLable) . ' )';
58
  }
59
  ?>
60
  <div class="wpd-field-actions">
forms/wpdFormAttr/Field/NumberField.php CHANGED
@@ -47,6 +47,19 @@ class NumberField extends Field {
47
  <label><?php _e('Display on comment', 'wpdiscuz'); ?>:</label>
48
  <input type="checkbox" value="1" <?php checked($this->fieldData['is_show_on_comment'], 1, true); ?> name="<?php echo $this->fieldInputName; ?>[is_show_on_comment]" />
49
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
50
  <div style="clear:both;"></div>
51
  </div>
52
  <?php
@@ -98,7 +111,7 @@ class NumberField extends Field {
98
  return '';
99
  }
100
  $html = '<div class="wpd-custom-field wpd-cf-text">';
101
- $html .= '<div class="wpd-cf-label">' . $args['name'] . '</div> <div class="wpd-cf-value"> ' . $value . '</div>';
102
  $html .= '</div>';
103
  return $html;
104
  }
47
  <label><?php _e('Display on comment', 'wpdiscuz'); ?>:</label>
48
  <input type="checkbox" value="1" <?php checked($this->fieldData['is_show_on_comment'], 1, true); ?> name="<?php echo $this->fieldInputName; ?>[is_show_on_comment]" />
49
  </div>
50
+ <div class="wpd-advaced-options wpd-field-option">
51
+ <small class="wpd-advaced-options-title"><?php _e('Advanced Options', 'wpdiscuz'); ?></small>
52
+ <div class="wpd-field-option wpd-advaced-options-cont">
53
+ <div class="wpd-field-option">
54
+ <label><?php _e('Meta Key', 'wpdiscuz'); ?>:</label>
55
+ <input type="text" value="<?php echo $this->name; ?>" name="<?php echo $this->fieldInputName; ?>[meta_key]" required="required"/>
56
+ </div>
57
+ <div class="wpd-field-option">
58
+ <label><?php _e('Replace old meta key', 'wpdiscuz'); ?>:</label>
59
+ <input type="checkbox" value="1" checked="checked" name="<?php echo $this->fieldInputName; ?>[meta_key_replace]" />
60
+ </div>
61
+ </div>
62
+ </div>
63
  <div style="clear:both;"></div>
64
  </div>
65
  <?php
111
  return '';
112
  }
113
  $html = '<div class="wpd-custom-field wpd-cf-text">';
114
+ $html .= '<div class="wpd-cf-label">' . $args['name'] . '</div> <div class="wpd-cf-value"> ' . apply_filters('wpdiscuz_custom_field_number', $value , $args) . '</div>';
115
  $html .= '</div>';
116
  return $html;
117
  }
forms/wpdFormAttr/Field/RadioField.php CHANGED
@@ -41,6 +41,19 @@ class RadioField extends Field {
41
  <label><?php _e('Display on comment', 'wpdiscuz'); ?>:</label>
42
  <input type="checkbox" value="1" <?php checked($this->fieldData['is_show_on_comment'], 1, true); ?> name="<?php echo $this->fieldInputName; ?>[is_show_on_comment]" />
43
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
44
  <div style="clear:both;"></div>
45
  </div>
46
  <?php
@@ -98,7 +111,7 @@ class RadioField extends Field {
98
  return '';
99
  }
100
  $html = '<div class="wpd-custom-field wpd-cf-text">';
101
- $html .= '<div class="wpd-cf-label">' . $args['name'] . '</div> <div class="wpd-cf-value"> ' . $value . '</div>';
102
  $html .= '</div>';
103
  return $html;
104
  }
41
  <label><?php _e('Display on comment', 'wpdiscuz'); ?>:</label>
42
  <input type="checkbox" value="1" <?php checked($this->fieldData['is_show_on_comment'], 1, true); ?> name="<?php echo $this->fieldInputName; ?>[is_show_on_comment]" />
43
  </div>
44
+ <div class="wpd-advaced-options wpd-field-option">
45
+ <small class="wpd-advaced-options-title"><?php _e('Advanced Options', 'wpdiscuz'); ?></small>
46
+ <div class="wpd-field-option wpd-advaced-options-cont">
47
+ <div class="wpd-field-option">
48
+ <label><?php _e('Meta Key', 'wpdiscuz'); ?>:</label>
49
+ <input type="text" value="<?php echo $this->name; ?>" name="<?php echo $this->fieldInputName; ?>[meta_key]" required="required"/>
50
+ </div>
51
+ <div class="wpd-field-option">
52
+ <label><?php _e('Replace old meta key', 'wpdiscuz'); ?>:</label>
53
+ <input type="checkbox" value="1" checked="checked" name="<?php echo $this->fieldInputName; ?>[meta_key_replace]" />
54
+ </div>
55
+ </div>
56
+ </div>
57
  <div style="clear:both;"></div>
58
  </div>
59
  <?php
111
  return '';
112
  }
113
  $html = '<div class="wpd-custom-field wpd-cf-text">';
114
+ $html .= '<div class="wpd-cf-label">' . $args['name'] . '</div> <div class="wpd-cf-value"> ' . apply_filters('wpdiscuz_custom_field_radio', $value , $args) . '</div>';
115
  $html .= '</div>';
116
  return $html;
117
  }
forms/wpdFormAttr/Field/RatingField.php CHANGED
@@ -32,6 +32,19 @@ class RatingField extends Field {
32
  <label><?php _e('Display on comment', 'wpdiscuz'); ?>:</label>
33
  <input type="checkbox" value="1" <?php checked($this->fieldData['is_show_on_comment'], 1, true); ?> name="<?php echo $this->fieldInputName; ?>[is_show_on_comment]" />
34
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
35
  <div style="clear:both;"></div>
36
  </div>
37
  <?php
32
  <label><?php _e('Display on comment', 'wpdiscuz'); ?>:</label>
33
  <input type="checkbox" value="1" <?php checked($this->fieldData['is_show_on_comment'], 1, true); ?> name="<?php echo $this->fieldInputName; ?>[is_show_on_comment]" />
34
  </div>
35
+ <div class="wpd-advaced-options wpd-field-option">
36
+ <small class="wpd-advaced-options-title"><?php _e('Advanced Options', 'wpdiscuz'); ?></small>
37
+ <div class="wpd-field-option wpd-advaced-options-cont">
38
+ <div class="wpd-field-option">
39
+ <label><?php _e('Meta Key', 'wpdiscuz'); ?>:</label>
40
+ <input type="text" value="<?php echo $this->name; ?>" name="<?php echo $this->fieldInputName; ?>[meta_key]" required="required"/>
41
+ </div>
42
+ <div class="wpd-field-option">
43
+ <label><?php _e('Replace old meta key', 'wpdiscuz'); ?>:</label>
44
+ <input type="checkbox" value="1" checked="checked" name="<?php echo $this->fieldInputName; ?>[meta_key_replace]" />
45
+ </div>
46
+ </div>
47
+ </div>
48
  <div style="clear:both;"></div>
49
  </div>
50
  <?php
forms/wpdFormAttr/Field/SelectField.php CHANGED
@@ -41,6 +41,19 @@ class SelectField extends Field {
41
  <label><?php _e('Display on comment', 'wpdiscuz'); ?>:</label>
42
  <input type="checkbox" value="1" <?php checked($this->fieldData['is_show_on_comment'], 1, true); ?> name="<?php echo $this->fieldInputName; ?>[is_show_on_comment]" />
43
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
44
  <div style="clear:both;"></div>
45
  </div>
46
  <?php
@@ -93,7 +106,7 @@ class SelectField extends Field {
93
  return '';
94
  }
95
  $html = '<div class="wpd-custom-field wpd-cf-text">';
96
- $html .= '<div class="wpd-cf-label">' . $args['name'] . '</div> <div class="wpd-cf-value"> ' . $value . '</div>';
97
  $html .= '</div>';
98
  return $html;
99
  }
41
  <label><?php _e('Display on comment', 'wpdiscuz'); ?>:</label>
42
  <input type="checkbox" value="1" <?php checked($this->fieldData['is_show_on_comment'], 1, true); ?> name="<?php echo $this->fieldInputName; ?>[is_show_on_comment]" />
43
  </div>
44
+ <div class="wpd-advaced-options wpd-field-option">
45
+ <small class="wpd-advaced-options-title"><?php _e('Advanced Options', 'wpdiscuz'); ?></small>
46
+ <div class="wpd-field-option wpd-advaced-options-cont">
47
+ <div class="wpd-field-option">
48
+ <label><?php _e('Meta Key', 'wpdiscuz'); ?>:</label>
49
+ <input type="text" value="<?php echo $this->name; ?>" name="<?php echo $this->fieldInputName; ?>[meta_key]" required="required"/>
50
+ </div>
51
+ <div class="wpd-field-option">
52
+ <label><?php _e('Replace old meta key', 'wpdiscuz'); ?>:</label>
53
+ <input type="checkbox" value="1" checked="checked" name="<?php echo $this->fieldInputName; ?>[meta_key_replace]" />
54
+ </div>
55
+ </div>
56
+ </div>
57
  <div style="clear:both;"></div>
58
  </div>
59
  <?php
106
  return '';
107
  }
108
  $html = '<div class="wpd-custom-field wpd-cf-text">';
109
+ $html .= '<div class="wpd-cf-label">' . $args['name'] . '</div> <div class="wpd-cf-value"> ' . apply_filters('wpdiscuz_custom_field_select', $value , $args) . '</div>';
110
  $html .= '</div>';
111
  return $html;
112
  }
forms/wpdFormAttr/Field/TextAreaField.php CHANGED
@@ -31,6 +31,19 @@ class TextAreaField extends Field {
31
  <label><?php _e('Display on comment', 'wpdiscuz'); ?>:</label>
32
  <input type="checkbox" value="1" <?php checked($this->fieldData['is_show_on_comment'], 1, true); ?> name="<?php echo $this->fieldInputName; ?>[is_show_on_comment]" />
33
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
34
  <div style="clear:both;"></div>
35
  </div>
36
  <?php
@@ -71,7 +84,7 @@ class TextAreaField extends Field {
71
  return '';
72
  }
73
  $html = '<div class="wpd-custom-field wpd-cf-text">';
74
- $html .= '<div class="wpd-cf-label">' . $args['name'] . '</div> <div class="wpd-cf-value"> ' . $value . '</div>';
75
  $html .= '</div>';
76
  return $html;
77
  }
31
  <label><?php _e('Display on comment', 'wpdiscuz'); ?>:</label>
32
  <input type="checkbox" value="1" <?php checked($this->fieldData['is_show_on_comment'], 1, true); ?> name="<?php echo $this->fieldInputName; ?>[is_show_on_comment]" />
33
  </div>
34
+ <div class="wpd-advaced-options wpd-field-option">
35
+ <small class="wpd-advaced-options-title"><?php _e('Advanced Options', 'wpdiscuz'); ?></small>
36
+ <div class="wpd-field-option wpd-advaced-options-cont">
37
+ <div class="wpd-field-option">
38
+ <label><?php _e('Meta Key', 'wpdiscuz'); ?>:</label>
39
+ <input type="text" value="<?php echo $this->name; ?>" name="<?php echo $this->fieldInputName; ?>[meta_key]" required="required"/>
40
+ </div>
41
+ <div class="wpd-field-option">
42
+ <label><?php _e('Replace old meta key', 'wpdiscuz'); ?>:</label>
43
+ <input type="checkbox" value="1" checked="checked" name="<?php echo $this->fieldInputName; ?>[meta_key_replace]" />
44
+ </div>
45
+ </div>
46
+ </div>
47
  <div style="clear:both;"></div>
48
  </div>
49
  <?php
84
  return '';
85
  }
86
  $html = '<div class="wpd-custom-field wpd-cf-text">';
87
+ $html .= '<div class="wpd-cf-label">' . $args['name'] . '</div> <div class="wpd-cf-value"> ' . apply_filters('wpdiscuz_custom_field_textarea', $value , $args) . '</div>';
88
  $html .= '</div>';
89
  return $html;
90
  }
forms/wpdFormAttr/Field/TextField.php CHANGED
@@ -37,6 +37,19 @@ class TextField extends Field {
37
  <label><?php _e('Display on comment', 'wpdiscuz'); ?>:</label>
38
  <input type="checkbox" value="1" <?php checked($this->fieldData['is_show_on_comment'], 1, true); ?> name="<?php echo $this->fieldInputName; ?>[is_show_on_comment]" />
39
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  <div style="clear:both;"></div>
41
  </div>
42
  <?php
@@ -82,7 +95,7 @@ class TextField extends Field {
82
  return '';
83
  }
84
  $html = '<div class="wpd-custom-field wpd-cf-text">';
85
- $html .= '<div class="wpd-cf-label">' . $args['name'] . '</div> <div class="wpd-cf-value"> ' . $value . '</div>';
86
  $html .= '</div>';
87
  return $html;
88
  }
37
  <label><?php _e('Display on comment', 'wpdiscuz'); ?>:</label>
38
  <input type="checkbox" value="1" <?php checked($this->fieldData['is_show_on_comment'], 1, true); ?> name="<?php echo $this->fieldInputName; ?>[is_show_on_comment]" />
39
  </div>
40
+ <div class="wpd-advaced-options wpd-field-option">
41
+ <small class="wpd-advaced-options-title"><?php _e('Advanced Options', 'wpdiscuz'); ?></small>
42
+ <div class="wpd-field-option wpd-advaced-options-cont">
43
+ <div class="wpd-field-option">
44
+ <label><?php _e('Meta Key', 'wpdiscuz'); ?>:</label>
45
+ <input type="text" value="<?php echo $this->name; ?>" name="<?php echo $this->fieldInputName; ?>[meta_key]" required="required"/>
46
+ </div>
47
+ <div class="wpd-field-option">
48
+ <label><?php _e('Replace old meta key', 'wpdiscuz'); ?>:</label>
49
+ <input type="checkbox" value="1" checked="checked" name="<?php echo $this->fieldInputName; ?>[meta_key_replace]" />
50
+ </div>
51
+ </div>
52
+ </div>
53
  <div style="clear:both;"></div>
54
  </div>
55
  <?php
95
  return '';
96
  }
97
  $html = '<div class="wpd-custom-field wpd-cf-text">';
98
+ $html .= '<div class="wpd-cf-label">' . $args['name'] . '</div> <div class="wpd-cf-value"> ' . apply_filters('wpdiscuz_custom_field_text', $value , $args) . '</div>';
99
  $html .= '</div>';
100
  return $html;
101
  }
forms/wpdFormAttr/Field/UrlField.php CHANGED
@@ -37,6 +37,19 @@ class UrlField extends Field {
37
  <label><?php _e('Display on comment', 'wpdiscuz'); ?>:</label>
38
  <input type="checkbox" value="1" <?php checked($this->fieldData['is_show_on_comment'], 1, true); ?> name="<?php echo $this->fieldInputName; ?>[is_show_on_comment]" />
39
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  <div style="clear:both;"></div>
41
  </div>
42
  <?php
@@ -82,7 +95,8 @@ class UrlField extends Field {
82
  return '';
83
  }
84
  $html = '<div class="wpd-custom-field wpd-cf-text">';
85
- $html .= '<div class="wpd-cf-label">' . $args['name'] . '</div> <div class="wpd-cf-value"> <a href="' . esc_url($value) . '" target="_blank">' . esc_url($value) . '</a></div>';
 
86
  $html .= '</div>';
87
  return $html;
88
  }
37
  <label><?php _e('Display on comment', 'wpdiscuz'); ?>:</label>
38
  <input type="checkbox" value="1" <?php checked($this->fieldData['is_show_on_comment'], 1, true); ?> name="<?php echo $this->fieldInputName; ?>[is_show_on_comment]" />
39
  </div>
40
+ <div class="wpd-advaced-options wpd-field-option">
41
+ <small class="wpd-advaced-options-title"><?php _e('Advanced Options', 'wpdiscuz'); ?></small>
42
+ <div class="wpd-field-option wpd-advaced-options-cont">
43
+ <div class="wpd-field-option">
44
+ <label><?php _e('Meta Key', 'wpdiscuz'); ?>:</label>
45
+ <input type="text" value="<?php echo $this->name; ?>" name="<?php echo $this->fieldInputName; ?>[meta_key]" required="required"/>
46
+ </div>
47
+ <div class="wpd-field-option">
48
+ <label><?php _e('Replace old meta key', 'wpdiscuz'); ?>:</label>
49
+ <input type="checkbox" value="1" checked="checked" name="<?php echo $this->fieldInputName; ?>[meta_key_replace]" />
50
+ </div>
51
+ </div>
52
+ </div>
53
  <div style="clear:both;"></div>
54
  </div>
55
  <?php
95
  return '';
96
  }
97
  $html = '<div class="wpd-custom-field wpd-cf-text">';
98
+ $value = apply_filters('wpdiscuz_custom_field_url', $value , $args);
99
+ $html .= '<div class="wpd-cf-label">' . $args['name'] . '</div> <div class="wpd-cf-value"> <a href="' . esc_url($value) . '" target="_blank">' . $value . '</a></div>';
100
  $html .= '</div>';
101
  return $html;
102
  }
forms/wpdFormAttr/Form.php CHANGED
@@ -51,7 +51,7 @@ class Form {
51
  $this->formFields = get_post_meta($this->formID, wpdFormConst::WPDISCUZ_META_FORMS_FIELDS, true);
52
  if (is_array($this->formFields)) {
53
  foreach ($this->formFields as $key => $field) {
54
- if (!in_array($key, $this->defaultsFieldsNames)) {
55
  $this->formCustomFields[$key] = $field;
56
  if (!$this->ratingsExists && $field['type'] == 'wpdFormAttr\Field\RatingField') {
57
  $this->ratingsExists = true;
@@ -159,11 +159,12 @@ class Form {
159
  }
160
 
161
  public function saveCommentMeta($commentID) {
 
 
162
  foreach ($this->fieldsBeforeSave as $mettaKey => $data) {
163
  if ($this->ratingsExists && $this->formCustomFields[$mettaKey]['type'] == 'wpdFormAttr\Field\RatingField') {
164
  $oldCommentRating = get_comment_meta($commentID, $mettaKey, true);
165
- if ($oldCommentRating) {
166
- $comment = get_comment($commentID);
167
  $postID = $comment->comment_post_ID;
168
  $postRatingMeta = get_post_meta($postID, 'wpdiscuz_rating_count', true);
169
  $oldCommentRatingCount = $postRatingMeta[$mettaKey][$oldCommentRating] - 1;
@@ -172,7 +173,6 @@ class Form {
172
  } else {
173
  unset($postRatingMeta[$mettaKey][$oldCommentRating]);
174
  }
175
-
176
  update_post_meta($postID, 'wpdiscuz_rating_count', $postRatingMeta);
177
  }
178
  $this->ratings[] = array('metakey' => $mettaKey, 'value' => $data);
@@ -185,17 +185,18 @@ class Form {
185
  $ratingSum += $rating['value'];
186
  }
187
  $gRating = round($ratingSum / count($this->ratings));
188
- $this->saveProstRatingMeta($commentID, $gRating);
189
  update_comment_meta($commentID, 'rating', $gRating);
 
 
 
190
  }
191
  }
192
 
193
- private function saveProstRatingMeta($commentID, $rating) {
194
- $comment = get_comment($commentID);
195
  $postID = $comment->comment_post_ID;
196
  if (class_exists('WooCommerce') && get_post_type($postID) == 'product') {
197
  $ratingCount = get_post_meta($postID, '_wc_rating_count', true);
198
- $oldRatingMeta = get_comment_meta($commentID, 'rating', true);
199
  $oldRating = $oldRatingMeta ? $oldRating : 0;
200
  if (isset($ratingCount[$oldRating])) {
201
  $oldRatingCount = $ratingCount[$oldRating] - 1;
@@ -236,7 +237,29 @@ class Form {
236
 
237
  public function displayRatingMeta($content) {
238
  global $post;
239
- if ($this->ratingsExists && is_singular() && !(class_exists('WooCommerce') && get_post_type($post) == 'product')) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
240
  $wpdiscuzRatingCountMeta = get_post_meta($post->ID, 'wpdiscuz_rating_count', true);
241
  $wpdiscuzRatingCount = $wpdiscuzRatingCountMeta && is_array($wpdiscuzRatingCountMeta) ? $wpdiscuzRatingCountMeta : array();
242
  $ratingList = array();
@@ -247,40 +270,67 @@ class Form {
247
  $tempRating += $rating * $count;
248
  $tempRatingCount += $count;
249
  }
250
-
251
- $ratingList[$metaKey]['average'] = round($tempRating / $tempRatingCount, 2);
252
- $ratingList[$metaKey]['count'] = $tempRatingCount;
 
 
 
 
253
  }
254
  if ($ratingList) {
255
- $content .= '<div class="wpdiscuz-post-rating-wrap wpd-custom-field">';
256
- foreach ($ratingList as $key => $value) {
257
- if (key_exists($key, $this->formCustomFields)) {
258
- $icon = $this->formCustomFields[$key]['icon'];
259
- $content .= '<div class="wpdiscuz-post-rating-wrap-'.$key.'">';
260
- $content .= '<div class="wpdiscuz-stars-label">' . $this->formCustomFields[$key]['name'] . ' (' . $value['average'] . ' / ' . $value['count'] . ') </div>';
261
- $content .= '<div class="wpdiscuz-stars-wrapper">
262
- <div class="wpdiscuz-stars-wrapper-inner">
263
- <div class="wpdiscuz-pasiv-stars">
264
- <i class="fa ' . $icon . ' wcf-pasiv-star"></i>
265
- <i class="fa ' . $icon . ' wcf-pasiv-star"></i>
266
- <i class="fa ' . $icon . ' wcf-pasiv-star"></i>
267
- <i class="fa ' . $icon . ' wcf-pasiv-star"></i>
268
- <i class="fa ' . $icon . ' wcf-pasiv-star"></i>
269
- </div>
270
- <div class="wpdiscuz-activ-stars" style="width:' . $value['average'] * 100 / 5 . '%;">
271
- <i class="fa ' . $icon . ' wcf-activ-star"></i>
272
- <i class="fa ' . $icon . ' wcf-activ-star"></i>
273
- <i class="fa ' . $icon . ' wcf-activ-star"></i>
274
- <i class="fa ' . $icon . ' wcf-activ-star"></i>
275
- <i class="fa ' . $icon . ' wcf-activ-star"></i>
276
- </div></div></div><div style="display:inline-block; position:relative;"></div>';
277
- $content .='</div>';
278
  }
 
 
279
  }
280
- $content .= '</div>';
281
  }
282
  }
283
- return $content;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
284
  }
285
 
286
  private function validateGeneralOptions($options) {
@@ -330,11 +380,12 @@ class Form {
330
  }
331
 
332
  private function validateFormStructure($formStructure) {
 
333
  foreach ($formStructure as $rowID => $rowData) {
334
  $sanitizeData = $this->row->sanitizeRowData($rowData, $this->formFields);
335
  if ($sanitizeData) {
336
  $formStructure[$rowID] = $sanitizeData;
337
- }else{
338
  unset($formStructure[$rowID]);
339
  }
340
  }
@@ -393,12 +444,11 @@ class Form {
393
  foreach ($formCustomFields as $key => $value) {
394
  if ($value['loc'] == $loc) {
395
  $fieldType = $value['type'];
396
- $field = call_user_func($fieldType . '::getInstance');
397
  $metaValuen = isset($meta[$key][0]) ? maybe_unserialize($meta[$key][0]) : '';
398
- if (!$metaValuen) {
399
- continue;
 
400
  }
401
- $html .= $field->frontHtml($metaValuen, $value);
402
  }
403
  }
404
  return $html;
@@ -427,9 +477,9 @@ class Form {
427
  <form class="wc_comm_form <?php echo!$isMain ? 'wc-secondary-form-wrapper' : 'wc_main_comm_form'; ?>" method="post" enctype="multipart/form-data">
428
  <div class="wc-field-comment">
429
  <?php if ($this->wpdOptions->wordpressShowAvatars) { ?>
430
- <?php $authorName = $currentUser->ID ? $currentUser->display_name : 'avatar'; ?>
431
  <div class="wc-field-avatararea">
432
- <?php echo get_avatar($currentUser->ID, 48, '', $authorName); ?>
433
  </div>
434
  <?php } ?>
435
  <div class="wpdiscuz-item wc-field-textarea" <?php
@@ -442,12 +492,12 @@ class Form {
442
  <?php if (intval($this->wpdOptions->commentTextMaxLength)) { ?>
443
  <div class="commentTextMaxLength"><?php echo $this->wpdOptions->commentTextMaxLength; ?></div>
444
  <?php } ?>
445
- <?php if (defined('WPDISCUZ_BOTTOM_TOOLBAR')): ?>
446
  <div class="wpdiscuz-textarea-foot">
447
- <?php do_action('wpdiscuz_button', $uniqueId, $currentUser); ?>
448
  <div class="wpdiscuz-button-actions"><?php do_action('wpdiscuz_button_actions', $uniqueId, $currentUser); ?></div>
449
  </div>
450
- <?php endif; ?>
451
  </div>
452
  </div>
453
  <div class="clearfix"></div>
@@ -462,7 +512,7 @@ class Form {
462
  <div class="clearfix"></div>
463
  <input type="hidden" class="wpdiscuz_unique_id" value="<?php echo $uniqueId; ?>" name="wpdiscuz_unique_id">
464
  </form>
465
- <?php } else { ?>
466
  <p class="wc-must-login">
467
  <?php
468
  echo $this->wpdOptions->phrases['wc_you_must_be_text'];
@@ -533,19 +583,19 @@ class Form {
533
  <tbody>
534
  <tr>
535
  <th>
536
- <?php _e('Language', 'wpdiscuz'); ?>
537
  </th>
538
  <td>
539
- <?php $lang = isset($this->generalOptions['lang']) ? $this->generalOptions['lang'] : get_locale(); ?>
540
  <input required="" type="text" name="<?php echo wpdFormConst::WPDISCUZ_META_FORMS_GENERAL_OPTIONS; ?>[lang]" value="<?php echo $lang; ?>" >
541
  </td>
542
  </tr>
543
  <tr>
544
  <th>
545
- <?php _e('Allow guests to comment', 'wpdiscuz'); ?>
546
  </th>
547
  <td>
548
- <?php $guestCanComment = isset($this->generalOptions['guest_can_comment']) ? $this->generalOptions['guest_can_comment'] : 1; ?>
549
  <input <?php checked($guestCanComment, 1, true); ?> type="radio" name="<?php echo wpdFormConst::WPDISCUZ_META_FORMS_GENERAL_OPTIONS; ?>[guest_can_comment]" value="1" id="wpd_cf_guest_yes" > <label for="wpd_cf_guest_yes"><?php _e('Yes', 'wpdiscuz'); ?></label>
550
  &nbsp;
551
  <input <?php checked($guestCanComment, 0, true); ?> type="radio" name="<?php echo wpdFormConst::WPDISCUZ_META_FORMS_GENERAL_OPTIONS; ?>[guest_can_comment]" value="0" id="wpd_cf_guest_no"> <label for="wpd_cf_guest_no"><?php _e('No', 'wpdiscuz'); ?></label>
@@ -553,10 +603,10 @@ class Form {
553
  </tr>
554
  <tr>
555
  <th>
556
- <?php _e('Enable subscription bar', 'wpdiscuz'); ?>
557
  </th>
558
  <td>
559
- <?php $showSubscriptionBar = isset($this->generalOptions['show_subscription_bar']) ? $this->generalOptions['show_subscription_bar'] : 1; ?>
560
  <input <?php checked($showSubscriptionBar, 1, true); ?> type="radio" name="<?php echo wpdFormConst::WPDISCUZ_META_FORMS_GENERAL_OPTIONS; ?>[show_subscription_bar]" value="1" id="wpd_cf_sbbar_yes" > <label for="wpd_cf_sbbar_yes"><?php _e('Yes', 'wpdiscuz'); ?></label>
561
  &nbsp;
562
  <input <?php checked($showSubscriptionBar, 0, true); ?> type="radio" name="<?php echo wpdFormConst::WPDISCUZ_META_FORMS_GENERAL_OPTIONS; ?>[show_subscription_bar]" value="0" id="wpd_cf_sbbar_no"> <label for="wpd_cf_sbbar_no"><?php _e('No', 'wpdiscuz'); ?></label>
@@ -564,7 +614,7 @@ class Form {
564
  </tr>
565
  <tr>
566
  <th>
567
- <?php _e('Comment form header text', 'wpdiscuz'); ?>
568
  </th>
569
  <td >
570
  <div>
@@ -594,12 +644,12 @@ class Form {
594
  <span><?php echo $typeValue; ?></span>
595
  </label>
596
  <?php } ?>
597
- <?php if ($hasForm) echo $formRelExistsInfo; ?>
598
  </td>
599
  </tr>
600
  <tr>
601
  <th>
602
- <?php _e('Display comment form for post IDs', 'wpdiscuz'); ?>
603
  <p class="wpd-info"> <?php _e('You can use this form for certain posts/pages specified by comma separated IDs.', 'wpdiscuz'); ?></p>
604
  </th>
605
  <td><input type="text" name="<?php echo wpdFormConst::WPDISCUZ_META_FORMS_GENERAL_OPTIONS; ?>[postid]" placeholder="5,26,30..." value="<?php echo isset($this->generalOptions['postid']) ? $this->generalOptions['postid'] : ''; ?>" style="width:80%;"></td>
51
  $this->formFields = get_post_meta($this->formID, wpdFormConst::WPDISCUZ_META_FORMS_FIELDS, true);
52
  if (is_array($this->formFields)) {
53
  foreach ($this->formFields as $key => $field) {
54
+ if (is_callable($field['type'] . '::getInstance') && !in_array($key, $this->defaultsFieldsNames)) {
55
  $this->formCustomFields[$key] = $field;
56
  if (!$this->ratingsExists && $field['type'] == 'wpdFormAttr\Field\RatingField') {
57
  $this->ratingsExists = true;
159
  }
160
 
161
  public function saveCommentMeta($commentID) {
162
+ $comment = get_comment($commentID);
163
+ $commentApproved = $comment->comment_approved;
164
  foreach ($this->fieldsBeforeSave as $mettaKey => $data) {
165
  if ($this->ratingsExists && $this->formCustomFields[$mettaKey]['type'] == 'wpdFormAttr\Field\RatingField') {
166
  $oldCommentRating = get_comment_meta($commentID, $mettaKey, true);
167
+ if ($oldCommentRating && $commentApproved) {
 
168
  $postID = $comment->comment_post_ID;
169
  $postRatingMeta = get_post_meta($postID, 'wpdiscuz_rating_count', true);
170
  $oldCommentRatingCount = $postRatingMeta[$mettaKey][$oldCommentRating] - 1;
173
  } else {
174
  unset($postRatingMeta[$mettaKey][$oldCommentRating]);
175
  }
 
176
  update_post_meta($postID, 'wpdiscuz_rating_count', $postRatingMeta);
177
  }
178
  $this->ratings[] = array('metakey' => $mettaKey, 'value' => $data);
185
  $ratingSum += $rating['value'];
186
  }
187
  $gRating = round($ratingSum / count($this->ratings));
 
188
  update_comment_meta($commentID, 'rating', $gRating);
189
+ if ($commentApproved) {
190
+ $this->saveProstRatingMeta($comment, $gRating);
191
+ }
192
  }
193
  }
194
 
195
+ private function saveProstRatingMeta($comment, $rating) {
 
196
  $postID = $comment->comment_post_ID;
197
  if (class_exists('WooCommerce') && get_post_type($postID) == 'product') {
198
  $ratingCount = get_post_meta($postID, '_wc_rating_count', true);
199
+ $oldRatingMeta = get_comment_meta($comment->comment_ID, 'rating', true);
200
  $oldRating = $oldRatingMeta ? $oldRating : 0;
201
  if (isset($ratingCount[$oldRating])) {
202
  $oldRatingCount = $ratingCount[$oldRating] - 1;
237
 
238
  public function displayRatingMeta($content) {
239
  global $post;
240
+ if (!(class_exists('WooCommerce') && get_post_type($post) == 'product')) {
241
+ if (in_array('before', $this->wpdOptions->displayRatingOnPost)) {
242
+ $content = $this->getRatingMetaHtml() . $content;
243
+ }
244
+ if (in_array('after', $this->wpdOptions->displayRatingOnPost)) {
245
+ $content .= $this->getRatingMetaHtml();
246
+ }
247
+ }
248
+ return $content;
249
+ }
250
+
251
+ public function getRatingMetaHtml($atts = array()) {
252
+ global $post;
253
+ $html = '';
254
+ $atts = shortcode_atts(array(
255
+ 'metakey' => 'all',
256
+ 'show-lable' => true,
257
+ 'show-count' => true,
258
+ 'show-average' => true,
259
+ 'itemprop' => true
260
+ ), $atts);
261
+ $this->initFormFields();
262
+ if ($this->ratingsExists && is_singular()) {
263
  $wpdiscuzRatingCountMeta = get_post_meta($post->ID, 'wpdiscuz_rating_count', true);
264
  $wpdiscuzRatingCount = $wpdiscuzRatingCountMeta && is_array($wpdiscuzRatingCountMeta) ? $wpdiscuzRatingCountMeta : array();
265
  $ratingList = array();
270
  $tempRating += $rating * $count;
271
  $tempRatingCount += $count;
272
  }
273
+ if ($tempRatingCount <= 0) {
274
+ $ratingList[$metaKey]['average'] = 0;
275
+ $ratingList[$metaKey]['count'] = 0;
276
+ } else {
277
+ $ratingList[$metaKey]['average'] = round($tempRating / $tempRatingCount, 2);
278
+ $ratingList[$metaKey]['count'] = $tempRatingCount;
279
+ }
280
  }
281
  if ($ratingList) {
282
+ $html .= '<div class="wpdiscuz-post-rating-wrap wpd-custom-field">';
283
+ if (!isset($atts['metakey']) || $atts['metakey'] == '' || $atts['metakey'] == 'all') {
284
+ foreach ($ratingList as $key => $value) {
285
+ $html .= $this->getSingleRatingHtml($key, $value, $atts);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
286
  }
287
+ } else {
288
+ $html .= $this->getSingleRatingHtml($atts['metakey'], $ratingList[$atts['metakey']], $atts);
289
  }
290
+ $html .= '</div>';
291
  }
292
  }
293
+ return $html;
294
+ }
295
+
296
+ private function getSingleRatingHtml($metakey, $ratingData, $args) {
297
+ $html = '';
298
+ if (key_exists($metakey, $this->formCustomFields)) {
299
+ $icon = $this->formCustomFields[$metakey]['icon'];
300
+ $html .= '<div class="wpdiscuz-post-rating-wrap-' . $metakey . '">';
301
+ if (filter_var($args['show-lable'], FILTER_VALIDATE_BOOLEAN)) {
302
+ $stat = '';
303
+ if (filter_var($args['show-count'], FILTER_VALIDATE_BOOLEAN) && filter_var($args['show-average'], FILTER_VALIDATE_BOOLEAN)) {
304
+ $stat = ' (' . $ratingData['average'] . ' / ' . $ratingData['count'] . ')';
305
+ } elseif (filter_var($args['show-count'], FILTER_VALIDATE_BOOLEAN)) {
306
+ $stat = ' (' . $ratingData['count'] . ')';
307
+ } elseif (filter_var($args['show-average'], FILTER_VALIDATE_BOOLEAN)) {
308
+ $stat = ' (' . $ratingData['average'] . ')';
309
+ }
310
+ $html .= '<div class="wpdiscuz-stars-label">' . $this->formCustomFields[$metakey]['name'] . $stat . ' </div>';
311
+ }
312
+ $html .= '<div class="wpdiscuz-stars-wrapper">
313
+ <div class="wpdiscuz-stars-wrapper-inner">
314
+ <div class="wpdiscuz-pasiv-stars">
315
+ <i class="fa ' . $icon . ' wcf-pasiv-star"></i>
316
+ <i class="fa ' . $icon . ' wcf-pasiv-star"></i>
317
+ <i class="fa ' . $icon . ' wcf-pasiv-star"></i>
318
+ <i class="fa ' . $icon . ' wcf-pasiv-star"></i>
319
+ <i class="fa ' . $icon . ' wcf-pasiv-star"></i>
320
+ </div>
321
+ <div class="wpdiscuz-activ-stars" style="width:' . $ratingData['average'] * 100 / 5 . '%;">
322
+ <i class="fa ' . $icon . ' wcf-activ-star"></i>
323
+ <i class="fa ' . $icon . ' wcf-activ-star"></i>
324
+ <i class="fa ' . $icon . ' wcf-activ-star"></i>
325
+ <i class="fa ' . $icon . ' wcf-activ-star"></i>
326
+ <i class="fa ' . $icon . ' wcf-activ-star"></i>
327
+ </div></div></div><div style="display:inline-block; position:relative;"></div>';
328
+ $html .= '</div>';
329
+ if ($args['itemprop'] && $ratingData['count']) {
330
+ $html .= '<div style="display: none;" itemprop="aggregateRating" itemscope="" itemtype="http://schema.org/AggregateRating"><meta itemprop="bestRating" content="5"><meta itemprop="worstRating" content="1"><meta itemprop="ratingValue" content="' . $ratingData['average'] . '"><meta itemprop="ratingCount" content="' . $ratingData['count'] . '"></div>';
331
+ }
332
+ }
333
+ return $html;
334
  }
335
 
336
  private function validateGeneralOptions($options) {
380
  }
381
 
382
  private function validateFormStructure($formStructure) {
383
+ $this->formFields = array();
384
  foreach ($formStructure as $rowID => $rowData) {
385
  $sanitizeData = $this->row->sanitizeRowData($rowData, $this->formFields);
386
  if ($sanitizeData) {
387
  $formStructure[$rowID] = $sanitizeData;
388
+ } else {
389
  unset($formStructure[$rowID]);
390
  }
391
  }
444
  foreach ($formCustomFields as $key => $value) {
445
  if ($value['loc'] == $loc) {
446
  $fieldType = $value['type'];
 
447
  $metaValuen = isset($meta[$key][0]) ? maybe_unserialize($meta[$key][0]) : '';
448
+ if (is_callable($fieldType . '::getInstance') && $metaValuen) {
449
+ $field = call_user_func($fieldType . '::getInstance');
450
+ $html .= $field->frontHtml($metaValuen, $value);
451
  }
 
452
  }
453
  }
454
  return $html;
477
  <form class="wc_comm_form <?php echo!$isMain ? 'wc-secondary-form-wrapper' : 'wc_main_comm_form'; ?>" method="post" enctype="multipart/form-data">
478
  <div class="wc-field-comment">
479
  <?php if ($this->wpdOptions->wordpressShowAvatars) { ?>
480
+ <?php $authorName = $currentUser->ID ? $currentUser->display_name : 'avatar'; ?>
481
  <div class="wc-field-avatararea">
482
+ <?php echo get_avatar($currentUser->ID, 48, '', $authorName); ?>
483
  </div>
484
  <?php } ?>
485
  <div class="wpdiscuz-item wc-field-textarea" <?php
492
  <?php if (intval($this->wpdOptions->commentTextMaxLength)) { ?>
493
  <div class="commentTextMaxLength"><?php echo $this->wpdOptions->commentTextMaxLength; ?></div>
494
  <?php } ?>
495
+ <?php if (defined('WPDISCUZ_BOTTOM_TOOLBAR')): ?>
496
  <div class="wpdiscuz-textarea-foot">
497
+ <?php do_action('wpdiscuz_button', $uniqueId, $currentUser); ?>
498
  <div class="wpdiscuz-button-actions"><?php do_action('wpdiscuz_button_actions', $uniqueId, $currentUser); ?></div>
499
  </div>
500
+ <?php endif; ?>
501
  </div>
502
  </div>
503
  <div class="clearfix"></div>
512
  <div class="clearfix"></div>
513
  <input type="hidden" class="wpdiscuz_unique_id" value="<?php echo $uniqueId; ?>" name="wpdiscuz_unique_id">
514
  </form>
515
+ <?php } else { ?>
516
  <p class="wc-must-login">
517
  <?php
518
  echo $this->wpdOptions->phrases['wc_you_must_be_text'];
583
  <tbody>
584
  <tr>
585
  <th>
586
+ <?php _e('Language', 'wpdiscuz'); ?>
587
  </th>
588
  <td>
589
+ <?php $lang = isset($this->generalOptions['lang']) ? $this->generalOptions['lang'] : get_locale(); ?>
590
  <input required="" type="text" name="<?php echo wpdFormConst::WPDISCUZ_META_FORMS_GENERAL_OPTIONS; ?>[lang]" value="<?php echo $lang; ?>" >
591
  </td>
592
  </tr>
593
  <tr>
594
  <th>
595
+ <?php _e('Allow guests to comment', 'wpdiscuz'); ?>
596
  </th>
597
  <td>
598
+ <?php $guestCanComment = isset($this->generalOptions['guest_can_comment']) ? $this->generalOptions['guest_can_comment'] : 1; ?>
599
  <input <?php checked($guestCanComment, 1, true); ?> type="radio" name="<?php echo wpdFormConst::WPDISCUZ_META_FORMS_GENERAL_OPTIONS; ?>[guest_can_comment]" value="1" id="wpd_cf_guest_yes" > <label for="wpd_cf_guest_yes"><?php _e('Yes', 'wpdiscuz'); ?></label>
600
  &nbsp;
601
  <input <?php checked($guestCanComment, 0, true); ?> type="radio" name="<?php echo wpdFormConst::WPDISCUZ_META_FORMS_GENERAL_OPTIONS; ?>[guest_can_comment]" value="0" id="wpd_cf_guest_no"> <label for="wpd_cf_guest_no"><?php _e('No', 'wpdiscuz'); ?></label>
603
  </tr>
604
  <tr>
605
  <th>
606
+ <?php _e('Enable subscription bar', 'wpdiscuz'); ?>
607
  </th>
608
  <td>
609
+ <?php $showSubscriptionBar = isset($this->generalOptions['show_subscription_bar']) ? $this->generalOptions['show_subscription_bar'] : 1; ?>
610
  <input <?php checked($showSubscriptionBar, 1, true); ?> type="radio" name="<?php echo wpdFormConst::WPDISCUZ_META_FORMS_GENERAL_OPTIONS; ?>[show_subscription_bar]" value="1" id="wpd_cf_sbbar_yes" > <label for="wpd_cf_sbbar_yes"><?php _e('Yes', 'wpdiscuz'); ?></label>
611
  &nbsp;
612
  <input <?php checked($showSubscriptionBar, 0, true); ?> type="radio" name="<?php echo wpdFormConst::WPDISCUZ_META_FORMS_GENERAL_OPTIONS; ?>[show_subscription_bar]" value="0" id="wpd_cf_sbbar_no"> <label for="wpd_cf_sbbar_no"><?php _e('No', 'wpdiscuz'); ?></label>
614
  </tr>
615
  <tr>
616
  <th>
617
+ <?php _e('Comment form header text', 'wpdiscuz'); ?>
618
  </th>
619
  <td >
620
  <div>
644
  <span><?php echo $typeValue; ?></span>
645
  </label>
646
  <?php } ?>
647
+ <?php if ($hasForm) echo $formRelExistsInfo; ?>
648
  </td>
649
  </tr>
650
  <tr>
651
  <th>
652
+ <?php _e('Display comment form for post IDs', 'wpdiscuz'); ?>
653
  <p class="wpd-info"> <?php _e('You can use this form for certain posts/pages specified by comma separated IDs.', 'wpdiscuz'); ?></p>
654
  </th>
655
  <td><input type="text" name="<?php echo wpdFormConst::WPDISCUZ_META_FORMS_GENERAL_OPTIONS; ?>[postid]" placeholder="5,26,30..." value="<?php echo isset($this->generalOptions['postid']) ? $this->generalOptions['postid'] : ''; ?>" style="width:80%;"></td>
forms/wpdFormAttr/Row.php CHANGED
@@ -72,33 +72,33 @@ class Row {
72
  <?php
73
  }
74
 
75
- public function renderFrontFormRow($args,$options,$currentUser,$uniqueId,$isMainForm) {
76
  ?>
77
  <div class="wpd-form-row">
78
  <?php
79
  if ($args['column_type'] == 'two') {
80
  $left = $args['left'];
81
  $right = $args['right'];
82
- $this->renderFrontFormCol('left', $left,$options,$currentUser,$uniqueId,$isMainForm);
83
- $this->renderFrontFormCol('right', $right, $options,$currentUser,$uniqueId,$isMainForm);
84
  } else {
85
  $full = $args['full'];
86
- $this->renderFrontFormCol('full', $full,$options,$currentUser,$uniqueId,$isMainForm);
87
  }
88
  ?>
89
  <div class="clearfix"></div>
90
  </div>
91
  <?php
92
  }
93
-
94
- private function renderFrontFormCol($colName, $fields,$options,$currentUser,$uniqueId,$isMainForm) {
95
  ?>
96
  <div class="wpd-form-col-<?php echo $colName; ?>">
97
  <?php
98
  foreach ($fields as $fieldName => $fieldData) {
99
  $fieldType = $fieldData['type'];
100
  $field = call_user_func($fieldType . '::getInstance');
101
- $field->frontFormHtml($fieldName,$fieldData,$options,$currentUser,$uniqueId,$isMainForm);
102
  }
103
  ?>
104
  </div>
@@ -110,13 +110,13 @@ class Row {
110
  $data['full'] = is_array($data['full']) ? $data['full'] : array();
111
  $data['full'] = $this->callFieldSanitize($data['full'], $fields);
112
  $data['column_type'] = 'full';
113
- } else if(isset($data['left']) || isset($data['right'])){
114
- $data['left'] = is_array($data['left']) ? $data['left'] : array();
115
- $data['right'] = is_array($data['right']) ? $data['right'] : array();
116
  $data['left'] = $this->callFieldSanitize($data['left'], $fields);
117
  $data['right'] = $this->callFieldSanitize($data['right'], $fields);
118
  $data['column_type'] = 'two';
119
- }else{
120
  return null;
121
  }
122
  if (isset($data['row_order'])) {
@@ -132,13 +132,73 @@ class Row {
132
  if (!isset($fieldData['type']) && !$fieldData['type']) {
133
  continue;
134
  }
135
- $callableClass = str_replace('\\\\','\\',$fieldData['type']);
136
  if (is_callable($callableClass . '::getInstance')) {
137
  $field = call_user_func($callableClass . '::getInstance');
138
- $args[$fieldName] = $field->sanitizeFieldData($fieldData);
139
- $fields[$fieldName] = $field->sanitizeFieldData($fieldData);
 
 
 
 
 
 
 
140
  }
141
  }
142
  return $args;
143
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
144
  }
72
  <?php
73
  }
74
 
75
+ public function renderFrontFormRow($args, $options, $currentUser, $uniqueId, $isMainForm) {
76
  ?>
77
  <div class="wpd-form-row">
78
  <?php
79
  if ($args['column_type'] == 'two') {
80
  $left = $args['left'];
81
  $right = $args['right'];
82
+ $this->renderFrontFormCol('left', $left, $options, $currentUser, $uniqueId, $isMainForm);
83
+ $this->renderFrontFormCol('right', $right, $options, $currentUser, $uniqueId, $isMainForm);
84
  } else {
85
  $full = $args['full'];
86
+ $this->renderFrontFormCol('full', $full, $options, $currentUser, $uniqueId, $isMainForm);
87
  }
88
  ?>
89
  <div class="clearfix"></div>
90
  </div>
91
  <?php
92
  }
93
+
94
+ private function renderFrontFormCol($colName, $fields, $options, $currentUser, $uniqueId, $isMainForm) {
95
  ?>
96
  <div class="wpd-form-col-<?php echo $colName; ?>">
97
  <?php
98
  foreach ($fields as $fieldName => $fieldData) {
99
  $fieldType = $fieldData['type'];
100
  $field = call_user_func($fieldType . '::getInstance');
101
+ $field->frontFormHtml($fieldName, $fieldData, $options, $currentUser, $uniqueId, $isMainForm);
102
  }
103
  ?>
104
  </div>
110
  $data['full'] = is_array($data['full']) ? $data['full'] : array();
111
  $data['full'] = $this->callFieldSanitize($data['full'], $fields);
112
  $data['column_type'] = 'full';
113
+ } else if (isset($data['left']) || isset($data['right'])) {
114
+ $data['left'] = isset($data['left']) && is_array($data['left']) ? $data['left'] : array();
115
+ $data['right'] = isset($data['right']) && is_array($data['right']) ? $data['right'] : array();
116
  $data['left'] = $this->callFieldSanitize($data['left'], $fields);
117
  $data['right'] = $this->callFieldSanitize($data['right'], $fields);
118
  $data['column_type'] = 'two';
119
+ } else {
120
  return null;
121
  }
122
  if (isset($data['row_order'])) {
132
  if (!isset($fieldData['type']) && !$fieldData['type']) {
133
  continue;
134
  }
135
+ $callableClass = str_replace('\\\\', '\\', $fieldData['type']);
136
  if (is_callable($callableClass . '::getInstance')) {
137
  $field = call_user_func($callableClass . '::getInstance');
138
+ $fieldNewName = $this->changeFieldName($fieldName, $fieldData);
139
+ if ($fieldNewName != $fieldName) {
140
+ $args = $this->chageArrayKey($args, $fieldName, $fieldNewName);
141
+ $args[$fieldNewName] = $field->sanitizeFieldData($fieldData);
142
+ $fields[$fieldNewName] = $field->sanitizeFieldData($fieldData);
143
+ } else {
144
+ $args[$fieldName] = $field->sanitizeFieldData($fieldData);
145
+ $fields[$fieldName] = $field->sanitizeFieldData($fieldData);
146
+ }
147
  }
148
  }
149
  return $args;
150
  }
151
+
152
+ private function changeFieldName($fieldName, $fieldData) {
153
+ if (isset($fieldData['meta_key'])) {
154
+ $metaKey = trim($fieldData['meta_key']);
155
+ if ($metaKey && $fieldName != $metaKey) {
156
+ $newName = str_replace('-', '_', sanitize_title($metaKey));
157
+ $this->replaceMetaKeyInDB($fieldName, $newName, $fieldData);
158
+ $this->chagePostRatingKey($fieldName, $newName, $fieldData);
159
+ $fieldName = $newName;
160
+ }
161
+ }
162
+ return $fieldName;
163
+ }
164
+
165
+ private function chagePostRatingKey($oldName, $newName, $fieldData) {
166
+ if (str_replace('\\\\', '\\', $fieldData['type']) == 'wpdFormAttr\Field\RatingField' && isset($fieldData['meta_key_replace']) && $fieldData['meta_key_replace']) {
167
+ if ($wpdiscuzRatingCount = $this->getPostRatingMeta()) {
168
+ foreach ($wpdiscuzRatingCount as $row) {
169
+ $metaData = maybe_unserialize($row['meta_value']);
170
+ if (is_array($metaData) && key_exists($oldName, $metaData)) {
171
+ $metaData = $this->chageArrayKey($metaData, $oldName, $newName);
172
+ update_post_meta($row['post_id'], 'wpdiscuz_rating_count', $metaData);
173
+ }
174
+ }
175
+ }
176
+ }
177
+ }
178
+
179
+ private function replaceMetaKeyInDB($oldKey, $newKey, $fieldData) {
180
+ global $wpdb;
181
+ if (isset($fieldData['meta_key_replace']) && $fieldData['meta_key_replace']) {
182
+ $sql = $wpdb->prepare("UPDATE `{$wpdb->commentmeta}` SET `meta_key` = %s WHERE `meta_key` = %s", $newKey, $oldKey);
183
+ $wpdb->query($sql);
184
+ }
185
+ }
186
+
187
+ private function getPostRatingMeta() {
188
+ global $wpdb;
189
+ $sql = "SELECT `post_id`,`meta_value` FROM `{$wpdb->postmeta}` WHERE `meta_key` = 'wpdiscuz_rating_count'";
190
+ return $wpdb->get_results($sql, ARRAY_A);
191
+ }
192
+
193
+ private function chageArrayKey($array, $oldKey, $newKey) {
194
+ $keys = array_keys($array);
195
+ $values = array_values($array);
196
+ $oldKeyIndex = array_search($oldKey, $keys);
197
+ if (is_numeric($oldKeyIndex)) {
198
+ $keys[$oldKeyIndex] = $newKey;
199
+ $array = array_combine($keys, $values);
200
+ }
201
+ return $array;
202
+ }
203
+
204
  }
languages/wpdiscuz.pot CHANGED
@@ -3,8 +3,8 @@ msgid ""
3
  msgstr ""
4
  "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
5
  "Project-Id-Version: Comments - wpDiscuz\n"
6
- "POT-Creation-Date: 2017-03-02 22:04+0400\n"
7
- "PO-Revision-Date: 2017-03-02 22:04+0400\n"
8
  "Last-Translator: \n"
9
  "Language-Team: \n"
10
  "MIME-Version: 1.0\n"
@@ -20,7 +20,7 @@ msgstr ""
20
  "X-Poedit-SearchPath-0: .\n"
21
  "X-Poedit-SearchPathExcluded-0: *.js\n"
22
 
23
- #: class.WpdiscuzCore.php:742 class.WpdiscuzCore.php:912
24
  #: options/options-layouts/settings-social.php:40
25
  #: options/options-layouts/settings-social.php:42
26
  #: options/options-layouts/settings-social.php:44
@@ -28,151 +28,151 @@ msgstr ""
28
  msgid "Settings"
29
  msgstr ""
30
 
31
- #: class.WpdiscuzCore.php:744 class.WpdiscuzCore.php:914
32
  msgid "Phrases"
33
  msgstr ""
34
 
35
- #: class.WpdiscuzCore.php:746
36
  msgid "Tools"
37
  msgstr ""
38
 
39
- #: class.WpdiscuzCore.php:747 options/html-options.php:21
40
  #: options/html-options.php:61 options/options-layouts/settings-addons.php:7
41
  msgid "Addons"
42
  msgstr ""
43
 
44
- #: class.WpdiscuzCore.php:955 options/phrases-layouts/phrases-comment.php:116
45
  msgid "Admin"
46
  msgstr ""
47
 
48
- #: class.WpdiscuzCore.php:957 class.WpdiscuzCore.php:966
49
  #: options/phrases-layouts/phrases-comment.php:118
50
  msgid "Author"
51
  msgstr ""
52
 
53
- #: class.WpdiscuzCore.php:961 options/phrases-layouts/phrases-comment.php:124
54
  msgid "Member"
55
  msgstr ""
56
 
57
- #: class.WpdiscuzCore.php:967 options/phrases-layouts/phrases-comment.php:122
58
  msgid "Guest"
59
  msgstr ""
60
 
61
- #: forms/wpDiscuzForm.php:90
62
  msgid "Invalid Data !!!"
63
  msgstr ""
64
 
65
- #: forms/wpDiscuzForm.php:98 forms/wpDiscuzForm.php:146
66
  msgid "Forms"
67
  msgstr ""
68
 
69
- #: forms/wpDiscuzForm.php:99 options/html-phrases.php:21
70
  msgid "Form"
71
  msgstr ""
72
 
73
- #: forms/wpDiscuzForm.php:100
74
  msgid "Add New"
75
  msgstr ""
76
 
77
- #: forms/wpDiscuzForm.php:101
78
  msgid "Add New Form"
79
  msgstr ""
80
 
81
- #: forms/wpDiscuzForm.php:102
82
  msgid "Edit Form"
83
  msgstr ""
84
 
85
- #: forms/wpDiscuzForm.php:103
86
  msgid "You did not create any forms yet"
87
  msgstr ""
88
 
89
- #: forms/wpDiscuzForm.php:104
90
  msgid "Nothing found in Trash"
91
  msgstr ""
92
 
93
- #: forms/wpDiscuzForm.php:105
94
  msgid "Search Forms"
95
  msgstr ""
96
 
97
- #: forms/wpDiscuzForm.php:160
98
  msgid "Title"
99
  msgstr ""
100
 
101
- #: forms/wpDiscuzForm.php:161
102
  msgid "Post Types"
103
  msgstr ""
104
 
105
- #: forms/wpDiscuzForm.php:162
106
  msgid "Post IDs"
107
  msgstr ""
108
 
109
- #: forms/wpDiscuzForm.php:163 forms/wpdFormAttr/Form.php:536
110
  msgid "Language"
111
  msgstr ""
112
 
113
- #: forms/wpDiscuzForm.php:164
114
  msgid "Date"
115
  msgstr ""
116
 
117
- #: forms/wpDiscuzForm.php:209
118
  msgid "Field Types"
119
  msgstr ""
120
 
121
- #: forms/wpDiscuzForm.php:210 forms/wpdFormAttr/Row.php:23
122
  msgid "Two column"
123
  msgstr ""
124
 
125
- #: forms/wpDiscuzForm.php:211 forms/wpdFormAttr/Field/Field.php:61
126
  #: forms/wpdFormAttr/Row.php:24
127
  msgid "Delete"
128
  msgstr ""
129
 
130
- #: forms/wpDiscuzForm.php:212 forms/wpdFormAttr/Row.php:25
131
  msgid "Move"
132
  msgstr ""
133
 
134
- #: forms/wpDiscuzForm.php:213 forms/wpdFormAttr/Row.php:69
135
  msgid "Add Field"
136
  msgstr ""
137
 
138
- #: forms/wpDiscuzForm.php:214 forms/wpdFormAttr/Field/Field.php:58
139
- #: options/class.WpdiscuzOptionsSerialized.php:604
140
  #: options/phrases-layouts/phrases-comment.php:32
141
  msgid "Edit"
142
  msgstr ""
143
 
144
- #: forms/wpDiscuzForm.php:215
145
  msgid "You can not delete default field."
146
  msgstr ""
147
 
148
- #: forms/wpDiscuzForm.php:216
149
  msgid "You really want to delete this item ?"
150
  msgstr ""
151
 
152
- #: forms/wpDiscuzForm.php:223
153
  msgid "Permission Denied !!!"
154
  msgstr ""
155
 
156
- #: forms/wpDiscuzForm.php:248 forms/wpdFormAttr/Form.php:506
157
  #: forms/wpdFormAttr/html/admin-form-fields-list.php:18
158
  #: options/options-layouts/settings-customfields.php:7
159
  msgid "Custom Fields"
160
  msgstr ""
161
 
162
- #: forms/wpDiscuzForm.php:296
163
  msgid "Custom CSS"
164
  msgstr ""
165
 
166
- #: forms/wpDiscuzForm.php:352
167
  msgid "Default Form"
168
  msgstr ""
169
 
170
- #: forms/wpDiscuzForm.php:383 forms/wpDiscuzForm.php:391
171
- #: forms/wpdFormAttr/Form.php:571
172
  msgid "Leave a Reply"
173
  msgstr ""
174
 
175
- #: forms/wpDiscuzForm.php:406 forms/wpdFormAttr/Field/CheckboxField.php:12
176
  #: forms/wpdFormAttr/Field/ColorField.php:12
177
  #: forms/wpdFormAttr/Field/DateField.php:12
178
  #: forms/wpdFormAttr/Field/DefaultField/Captcha.php:25
@@ -187,41 +187,41 @@ msgstr ""
187
  #: forms/wpdFormAttr/Field/SelectField.php:12
188
  #: forms/wpdFormAttr/Field/TextAreaField.php:13
189
  #: forms/wpdFormAttr/Field/TextField.php:12
190
- #: forms/wpdFormAttr/Field/UrlField.php:12 forms/wpdFormAttr/Form.php:660
191
  msgid "Name"
192
  msgstr ""
193
 
194
- #: forms/wpDiscuzForm.php:408 forms/wpdFormAttr/Field/DefaultField/Email.php:64
195
- #: forms/wpdFormAttr/Form.php:667
196
- #: options/class.WpdiscuzOptionsSerialized.php:591 options/html-phrases.php:24
197
  msgid "Email"
198
  msgstr ""
199
 
200
- #: forms/wpDiscuzForm.php:410
201
  msgid "WebSite URL"
202
  msgstr ""
203
 
204
- #: forms/wpDiscuzForm.php:413
205
  #: forms/wpdFormAttr/Field/DefaultField/Submit.php:78
206
- #: forms/wpdFormAttr/Form.php:690
207
  msgid "Post Comment"
208
  msgstr ""
209
 
210
- #: forms/wpDiscuzForm.php:422
211
  msgid "Clone Form"
212
  msgstr ""
213
 
214
- #: forms/wpDiscuzForm.php:434
215
  msgid "Clone"
216
  msgstr ""
217
 
218
- #: forms/wpDiscuzForm.php:472
219
  msgid ""
220
  "Comment Form is not detected, please navigate to form manager page to create "
221
  "it. "
222
  msgstr ""
223
 
224
- #: forms/wpDiscuzForm.php:473
225
  msgid "Add Comment Form"
226
  msgstr ""
227
 
@@ -329,16 +329,55 @@ msgstr ""
329
  msgid "Display on comment"
330
  msgstr ""
331
 
332
- #: forms/wpdFormAttr/Field/CheckboxField.php:139
333
- #: forms/wpdFormAttr/Field/ColorField.php:102
334
- #: forms/wpdFormAttr/Field/DateField.php:102
335
- #: forms/wpdFormAttr/Field/NumberField.php:112
336
- #: forms/wpdFormAttr/Field/RadioField.php:117
337
- #: forms/wpdFormAttr/Field/RatingField.php:112
338
- #: forms/wpdFormAttr/Field/SelectField.php:112
339
- #: forms/wpdFormAttr/Field/TextAreaField.php:85
340
- #: forms/wpdFormAttr/Field/TextField.php:96
341
- #: forms/wpdFormAttr/Field/UrlField.php:96
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
342
  msgid "field is required!"
343
  msgstr ""
344
 
@@ -375,7 +414,7 @@ msgid "Show for logged in users"
375
  msgstr ""
376
 
377
  #: forms/wpdFormAttr/Field/DefaultField/Captcha.php:107
378
- #: forms/wpdFormAttr/Form.php:683
379
  msgid "Code"
380
  msgstr ""
381
 
@@ -404,7 +443,7 @@ msgid "Enable"
404
  msgstr ""
405
 
406
  #: forms/wpdFormAttr/Field/DefaultField/Website.php:83
407
- #: forms/wpdFormAttr/Form.php:674
408
  msgid "Website"
409
  msgstr ""
410
 
@@ -416,7 +455,7 @@ msgstr ""
416
  msgid " (CAPTCHA)"
417
  msgstr ""
418
 
419
- #: forms/wpdFormAttr/Field/Field.php:84
420
  msgid "Add To Form"
421
  msgstr ""
422
 
@@ -428,11 +467,11 @@ msgstr ""
428
  msgid "Max Value"
429
  msgstr ""
430
 
431
- #: forms/wpdFormAttr/Field/NumberField.php:116
432
  msgid "value can not be less than"
433
  msgstr ""
434
 
435
- #: forms/wpdFormAttr/Field/NumberField.php:119
436
  msgid "value can not be more than"
437
  msgstr ""
438
 
@@ -441,51 +480,51 @@ msgstr ""
441
  msgid "New value new line"
442
  msgstr ""
443
 
444
- #: forms/wpdFormAttr/Form.php:545
445
  msgid "Allow guests to comment"
446
  msgstr ""
447
 
448
- #: forms/wpdFormAttr/Form.php:549 forms/wpdFormAttr/Form.php:560
449
  msgid "Yes"
450
  msgstr ""
451
 
452
- #: forms/wpdFormAttr/Form.php:551 forms/wpdFormAttr/Form.php:562
453
  msgid "No"
454
  msgstr ""
455
 
456
- #: forms/wpdFormAttr/Form.php:556
457
  msgid "Enable subscription bar"
458
  msgstr ""
459
 
460
- #: forms/wpdFormAttr/Form.php:567
461
  msgid "Comment form header text"
462
  msgstr ""
463
 
464
- #: forms/wpdFormAttr/Form.php:576
465
  msgid "Display comment form for post types"
466
  msgstr ""
467
 
468
- #: forms/wpdFormAttr/Form.php:583
469
  msgid ""
470
  "The red marked post types are already attached to other comment form. If you "
471
  "set this form too, the old forms will not be used for them."
472
  msgstr ""
473
 
474
- #: forms/wpdFormAttr/Form.php:602
475
  msgid "Display comment form for post IDs"
476
  msgstr ""
477
 
478
- #: forms/wpdFormAttr/Form.php:603
479
  msgid ""
480
  "You can use this form for certain posts/pages specified by comma separated "
481
  "IDs."
482
  msgstr ""
483
 
484
- #: forms/wpdFormAttr/Form.php:614
485
  msgid "Comment Text Field"
486
  msgstr ""
487
 
488
- #: forms/wpdFormAttr/Form.php:629
489
  msgid "ADD ROW"
490
  msgstr ""
491
 
@@ -493,100 +532,106 @@ msgstr ""
493
  msgid "Comment Form Fields"
494
  msgstr ""
495
 
496
- #: options/class.WpdiscuzOptions.php:24 options/class.WpdiscuzOptions.php:98
497
- #: options/class.WpdiscuzOptions.php:213
498
  msgid "Hacker?"
499
  msgstr ""
500
 
501
- #: options/class.WpdiscuzOptions.php:248
502
  msgid ""
503
  "Brings an ocean of emotions to your comments. It comes with an awesome smile "
504
  "package."
505
  msgstr ""
506
 
507
- #: options/class.WpdiscuzOptions.php:249
 
 
 
 
 
 
508
  msgid ""
509
  "Total control over comment subscriptions. Full list, monitor, manage, "
510
  "filter, unsubscribe, confirm..."
511
  msgstr ""
512
 
513
- #: options/class.WpdiscuzOptions.php:250
514
  msgid ""
515
  "A full-fledged tool-kit for advertising in comment section of your website. "
516
  "Separate banner and ad managment."
517
  msgstr ""
518
 
519
- #: options/class.WpdiscuzOptions.php:251
520
  msgid ""
521
  "Allows to mention comments and users in comment text using #comment-id and "
522
  "@username tags."
523
  msgstr ""
524
 
525
- #: options/class.WpdiscuzOptions.php:252
526
  msgid ""
527
  "See comment likers and voters of each comment. Adds user reputation and "
528
  "badges based on received likes."
529
  msgstr ""
530
 
531
- #: options/class.WpdiscuzOptions.php:253
532
  msgid ""
533
  "Comment reporting tools. Auto-moderates comments based on number of flags "
534
  "and dislikes."
535
  msgstr ""
536
 
537
- #: options/class.WpdiscuzOptions.php:254
538
  msgid ""
539
  "Adds a smart and intuitive AJAX \"Translate\" button with 60 language "
540
  "options. Uses free translation API."
541
  msgstr ""
542
 
543
- #: options/class.WpdiscuzOptions.php:255
544
  msgid ""
545
  "AJAX powered front-end comment search. It starts searching while you type "
546
  "search words. "
547
  msgstr ""
548
 
549
- #: options/class.WpdiscuzOptions.php:256
550
  msgid ""
551
  "Most voted comments, Active comment threads, Most commented posts, Active "
552
  "comment authors"
553
  msgstr ""
554
 
555
- #: options/class.WpdiscuzOptions.php:257
556
  msgid ""
557
  "All in one powerful yet simple admin toolkit to moderate comments on front-"
558
  "end."
559
  msgstr ""
560
 
561
- #: options/class.WpdiscuzOptions.php:258
562
  msgid ""
563
  "Extended comment attachment system. Allows to upload images, videos, audios "
564
  "and other file types."
565
  msgstr ""
566
 
567
- #: options/class.WpdiscuzOptions.php:259
568
  msgid ""
569
  "Adds No CAPTCHA on all comment forms. Stops spam and bot comments with "
570
  "Google reCAPTCHA"
571
  msgstr ""
572
 
573
- #: options/class.WpdiscuzOptions.php:260
574
  msgid ""
575
  "Integrates myCRED Badges and Ranks. Converts wpDiscuz comment votes/likes to "
576
  "myCRED points. "
577
  msgstr ""
578
 
579
- #: options/class.WpdiscuzOptions.php:261
580
  msgid ""
581
  "Allows censoring comment words. Filters comments and replaces those phrases "
582
  "with custom words."
583
  msgstr ""
584
 
585
- #: options/class.WpdiscuzOptions.php:267
586
  msgid "Custom Comment Forms"
587
  msgstr ""
588
 
589
- #: options/class.WpdiscuzOptions.php:268
590
  msgid ""
591
  "You can create custom comment forms with wpDiscuz. wpDiscuz 4 comes with "
592
  "custom comment forms and fields. You can create custom comment forms for "
@@ -594,63 +639,63 @@ msgid ""
594
  "eaxample: text, dropdown, rating, checkboxes, etc..."
595
  msgstr ""
596
 
597
- #: options/class.WpdiscuzOptions.php:271
598
  msgid "Emoticons"
599
  msgstr ""
600
 
601
- #: options/class.WpdiscuzOptions.php:272
602
  msgid ""
603
  "You can add more emotions to your comments using wpDiscuz Emoticons addon."
604
  msgstr ""
605
 
606
- #: options/class.WpdiscuzOptions.php:275
607
  msgid "Ads Manager"
608
  msgstr ""
609
 
610
- #: options/class.WpdiscuzOptions.php:276
611
  msgid ""
612
  "Increase your income using ad banners. Comment area is the most active "
613
  "sections for advertising. wpDiscuz Ads Manager addon is designed to help you "
614
  "add banners and control ads in this section."
615
  msgstr ""
616
 
617
- #: options/class.WpdiscuzOptions.php:279
618
  msgid "User and Comment Mentioning"
619
  msgstr ""
620
 
621
- #: options/class.WpdiscuzOptions.php:280
622
  msgid ""
623
  "Using wpDiscuz User &amp; Comment Mentioning addon you can allow commenters "
624
  "mention comments and users in comment text using #comment-id and @username "
625
  "tags."
626
  msgstr ""
627
 
628
- #: options/class.WpdiscuzOptions.php:283
629
  msgid "Advanced Likers"
630
  msgstr ""
631
 
632
- #: options/class.WpdiscuzOptions.php:284
633
  msgid ""
634
  "wpDiscuz Advanced Likers addon displays likers and voters of each comment. "
635
  "Adds user reputation and badges based on received likes."
636
  msgstr ""
637
 
638
- #: options/class.WpdiscuzOptions.php:287
639
  msgid "Report and Flagging"
640
  msgstr ""
641
 
642
- #: options/class.WpdiscuzOptions.php:288
643
  msgid ""
644
  "Let your commenters help you to determine and remove spam comments. wpDiscuz "
645
  "Report and Flagging addon comes with comment reporting tools. Automaticaly "
646
  "auto-moderates comments based on number of flags and dislikes."
647
  msgstr ""
648
 
649
- #: options/class.WpdiscuzOptions.php:291
650
  msgid "Comment Translate"
651
  msgstr ""
652
 
653
- #: options/class.WpdiscuzOptions.php:292
654
  msgid ""
655
  "In most cases the big part of your visitors are not a native speakers of "
656
  "your language. Make your comments comprehensible for all visitors using "
@@ -659,11 +704,11 @@ msgid ""
659
  "translation API."
660
  msgstr ""
661
 
662
- #: options/class.WpdiscuzOptions.php:295
663
  msgid "Comment Search"
664
  msgstr ""
665
 
666
- #: options/class.WpdiscuzOptions.php:296
667
  msgid ""
668
  "You can let website visitor search in comments. It's always more attractive "
669
  "to find a comment about something that interest you. Using wpDiscuz Comment "
@@ -671,259 +716,259 @@ msgid ""
671
  "above comment list."
672
  msgstr ""
673
 
674
- #: options/class.WpdiscuzOptions.php:299
675
  msgid "wpDiscuz Widgets"
676
  msgstr ""
677
 
678
- #: options/class.WpdiscuzOptions.php:300
679
  msgid ""
680
  "More Comment Widgets! Most voted comments, Active comment threads, Most "
681
  "commented posts, Active comment authors widgets are available in wpDiscuz "
682
  "Widgets Addon"
683
  msgstr ""
684
 
685
- #: options/class.WpdiscuzOptions.php:303
686
  msgid "Front-end Moderation"
687
  msgstr ""
688
 
689
- #: options/class.WpdiscuzOptions.php:304
690
  msgid ""
691
  "You can moderate comments on front-end using all in one powerful yet simple "
692
  "wpDiscuz Frontend Moderation addon."
693
  msgstr ""
694
 
695
- #: options/class.WpdiscuzOptions.php:307
696
  msgid "Media Uploader"
697
  msgstr ""
698
 
699
- #: options/class.WpdiscuzOptions.php:308
700
  msgid ""
701
  "You can let website visitors attach images and files to comments and embed "
702
  "video/audio content using wpDiscuz Media Uploader addon."
703
  msgstr ""
704
 
705
- #: options/class.WpdiscuzOptions.php:311
706
  msgid "Google ReCaptcha"
707
  msgstr ""
708
 
709
- #: options/class.WpdiscuzOptions.php:312
710
  msgid ""
711
  "Advanced spam protection with wpDiscuz Google reCAPTCHA addon. This addon "
712
  "adds No-CAPTCHA reCAPTCHA on all comment forms. Stops spam and bot comments."
713
  msgstr ""
714
 
715
- #: options/class.WpdiscuzOptions.php:326
716
  msgid "New Addons are available for wpDiscuz Comments Plugin"
717
  msgstr ""
718
 
719
- #: options/class.WpdiscuzOptions.php:333 options/class.WpdiscuzOptions.php:339
720
  msgid "Go to wpDiscuz Addons subMenu"
721
  msgstr ""
722
 
723
- #: options/class.WpdiscuzOptions.php:370
724
  msgid "Do you know?"
725
  msgstr ""
726
 
727
- #: options/class.WpdiscuzOptions.php:382
728
  msgid "More info"
729
  msgstr ""
730
 
731
- #: options/class.WpdiscuzOptionsSerialized.php:585
732
  msgid "Be the First to Comment!"
733
  msgstr ""
734
 
735
- #: options/class.WpdiscuzOptionsSerialized.php:586 options/html-phrases.php:22
736
  #: options/phrases-layouts/phrases-general.php:22
737
  msgid "Comment"
738
  msgstr ""
739
 
740
- #: options/class.WpdiscuzOptionsSerialized.php:587
741
  msgid "Comments"
742
  msgstr ""
743
 
744
- #: options/class.WpdiscuzOptionsSerialized.php:588
745
  msgid "on"
746
  msgstr ""
747
 
748
- #: options/class.WpdiscuzOptionsSerialized.php:589
749
  msgid "Start the discussion"
750
  msgstr ""
751
 
752
- #: options/class.WpdiscuzOptionsSerialized.php:590
753
  msgid "Join the discussion"
754
  msgstr ""
755
 
756
- #: options/class.WpdiscuzOptionsSerialized.php:592
757
  #: options/phrases-layouts/phrases-form.php:42
758
  #: options/phrases-layouts/phrases-form.php:46
759
  msgid "Notify of"
760
  msgstr ""
761
 
762
- #: options/class.WpdiscuzOptionsSerialized.php:593
763
  #: options/phrases-layouts/phrases-form.php:56
764
  msgid "new follow-up comments"
765
  msgstr ""
766
 
767
- #: options/class.WpdiscuzOptionsSerialized.php:594
768
  msgid "new replies to my comments"
769
  msgstr ""
770
 
771
- #: options/class.WpdiscuzOptionsSerialized.php:595
772
  #: options/phrases-layouts/phrases-form.php:76
773
  msgid "Notify of new replies to this comment"
774
  msgstr ""
775
 
776
- #: options/class.WpdiscuzOptionsSerialized.php:596
777
  #: options/phrases-layouts/phrases-form.php:82
778
  #: options/phrases-layouts/phrases-form.php:86
779
  msgid "Sort by"
780
  msgstr ""
781
 
782
- #: options/class.WpdiscuzOptionsSerialized.php:597
783
  #: options/phrases-layouts/phrases-form.php:92
784
  #: options/phrases-layouts/phrases-form.php:96
785
  msgid "newest"
786
  msgstr ""
787
 
788
- #: options/class.WpdiscuzOptionsSerialized.php:598
789
  #: options/phrases-layouts/phrases-form.php:102
790
  #: options/phrases-layouts/phrases-form.php:106
791
  msgid "oldest"
792
  msgstr ""
793
 
794
- #: options/class.WpdiscuzOptionsSerialized.php:599
795
  #: options/phrases-layouts/phrases-form.php:112
796
  #: options/phrases-layouts/phrases-form.php:116
797
  msgid "most voted"
798
  msgstr ""
799
 
800
- #: options/class.WpdiscuzOptionsSerialized.php:600
801
  msgid "Load More Comments"
802
  msgstr ""
803
 
804
- #: options/class.WpdiscuzOptionsSerialized.php:601
805
  #: options/phrases-layouts/phrases-general.php:62
806
  msgid "Load Rest of Comments"
807
  msgstr ""
808
 
809
- #: options/class.WpdiscuzOptionsSerialized.php:602
810
  #: options/phrases-layouts/phrases-comment.php:12
811
  msgid "Reply"
812
  msgstr ""
813
 
814
- #: options/class.WpdiscuzOptionsSerialized.php:603
815
  #: options/phrases-layouts/phrases-comment.php:22
816
  msgid "Share"
817
  msgstr ""
818
 
819
- #: options/class.WpdiscuzOptionsSerialized.php:605
820
  #: options/phrases-layouts/phrases-comment.php:42
821
  msgid "Share On Facebook"
822
  msgstr ""
823
 
824
- #: options/class.WpdiscuzOptionsSerialized.php:606
825
  #: options/phrases-layouts/phrases-comment.php:52
826
  msgid "Share On Twitter"
827
  msgstr ""
828
 
829
- #: options/class.WpdiscuzOptionsSerialized.php:607
830
  #: options/phrases-layouts/phrases-comment.php:62
831
  msgid "Share On Google"
832
  msgstr ""
833
 
834
- #: options/class.WpdiscuzOptionsSerialized.php:608
835
  #: options/phrases-layouts/phrases-comment.php:72
836
  msgid "Share On VKontakte"
837
  msgstr ""
838
 
839
- #: options/class.WpdiscuzOptionsSerialized.php:609
840
  #: options/phrases-layouts/phrases-comment.php:82
841
  msgid "Share On Odnoklassniki"
842
  msgstr ""
843
 
844
- #: options/class.WpdiscuzOptionsSerialized.php:610
845
  #: options/phrases-layouts/phrases-comment.php:92
846
  msgid "Hide Replies"
847
  msgstr ""
848
 
849
- #: options/class.WpdiscuzOptionsSerialized.php:611
850
  #: options/phrases-layouts/phrases-comment.php:102
851
  msgid "Show Replies"
852
  msgstr ""
853
 
854
- #: options/class.WpdiscuzOptionsSerialized.php:612
855
  #: options/phrases-layouts/phrases-general.php:76
856
  msgid "New Comment"
857
  msgstr ""
858
 
859
- #: options/class.WpdiscuzOptionsSerialized.php:613
860
  msgid "New comment on the discussion section you've been interested in"
861
  msgstr ""
862
 
863
- #: options/class.WpdiscuzOptionsSerialized.php:614
864
  #: options/phrases-layouts/phrases-email.php:36
865
  #: options/phrases-layouts/phrases-general.php:96
866
  #: utils/class.WpdiscuzEmailHelper.php:158
867
  msgid "New Reply"
868
  msgstr ""
869
 
870
- #: options/class.WpdiscuzOptionsSerialized.php:615
871
  #: utils/class.WpdiscuzEmailHelper.php:159
872
  msgid "New reply on the discussion section you've been interested in"
873
  msgstr ""
874
 
875
- #: options/class.WpdiscuzOptionsSerialized.php:616
876
  msgid "You're subscribed for new replies on this comment"
877
  msgstr ""
878
 
879
- #: options/class.WpdiscuzOptionsSerialized.php:617
880
  msgid "You're subscribed for new replies on all your comments"
881
  msgstr ""
882
 
883
- #: options/class.WpdiscuzOptionsSerialized.php:618
884
  msgid "You're subscribed for new follow-up comments on this post"
885
  msgstr ""
886
 
887
- #: options/class.WpdiscuzOptionsSerialized.php:619
888
  #: options/phrases-layouts/phrases-email.php:52
889
  #: options/phrases-layouts/phrases-email.php:56
890
  msgid "Unsubscribe"
891
  msgstr ""
892
 
893
- #: options/class.WpdiscuzOptionsSerialized.php:620
894
  #: options/phrases-layouts/phrases-email.php:66
895
  msgid "Cancel subscription"
896
  msgstr ""
897
 
898
- #: options/class.WpdiscuzOptionsSerialized.php:621
899
  #: options/phrases-layouts/phrases-notification.php:32
900
  msgid "You've successfully unsubscribed."
901
  msgstr ""
902
 
903
- #: options/class.WpdiscuzOptionsSerialized.php:622
904
  #: options/phrases-layouts/phrases-notification.php:22
905
  msgid "You've successfully subscribed."
906
  msgstr ""
907
 
908
- #: options/class.WpdiscuzOptionsSerialized.php:623
909
  #: options/phrases-layouts/phrases-email.php:72
910
  #: options/phrases-layouts/phrases-email.php:76
911
  msgid "Confirm your subscription"
912
  msgstr ""
913
 
914
- #: options/class.WpdiscuzOptionsSerialized.php:624
915
  #: options/phrases-layouts/phrases-email.php:82
916
  #: options/phrases-layouts/phrases-email.php:86
917
  msgid "You've successfully confirmed your subscription."
918
  msgstr ""
919
 
920
- #: options/class.WpdiscuzOptionsSerialized.php:625
921
  #: options/phrases-layouts/phrases-email.php:96
922
  #: utils/class.WpdiscuzEmailHelper.php:51
923
  msgid "Subscribe Confirmation"
924
  msgstr ""
925
 
926
- #: options/class.WpdiscuzOptionsSerialized.php:626
927
  #: options/phrases-layouts/phrases-email.php:106
928
  #: utils/class.WpdiscuzEmailHelper.php:52
929
  msgid ""
@@ -934,231 +979,231 @@ msgid ""
934
  "you again."
935
  msgstr ""
936
 
937
- #: options/class.WpdiscuzOptionsSerialized.php:627
938
  msgid "please fill out this field to comment"
939
  msgstr ""
940
 
941
- #: options/class.WpdiscuzOptionsSerialized.php:628
942
  msgid "email address is invalid"
943
  msgstr ""
944
 
945
- #: options/class.WpdiscuzOptionsSerialized.php:629
946
  msgid "url is invalid"
947
  msgstr ""
948
 
949
- #: options/class.WpdiscuzOptionsSerialized.php:630
950
  msgid "year"
951
  msgstr ""
952
 
953
- #: options/class.WpdiscuzOptionsSerialized.php:631
954
  msgid "years"
955
  msgstr ""
956
 
957
- #: options/class.WpdiscuzOptionsSerialized.php:632
958
  msgid "month"
959
  msgstr ""
960
 
961
- #: options/class.WpdiscuzOptionsSerialized.php:633
962
  msgid "months"
963
  msgstr ""
964
 
965
- #: options/class.WpdiscuzOptionsSerialized.php:634
966
  msgid "day"
967
  msgstr ""
968
 
969
- #: options/class.WpdiscuzOptionsSerialized.php:635
970
  msgid "days"
971
  msgstr ""
972
 
973
- #: options/class.WpdiscuzOptionsSerialized.php:636
974
  msgid "hour"
975
  msgstr ""
976
 
977
- #: options/class.WpdiscuzOptionsSerialized.php:637
978
  msgid "hours"
979
  msgstr ""
980
 
981
- #: options/class.WpdiscuzOptionsSerialized.php:638
982
  msgid "minute"
983
  msgstr ""
984
 
985
- #: options/class.WpdiscuzOptionsSerialized.php:639
986
  msgid "minutes"
987
  msgstr ""
988
 
989
- #: options/class.WpdiscuzOptionsSerialized.php:640
990
  msgid "second"
991
  msgstr ""
992
 
993
- #: options/class.WpdiscuzOptionsSerialized.php:641
994
  msgid "seconds"
995
  msgstr ""
996
 
997
- #: options/class.WpdiscuzOptionsSerialized.php:642
998
  msgid "right now"
999
  msgstr ""
1000
 
1001
- #: options/class.WpdiscuzOptionsSerialized.php:643
1002
  msgid "ago"
1003
  msgstr ""
1004
 
1005
- #: options/class.WpdiscuzOptionsSerialized.php:644
1006
  #: options/phrases-layouts/phrases-datetime.php:156
1007
  msgid "Today"
1008
  msgstr ""
1009
 
1010
- #: options/class.WpdiscuzOptionsSerialized.php:645
1011
  #: options/phrases-layouts/phrases-notification.php:84
1012
  msgid "You must be"
1013
  msgstr ""
1014
 
1015
- #: options/class.WpdiscuzOptionsSerialized.php:646
1016
  msgid "You are logged in as"
1017
  msgstr ""
1018
 
1019
- #: options/class.WpdiscuzOptionsSerialized.php:647
1020
  #: options/phrases-layouts/phrases-notification.php:104
1021
  msgid "Log out"
1022
  msgstr ""
1023
 
1024
- #: options/class.WpdiscuzOptionsSerialized.php:648
1025
  msgid "logged in"
1026
  msgstr ""
1027
 
1028
- #: options/class.WpdiscuzOptionsSerialized.php:649
1029
  msgid "to post a comment."
1030
  msgstr ""
1031
 
1032
- #: options/class.WpdiscuzOptionsSerialized.php:650
1033
  #: options/phrases-layouts/phrases-comment.php:138
1034
  msgid "Vote Up"
1035
  msgstr ""
1036
 
1037
- #: options/class.WpdiscuzOptionsSerialized.php:651
1038
  #: options/phrases-layouts/phrases-comment.php:148
1039
  msgid "Vote Down"
1040
  msgstr ""
1041
 
1042
- #: options/class.WpdiscuzOptionsSerialized.php:652
1043
  #: options/phrases-layouts/phrases-notification.php:134
1044
  msgid "Vote Counted"
1045
  msgstr ""
1046
 
1047
- #: options/class.WpdiscuzOptionsSerialized.php:653
1048
  msgid "You've already voted for this comment"
1049
  msgstr ""
1050
 
1051
- #: options/class.WpdiscuzOptionsSerialized.php:654
1052
  #: options/phrases-layouts/phrases-notification.php:154
1053
  msgid "Voting Error"
1054
  msgstr ""
1055
 
1056
- #: options/class.WpdiscuzOptionsSerialized.php:655
1057
  msgid "You Must Be Logged In To Vote"
1058
  msgstr ""
1059
 
1060
- #: options/class.WpdiscuzOptionsSerialized.php:656
1061
  msgid "You cannot vote for your comment"
1062
  msgstr ""
1063
 
1064
- #: options/class.WpdiscuzOptionsSerialized.php:657
1065
  msgid "You are not allowed to vote for this comment"
1066
  msgstr ""
1067
 
1068
- #: options/class.WpdiscuzOptionsSerialized.php:658
1069
  #: options/phrases-layouts/phrases-notification.php:194
1070
  msgid "Invalid Captcha Code"
1071
  msgstr ""
1072
 
1073
- #: options/class.WpdiscuzOptionsSerialized.php:659
1074
  #: options/phrases-layouts/phrases-notification.php:204
1075
  msgid "Some of field value is invalid"
1076
  msgstr ""
1077
 
1078
- #: options/class.WpdiscuzOptionsSerialized.php:660
1079
  msgid "new comment"
1080
  msgstr ""
1081
 
1082
- #: options/class.WpdiscuzOptionsSerialized.php:661
1083
  msgid "new comments"
1084
  msgstr ""
1085
 
1086
- #: options/class.WpdiscuzOptionsSerialized.php:662
1087
  msgid "Comment awaiting moderation"
1088
  msgstr ""
1089
 
1090
- #: options/class.WpdiscuzOptionsSerialized.php:663
1091
  msgid "new reply on your comment"
1092
  msgstr ""
1093
 
1094
- #: options/class.WpdiscuzOptionsSerialized.php:664
1095
  msgid "new replies on your comments"
1096
  msgstr ""
1097
 
1098
- #: options/class.WpdiscuzOptionsSerialized.php:665
1099
  #: options/phrases-layouts/phrases-general.php:116
1100
  msgid "New"
1101
  msgstr ""
1102
 
1103
- #: options/class.WpdiscuzOptionsSerialized.php:666
1104
  #: options/phrases-layouts/phrases-notification.php:249
1105
  msgid "Sorry, the comment was not updated"
1106
  msgstr ""
1107
 
1108
- #: options/class.WpdiscuzOptionsSerialized.php:667
1109
  #: options/phrases-layouts/phrases-notification.php:259
1110
  msgid "Sorry, this comment no longer possible to edit"
1111
  msgstr ""
1112
 
1113
- #: options/class.WpdiscuzOptionsSerialized.php:668
1114
  msgid "You've not made any changes"
1115
  msgstr ""
1116
 
1117
- #: options/class.WpdiscuzOptionsSerialized.php:669
1118
  #: options/phrases-layouts/phrases-comment.php:162
1119
  msgid "Save"
1120
  msgstr ""
1121
 
1122
- #: options/class.WpdiscuzOptionsSerialized.php:670
1123
  #: options/phrases-layouts/phrases-comment.php:172
1124
  msgid "Cancel"
1125
  msgstr ""
1126
 
1127
- #: options/class.WpdiscuzOptionsSerialized.php:671
1128
  msgid "Input is too short"
1129
  msgstr ""
1130
 
1131
- #: options/class.WpdiscuzOptionsSerialized.php:672
1132
  msgid "Input is too long"
1133
  msgstr ""
1134
 
1135
- #: options/class.WpdiscuzOptionsSerialized.php:673
1136
  #: options/phrases-layouts/phrases-comment.php:182
1137
  msgid "Read more &raquo;"
1138
  msgstr ""
1139
 
1140
- #: options/class.WpdiscuzOptionsSerialized.php:674
1141
  #: options/phrases-layouts/phrases-comment.php:192
1142
  msgid "Anonymous"
1143
  msgstr ""
1144
 
1145
- #: options/class.WpdiscuzOptionsSerialized.php:675
1146
  #: options/phrases-layouts/phrases-notification.php:275
1147
  #: options/phrases-layouts/phrases-notification.php:279
1148
  msgid "Please fill out required fields"
1149
  msgstr ""
1150
 
1151
- #: options/class.WpdiscuzOptionsSerialized.php:676
1152
  #: options/phrases-layouts/phrases-form.php:152
1153
  #: options/phrases-layouts/phrases-form.php:156
1154
  msgid "Connect with"
1155
  msgstr ""
1156
 
1157
- #: options/class.WpdiscuzOptionsSerialized.php:677
1158
  msgid "You're subscribed to"
1159
  msgstr ""
1160
 
1161
- #: options/class.WpdiscuzOptionsSerialized.php:678
1162
  msgid "Participate in this discussion via email"
1163
  msgstr ""
1164
 
@@ -1742,6 +1787,18 @@ msgstr ""
1742
  msgid "Disable Profiles URL"
1743
  msgstr ""
1744
 
 
 
 
 
 
 
 
 
 
 
 
 
1745
  #: options/options-layouts/settings-social.php:50
1746
  #: options/options-layouts/settings-social.php:61
1747
  #: options/options-layouts/settings-social.php:72
3
  msgstr ""
4
  "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
5
  "Project-Id-Version: Comments - wpDiscuz\n"
6
+ "POT-Creation-Date: 2017-04-24 21:31+0400\n"
7
+ "PO-Revision-Date: 2017-04-24 21:31+0400\n"
8
  "Last-Translator: \n"
9
  "Language-Team: \n"
10
  "MIME-Version: 1.0\n"
20
  "X-Poedit-SearchPath-0: .\n"
21
  "X-Poedit-SearchPathExcluded-0: *.js\n"
22
 
23
+ #: class.WpdiscuzCore.php:741 class.WpdiscuzCore.php:911
24
  #: options/options-layouts/settings-social.php:40
25
  #: options/options-layouts/settings-social.php:42
26
  #: options/options-layouts/settings-social.php:44
28
  msgid "Settings"
29
  msgstr ""
30
 
31
+ #: class.WpdiscuzCore.php:743 class.WpdiscuzCore.php:913
32
  msgid "Phrases"
33
  msgstr ""
34
 
35
+ #: class.WpdiscuzCore.php:745
36
  msgid "Tools"
37
  msgstr ""
38
 
39
+ #: class.WpdiscuzCore.php:746 options/html-options.php:21
40
  #: options/html-options.php:61 options/options-layouts/settings-addons.php:7
41
  msgid "Addons"
42
  msgstr ""
43
 
44
+ #: class.WpdiscuzCore.php:954 options/phrases-layouts/phrases-comment.php:116
45
  msgid "Admin"
46
  msgstr ""
47
 
48
+ #: class.WpdiscuzCore.php:956 class.WpdiscuzCore.php:965
49
  #: options/phrases-layouts/phrases-comment.php:118
50
  msgid "Author"
51
  msgstr ""
52
 
53
+ #: class.WpdiscuzCore.php:960 options/phrases-layouts/phrases-comment.php:124
54
  msgid "Member"
55
  msgstr ""
56
 
57
+ #: class.WpdiscuzCore.php:966 options/phrases-layouts/phrases-comment.php:122
58
  msgid "Guest"
59
  msgstr ""
60
 
61
+ #: forms/wpDiscuzForm.php:93
62
  msgid "Invalid Data !!!"
63
  msgstr ""
64
 
65
+ #: forms/wpDiscuzForm.php:101 forms/wpDiscuzForm.php:149
66
  msgid "Forms"
67
  msgstr ""
68
 
69
+ #: forms/wpDiscuzForm.php:102 options/html-phrases.php:21
70
  msgid "Form"
71
  msgstr ""
72
 
73
+ #: forms/wpDiscuzForm.php:103
74
  msgid "Add New"
75
  msgstr ""
76
 
77
+ #: forms/wpDiscuzForm.php:104
78
  msgid "Add New Form"
79
  msgstr ""
80
 
81
+ #: forms/wpDiscuzForm.php:105
82
  msgid "Edit Form"
83
  msgstr ""
84
 
85
+ #: forms/wpDiscuzForm.php:106
86
  msgid "You did not create any forms yet"
87
  msgstr ""
88
 
89
+ #: forms/wpDiscuzForm.php:107
90
  msgid "Nothing found in Trash"
91
  msgstr ""
92
 
93
+ #: forms/wpDiscuzForm.php:108
94
  msgid "Search Forms"
95
  msgstr ""
96
 
97
+ #: forms/wpDiscuzForm.php:163
98
  msgid "Title"
99
  msgstr ""
100
 
101
+ #: forms/wpDiscuzForm.php:164
102
  msgid "Post Types"
103
  msgstr ""
104
 
105
+ #: forms/wpDiscuzForm.php:165
106
  msgid "Post IDs"
107
  msgstr ""
108
 
109
+ #: forms/wpDiscuzForm.php:166 forms/wpdFormAttr/Form.php:586
110
  msgid "Language"
111
  msgstr ""
112
 
113
+ #: forms/wpDiscuzForm.php:167
114
  msgid "Date"
115
  msgstr ""
116
 
117
+ #: forms/wpDiscuzForm.php:212
118
  msgid "Field Types"
119
  msgstr ""
120
 
121
+ #: forms/wpDiscuzForm.php:213 forms/wpdFormAttr/Row.php:23
122
  msgid "Two column"
123
  msgstr ""
124
 
125
+ #: forms/wpDiscuzForm.php:214 forms/wpdFormAttr/Field/Field.php:64
126
  #: forms/wpdFormAttr/Row.php:24
127
  msgid "Delete"
128
  msgstr ""
129
 
130
+ #: forms/wpDiscuzForm.php:215 forms/wpdFormAttr/Row.php:25
131
  msgid "Move"
132
  msgstr ""
133
 
134
+ #: forms/wpDiscuzForm.php:216 forms/wpdFormAttr/Row.php:69
135
  msgid "Add Field"
136
  msgstr ""
137
 
138
+ #: forms/wpDiscuzForm.php:217 forms/wpdFormAttr/Field/Field.php:61
139
+ #: options/class.WpdiscuzOptionsSerialized.php:613
140
  #: options/phrases-layouts/phrases-comment.php:32
141
  msgid "Edit"
142
  msgstr ""
143
 
144
+ #: forms/wpDiscuzForm.php:218
145
  msgid "You can not delete default field."
146
  msgstr ""
147
 
148
+ #: forms/wpDiscuzForm.php:219
149
  msgid "You really want to delete this item ?"
150
  msgstr ""
151
 
152
+ #: forms/wpDiscuzForm.php:226
153
  msgid "Permission Denied !!!"
154
  msgstr ""
155
 
156
+ #: forms/wpDiscuzForm.php:251 forms/wpdFormAttr/Form.php:556
157
  #: forms/wpdFormAttr/html/admin-form-fields-list.php:18
158
  #: options/options-layouts/settings-customfields.php:7
159
  msgid "Custom Fields"
160
  msgstr ""
161
 
162
+ #: forms/wpDiscuzForm.php:299
163
  msgid "Custom CSS"
164
  msgstr ""
165
 
166
+ #: forms/wpDiscuzForm.php:355
167
  msgid "Default Form"
168
  msgstr ""
169
 
170
+ #: forms/wpDiscuzForm.php:386 forms/wpDiscuzForm.php:394
171
+ #: forms/wpdFormAttr/Form.php:621
172
  msgid "Leave a Reply"
173
  msgstr ""
174
 
175
+ #: forms/wpDiscuzForm.php:409 forms/wpdFormAttr/Field/CheckboxField.php:12
176
  #: forms/wpdFormAttr/Field/ColorField.php:12
177
  #: forms/wpdFormAttr/Field/DateField.php:12
178
  #: forms/wpdFormAttr/Field/DefaultField/Captcha.php:25
187
  #: forms/wpdFormAttr/Field/SelectField.php:12
188
  #: forms/wpdFormAttr/Field/TextAreaField.php:13
189
  #: forms/wpdFormAttr/Field/TextField.php:12
190
+ #: forms/wpdFormAttr/Field/UrlField.php:12 forms/wpdFormAttr/Form.php:710
191
  msgid "Name"
192
  msgstr ""
193
 
194
+ #: forms/wpDiscuzForm.php:411 forms/wpdFormAttr/Field/DefaultField/Email.php:64
195
+ #: forms/wpdFormAttr/Form.php:717
196
+ #: options/class.WpdiscuzOptionsSerialized.php:600 options/html-phrases.php:24
197
  msgid "Email"
198
  msgstr ""
199
 
200
+ #: forms/wpDiscuzForm.php:413
201
  msgid "WebSite URL"
202
  msgstr ""
203
 
204
+ #: forms/wpDiscuzForm.php:416
205
  #: forms/wpdFormAttr/Field/DefaultField/Submit.php:78
206
+ #: forms/wpdFormAttr/Form.php:740
207
  msgid "Post Comment"
208
  msgstr ""
209
 
210
+ #: forms/wpDiscuzForm.php:425
211
  msgid "Clone Form"
212
  msgstr ""
213
 
214
+ #: forms/wpDiscuzForm.php:437
215
  msgid "Clone"
216
  msgstr ""
217
 
218
+ #: forms/wpDiscuzForm.php:475
219
  msgid ""
220
  "Comment Form is not detected, please navigate to form manager page to create "
221
  "it. "
222
  msgstr ""
223
 
224
+ #: forms/wpDiscuzForm.php:476
225
  msgid "Add Comment Form"
226
  msgstr ""
227
 
329
  msgid "Display on comment"
330
  msgstr ""
331
 
332
+ #: forms/wpdFormAttr/Field/CheckboxField.php:45
333
+ #: forms/wpdFormAttr/Field/ColorField.php:41
334
+ #: forms/wpdFormAttr/Field/DateField.php:41
335
+ #: forms/wpdFormAttr/Field/NumberField.php:51
336
+ #: forms/wpdFormAttr/Field/RadioField.php:45
337
+ #: forms/wpdFormAttr/Field/RatingField.php:36
338
+ #: forms/wpdFormAttr/Field/SelectField.php:45
339
+ #: forms/wpdFormAttr/Field/TextAreaField.php:35
340
+ #: forms/wpdFormAttr/Field/TextField.php:41
341
+ #: forms/wpdFormAttr/Field/UrlField.php:41
342
+ msgid "Advanced Options"
343
+ msgstr ""
344
+
345
+ #: forms/wpdFormAttr/Field/CheckboxField.php:48
346
+ #: forms/wpdFormAttr/Field/ColorField.php:44
347
+ #: forms/wpdFormAttr/Field/DateField.php:44
348
+ #: forms/wpdFormAttr/Field/NumberField.php:54
349
+ #: forms/wpdFormAttr/Field/RadioField.php:48
350
+ #: forms/wpdFormAttr/Field/RatingField.php:39
351
+ #: forms/wpdFormAttr/Field/SelectField.php:48
352
+ #: forms/wpdFormAttr/Field/TextAreaField.php:38
353
+ #: forms/wpdFormAttr/Field/TextField.php:44
354
+ #: forms/wpdFormAttr/Field/UrlField.php:44
355
+ msgid "Meta Key"
356
+ msgstr ""
357
+
358
+ #: forms/wpdFormAttr/Field/CheckboxField.php:52
359
+ #: forms/wpdFormAttr/Field/ColorField.php:48
360
+ #: forms/wpdFormAttr/Field/DateField.php:48
361
+ #: forms/wpdFormAttr/Field/NumberField.php:58
362
+ #: forms/wpdFormAttr/Field/RadioField.php:52
363
+ #: forms/wpdFormAttr/Field/RatingField.php:43
364
+ #: forms/wpdFormAttr/Field/SelectField.php:52
365
+ #: forms/wpdFormAttr/Field/TextAreaField.php:42
366
+ #: forms/wpdFormAttr/Field/TextField.php:48
367
+ #: forms/wpdFormAttr/Field/UrlField.php:48
368
+ msgid "Replace old meta key"
369
+ msgstr ""
370
+
371
+ #: forms/wpdFormAttr/Field/CheckboxField.php:153
372
+ #: forms/wpdFormAttr/Field/ColorField.php:115
373
+ #: forms/wpdFormAttr/Field/DateField.php:115
374
+ #: forms/wpdFormAttr/Field/NumberField.php:125
375
+ #: forms/wpdFormAttr/Field/RadioField.php:130
376
+ #: forms/wpdFormAttr/Field/RatingField.php:125
377
+ #: forms/wpdFormAttr/Field/SelectField.php:125
378
+ #: forms/wpdFormAttr/Field/TextAreaField.php:98
379
+ #: forms/wpdFormAttr/Field/TextField.php:109
380
+ #: forms/wpdFormAttr/Field/UrlField.php:110
381
  msgid "field is required!"
382
  msgstr ""
383
 
414
  msgstr ""
415
 
416
  #: forms/wpdFormAttr/Field/DefaultField/Captcha.php:107
417
+ #: forms/wpdFormAttr/Form.php:733
418
  msgid "Code"
419
  msgstr ""
420
 
443
  msgstr ""
444
 
445
  #: forms/wpdFormAttr/Field/DefaultField/Website.php:83
446
+ #: forms/wpdFormAttr/Form.php:724
447
  msgid "Website"
448
  msgstr ""
449
 
455
  msgid " (CAPTCHA)"
456
  msgstr ""
457
 
458
+ #: forms/wpdFormAttr/Field/Field.php:87
459
  msgid "Add To Form"
460
  msgstr ""
461
 
467
  msgid "Max Value"
468
  msgstr ""
469
 
470
+ #: forms/wpdFormAttr/Field/NumberField.php:129
471
  msgid "value can not be less than"
472
  msgstr ""
473
 
474
+ #: forms/wpdFormAttr/Field/NumberField.php:132
475
  msgid "value can not be more than"
476
  msgstr ""
477
 
480
  msgid "New value new line"
481
  msgstr ""
482
 
483
+ #: forms/wpdFormAttr/Form.php:595
484
  msgid "Allow guests to comment"
485
  msgstr ""
486
 
487
+ #: forms/wpdFormAttr/Form.php:599 forms/wpdFormAttr/Form.php:610
488
  msgid "Yes"
489
  msgstr ""
490
 
491
+ #: forms/wpdFormAttr/Form.php:601 forms/wpdFormAttr/Form.php:612
492
  msgid "No"
493
  msgstr ""
494
 
495
+ #: forms/wpdFormAttr/Form.php:606
496
  msgid "Enable subscription bar"
497
  msgstr ""
498
 
499
+ #: forms/wpdFormAttr/Form.php:617
500
  msgid "Comment form header text"
501
  msgstr ""
502
 
503
+ #: forms/wpdFormAttr/Form.php:626
504
  msgid "Display comment form for post types"
505
  msgstr ""
506
 
507
+ #: forms/wpdFormAttr/Form.php:633
508
  msgid ""
509
  "The red marked post types are already attached to other comment form. If you "
510
  "set this form too, the old forms will not be used for them."
511
  msgstr ""
512
 
513
+ #: forms/wpdFormAttr/Form.php:652
514
  msgid "Display comment form for post IDs"
515
  msgstr ""
516
 
517
+ #: forms/wpdFormAttr/Form.php:653
518
  msgid ""
519
  "You can use this form for certain posts/pages specified by comma separated "
520
  "IDs."
521
  msgstr ""
522
 
523
+ #: forms/wpdFormAttr/Form.php:664
524
  msgid "Comment Text Field"
525
  msgstr ""
526
 
527
+ #: forms/wpdFormAttr/Form.php:679
528
  msgid "ADD ROW"
529
  msgstr ""
530
 
532
  msgid "Comment Form Fields"
533
  msgstr ""
534
 
535
+ #: options/class.WpdiscuzOptions.php:24 options/class.WpdiscuzOptions.php:99
536
+ #: options/class.WpdiscuzOptions.php:214
537
  msgid "Hacker?"
538
  msgstr ""
539
 
540
+ #: options/class.WpdiscuzOptions.php:249
541
  msgid ""
542
  "Brings an ocean of emotions to your comments. It comes with an awesome smile "
543
  "package."
544
  msgstr ""
545
 
546
+ #: options/class.WpdiscuzOptions.php:250
547
+ msgid ""
548
+ "Extended information about comment author with Profile, Activity, Votes and "
549
+ "Subscriptions Tabs on pop-up window."
550
+ msgstr ""
551
+
552
+ #: options/class.WpdiscuzOptions.php:251
553
  msgid ""
554
  "Total control over comment subscriptions. Full list, monitor, manage, "
555
  "filter, unsubscribe, confirm..."
556
  msgstr ""
557
 
558
+ #: options/class.WpdiscuzOptions.php:252
559
  msgid ""
560
  "A full-fledged tool-kit for advertising in comment section of your website. "
561
  "Separate banner and ad managment."
562
  msgstr ""
563
 
564
+ #: options/class.WpdiscuzOptions.php:253
565
  msgid ""
566
  "Allows to mention comments and users in comment text using #comment-id and "
567
  "@username tags."
568
  msgstr ""
569
 
570
+ #: options/class.WpdiscuzOptions.php:254
571
  msgid ""
572
  "See comment likers and voters of each comment. Adds user reputation and "
573
  "badges based on received likes."
574
  msgstr ""
575
 
576
+ #: options/class.WpdiscuzOptions.php:255
577
  msgid ""
578
  "Comment reporting tools. Auto-moderates comments based on number of flags "
579
  "and dislikes."
580
  msgstr ""
581
 
582
+ #: options/class.WpdiscuzOptions.php:256
583
  msgid ""
584
  "Adds a smart and intuitive AJAX \"Translate\" button with 60 language "
585
  "options. Uses free translation API."
586
  msgstr ""
587
 
588
+ #: options/class.WpdiscuzOptions.php:257
589
  msgid ""
590
  "AJAX powered front-end comment search. It starts searching while you type "
591
  "search words. "
592
  msgstr ""
593
 
594
+ #: options/class.WpdiscuzOptions.php:258
595
  msgid ""
596
  "Most voted comments, Active comment threads, Most commented posts, Active "
597
  "comment authors"
598
  msgstr ""
599
 
600
+ #: options/class.WpdiscuzOptions.php:259
601
  msgid ""
602
  "All in one powerful yet simple admin toolkit to moderate comments on front-"
603
  "end."
604
  msgstr ""
605
 
606
+ #: options/class.WpdiscuzOptions.php:260
607
  msgid ""
608
  "Extended comment attachment system. Allows to upload images, videos, audios "
609
  "and other file types."
610
  msgstr ""
611
 
612
+ #: options/class.WpdiscuzOptions.php:261
613
  msgid ""
614
  "Adds No CAPTCHA on all comment forms. Stops spam and bot comments with "
615
  "Google reCAPTCHA"
616
  msgstr ""
617
 
618
+ #: options/class.WpdiscuzOptions.php:262
619
  msgid ""
620
  "Integrates myCRED Badges and Ranks. Converts wpDiscuz comment votes/likes to "
621
  "myCRED points. "
622
  msgstr ""
623
 
624
+ #: options/class.WpdiscuzOptions.php:263
625
  msgid ""
626
  "Allows censoring comment words. Filters comments and replaces those phrases "
627
  "with custom words."
628
  msgstr ""
629
 
630
+ #: options/class.WpdiscuzOptions.php:269
631
  msgid "Custom Comment Forms"
632
  msgstr ""
633
 
634
+ #: options/class.WpdiscuzOptions.php:270
635
  msgid ""
636
  "You can create custom comment forms with wpDiscuz. wpDiscuz 4 comes with "
637
  "custom comment forms and fields. You can create custom comment forms for "
639
  "eaxample: text, dropdown, rating, checkboxes, etc..."
640
  msgstr ""
641
 
642
+ #: options/class.WpdiscuzOptions.php:273
643
  msgid "Emoticons"
644
  msgstr ""
645
 
646
+ #: options/class.WpdiscuzOptions.php:274
647
  msgid ""
648
  "You can add more emotions to your comments using wpDiscuz Emoticons addon."
649
  msgstr ""
650
 
651
+ #: options/class.WpdiscuzOptions.php:277
652
  msgid "Ads Manager"
653
  msgstr ""
654
 
655
+ #: options/class.WpdiscuzOptions.php:278
656
  msgid ""
657
  "Increase your income using ad banners. Comment area is the most active "
658
  "sections for advertising. wpDiscuz Ads Manager addon is designed to help you "
659
  "add banners and control ads in this section."
660
  msgstr ""
661
 
662
+ #: options/class.WpdiscuzOptions.php:281
663
  msgid "User and Comment Mentioning"
664
  msgstr ""
665
 
666
+ #: options/class.WpdiscuzOptions.php:282
667
  msgid ""
668
  "Using wpDiscuz User &amp; Comment Mentioning addon you can allow commenters "
669
  "mention comments and users in comment text using #comment-id and @username "
670
  "tags."
671
  msgstr ""
672
 
673
+ #: options/class.WpdiscuzOptions.php:285
674
  msgid "Advanced Likers"
675
  msgstr ""
676
 
677
+ #: options/class.WpdiscuzOptions.php:286
678
  msgid ""
679
  "wpDiscuz Advanced Likers addon displays likers and voters of each comment. "
680
  "Adds user reputation and badges based on received likes."
681
  msgstr ""
682
 
683
+ #: options/class.WpdiscuzOptions.php:289
684
  msgid "Report and Flagging"
685
  msgstr ""
686
 
687
+ #: options/class.WpdiscuzOptions.php:290
688
  msgid ""
689
  "Let your commenters help you to determine and remove spam comments. wpDiscuz "
690
  "Report and Flagging addon comes with comment reporting tools. Automaticaly "
691
  "auto-moderates comments based on number of flags and dislikes."
692
  msgstr ""
693
 
694
+ #: options/class.WpdiscuzOptions.php:293
695
  msgid "Comment Translate"
696
  msgstr ""
697
 
698
+ #: options/class.WpdiscuzOptions.php:294
699
  msgid ""
700
  "In most cases the big part of your visitors are not a native speakers of "
701
  "your language. Make your comments comprehensible for all visitors using "
704
  "translation API."
705
  msgstr ""
706
 
707
+ #: options/class.WpdiscuzOptions.php:297
708
  msgid "Comment Search"
709
  msgstr ""
710
 
711
+ #: options/class.WpdiscuzOptions.php:298
712
  msgid ""
713
  "You can let website visitor search in comments. It's always more attractive "
714
  "to find a comment about something that interest you. Using wpDiscuz Comment "
716
  "above comment list."
717
  msgstr ""
718
 
719
+ #: options/class.WpdiscuzOptions.php:301
720
  msgid "wpDiscuz Widgets"
721
  msgstr ""
722
 
723
+ #: options/class.WpdiscuzOptions.php:302
724
  msgid ""
725
  "More Comment Widgets! Most voted comments, Active comment threads, Most "
726
  "commented posts, Active comment authors widgets are available in wpDiscuz "
727
  "Widgets Addon"
728
  msgstr ""
729
 
730
+ #: options/class.WpdiscuzOptions.php:305
731
  msgid "Front-end Moderation"
732
  msgstr ""
733
 
734
+ #: options/class.WpdiscuzOptions.php:306
735
  msgid ""
736
  "You can moderate comments on front-end using all in one powerful yet simple "
737
  "wpDiscuz Frontend Moderation addon."
738
  msgstr ""
739
 
740
+ #: options/class.WpdiscuzOptions.php:309
741
  msgid "Media Uploader"
742
  msgstr ""
743
 
744
+ #: options/class.WpdiscuzOptions.php:310
745
  msgid ""
746
  "You can let website visitors attach images and files to comments and embed "
747
  "video/audio content using wpDiscuz Media Uploader addon."
748
  msgstr ""
749
 
750
+ #: options/class.WpdiscuzOptions.php:313
751
  msgid "Google ReCaptcha"
752
  msgstr ""
753
 
754
+ #: options/class.WpdiscuzOptions.php:314
755
  msgid ""
756
  "Advanced spam protection with wpDiscuz Google reCAPTCHA addon. This addon "
757
  "adds No-CAPTCHA reCAPTCHA on all comment forms. Stops spam and bot comments."
758
  msgstr ""
759
 
760
+ #: options/class.WpdiscuzOptions.php:328
761
  msgid "New Addons are available for wpDiscuz Comments Plugin"
762
  msgstr ""
763
 
764
+ #: options/class.WpdiscuzOptions.php:335 options/class.WpdiscuzOptions.php:341
765
  msgid "Go to wpDiscuz Addons subMenu"
766
  msgstr ""
767
 
768
+ #: options/class.WpdiscuzOptions.php:372
769
  msgid "Do you know?"
770
  msgstr ""
771
 
772
+ #: options/class.WpdiscuzOptions.php:384
773
  msgid "More info"
774
  msgstr ""
775
 
776
+ #: options/class.WpdiscuzOptionsSerialized.php:594
777
  msgid "Be the First to Comment!"
778
  msgstr ""
779
 
780
+ #: options/class.WpdiscuzOptionsSerialized.php:595 options/html-phrases.php:22
781
  #: options/phrases-layouts/phrases-general.php:22
782
  msgid "Comment"
783
  msgstr ""
784
 
785
+ #: options/class.WpdiscuzOptionsSerialized.php:596
786
  msgid "Comments"
787
  msgstr ""
788
 
789
+ #: options/class.WpdiscuzOptionsSerialized.php:597
790
  msgid "on"
791
  msgstr ""
792
 
793
+ #: options/class.WpdiscuzOptionsSerialized.php:598
794
  msgid "Start the discussion"
795
  msgstr ""
796
 
797
+ #: options/class.WpdiscuzOptionsSerialized.php:599
798
  msgid "Join the discussion"
799
  msgstr ""
800
 
801
+ #: options/class.WpdiscuzOptionsSerialized.php:601
802
  #: options/phrases-layouts/phrases-form.php:42
803
  #: options/phrases-layouts/phrases-form.php:46
804
  msgid "Notify of"
805
  msgstr ""
806
 
807
+ #: options/class.WpdiscuzOptionsSerialized.php:602
808
  #: options/phrases-layouts/phrases-form.php:56
809
  msgid "new follow-up comments"
810
  msgstr ""
811
 
812
+ #: options/class.WpdiscuzOptionsSerialized.php:603
813
  msgid "new replies to my comments"
814
  msgstr ""
815
 
816
+ #: options/class.WpdiscuzOptionsSerialized.php:604
817
  #: options/phrases-layouts/phrases-form.php:76
818
  msgid "Notify of new replies to this comment"
819
  msgstr ""
820
 
821
+ #: options/class.WpdiscuzOptionsSerialized.php:605
822
  #: options/phrases-layouts/phrases-form.php:82
823
  #: options/phrases-layouts/phrases-form.php:86
824
  msgid "Sort by"
825
  msgstr ""
826
 
827
+ #: options/class.WpdiscuzOptionsSerialized.php:606
828
  #: options/phrases-layouts/phrases-form.php:92
829
  #: options/phrases-layouts/phrases-form.php:96
830
  msgid "newest"
831
  msgstr ""
832
 
833
+ #: options/class.WpdiscuzOptionsSerialized.php:607
834
  #: options/phrases-layouts/phrases-form.php:102
835
  #: options/phrases-layouts/phrases-form.php:106
836
  msgid "oldest"
837
  msgstr ""
838
 
839
+ #: options/class.WpdiscuzOptionsSerialized.php:608
840
  #: options/phrases-layouts/phrases-form.php:112
841
  #: options/phrases-layouts/phrases-form.php:116
842
  msgid "most voted"
843
  msgstr ""
844
 
845
+ #: options/class.WpdiscuzOptionsSerialized.php:609
846
  msgid "Load More Comments"
847
  msgstr ""
848
 
849
+ #: options/class.WpdiscuzOptionsSerialized.php:610
850
  #: options/phrases-layouts/phrases-general.php:62
851
  msgid "Load Rest of Comments"
852
  msgstr ""
853
 
854
+ #: options/class.WpdiscuzOptionsSerialized.php:611
855
  #: options/phrases-layouts/phrases-comment.php:12
856
  msgid "Reply"
857
  msgstr ""
858
 
859
+ #: options/class.WpdiscuzOptionsSerialized.php:612
860
  #: options/phrases-layouts/phrases-comment.php:22
861
  msgid "Share"
862
  msgstr ""
863
 
864
+ #: options/class.WpdiscuzOptionsSerialized.php:614
865
  #: options/phrases-layouts/phrases-comment.php:42
866
  msgid "Share On Facebook"
867
  msgstr ""
868
 
869
+ #: options/class.WpdiscuzOptionsSerialized.php:615
870
  #: options/phrases-layouts/phrases-comment.php:52
871
  msgid "Share On Twitter"
872
  msgstr ""
873
 
874
+ #: options/class.WpdiscuzOptionsSerialized.php:616
875
  #: options/phrases-layouts/phrases-comment.php:62
876
  msgid "Share On Google"
877
  msgstr ""
878
 
879
+ #: options/class.WpdiscuzOptionsSerialized.php:617
880
  #: options/phrases-layouts/phrases-comment.php:72
881
  msgid "Share On VKontakte"
882
  msgstr ""
883
 
884
+ #: options/class.WpdiscuzOptionsSerialized.php:618
885
  #: options/phrases-layouts/phrases-comment.php:82
886
  msgid "Share On Odnoklassniki"
887
  msgstr ""
888
 
889
+ #: options/class.WpdiscuzOptionsSerialized.php:619
890
  #: options/phrases-layouts/phrases-comment.php:92
891
  msgid "Hide Replies"
892
  msgstr ""
893
 
894
+ #: options/class.WpdiscuzOptionsSerialized.php:620
895
  #: options/phrases-layouts/phrases-comment.php:102
896
  msgid "Show Replies"
897
  msgstr ""
898
 
899
+ #: options/class.WpdiscuzOptionsSerialized.php:621
900
  #: options/phrases-layouts/phrases-general.php:76
901
  msgid "New Comment"
902
  msgstr ""
903
 
904
+ #: options/class.WpdiscuzOptionsSerialized.php:622
905
  msgid "New comment on the discussion section you've been interested in"
906
  msgstr ""
907
 
908
+ #: options/class.WpdiscuzOptionsSerialized.php:623
909
  #: options/phrases-layouts/phrases-email.php:36
910
  #: options/phrases-layouts/phrases-general.php:96
911
  #: utils/class.WpdiscuzEmailHelper.php:158
912
  msgid "New Reply"
913
  msgstr ""
914
 
915
+ #: options/class.WpdiscuzOptionsSerialized.php:624
916
  #: utils/class.WpdiscuzEmailHelper.php:159
917
  msgid "New reply on the discussion section you've been interested in"
918
  msgstr ""
919
 
920
+ #: options/class.WpdiscuzOptionsSerialized.php:625
921
  msgid "You're subscribed for new replies on this comment"
922
  msgstr ""
923
 
924
+ #: options/class.WpdiscuzOptionsSerialized.php:626
925
  msgid "You're subscribed for new replies on all your comments"
926
  msgstr ""
927
 
928
+ #: options/class.WpdiscuzOptionsSerialized.php:627
929
  msgid "You're subscribed for new follow-up comments on this post"
930
  msgstr ""
931
 
932
+ #: options/class.WpdiscuzOptionsSerialized.php:628
933
  #: options/phrases-layouts/phrases-email.php:52
934
  #: options/phrases-layouts/phrases-email.php:56
935
  msgid "Unsubscribe"
936
  msgstr ""
937
 
938
+ #: options/class.WpdiscuzOptionsSerialized.php:629
939
  #: options/phrases-layouts/phrases-email.php:66
940
  msgid "Cancel subscription"
941
  msgstr ""
942
 
943
+ #: options/class.WpdiscuzOptionsSerialized.php:630
944
  #: options/phrases-layouts/phrases-notification.php:32
945
  msgid "You've successfully unsubscribed."
946
  msgstr ""
947
 
948
+ #: options/class.WpdiscuzOptionsSerialized.php:631
949
  #: options/phrases-layouts/phrases-notification.php:22
950
  msgid "You've successfully subscribed."
951
  msgstr ""
952
 
953
+ #: options/class.WpdiscuzOptionsSerialized.php:632
954
  #: options/phrases-layouts/phrases-email.php:72
955
  #: options/phrases-layouts/phrases-email.php:76
956
  msgid "Confirm your subscription"
957
  msgstr ""
958
 
959
+ #: options/class.WpdiscuzOptionsSerialized.php:633
960
  #: options/phrases-layouts/phrases-email.php:82
961
  #: options/phrases-layouts/phrases-email.php:86
962
  msgid "You've successfully confirmed your subscription."
963
  msgstr ""
964
 
965
+ #: options/class.WpdiscuzOptionsSerialized.php:634
966
  #: options/phrases-layouts/phrases-email.php:96
967
  #: utils/class.WpdiscuzEmailHelper.php:51
968
  msgid "Subscribe Confirmation"
969
  msgstr ""
970
 
971
+ #: options/class.WpdiscuzOptionsSerialized.php:635
972
  #: options/phrases-layouts/phrases-email.php:106
973
  #: utils/class.WpdiscuzEmailHelper.php:52
974
  msgid ""
979
  "you again."
980
  msgstr ""
981
 
982
+ #: options/class.WpdiscuzOptionsSerialized.php:636
983
  msgid "please fill out this field to comment"
984
  msgstr ""
985
 
986
+ #: options/class.WpdiscuzOptionsSerialized.php:637
987
  msgid "email address is invalid"
988
  msgstr ""
989
 
990
+ #: options/class.WpdiscuzOptionsSerialized.php:638
991
  msgid "url is invalid"
992
  msgstr ""
993
 
994
+ #: options/class.WpdiscuzOptionsSerialized.php:639
995
  msgid "year"
996
  msgstr ""
997
 
998
+ #: options/class.WpdiscuzOptionsSerialized.php:640
999
  msgid "years"
1000
  msgstr ""
1001
 
1002
+ #: options/class.WpdiscuzOptionsSerialized.php:641
1003
  msgid "month"
1004
  msgstr ""
1005
 
1006
+ #: options/class.WpdiscuzOptionsSerialized.php:642
1007
  msgid "months"
1008
  msgstr ""
1009
 
1010
+ #: options/class.WpdiscuzOptionsSerialized.php:643
1011
  msgid "day"
1012
  msgstr ""
1013
 
1014
+ #: options/class.WpdiscuzOptionsSerialized.php:644
1015
  msgid "days"
1016
  msgstr ""
1017
 
1018
+ #: options/class.WpdiscuzOptionsSerialized.php:645
1019
  msgid "hour"
1020
  msgstr ""
1021
 
1022
+ #: options/class.WpdiscuzOptionsSerialized.php:646
1023
  msgid "hours"
1024
  msgstr ""
1025
 
1026
+ #: options/class.WpdiscuzOptionsSerialized.php:647
1027
  msgid "minute"
1028
  msgstr ""
1029
 
1030
+ #: options/class.WpdiscuzOptionsSerialized.php:648
1031
  msgid "minutes"
1032
  msgstr ""
1033
 
1034
+ #: options/class.WpdiscuzOptionsSerialized.php:649
1035
  msgid "second"
1036
  msgstr ""
1037
 
1038
+ #: options/class.WpdiscuzOptionsSerialized.php:650
1039
  msgid "seconds"
1040
  msgstr ""
1041
 
1042
+ #: options/class.WpdiscuzOptionsSerialized.php:651
1043
  msgid "right now"
1044
  msgstr ""
1045
 
1046
+ #: options/class.WpdiscuzOptionsSerialized.php:652
1047
  msgid "ago"
1048
  msgstr ""
1049
 
1050
+ #: options/class.WpdiscuzOptionsSerialized.php:653
1051
  #: options/phrases-layouts/phrases-datetime.php:156
1052
  msgid "Today"
1053
  msgstr ""
1054
 
1055
+ #: options/class.WpdiscuzOptionsSerialized.php:654
1056
  #: options/phrases-layouts/phrases-notification.php:84
1057
  msgid "You must be"
1058
  msgstr ""
1059
 
1060
+ #: options/class.WpdiscuzOptionsSerialized.php:655
1061
  msgid "You are logged in as"
1062
  msgstr ""
1063
 
1064
+ #: options/class.WpdiscuzOptionsSerialized.php:656
1065
  #: options/phrases-layouts/phrases-notification.php:104
1066
  msgid "Log out"
1067
  msgstr ""
1068
 
1069
+ #: options/class.WpdiscuzOptionsSerialized.php:657
1070
  msgid "logged in"
1071
  msgstr ""
1072
 
1073
+ #: options/class.WpdiscuzOptionsSerialized.php:658
1074
  msgid "to post a comment."
1075
  msgstr ""
1076
 
1077
+ #: options/class.WpdiscuzOptionsSerialized.php:659
1078
  #: options/phrases-layouts/phrases-comment.php:138
1079
  msgid "Vote Up"
1080
  msgstr ""
1081
 
1082
+ #: options/class.WpdiscuzOptionsSerialized.php:660
1083
  #: options/phrases-layouts/phrases-comment.php:148
1084
  msgid "Vote Down"
1085
  msgstr ""
1086
 
1087
+ #: options/class.WpdiscuzOptionsSerialized.php:661
1088
  #: options/phrases-layouts/phrases-notification.php:134
1089
  msgid "Vote Counted"
1090
  msgstr ""
1091
 
1092
+ #: options/class.WpdiscuzOptionsSerialized.php:662
1093
  msgid "You've already voted for this comment"
1094
  msgstr ""
1095
 
1096
+ #: options/class.WpdiscuzOptionsSerialized.php:663
1097
  #: options/phrases-layouts/phrases-notification.php:154
1098
  msgid "Voting Error"
1099
  msgstr ""
1100
 
1101
+ #: options/class.WpdiscuzOptionsSerialized.php:664
1102
  msgid "You Must Be Logged In To Vote"
1103
  msgstr ""
1104
 
1105
+ #: options/class.WpdiscuzOptionsSerialized.php:665
1106
  msgid "You cannot vote for your comment"
1107
  msgstr ""
1108
 
1109
+ #: options/class.WpdiscuzOptionsSerialized.php:666
1110
  msgid "You are not allowed to vote for this comment"
1111
  msgstr ""
1112
 
1113
+ #: options/class.WpdiscuzOptionsSerialized.php:667
1114
  #: options/phrases-layouts/phrases-notification.php:194
1115
  msgid "Invalid Captcha Code"
1116
  msgstr ""
1117
 
1118
+ #: options/class.WpdiscuzOptionsSerialized.php:668
1119
  #: options/phrases-layouts/phrases-notification.php:204
1120
  msgid "Some of field value is invalid"
1121
  msgstr ""
1122
 
1123
+ #: options/class.WpdiscuzOptionsSerialized.php:669
1124
  msgid "new comment"
1125
  msgstr ""
1126
 
1127
+ #: options/class.WpdiscuzOptionsSerialized.php:670
1128
  msgid "new comments"
1129
  msgstr ""
1130
 
1131
+ #: options/class.WpdiscuzOptionsSerialized.php:671
1132
  msgid "Comment awaiting moderation"
1133
  msgstr ""
1134
 
1135
+ #: options/class.WpdiscuzOptionsSerialized.php:672
1136
  msgid "new reply on your comment"
1137
  msgstr ""
1138
 
1139
+ #: options/class.WpdiscuzOptionsSerialized.php:673
1140
  msgid "new replies on your comments"
1141
  msgstr ""
1142
 
1143
+ #: options/class.WpdiscuzOptionsSerialized.php:674
1144
  #: options/phrases-layouts/phrases-general.php:116
1145
  msgid "New"
1146
  msgstr ""
1147
 
1148
+ #: options/class.WpdiscuzOptionsSerialized.php:675
1149
  #: options/phrases-layouts/phrases-notification.php:249
1150
  msgid "Sorry, the comment was not updated"
1151
  msgstr ""
1152
 
1153
+ #: options/class.WpdiscuzOptionsSerialized.php:676
1154
  #: options/phrases-layouts/phrases-notification.php:259
1155
  msgid "Sorry, this comment no longer possible to edit"
1156
  msgstr ""
1157
 
1158
+ #: options/class.WpdiscuzOptionsSerialized.php:677
1159
  msgid "You've not made any changes"
1160
  msgstr ""
1161
 
1162
+ #: options/class.WpdiscuzOptionsSerialized.php:678
1163
  #: options/phrases-layouts/phrases-comment.php:162
1164
  msgid "Save"
1165
  msgstr ""
1166
 
1167
+ #: options/class.WpdiscuzOptionsSerialized.php:679
1168
  #: options/phrases-layouts/phrases-comment.php:172
1169
  msgid "Cancel"
1170
  msgstr ""
1171
 
1172
+ #: options/class.WpdiscuzOptionsSerialized.php:680
1173
  msgid "Input is too short"
1174
  msgstr ""
1175
 
1176
+ #: options/class.WpdiscuzOptionsSerialized.php:681
1177
  msgid "Input is too long"
1178
  msgstr ""
1179
 
1180
+ #: options/class.WpdiscuzOptionsSerialized.php:682
1181
  #: options/phrases-layouts/phrases-comment.php:182
1182
  msgid "Read more &raquo;"
1183
  msgstr ""
1184
 
1185
+ #: options/class.WpdiscuzOptionsSerialized.php:683
1186
  #: options/phrases-layouts/phrases-comment.php:192
1187
  msgid "Anonymous"
1188
  msgstr ""
1189
 
1190
+ #: options/class.WpdiscuzOptionsSerialized.php:684
1191
  #: options/phrases-layouts/phrases-notification.php:275
1192
  #: options/phrases-layouts/phrases-notification.php:279
1193
  msgid "Please fill out required fields"
1194
  msgstr ""
1195
 
1196
+ #: options/class.WpdiscuzOptionsSerialized.php:685
1197
  #: options/phrases-layouts/phrases-form.php:152
1198
  #: options/phrases-layouts/phrases-form.php:156
1199
  msgid "Connect with"
1200
  msgstr ""
1201
 
1202
+ #: options/class.WpdiscuzOptionsSerialized.php:686
1203
  msgid "You're subscribed to"
1204
  msgstr ""
1205
 
1206
+ #: options/class.WpdiscuzOptionsSerialized.php:687
1207
  msgid "Participate in this discussion via email"
1208
  msgstr ""
1209
 
1787
  msgid "Disable Profiles URL"
1788
  msgstr ""
1789
 
1790
+ #: options/options-layouts/settings-show-hide.php:153
1791
+ msgid "Diplay Ratings"
1792
+ msgstr ""
1793
+
1794
+ #: options/options-layouts/settings-show-hide.php:156
1795
+ msgid "Before Content"
1796
+ msgstr ""
1797
+
1798
+ #: options/options-layouts/settings-show-hide.php:158
1799
+ msgid "After Content"
1800
+ msgstr ""
1801
+
1802
  #: options/options-layouts/settings-social.php:50
1803
  #: options/options-layouts/settings-social.php:61
1804
  #: options/options-layouts/settings-social.php:72
options/class.WpdiscuzOptions.php CHANGED
@@ -69,6 +69,7 @@ class WpdiscuzOptions {
69
  $this->optionsSerialized->disableFontAwesome = isset($_POST['disableFontAwesome']) ? $_POST['disableFontAwesome'] : 0;
70
  $this->optionsSerialized->disableTips = isset($_POST['disableTips']) ? $_POST['disableTips'] : 0;
71
  $this->optionsSerialized->disableProfileURLs = isset($_POST['disableProfileURLs']) ? $_POST['disableProfileURLs'] : 0;
 
72
  $this->optionsSerialized->customCss = isset($_POST['wc_custom_css']) ? $_POST['wc_custom_css'] : '.comments-area{width:auto; margin: 0 auto;}';
73
  $this->optionsSerialized->showPluginPoweredByLink = isset($_POST['wc_show_plugin_powerid_by']) ? $_POST['wc_show_plugin_powerid_by'] : 0;
74
  $this->optionsSerialized->isUsePoMo = isset($_POST['wc_is_use_po_mo']) ? $_POST['wc_is_use_po_mo'] : 0;
@@ -246,6 +247,7 @@ class WpdiscuzOptions {
246
  private function initAddons() {
247
  $this->addons = array(
248
  'emoticons' => array('version' => '1.1.1', 'requires' => '4.0.0', 'class' => 'wpDiscuzSmile', 'title' => 'Emoticons', 'thumb' => plugins_url(WPDISCUZ_DIR_NAME . WPDISCUZ_DS . 'assets' . WPDISCUZ_DS . 'addons' . WPDISCUZ_DS . 'emoticons' . WPDISCUZ_DS . 'header.png'), 'desc' => __('Brings an ocean of emotions to your comments. It comes with an awesome smile package.', 'wpdiscuz'), 'url' => 'http://gvectors.com/product/wpdiscuz-emoticons/'),
 
249
  'subscriptions' => array('version' => '1.0.0', 'requires' => '4.0.4', 'class' => 'wpdSubscribeManager', 'title' => 'Subscription Manager', 'thumb' => plugins_url(WPDISCUZ_DIR_NAME . WPDISCUZ_DS . 'assets' . WPDISCUZ_DS . 'addons' . WPDISCUZ_DS . 'subscriptions' . WPDISCUZ_DS . 'header.png'), 'desc' => __('Total control over comment subscriptions. Full list, monitor, manage, filter, unsubscribe, confirm...', 'wpdiscuz'), 'url' => 'http://gvectors.com/product/wpdiscuz-subscribe-manager/'),
250
  'ads-manager' => array('version' => '1.0.0', 'requires' => '4.0.0', 'class' => 'WpdiscuzAdsManager', 'title' => 'Ads Manager', 'thumb' => plugins_url(WPDISCUZ_DIR_NAME . WPDISCUZ_DS . 'assets' . WPDISCUZ_DS . 'addons' . WPDISCUZ_DS . 'ads-manager' . WPDISCUZ_DS . 'header.png'), 'desc' => __('A full-fledged tool-kit for advertising in comment section of your website. Separate banner and ad managment.', 'wpdiscuz'), 'url' => 'http://gvectors.com/product/wpdiscuz-ads-manager/'),
251
  'user-mention' => array('version' => '1.0.0', 'requires' => '4.0.0', 'class' => 'Wpdiscuz_UCM', 'title' => 'User &amp; Comment Mentioning', 'thumb' => plugins_url(WPDISCUZ_DIR_NAME . WPDISCUZ_DS . 'assets' . WPDISCUZ_DS . 'addons' . WPDISCUZ_DS . 'user-mention' . WPDISCUZ_DS . 'header.png'), 'desc' => __('Allows to mention comments and users in comment text using #comment-id and @username tags.', 'wpdiscuz'), 'url' => 'http://gvectors.com/product/wpdiscuz-user-comment-mentioning/'),
69
  $this->optionsSerialized->disableFontAwesome = isset($_POST['disableFontAwesome']) ? $_POST['disableFontAwesome'] : 0;
70
  $this->optionsSerialized->disableTips = isset($_POST['disableTips']) ? $_POST['disableTips'] : 0;
71
  $this->optionsSerialized->disableProfileURLs = isset($_POST['disableProfileURLs']) ? $_POST['disableProfileURLs'] : 0;
72
+ $this->optionsSerialized->displayRatingOnPost = isset($_POST['displayRatingOnPost']) ? $_POST['displayRatingOnPost'] : array();
73
  $this->optionsSerialized->customCss = isset($_POST['wc_custom_css']) ? $_POST['wc_custom_css'] : '.comments-area{width:auto; margin: 0 auto;}';
74
  $this->optionsSerialized->showPluginPoweredByLink = isset($_POST['wc_show_plugin_powerid_by']) ? $_POST['wc_show_plugin_powerid_by'] : 0;
75
  $this->optionsSerialized->isUsePoMo = isset($_POST['wc_is_use_po_mo']) ? $_POST['wc_is_use_po_mo'] : 0;
247
  private function initAddons() {
248
  $this->addons = array(
249
  'emoticons' => array('version' => '1.1.1', 'requires' => '4.0.0', 'class' => 'wpDiscuzSmile', 'title' => 'Emoticons', 'thumb' => plugins_url(WPDISCUZ_DIR_NAME . WPDISCUZ_DS . 'assets' . WPDISCUZ_DS . 'addons' . WPDISCUZ_DS . 'emoticons' . WPDISCUZ_DS . 'header.png'), 'desc' => __('Brings an ocean of emotions to your comments. It comes with an awesome smile package.', 'wpdiscuz'), 'url' => 'http://gvectors.com/product/wpdiscuz-emoticons/'),
250
+ 'author-info' => array('version' => '1.0.0', 'requires' => '4.0.6', 'class' => 'WpdiscuzCommentAuthorInfo', 'title' => 'Comment Author Info', 'thumb' => plugins_url(WPDISCUZ_DIR_NAME . WPDISCUZ_DS . 'assets' . WPDISCUZ_DS . 'addons' . WPDISCUZ_DS . 'author-info' . WPDISCUZ_DS . 'header.png'), 'desc' => __('Extended information about comment author with Profile, Activity, Votes and Subscriptions Tabs on pop-up window.', 'wpdiscuz'), 'url' => 'http://gvectors.com/product/wpdiscuz-comment-author-info/'),
251
  'subscriptions' => array('version' => '1.0.0', 'requires' => '4.0.4', 'class' => 'wpdSubscribeManager', 'title' => 'Subscription Manager', 'thumb' => plugins_url(WPDISCUZ_DIR_NAME . WPDISCUZ_DS . 'assets' . WPDISCUZ_DS . 'addons' . WPDISCUZ_DS . 'subscriptions' . WPDISCUZ_DS . 'header.png'), 'desc' => __('Total control over comment subscriptions. Full list, monitor, manage, filter, unsubscribe, confirm...', 'wpdiscuz'), 'url' => 'http://gvectors.com/product/wpdiscuz-subscribe-manager/'),
252
  'ads-manager' => array('version' => '1.0.0', 'requires' => '4.0.0', 'class' => 'WpdiscuzAdsManager', 'title' => 'Ads Manager', 'thumb' => plugins_url(WPDISCUZ_DIR_NAME . WPDISCUZ_DS . 'assets' . WPDISCUZ_DS . 'addons' . WPDISCUZ_DS . 'ads-manager' . WPDISCUZ_DS . 'header.png'), 'desc' => __('A full-fledged tool-kit for advertising in comment section of your website. Separate banner and ad managment.', 'wpdiscuz'), 'url' => 'http://gvectors.com/product/wpdiscuz-ads-manager/'),
253
  'user-mention' => array('version' => '1.0.0', 'requires' => '4.0.0', 'class' => 'Wpdiscuz_UCM', 'title' => 'User &amp; Comment Mentioning', 'thumb' => plugins_url(WPDISCUZ_DIR_NAME . WPDISCUZ_DS . 'assets' . WPDISCUZ_DS . 'addons' . WPDISCUZ_DS . 'user-mention' . WPDISCUZ_DS . 'header.png'), 'desc' => __('Allows to mention comments and users in comment text using #comment-id and @username tags.', 'wpdiscuz'), 'url' => 'http://gvectors.com/product/wpdiscuz-user-comment-mentioning/'),
options/class.WpdiscuzOptionsSerialized.php CHANGED
@@ -276,6 +276,14 @@ class WpdiscuzOptionsSerialized {
276
  * Default Value - #FFD700
277
  */
278
  public $ratingActivColor;
 
 
 
 
 
 
 
 
279
 
280
  // == RATING == //
281
 
@@ -558,6 +566,7 @@ class WpdiscuzOptionsSerialized {
558
  $this->disableFontAwesome = isset($options['disableFontAwesome']) ? $options['disableFontAwesome'] : 0;
559
  $this->disableTips = isset($options['disableTips']) ? $options['disableTips'] : 0;
560
  $this->disableProfileURLs = isset($options['disableProfileURLs']) ? $options['disableProfileURLs'] : 0;
 
561
  $this->customCss = isset($options['wc_custom_css']) ? $options['wc_custom_css'] : '.comments-area{width:auto; margin: 0 auto;}';
562
  $this->showPluginPoweredByLink = isset($options['wc_show_plugin_powerid_by']) ? $options['wc_show_plugin_powerid_by'] : 0;
563
  $this->isUsePoMo = isset($options['wc_is_use_po_mo']) ? $options['wc_is_use_po_mo'] : 0;
@@ -722,6 +731,7 @@ class WpdiscuzOptionsSerialized {
722
  'disableFontAwesome' => $this->disableFontAwesome,
723
  'disableTips' => $this->disableTips,
724
  'disableProfileURLs' => $this->disableProfileURLs,
 
725
  'wc_custom_css' => $this->customCss,
726
  'wc_show_plugin_powerid_by' => $this->showPluginPoweredByLink,
727
  'wc_is_use_po_mo' => $this->isUsePoMo,
@@ -794,6 +804,7 @@ class WpdiscuzOptionsSerialized {
794
  'disableFontAwesome' => '0',
795
  'disableTips' => '0',
796
  'disableProfileURLs' => '0',
 
797
  'wc_custom_css' => '.comments-area{width:auto;}',
798
  'wc_show_plugin_powerid_by' => '0',
799
  'wc_is_use_po_mo' => '0',
276
  * Default Value - #FFD700
277
  */
278
  public $ratingActivColor;
279
+
280
+ /**
281
+ * Type - Checkbox
282
+ * Available Values - before , after
283
+ * Description - Display ratings on page
284
+ * Default Value - after
285
+ */
286
+ public $displayRatingOnPost;
287
 
288
  // == RATING == //
289
 
566
  $this->disableFontAwesome = isset($options['disableFontAwesome']) ? $options['disableFontAwesome'] : 0;
567
  $this->disableTips = isset($options['disableTips']) ? $options['disableTips'] : 0;
568
  $this->disableProfileURLs = isset($options['disableProfileURLs']) ? $options['disableProfileURLs'] : 0;
569
+ $this->displayRatingOnPost = isset($options['displayRatingOnPost']) ? $options['displayRatingOnPost'] : array();
570
  $this->customCss = isset($options['wc_custom_css']) ? $options['wc_custom_css'] : '.comments-area{width:auto; margin: 0 auto;}';
571
  $this->showPluginPoweredByLink = isset($options['wc_show_plugin_powerid_by']) ? $options['wc_show_plugin_powerid_by'] : 0;
572
  $this->isUsePoMo = isset($options['wc_is_use_po_mo']) ? $options['wc_is_use_po_mo'] : 0;
731
  'disableFontAwesome' => $this->disableFontAwesome,
732
  'disableTips' => $this->disableTips,
733
  'disableProfileURLs' => $this->disableProfileURLs,
734
+ 'displayRatingOnPost' => $this->displayRatingOnPost,
735
  'wc_custom_css' => $this->customCss,
736
  'wc_show_plugin_powerid_by' => $this->showPluginPoweredByLink,
737
  'wc_is_use_po_mo' => $this->isUsePoMo,
804
  'disableFontAwesome' => '0',
805
  'disableTips' => '0',
806
  'disableProfileURLs' => '0',
807
+ 'displayRatingOnPost' => array('after'),
808
  'wc_custom_css' => '.comments-area{width:auto;}',
809
  'wc_show_plugin_powerid_by' => '0',
810
  'wc_is_use_po_mo' => '0',
options/options-layouts/settings-show-hide.php CHANGED
@@ -145,10 +145,19 @@ if (!defined('ABSPATH')) {
145
  </td>
146
  </tr>
147
  <?php }?>
148
- <tr valign="top" style="d">
149
  <th scope="row"><label for="disableProfileURLs"><?php _e('Disable Profiles URL', 'wpdiscuz'); ?></label></th>
150
  <td><input type="checkbox" <?php checked($this->optionsSerialized->disableProfileURLs == 1) ?> value="1" name="disableProfileURLs" id="disableProfileURLs" /></td>
151
  </tr>
 
 
 
 
 
 
 
 
 
152
  </tbody>
153
  </table>
154
  </div>
145
  </td>
146
  </tr>
147
  <?php }?>
148
+ <tr valign="top">
149
  <th scope="row"><label for="disableProfileURLs"><?php _e('Disable Profiles URL', 'wpdiscuz'); ?></label></th>
150
  <td><input type="checkbox" <?php checked($this->optionsSerialized->disableProfileURLs == 1) ?> value="1" name="disableProfileURLs" id="disableProfileURLs" /></td>
151
  </tr>
152
+ <tr valign="top">
153
+ <th scope="row"><?php _e('Diplay Ratings', 'wpdiscuz'); ?></label></th>
154
+ <td>
155
+ <input type="checkbox" <?php checked(in_array('before', $this->optionsSerialized->displayRatingOnPost)) ?> value="before" name="displayRatingOnPost[]" id="displayRatingOnPostBefore" />
156
+ <label for="displayRatingOnPostBefore"><?php _e('Before Content', 'wpdiscuz'); ?></label><br>
157
+ <input type="checkbox" <?php checked(in_array('after', $this->optionsSerialized->displayRatingOnPost)) ?> value="after" name="displayRatingOnPost[]" id="displayRatingOnPostAfter" />
158
+ <label for="displayRatingOnPostAfter"><?php _e('After Content', 'wpdiscuz'); ?></label>
159
+ </td>
160
+ </tr>
161
  </tbody>
162
  </table>
163
  </div>
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: gVectors Team
3
  Tags: wordpress comments, ajax comments, ajax, custom form, custom fields, live update, live comments, realtime chat, chat, realtime commenting, Lazy load, Lazy load comments, mobile commenting, post comments, advanced comment, comments box, community, discussion, discuss, disqus, discuz, Disqus alternative, Livefyre alternative, Jetpack comments alternative, Facebook comments alternative, comment form, commenting, reply, comments, better comments, discussions, comment notifications, comment template, activity, comment author, comment system, redirect, comment redirect, first commenter, email commenting, social login, boost comments, native comments
4
  Requires at least: 3.8.0
5
  Tested up to: 4.7
6
- Stable tag: 4.0.6
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -14,10 +14,10 @@ Comments - wpDiscuz: AJAX powered comments, realtime comments. Designed to exten
14
  AJAX realtime comment system with custom comment form and fields. Designed to supercharge Wordpress native comments. Super fast and responsive with dozens features. This is the best Disqus alternative, if you want to keep your comments in your database. wpDiscuz also the best alternative to Livefyre, Jetpack and Facebook comments.
15
 
16
 
17
- * Support Forum: http://gvectors.com/forum/
18
- * wpDiscuz Demo: http://wpdiscuz.com/wpdiscuz-4/
19
- * wpDiscuz Addons: http://wpdiscuz.com/addons/
20
- * wpDiscuz Documentation: http://wpdiscuz.com/wpdiscuz-documentation/
21
 
22
  Integration with User Profile Plugins - Please read the [Integrations] Tab in wpDiscuz Settings admin page
23
 
@@ -72,6 +72,7 @@ Integration with AntiSpam plugins
72
 
73
  * | [wpDiscuz - Emoticons](http://gvectors.com/product/wpdiscuz-emoticons/)
74
  * | [wpDiscuz - Media Uploader](http://gvectors.com/product/wpdiscuz-media-uploader/)
 
75
  * | [wpDiscuz - Google ReCaptcha](http://gvectors.com/product/wpdiscuz-recaptcha/)
76
  * | [wpDiscuz - myCRED Integration](http://gvectors.com/product/wpdiscuz-mycred/)
77
  * | [wpDiscuz - Widgets](http://gvectors.com/product/wpdiscuz-widgets/)
@@ -139,10 +140,18 @@ Support Forum: http://gvectors.com/forum/
139
 
140
  == Changelog ==
141
 
142
- = 4.0.6 =
143
 
144
- * Fixed Bug: HTML filtering
145
- * Changed: Removing "img" quicktag
 
 
 
 
 
 
 
 
146
 
147
  IMPORTANT:
148
 
@@ -151,6 +160,11 @@ IMPORTANT:
151
  - If you use CDN and found some issue please purge it.
152
  - If your server PHP version is lower than 5.4, [please change it to hogher](https://wordpress.org/support/topic/wpdiscuz-4-requires-php-5-4-and-higher/)
153
 
 
 
 
 
 
154
  = 4.0.5 =
155
 
156
  * Added: Spoiler quicktag and Spoiler in comment content
3
  Tags: wordpress comments, ajax comments, ajax, custom form, custom fields, live update, live comments, realtime chat, chat, realtime commenting, Lazy load, Lazy load comments, mobile commenting, post comments, advanced comment, comments box, community, discussion, discuss, disqus, discuz, Disqus alternative, Livefyre alternative, Jetpack comments alternative, Facebook comments alternative, comment form, commenting, reply, comments, better comments, discussions, comment notifications, comment template, activity, comment author, comment system, redirect, comment redirect, first commenter, email commenting, social login, boost comments, native comments
4
  Requires at least: 3.8.0
5
  Tested up to: 4.7
6
+ Stable tag: 4.0.7
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
14
  AJAX realtime comment system with custom comment form and fields. Designed to supercharge Wordpress native comments. Super fast and responsive with dozens features. This is the best Disqus alternative, if you want to keep your comments in your database. wpDiscuz also the best alternative to Livefyre, Jetpack and Facebook comments.
15
 
16
 
17
+ * Support Forum: [http://gvectors.com/forum/](http://gvectors.com/forum/)
18
+ * wpDiscuz Demo: [http://wpdiscuz.com/wpdiscuz-4/](http://wpdiscuz.com/wpdiscuz-4/)
19
+ * wpDiscuz Addons: [http://wpdiscuz.com/addons/](http://wpdiscuz.com/addons)
20
+ * wpDiscuz Documentation: [http://wpdiscuz.com/wpdiscuz-documentation/](http://wpdiscuz.com/wpdiscuz-documentation/)
21
 
22
  Integration with User Profile Plugins - Please read the [Integrations] Tab in wpDiscuz Settings admin page
23
 
72
 
73
  * | [wpDiscuz - Emoticons](http://gvectors.com/product/wpdiscuz-emoticons/)
74
  * | [wpDiscuz - Media Uploader](http://gvectors.com/product/wpdiscuz-media-uploader/)
75
+ * | [wpDiscuz - Comment Author Info](http://gvectors.com/product/wpdiscuz-comment-author-info/)
76
  * | [wpDiscuz - Google ReCaptcha](http://gvectors.com/product/wpdiscuz-recaptcha/)
77
  * | [wpDiscuz - myCRED Integration](http://gvectors.com/product/wpdiscuz-mycred/)
78
  * | [wpDiscuz - Widgets](http://gvectors.com/product/wpdiscuz-widgets/)
140
 
141
  == Changelog ==
142
 
143
+ = 4.0.7 =
144
 
145
+ [Release Summary](http://gvectors.com/forum/important-information-and-announcements/wpdiscuz-4-0-7-is-released/)
146
+
147
+ * Added: Shortcode for Post Rating `[wpdrating]`
148
+ * Added: Option to display Post Rating on Top/Bottom and with Shortcode
149
+ * Added: Advanced options to Comment Form Custom Fields to change custom field key
150
+ * New Addon: [wpDiscuz - Comment Author Info](http://gvectors.com/product/wpdiscuz-comment-author-info/)
151
+ * Fixed Bug: Update post total rating when comment is deleted
152
+ * Fixed Bug: Server Error 500 on new comment submit
153
+ * Fixed Bug: jQuery.cookie.js/jQuery.cookie.min.js scripts fail to load
154
+ * Fixed Bug: Custom Field displaying order
155
 
156
  IMPORTANT:
157
 
160
  - If you use CDN and found some issue please purge it.
161
  - If your server PHP version is lower than 5.4, [please change it to hogher](https://wordpress.org/support/topic/wpdiscuz-4-requires-php-5-4-and-higher/)
162
 
163
+ = 4.0.6 =
164
+
165
+ * Fixed Bug: HTML filtering
166
+ * Changed: Removing "img" quicktag
167
+
168
  = 4.0.5 =
169
 
170
  * Added: Spoiler quicktag and Spoiler in comment content
templates/comment/class.WpdiscuzWalker.php CHANGED
@@ -73,7 +73,7 @@ class WpdiscuzWalker extends Walker_Comment {
73
  $profileUrl = in_array($user->ID, $args['posts_authors']) ? get_author_posts_url($user->ID) : '';
74
  $commentAuthorUrl = $commentAuthorUrl ? $commentAuthorUrl : $user->user_url;
75
  if ($user->ID == $args['post_author']) {
76
- $authorClass = 'wc-blog-post_author';
77
  $author_title = $this->optionsSerialized->phrases['wc_blog_role_post_author'];
78
  } else {
79
  $authorClass = 'wc-blog-guest';
@@ -83,7 +83,7 @@ class WpdiscuzWalker extends Walker_Comment {
83
  if ($user->roles && is_array($user->roles)) {
84
  foreach ($user->roles as $role) {
85
  if (array_key_exists($role, $blogRoles)) {
86
- $authorClass = 'wc-blog-' . $role;
87
  $author_title = $this->optionsSerialized->phrases['wc_blog_role_' . $role];
88
  break;
89
  }
@@ -157,7 +157,8 @@ class WpdiscuzWalker extends Walker_Comment {
157
  // begin printing comment template
158
  $output .= '<div id="wc-comm-' . $uniqueId . '" class="' . $commentWrapperClass . ' ' . $authorClass . ' wc_comment_level-' . $depth . '">';
159
  if ($this->optionsSerialized->wordpressShowAvatars) {
160
- $output .= '<div class="wc-comment-left">' . $commentAuthorAvatar;
 
161
  if (!$this->optionsSerialized->authorTitlesShowHide && !$trackOrPingback) {
162
  $author_title = apply_filters('wpdiscuz_author_title', $author_title, $comment);
163
  $output .= '<div class="' . $authorClass . ' wc-comment-label">' . '<span>' . $author_title . '</span>' . '</div>';
@@ -170,7 +171,8 @@ class WpdiscuzWalker extends Walker_Comment {
170
  $commentLink = get_comment_link($comment);
171
  $output .= '<div id="comment-' . $comment->comment_ID . '" class="wc-comment-right ' . $commentContentClass . '" ' . $hideAvatarStyle . '>';
172
  $output .= '<div class="wc-comment-header">';
173
- $output .= '<div class="wc-comment-author">' . $authorName . '</div>';
 
174
 
175
  $output .= '<div class="wc-comment-link">';
176
  if ($this->optionsSerialized->shareButtons) {
@@ -191,13 +193,15 @@ class WpdiscuzWalker extends Walker_Comment {
191
  $output .= '</span>';
192
  }
193
 
194
- $output = apply_filters('wpdiscuz_after_comment_link', $output, $comment);
195
 
196
  if (!$this->optionsSerialized->showHideCommentLink) {
197
  $commentLinkImg = '<span class="wc-comment-img-link-wrap"><i class="fa fa-link wc-comment-img-link wpf-cta" aria-hidden="true"/></i><span><input type="text" class="wc-comment-link-input" value="' . $commentLink . '" /></span></span>';
198
  $output .= apply_filters('wpdiscuz_comment_link_img', $commentLinkImg, $comment);
199
  }
200
 
 
 
201
  $output .= '</div>';
202
  $output .= '<div class="wpdiscuz_clear"></div>';
203
  $output .= '</div>';
73
  $profileUrl = in_array($user->ID, $args['posts_authors']) ? get_author_posts_url($user->ID) : '';
74
  $commentAuthorUrl = $commentAuthorUrl ? $commentAuthorUrl : $user->user_url;
75
  if ($user->ID == $args['post_author']) {
76
+ $authorClass = 'wc-blog-user wc-blog-post_author';
77
  $author_title = $this->optionsSerialized->phrases['wc_blog_role_post_author'];
78
  } else {
79
  $authorClass = 'wc-blog-guest';
83
  if ($user->roles && is_array($user->roles)) {
84
  foreach ($user->roles as $role) {
85
  if (array_key_exists($role, $blogRoles)) {
86
+ $authorClass = 'wc-blog-user wc-blog-' . $role;
87
  $author_title = $this->optionsSerialized->phrases['wc_blog_role_' . $role];
88
  break;
89
  }
157
  // begin printing comment template
158
  $output .= '<div id="wc-comm-' . $uniqueId . '" class="' . $commentWrapperClass . ' ' . $authorClass . ' wc_comment_level-' . $depth . '">';
159
  if ($this->optionsSerialized->wordpressShowAvatars) {
160
+ $commentLeftClass = apply_filters('wpdiscuz_comment_left_class', '');
161
+ $output .= '<div class="wc-comment-left ' . $commentLeftClass . '">' . $commentAuthorAvatar;
162
  if (!$this->optionsSerialized->authorTitlesShowHide && !$trackOrPingback) {
163
  $author_title = apply_filters('wpdiscuz_author_title', $author_title, $comment);
164
  $output .= '<div class="' . $authorClass . ' wc-comment-label">' . '<span>' . $author_title . '</span>' . '</div>';
171
  $commentLink = get_comment_link($comment);
172
  $output .= '<div id="comment-' . $comment->comment_ID . '" class="wc-comment-right ' . $commentContentClass . '" ' . $hideAvatarStyle . '>';
173
  $output .= '<div class="wc-comment-header">';
174
+ $uNameClasses = apply_filters('wpdiscuz_username_classes', '');
175
+ $output .= '<div class="wc-comment-author ' . $uNameClasses . '">' . $authorName . '</div>';
176
 
177
  $output .= '<div class="wc-comment-link">';
178
  if ($this->optionsSerialized->shareButtons) {
193
  $output .= '</span>';
194
  }
195
 
196
+ $output = apply_filters('wpdiscuz_before_comment_link', $output, $comment, $user, $current_user);
197
 
198
  if (!$this->optionsSerialized->showHideCommentLink) {
199
  $commentLinkImg = '<span class="wc-comment-img-link-wrap"><i class="fa fa-link wc-comment-img-link wpf-cta" aria-hidden="true"/></i><span><input type="text" class="wc-comment-link-input" value="' . $commentLink . '" /></span></span>';
200
  $output .= apply_filters('wpdiscuz_comment_link_img', $commentLinkImg, $comment);
201
  }
202
 
203
+ $output = apply_filters('wpdiscuz_after_comment_link', $output, $comment, $user, $current_user);
204
+
205
  $output .= '</div>';
206
  $output .= '<div class="wpdiscuz_clear"></div>';
207
  $output .= '</div>';