Contact Form 7 - Version 3.0.2

Version Description

  • Show alert messages when you use it on old version of WordPress.
  • Introduce wpcf7_is_rtl() to avoid not exist error of is_rtl().
  • Take back data conversion from Contact Form 7 1.x.
  • Normalize newline characters to \n (line feed) on save (fix export/import problem).
  • Rewrite wpcf7_admin_url() and use menu_page_url() inside it.
  • Use wp_enqueue_scripts and admin_enqueue_scripts action hooks instead of wp_print_styles and admin_print_styles.
  • Use wp_safe_redirect() instead of wp_redirect().
  • Updated jquery.form.js to 2.94.
  • Translations for Esperanto has been created.
  • Translations for German, Japanese, Malay, Thai, Slovak, and Hungarian have been updated.
Download this release

Release Info

Developer takayukister
Plugin Icon 128x128 Contact Form 7
Version 3.0.2
Comparing to
See all releases

Code changes from version 3.0.1 to 3.0.2

admin/admin.php CHANGED
@@ -70,7 +70,7 @@ function wpcf7_admin_init() {
70
71
$query['contactform'] = $contact_form->id;
72
$redirect_to = wpcf7_admin_url( $query );
73
- wp_redirect( $redirect_to );
74
exit();
75
}
76
@@ -91,7 +91,7 @@ function wpcf7_admin_init() {
91
}
92
93
$redirect_to = wpcf7_admin_url( $query );
94
- wp_redirect( $redirect_to );
95
exit();
96
}
97
@@ -103,7 +103,7 @@ function wpcf7_admin_init() {
103
$contact_form->delete();
104
105
$redirect_to = wpcf7_admin_url( array( 'message' => 'deleted' ) );
106
- wp_redirect( $redirect_to );
107
exit();
108
}
109
}
@@ -118,7 +118,7 @@ function wpcf7_admin_menu() {
118
WPCF7_ADMIN_READ_CAPABILITY, 'wpcf7', 'wpcf7_admin_management_page' );
119
}
120
121
- add_action( 'admin_print_styles', 'wpcf7_admin_enqueue_styles' );
122
123
function wpcf7_admin_enqueue_styles() {
124
global $plugin_page;
@@ -131,7 +131,7 @@ function wpcf7_admin_enqueue_styles() {
131
wp_enqueue_style( 'contact-form-7-admin', wpcf7_plugin_url( 'admin/styles.css' ),
132
array(), WPCF7_VERSION, 'all' );
133
134
- if ( is_rtl() ) {
135
wp_enqueue_style( 'contact-form-7-admin-rtl',
136
wpcf7_plugin_url( 'admin/styles-rtl.css' ), array(), WPCF7_VERSION, 'all' );
137
}
@@ -220,7 +220,7 @@ function wpcf7_plugin_action_links( $links, $file ) {
220
if ( $file != WPCF7_PLUGIN_BASENAME )
221
return $links;
222
223
- $url = wpcf7_admin_url( array( 'page' => 'wpcf7' ) );
224
225
$settings_link = '<a href="' . esc_attr( $url ) . '">'
226
. esc_html( __( 'Settings', 'wpcf7' ) ) . '</a>';
@@ -279,7 +279,7 @@ function wpcf7_donation_link( &$contact_form ) {
279
if ( ! WPCF7_SHOW_DONATION_LINK )
280
return;
281
282
- if ( 'new' == $_GET['contactform'] || ! empty($_GET['message']) )
283
return;
284
285
$show_link = true;
@@ -307,4 +307,24 @@ function wpcf7_donation_link( &$contact_form ) {
307
<?php
308
}
309
310
?>
70
71
$query['contactform'] = $contact_form->id;
72
$redirect_to = wpcf7_admin_url( $query );
73
+ wp_safe_redirect( $redirect_to );
74
exit();
75
}
76
91
}
92
93
$redirect_to = wpcf7_admin_url( $query );
94
+ wp_safe_redirect( $redirect_to );
95
exit();
96
}
97
103
$contact_form->delete();
104
105
$redirect_to = wpcf7_admin_url( array( 'message' => 'deleted' ) );
106
+ wp_safe_redirect( $redirect_to );
107
exit();
108
}
109
}
118
WPCF7_ADMIN_READ_CAPABILITY, 'wpcf7', 'wpcf7_admin_management_page' );
119
}
120
121
+ add_action( 'admin_enqueue_scripts', 'wpcf7_admin_enqueue_styles' );
122
123
function wpcf7_admin_enqueue_styles() {
124
global $plugin_page;
131
wp_enqueue_style( 'contact-form-7-admin', wpcf7_plugin_url( 'admin/styles.css' ),
132
array(), WPCF7_VERSION, 'all' );
133
134
+ if ( wpcf7_is_rtl() ) {
135
wp_enqueue_style( 'contact-form-7-admin-rtl',
136
wpcf7_plugin_url( 'admin/styles-rtl.css' ), array(), WPCF7_VERSION, 'all' );
137
}
220
if ( $file != WPCF7_PLUGIN_BASENAME )
221
return $links;
222
223
+ $url = wpcf7_admin_url();
224
225
$settings_link = '<a href="' . esc_attr( $url ) . '">'
226
. esc_html( __( 'Settings', 'wpcf7' ) ) . '</a>';
279
if ( ! WPCF7_SHOW_DONATION_LINK )
280
return;
281
282
+ if ( 'new' == $_GET['contactform'] || ! empty( $_GET['message'] ) )
283
return;
284
285
$show_link = true;
307
<?php
308
}
309
310
+ add_action( 'admin_notices', 'wpcf7_old_wp_version_error', 9 );
311
+
312
+ function wpcf7_old_wp_version_error() {
313
+ global $plugin_page;
314
+
315
+ if ( 'wpcf7' != $plugin_page )
316
+ return;
317
+
318
+ $wp_version = get_bloginfo( 'version' );
319
+
320
+ if ( ! version_compare( $wp_version, WPCF7_REQUIRED_WP_VERSION, '<' ) )
321
+ return;
322
+
323
+ ?>
324
+ <div class="error">
325
+ <p><?php echo sprintf( __( '<strong>Contact Form 7 %1$s requires WordPress %2$s or higher.</strong> Please <a href="%3$s">update WordPress</a> first.', 'wpcf7' ), WPCF7_VERSION, WPCF7_REQUIRED_WP_VERSION, admin_url( 'update-core.php' ) ); ?></p>
326
+ </div>
327
+ <?php
328
+ }
329
+
330
?>
admin/scripts.js CHANGED
@@ -2,6 +2,8 @@
2
3
$(function() {
4
try {
5
$.extend($.tgPanes, _wpcf7.tagGenerators);
6
$('#taggenerator').tagGenerator(_wpcf7L10n.generateTag,
7
{ dropdownIconUrl: _wpcf7.pluginUrl + '/images/dropdown.gif' });
2
3
$(function() {
4
try {
5
+ $('div.cf7com-links').insertAfter($('div.wrap h2:first'));
6
+
7
$.extend($.tgPanes, _wpcf7.tagGenerators);
8
$('#taggenerator').tagGenerator(_wpcf7L10n.generateTag,
9
{ dropdownIconUrl: _wpcf7.pluginUrl + '/images/dropdown.gif' });
admin/styles.css CHANGED
@@ -1,6 +1,6 @@
1
div.wrap div.cf7com-links {
2
text-align: right;
3
- font-size: .8em;
4
margin-top: -1.6em;
5
}
6
@@ -13,8 +13,6 @@ div.wrap div.donation {
13
border-style: solid;
14
padding: 0 0.6em;
15
margin: 5px 0 15px;
16
- -moz-border-radius: 3px;
17
- -khtml-border-radius: 3px;
18
-webkit-border-radius: 3px;
19
border-radius: 3px;
20
background-color: #ffffe0;
@@ -125,8 +123,6 @@ input#contact-form-anchor-text, input#contact-form-anchor-text-old {
125
background: #7e4e0b;
126
border: none;
127
width: 100%;
128
- -moz-border-radius: 6px;
129
- -khtml-border-radius: 6px;
130
-webkit-border-radius: 6px;
131
border-radius: 6px;
132
}
@@ -181,8 +177,6 @@ div.tg-pane {
181
background: #f1f1f1;
182
margin: 1ex 0 0 0;
183
padding: 10px;
184
- -moz-border-radius: 6px;
185
- -khtml-border-radius: 6px;
186
-webkit-border-radius: 6px;
187
border-radius: 6px;
188
line-height: 140%;
@@ -216,8 +210,6 @@ div.tg-pane input.tag, div.tg-pane input.mail-tag {
216
border: none;
217
color: #fff;
218
background-color: #7e4e0b;
219
- -moz-border-radius: 6px;
220
- -khtml-border-radius: 6px;
221
-webkit-border-radius: 6px;
222
border-radius: 6px;
223
}
1
div.wrap div.cf7com-links {
2
text-align: right;
3
+ font-size: .9em;
4
margin-top: -1.6em;
5
}
6
13
border-style: solid;
14
padding: 0 0.6em;
15
margin: 5px 0 15px;
16
-webkit-border-radius: 3px;
17
border-radius: 3px;
18
background-color: #ffffe0;
123
background: #7e4e0b;
124
border: none;
125
width: 100%;
126
-webkit-border-radius: 6px;
127
border-radius: 6px;
128
}
177
background: #f1f1f1;
178
margin: 1ex 0 0 0;
179
padding: 10px;
180
-webkit-border-radius: 6px;
181
border-radius: 6px;
182
line-height: 140%;
210
border: none;
211
color: #fff;
212
background-color: #7e4e0b;
213
-webkit-border-radius: 6px;
214
border-radius: 6px;
215
}
includes/classes.php CHANGED
@@ -410,11 +410,10 @@ class WPCF7_ContactForm {
410
$post_id = wp_insert_post( $postarr );
411
412
if ( $post_id ) {
413
- update_post_meta( $post_id, 'form', $this->form );
414
- update_post_meta( $post_id, 'mail', $this->mail );
415
- update_post_meta( $post_id, 'mail_2', $this->mail_2 );
416
- update_post_meta( $post_id, 'messages', $this->messages );
417
- update_post_meta( $post_id, 'additional_settings', $this->additional_settings );
418
419
if ( $this->initial ) {
420
$this->initial = false;
410
$post_id = wp_insert_post( $postarr );
411
412
if ( $post_id ) {
413
+ $metas = array( 'form', 'mail', 'mail_2', 'messages', 'additional_settings' );
414
+
415
+ foreach ( $metas as $meta )
416
+ update_post_meta( $post_id, $meta, wpcf7_normalize_newline_deep( $this->{$meta} ) );
417
418
if ( $this->initial ) {
419
$this->initial = false;
includes/controller.php CHANGED
@@ -313,13 +313,13 @@ function wpcf7_script_is() {
313
}
314
315
if ( WPCF7_LOAD_CSS )
316
- add_action( 'wp_print_styles', 'wpcf7_enqueue_styles' );
317
318
function wpcf7_enqueue_styles() {
319
wp_enqueue_style( 'contact-form-7', wpcf7_plugin_url( 'styles.css' ),
320
array(), WPCF7_VERSION, 'all' );
321
322
- if ( is_rtl() ) {
323
wp_enqueue_style( 'contact-form-7-rtl', wpcf7_plugin_url( 'styles-rtl.css' ),
324
array(), WPCF7_VERSION, 'all' );
325
}
313
}
314
315
if ( WPCF7_LOAD_CSS )
316
+ add_action( 'wp_enqueue_scripts', 'wpcf7_enqueue_styles' );
317
318
function wpcf7_enqueue_styles() {
319
wp_enqueue_style( 'contact-form-7', wpcf7_plugin_url( 'styles.css' ),
320
array(), WPCF7_VERSION, 'all' );
321
322
+ if ( wpcf7_is_rtl() ) {
323
wp_enqueue_style( 'contact-form-7-rtl', wpcf7_plugin_url( 'styles-rtl.css' ),
324
array(), WPCF7_VERSION, 'all' );
325
}
includes/formatting.php CHANGED
@@ -47,10 +47,12 @@ function wpcf7_autop( $pee, $br = 1 ) {
47
48
function wpcf7_strip_quote( $text ) {
49
$text = trim( $text );
50
if ( preg_match( '/^"(.*)"#x2F;', $text, $matches ) )
51
$text = $matches[1];
52
elseif ( preg_match( "/^'(.*)'#x2F;", $text, $matches ) )
53
$text = $matches[1];
54
return $text;
55
}
56
@@ -60,9 +62,33 @@ function wpcf7_strip_quote_deep( $arr ) {
60
61
if ( is_array( $arr ) ) {
62
$result = array();
63
- foreach ( $arr as $key => $text ) {
64
- $result[$key] = wpcf7_strip_quote( $text );
65
- }
66
return $result;
67
}
68
}
47
48
function wpcf7_strip_quote( $text ) {
49
$text = trim( $text );
50
+
51
if ( preg_match( '/^"(.*)"#x2F;', $text, $matches ) )
52
$text = $matches[1];
53
elseif ( preg_match( "/^'(.*)'#x2F;", $text, $matches ) )
54
$text = $matches[1];
55
+
56
return $text;
57
}
58
62
63
if ( is_array( $arr ) ) {
64
$result = array();
65
+
66
+ foreach ( $arr as $key => $text )
67
+ $result[$key] = wpcf7_strip_quote_deep( $text );
68
+
69
+ return $result;
70
+ }
71
+ }
72
+
73
+ function wpcf7_normalize_newline( $text, $to = "\n" ) {
74
+ $nls = array( "\r\n", "\r", "\n" );
75
+
76
+ if ( ! in_array( $to, $nls ) )
77
+ return $text;
78
+
79
+ return str_replace( $nls, $to, $text );
80
+ }
81
+
82
+ function wpcf7_normalize_newline_deep( $arr, $to = "\n" ) {
83
+ if ( is_string( $arr ) )
84
+ return wpcf7_normalize_newline( $arr, $to );
85
+
86
+ if ( is_array( $arr ) ) {
87
+ $result = array();
88
+
89
+ foreach ( $arr as $key => $text )
90
+ $result[$key] = wpcf7_normalize_newline_deep( $text, $to );
91
+
92
return $result;
93
}
94
}
includes/functions.php CHANGED
@@ -1,5 +1,25 @@
1
<?php
2
3
function wpcf7_messages() {
4
$messages = array(
5
'mail_sent_ok' => array(
@@ -179,6 +199,7 @@ function wpcf7_l10n() {
179
'da_DK' => __( 'Danish', 'wpcf7' ),
180
'nl_NL' => __( 'Dutch', 'wpcf7' ),
181
'en_US' => __( 'English', 'wpcf7' ),
182
'et' => __( 'Estonian', 'wpcf7' ),
183
'fi' => __( 'Finnish', 'wpcf7' ),
184
'fr_FR' => __( 'French', 'wpcf7' ),
@@ -207,7 +228,7 @@ function wpcf7_l10n() {
207
'ro_RO' => __( 'Romanian', 'wpcf7' ),
208
'sr_RS' => __( 'Serbian', 'wpcf7' ),
209
'si_LK' => __( 'Sinhala', 'wpcf7' ),
210
- 'sk' => __( 'Slovak', 'wpcf7' ),
211
'sl_SI' => __( 'Slovene', 'wpcf7' ),
212
'es_ES' => __( 'Spanish', 'wpcf7' ),
213
'sv_SE' => __( 'Swedish', 'wpcf7' ),
@@ -222,4 +243,11 @@ function wpcf7_l10n() {
222
return $l10n;
223
}
224
225
?>
1
<?php
2
3
+ function wpcf7_plugin_path( $path = '' ) {
4
+ return path_join( WPCF7_PLUGIN_DIR, trim( $path, '/' ) );
5
+ }
6
+
7
+ function wpcf7_plugin_url( $path = '' ) {
8
+ return plugins_url( $path, WPCF7_PLUGIN_BASENAME );
9
+ }
10
+
11
+ function wpcf7_admin_url( $args = array() ) {
12
+ $defaults = array( 'page' => 'wpcf7' );
13
+ $args = wp_parse_args( $args, $defaults );
14
+
15
+ $url = menu_page_url( $args['page'], false );
16
+ unset( $args['page'] );
17
+
18
+ $url = add_query_arg( $args, $url );
19
+
20
+ return esc_url_raw( $url );
21
+ }
22
+
23
function wpcf7_messages() {
24
$messages = array(
25
'mail_sent_ok' => array(
199
'da_DK' => __( 'Danish', 'wpcf7' ),
200
'nl_NL' => __( 'Dutch', 'wpcf7' ),
201
'en_US' => __( 'English', 'wpcf7' ),
202
+ 'eo_EO' => __( 'Esperanto', 'wpcf7' ),
203
'et' => __( 'Estonian', 'wpcf7' ),
204
'fi' => __( 'Finnish', 'wpcf7' ),
205
'fr_FR' => __( 'French', 'wpcf7' ),
228
'ro_RO' => __( 'Romanian', 'wpcf7' ),
229
'sr_RS' => __( 'Serbian', 'wpcf7' ),
230
'si_LK' => __( 'Sinhala', 'wpcf7' ),
231
+ 'sk_SK' => __( 'Slovak', 'wpcf7' ),
232
'sl_SI' => __( 'Slovene', 'wpcf7' ),
233
'es_ES' => __( 'Spanish', 'wpcf7' ),
234
'sv_SE' => __( 'Swedish', 'wpcf7' ),
243
return $l10n;
244
}
245
246
+ function wpcf7_is_rtl() {
247
+ if ( function_exists( 'is_rtl' ) )
248
+ return is_rtl();
249
+
250
+ return false;
251
+ }
252
+
253
?>
jquery.form.js CHANGED
@@ -1,12 +1,12 @@
1
/*!
2
* jQuery Form Plugin
3
- * version: 2.87 (20-OCT-2011)
4
* @requires jQuery v1.3.2 or later
5
*
6
* Examples and documentation at: http://malsup.com/jquery/form/
7
* Dual licensed under the MIT and GPL licenses:
8
- * http://www.opensource.org/licenses/mit-license.php
9
- * http://www.gnu.org/licenses/gpl.html
10
*/
11
;(function($) {
12
@@ -87,15 +87,15 @@ $.fn.ajaxSubmit = function(options) {
87
return this;
88
}
89
90
- var traditional = options.traditional;
91
- if ( traditional === undefined ) {
92
- traditional = $.ajaxSettings.traditional;
93
- }
94
-
95
var qx,n,v,a = this.formToArray(options.semantic);
96
if (options.data) {
97
options.extraData = options.data;
98
- qx = $.param(options.data, traditional);
99
}
100
101
// give pre-submit callback an opportunity to abort the submit
@@ -112,9 +112,9 @@ $.fn.ajaxSubmit = function(options) {
112
}
113
114
var q = $.param(a, traditional);
115
- if (qx)
116
- q = ( q ? (q + '&' + qx) : qx );
117
-
118
if (options.type.toUpperCase() == 'GET') {
119
options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
120
options.data = null; // data is null for 'get'
@@ -144,63 +144,116 @@ $.fn.ajaxSubmit = function(options) {
144
}
145
146
options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg
147
- var context = options.context || options; // jQuery 1.4+ supports scope context
148
for (var i=0, max=callbacks.length; i < max; i++) {
149
callbacks[i].apply(context, [data, status, xhr || $form, $form]);
150
}
151
};
152
153
// are there files to upload?
154
- var fileInputs = $('input:file', this).length > 0;
155
var mp = 'multipart/form-data';
156
var multipart = ($form.attr('enctype') == mp || $form.attr('encoding') == mp);
157
158
// options.iframe allows user to force iframe mode
159
// 06-NOV-09: now defaulting to iframe mode if file input is detected
160
- if (options.iframe !== false && (fileInputs || options.iframe || multipart)) {
161
- // hack to fix Safari hang (thanks to Tim Molendijk for this)
162
- // see: http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d
163
- if (options.closeKeepAlive) {
164
- $.get(options.closeKeepAlive, function() { fileUpload(a); });
165
}
166
- else {
167
- fileUpload(a);
168
}
169
- }
170
- else {
171
- // IE7 massage (see issue 57)
172
- if ($.browser.msie && method == 'get' && typeof options.type === "undefined") {
173
- var ieMeth = $form[0].getAttribute('method');
174
- if (typeof ieMeth === 'string')
175
- options.type = ieMeth;
176
}
177
- $.ajax(options);
178
- }
179
180
- // fire 'notify' event
181
- this.trigger('form-submit-notify', [this, options]);
182
- return this;
183
184
185
// private function for handling file uploads (hat tip to YAHOO!)
186
- function fileUpload(a) {
187
var form = $form[0], el, i, s, g, id, $io, io, xhr, sub, n, timedOut, timeoutHandle;
188
- var useProp = !!$.fn.prop;
189
-
190
- if (a) {
191
- if ( useProp ) {
192
- // ensure that every serialized input is still enabled
193
- for (i=0; i < a.length; i++) {
194
- el = $(form[a[i].name]);
195
- el.prop('disabled', false);
196
- }
197
- } else {
198
- for (i=0; i < a.length; i++) {
199
- el = $(form[a[i].name]);
200
- el.removeAttr('disabled');
201
- }
202
- };
203
- }
204
205
if ($(':input[name=submit],:input[id=submit]', form).length) {
206
// if there is an input with a name or id of 'submit' then we won't be
@@ -289,6 +342,14 @@ $.fn.ajaxSubmit = function(options) {
289
return doc;
290
}
291
292
// take a breath so that pending repaints get some cpu time before the upload starts
293
function doSubmit() {
294
// make sure form attrs are set
@@ -338,7 +399,7 @@ $.fn.ajaxSubmit = function(options) {
338
if (s.extraData) {
339
for (var n in s.extraData) {
340
extraInputs.push(
341
- $('<input type="hidden" name="'+n+'" />').attr('value',s.extraData[n])
342
.appendTo(form)[0]);
343
}
344
}
@@ -346,7 +407,7 @@ $.fn.ajaxSubmit = function(options) {
346
if (!s.iframeTarget) {
347
// add iframe to doc and submit the form
348
$io.appendTo('body');
349
- io.attachEvent ? io.attachEvent('onload', cb) : io.addEventListener('load', cb, false);
350
}
351
setTimeout(checkState,15);
352
form.submit();
@@ -397,7 +458,7 @@ $.fn.ajaxSubmit = function(options) {
397
if (!timedOut)
398
return;
399
}
400
- io.detachEvent ? io.detachEvent('onload', cb) : io.removeEventListener('load', cb, false);
401
402
var status = 'success', errMsg;
403
try {
@@ -421,8 +482,8 @@ $.fn.ajaxSubmit = function(options) {
421
}
422
423
//log('response detected');
424
- var docRoot = doc.body ? doc.body : doc.documentElement;
425
- xhr.responseText = docRoot ? docRoot.innerHTML : null;
426
xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc;
427
if (isXml)
428
s.dataType = 'xml';
@@ -430,11 +491,11 @@ $.fn.ajaxSubmit = function(options) {
430
var headers = {'content-type': s.dataType};
431
return headers[header];
432
};
433
- // support for XHR 'status' & 'statusText' emulation :
434
- if (docRoot) {
435
- xhr.status = Number( docRoot.getAttribute('status') ) || xhr.status;
436
- xhr.statusText = docRoot.getAttribute('statusText') || xhr.statusText;
437
- }
438
439
var dt = (s.dataType || '').toLowerCase();
440
var scr = /(json|script|text)/.test(dt);
@@ -443,9 +504,9 @@ $.fn.ajaxSubmit = function(options) {
443
var ta = doc.getElementsByTagName('textarea')[0];
444
if (ta) {
445
xhr.responseText = ta.value;
446
- // support for XHR 'status' & 'statusText' emulation :
447
- xhr.status = Number( ta.getAttribute('status') ) || xhr.status;
448
- xhr.statusText = ta.getAttribute('statusText') || xhr.statusText;
449
}
450
else if (scr) {
451
// account for browsers injecting pre around json response
@@ -463,18 +524,18 @@ $.fn.ajaxSubmit = function(options) {
463
xhr.responseXML = toXml(xhr.responseText);
464
}
465
466
- try {
467
- data = httpData(xhr, dt, s);
468
- }
469
- catch (e) {
470
- status = 'parsererror';
471
- xhr.error = errMsg = (e || status);
472
- }
473
}
474
catch (e) {
475
log('error caught: ',e);
476
status = 'error';
477
- xhr.error = errMsg = (e || status);
478
}
479
480
if (xhr.aborted) {
@@ -482,21 +543,21 @@ $.fn.ajaxSubmit = function(options) {
482
status = null;
483
}
484
485
- if (xhr.status) { // we've set xhr.status
486
- status = (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) ? 'success' : 'error';
487
- }
488
489
// ordering of these callbacks/triggers is odd, but that's how $.ajax does it
490
if (status === 'success') {
491
s.success && s.success.call(s.context, data, 'success', xhr);
492
g && $.event.trigger("ajaxSuccess", [xhr, s]);
493
}
494
- else if (status) {
495
if (errMsg == undefined)
496
errMsg = xhr.statusText;
497
s.error && s.error.call(s.context, xhr, status, errMsg);
498
g && $.event.trigger("ajaxError", [xhr, s, errMsg]);
499
- }
500
501
g && $.event.trigger("ajaxComplete", [xhr, s]);
502
@@ -663,7 +724,7 @@ $.fn.formToArray = function(semantic) {
663
if (semantic && form.clk && el.type == "image") {
664
// handle image inputs on the fly when semantic == true
665
if(!el.disabled && form.clk == el) {
666
- a.push({name: n, value: $(el).val()});
667
a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
668
}
669
continue;
@@ -676,7 +737,7 @@ $.fn.formToArray = function(semantic) {
676
}
677
}
678
else if (v !== null && typeof v != 'undefined') {
679
- a.push({name: n, value: v});
680
}
681
}
682
@@ -762,7 +823,7 @@ $.fn.fieldSerialize = function(successful) {
762
* for each element is returned.
763
*
764
* Note: This method *always* returns an array. If no valid value can be determined the
765
- * array will be empty, otherwise it will contain one or more values.
766
*/
767
$.fn.fieldValue = function(successful) {
768
for (var val=[], i=0, max=this.length; i < max; i++) {
1
/*!
2
* jQuery Form Plugin
3
+ * version: 2.94 (13-DEC-2011)
4
* @requires jQuery v1.3.2 or later
5
*
6
* Examples and documentation at: http://malsup.com/jquery/form/
7
* Dual licensed under the MIT and GPL licenses:
8
+ * http://www.opensource.org/licenses/mit-license.php
9
+ * http://www.gnu.org/licenses/gpl.html
10
*/
11
;(function($) {
12
87
return this;
88
}
89
90
+ var traditional = options.traditional;
91
+ if ( traditional === undefined ) {
92
+ traditional = $.ajaxSettings.traditional;
93
+ }
94
+
95
var qx,n,v,a = this.formToArray(options.semantic);
96
if (options.data) {
97
options.extraData = options.data;
98
+ qx = $.param(options.data, traditional);
99
}
100
101
// give pre-submit callback an opportunity to abort the submit
112
}
113
114
var q = $.param(a, traditional);
115
+ if (qx) {
116
+ q = ( q ? (q + '&' + qx) : qx );
117
+ }
118
if (options.type.toUpperCase() == 'GET') {
119
options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
120
options.data = null; // data is null for 'get'
144
}
145
146
options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg
147
+ var context = options.context || options; // jQuery 1.4+ supports scope context
148
for (var i=0, max=callbacks.length; i < max; i++) {
149
callbacks[i].apply(context, [data, status, xhr || $form, $form]);
150
}
151
};
152
153
// are there files to upload?
154
+ var fileInputs = $('input:file:enabled[value]', this); // [value] (issue #113)
155
+ var hasFileInputs = fileInputs.length > 0;
156
var mp = 'multipart/form-data';
157
var multipart = ($form.attr('enctype') == mp || $form.attr('encoding') == mp);
158
159
+ var fileAPI = !!(hasFileInputs && fileInputs.get(0).files && window.FormData);
160
+ log("fileAPI :" + fileAPI);
161
+ var shouldUseFrame = (hasFileInputs || multipart) && !fileAPI;
162
+
163
// options.iframe allows user to force iframe mode
164
// 06-NOV-09: now defaulting to iframe mode if file input is detected
165
+ if (options.iframe !== false && (options.iframe || shouldUseFrame)) {
166
+ // hack to fix Safari hang (thanks to Tim Molendijk for this)
167
+ // see: http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d
168
+ if (options.closeKeepAlive) {
169
+ $.get(options.closeKeepAlive, function() {
170
+ fileUploadIframe(a);
171
+ });
172
}
173
+ else {
174
+ fileUploadIframe(a);
175
+ }
176
+ }
177
+ else if ((hasFileInputs || multipart) && fileAPI) {
178
+ options.progress = options.progress || $.noop;
179
+ fileUploadXhr(a);
180
+ }
181
+ else {
182
+ $.ajax(options);
183
+ }
184
+
185
+ // fire 'notify' event
186
+ this.trigger('form-submit-notify', [this, options]);
187
+ return this;
188
+
189
+ // XMLHttpRequest Level 2 file uploads (big hat tip to francois2metz)
190
+ function fileUploadXhr(a) {
191
+ var formdata = new FormData();
192
+
193
+ for (var i=0; i < a.length; i++) {
194
+ if (a[i].type == 'file')
195
+ continue;
196
+ formdata.append(a[i].name, a[i].value);
197
}
198
+
199
+ $form.find('input:file:enabled').each(function(){
200
+ var name = $(this).attr('name'), files = this.files;
201
+ if (name) {
202
+ for (var i=0; i < files.length; i++)
203
+ formdata.append(name, files[i]);
204
+ }
205
+ });
206
+
207
+ if (options.extraData) {
208
+ for (var k in options.extraData)
209
+ formdata.append(k, options.extraData[k])
210
}
211
212
+ options.data = null;
213
214
+ var s = $.extend(true, {}, $.ajaxSettings, options, {
215
+ contentType: false,
216
+ processData: false,
217
+ cache: false,
218
+ type: 'POST'
219
+ });
220
+
221
+ s.context = s.context || s;
222
+
223
+ s.data = null;
224
+ var beforeSend = s.beforeSend;
225
+ s.beforeSend = function(xhr, o) {
226
+ o.data = formdata;
227
+ if(xhr.upload) { // unfortunately, jQuery doesn't expose this prop (http://bugs.jquery.com/ticket/10190)
228
+ xhr.upload.onprogress = function(event) {
229
+ o.progress(event.position, event.total);
230
+ };
231
+ }
232
+ if(beforeSend)
233
+ beforeSend.call(o, xhr, options);
234
+ };
235
+ $.ajax(s);
236
+ }
237
238
// private function for handling file uploads (hat tip to YAHOO!)
239
+ function fileUploadIframe(a) {
240
var form = $form[0], el, i, s, g, id, $io, io, xhr, sub, n, timedOut, timeoutHandle;
241
+ var useProp = !!$.fn.prop;
242
+
243
+ if (a) {
244
+ if ( useProp ) {
245
+ // ensure that every serialized input is still enabled
246
+ for (i=0; i < a.length; i++) {
247
+ el = $(form[a[i].name]);
248
+ el.prop('disabled', false);
249
+ }
250
+ } else {
251
+ for (i=0; i < a.length; i++) {
252
+ el = $(form[a[i].name]);
253
+ el.removeAttr('disabled');
254
+ }
255
+ };
256
+ }
257
258
if ($(':input[name=submit],:input[id=submit]', form).length) {
259
// if there is an input with a name or id of 'submit' then we won't be
342
return doc;
343
}
344
345
+ // Rails CSRF hack (thanks to Yvan Barthelemy)
346
+ var csrf_token = $('meta[name=csrf-token]').attr('content');
347
+ var csrf_param = $('meta[name=csrf-param]').attr('content');
348
+ if (csrf_param && csrf_token) {
349
+ s.extraData = s.extraData || {};
350
+ s.extraData[csrf_param] = csrf_token;
351
+ }
352
+
353
// take a breath so that pending repaints get some cpu time before the upload starts
354
function doSubmit() {
355
// make sure form attrs are set
399
if (s.extraData) {
400
for (var n in s.extraData) {
401
extraInputs.push(
402
+ $('<input type="hidden" name="'+n+'">').attr('value',s.extraData[n])
403
.appendTo(form)[0]);
404
}
405
}
407
if (!s.iframeTarget) {
408
// add iframe to doc and submit the form
409
$io.appendTo('body');
410
+ io.attachEvent ? io.attachEvent('onload', cb) : io.addEventListener('load', cb, false);
411
}
412
setTimeout(checkState,15);
413
form.submit();
458
if (!timedOut)
459
return;
460
}
461
+ io.detachEvent ? io.detachEvent('onload', cb) : io.removeEventListener('load', cb, false);
462
463
var status = 'success', errMsg;
464
try {
482
}
483
484
//log('response detected');
485
+ var docRoot = doc.body ? doc.body : doc.documentElement;
486
+ xhr.responseText = docRoot ? docRoot.innerHTML : null;
487
xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc;
488
if (isXml)
489
s.dataType = 'xml';
491
var headers = {'content-type': s.dataType};
492
return headers[header];
493
};
494
+ // support for XHR 'status' & 'statusText' emulation :
495
+ if (docRoot) {
496
+ xhr.status = Number( docRoot.getAttribute('status') ) || xhr.status;
497
+ xhr.statusText = docRoot.getAttribute('statusText') || xhr.statusText;
498
+ }
499
500
var dt = (s.dataType || '').toLowerCase();
501
var scr = /(json|script|text)/.test(dt);
504
var ta = doc.getElementsByTagName('textarea')[0];
505
if (ta) {
506
xhr.responseText = ta.value;
507
+ // support for XHR 'status' & 'statusText' emulation :
508
+ xhr.status = Number( ta.getAttribute('status') ) || xhr.status;
509
+ xhr.statusText = ta.getAttribute('statusText') || xhr.statusText;
510
}
511
else if (scr) {
512
// account for browsers injecting pre around json response
524
xhr.responseXML = toXml(xhr.responseText);
525
}
526
527
+ try {
528
+ data = httpData(xhr, dt, s);
529
+ }
530
+ catch (e) {
531
+ status = 'parsererror';
532
+ xhr.error = errMsg = (e || status);
533
+ }
534
}
535
catch (e) {
536
log('error caught: ',e);
537
status = 'error';
538
+ xhr.error = errMsg = (e || status);
539
}
540
541
if (xhr.aborted) {
543
status = null;
544
}
545
546
+ if (xhr.status) { // we've set xhr.status
547
+ status = (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) ? 'success' : 'error';
548
+ }
549
550
// ordering of these callbacks/triggers is odd, but that's how $.ajax does it
551
if (status === 'success') {
552
s.success && s.success.call(s.context, data, 'success', xhr);
553
g && $.event.trigger("ajaxSuccess", [xhr, s]);
554
}
555
+ else if (status) {
556
if (errMsg == undefined)
557
errMsg = xhr.statusText;
558
s.error && s.error.call(s.context, xhr, status, errMsg);
559
g && $.event.trigger("ajaxError", [xhr, s, errMsg]);
560
+ }
561
562
g && $.event.trigger("ajaxComplete", [xhr, s]);
563
724
if (semantic && form.clk && el.type == "image") {
725
// handle image inputs on the fly when semantic == true
726
if(!el.disabled && form.clk == el) {
727
+ a.push({name: n, value: $(el).val(), type: el.type });
728
a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
729
}
730
continue;
737
}
738
}
739
else if (v !== null && typeof v != 'undefined') {
740
+ a.push({name: n, value: v, type: el.type});
741
}
742
}
743
823
* for each element is returned.
824
*
825
* Note: This method *always* returns an array. If no valid value can be determined the
826
+ * array will be empty, otherwise it will contain one or more values.
827
*/
828
$.fn.fieldValue = function(successful) {
829
for (var val=[], i=0, max=this.length; i < max; i++) {
languages/wpcf7-de_DE.mo CHANGED
Binary file
languages/wpcf7-eo_EO.mo ADDED
Binary file
languages/wpcf7-hu_HU.mo CHANGED
Binary file
languages/wpcf7-ja.mo CHANGED
Binary file
languages/wpcf7-ms_MY.mo CHANGED
Binary file
languages/wpcf7-sk.mo DELETED
Binary file
languages/wpcf7-sk_SK.mo ADDED
Binary file
languages/wpcf7-th.mo CHANGED
Binary file
languages/wpcf7.pot CHANGED
@@ -2,8 +2,8 @@ msgid ""
2
msgstr ""
3
"Project-Id-Version: Contact Form 7\n"
4
"Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2011-11-02 23:11+0900\n"
6
- "PO-Revision-Date: 2011-11-02 23:12+0900\n"
7
"Last-Translator: Takayuki Miyoshi <takayukister@gmail.com>\n"
8
"Language-Team: \n"
9
"MIME-Version: 1.0\n"
@@ -19,15 +19,15 @@ msgstr ""
19
msgid "Just another contact form plugin. Simple but flexible."
20
msgstr ""
21
22
- #: contact-form-7/settings.php:99
23
msgid "Contact Forms"
24
msgstr ""
25
26
- #: contact-form-7/settings.php:100
27
msgid "Contact Form"
28
msgstr ""
29
30
- #: contact-form-7/settings.php:191
31
#, php-format
32
msgid "Contact form %d"
33
msgstr ""
@@ -117,6 +117,11 @@ msgstr ""
117
msgid "Donate"
118
msgstr ""
119
120
#: contact-form-7/admin/edit.php:20
121
#: contact-form-7/admin/edit.php:142
122
#: contact-form-7/admin/edit.php:155
@@ -211,325 +216,329 @@ msgid "Use HTML content type"
211
msgstr ""
212
213
#: contact-form-7/admin/includes/meta-boxes.php:80
214
- #: contact-form-7/includes/functions.php:88
215
msgid "Message body:"
216
msgstr ""
217
218
- #: contact-form-7/includes/classes.php:524
219
msgid "Untitled"
220
msgstr ""
221
222
- #: contact-form-7/includes/functions.php:6
223
msgid "Sender's message was sent successfully"
224
msgstr ""
225
226
- #: contact-form-7/includes/functions.php:7
227
msgid "Your message was sent successfully. Thanks."
228
msgstr ""
229
230
- #: contact-form-7/includes/functions.php:11
231
msgid "Sender's message was failed to send"
232
msgstr ""
233
234
- #: contact-form-7/includes/functions.php:12
235
#: contact-form-7/modules/akismet.php:101
236
msgid "Failed to send your message. Please try later or contact the administrator by another method."
237
msgstr ""
238
239
- #: contact-form-7/includes/functions.php:16
240
msgid "Validation errors occurred"
241
msgstr ""
242
243
- #: contact-form-7/includes/functions.php:17
244
msgid "Validation errors occurred. Please confirm the fields and submit it again."
245
msgstr ""
246
247
- #: contact-form-7/includes/functions.php:21
248
msgid "There are terms that the sender must accept"
249
msgstr ""
250
251
- #: contact-form-7/includes/functions.php:22
252
msgid "Please accept the terms to proceed."
253
msgstr ""
254
255
- #: contact-form-7/includes/functions.php:26
256
msgid "Email address that the sender entered is invalid"
257
msgstr ""
258
259
- #: contact-form-7/includes/functions.php:27
260
msgid "Email address seems invalid."
261
msgstr ""
262
263
- #: contact-form-7/includes/functions.php:31
264
msgid "There is a field that the sender must fill in"
265
msgstr ""
266
267
- #: contact-form-7/includes/functions.php:32
268
msgid "Please fill the required field."
269
msgstr ""
270
271
- #: contact-form-7/includes/functions.php:56
272
msgid "Your Name"
273
msgstr ""
274
275
- #: contact-form-7/includes/functions.php:56
276
- #: contact-form-7/includes/functions.php:58
277
msgid "(required)"
278
msgstr ""
279
280
- #: contact-form-7/includes/functions.php:58
281
msgid "Your Email"
282
msgstr ""
283
284
- #: contact-form-7/includes/functions.php:60
285
msgid "Subject"
286
msgstr ""
287
288
- #: contact-form-7/includes/functions.php:62
289
msgid "Your Message"
290
msgstr ""
291
292
- #: contact-form-7/includes/functions.php:64
293
msgid "Send"
294
msgstr ""
295
296
- #: contact-form-7/includes/functions.php:72
297
#, php-format
298
msgid "From: %s"
299
msgstr ""
300
301
- #: contact-form-7/includes/functions.php:73
302
#, php-format
303
msgid "Subject: %s"
304
msgstr ""
305
306
- #: contact-form-7/includes/functions.php:74
307
msgid "Message Body:"
308
msgstr ""
309
310
- #: contact-form-7/includes/functions.php:75
311
- #: contact-form-7/includes/functions.php:89
312
#, php-format
313
msgid "This mail is sent via contact form on %1$s %2$s"
314
msgstr ""
315
316
- #: contact-form-7/includes/functions.php:165
317
msgid "Afrikaans"
318
msgstr ""
319
320
- #: contact-form-7/includes/functions.php:166
321
msgid "Albanian"
322
msgstr ""
323
324
- #: contact-form-7/includes/functions.php:167
325
msgid "Arabic"
326
msgstr ""
327
328
- #: contact-form-7/includes/functions.php:168
329
msgid "Armenian"
330
msgstr ""
331
332
- #: contact-form-7/includes/functions.php:169
333
msgid "Bangla"
334
msgstr ""
335
336
- #: contact-form-7/includes/functions.php:170
337
msgid "Belarusian"
338
msgstr ""
339
340
- #: contact-form-7/includes/functions.php:171
341
msgid "Bosnian"
342
msgstr ""
343
344
- #: contact-form-7/includes/functions.php:172
345
msgid "Brazilian Portuguese"
346
msgstr ""
347
348
- #: contact-form-7/includes/functions.php:173
349
msgid "Bulgarian"
350
msgstr ""
351
352
- #: contact-form-7/includes/functions.php:174
353
msgid "Catalan"
354
msgstr ""
355
356
- #: contact-form-7/includes/functions.php:175
357
msgid "Chinese (Simplified)"
358
msgstr ""
359
360
- #: contact-form-7/includes/functions.php:176
361
msgid "Chinese (Traditional)"
362
msgstr ""
363
364
- #: contact-form-7/includes/functions.php:177
365
msgid "Croatian"
366
msgstr ""
367
368
- #: contact-form-7/includes/functions.php:178
369
msgid "Czech"
370
msgstr ""
371
372
- #: contact-form-7/includes/functions.php:179
373
msgid "Danish"
374
msgstr ""
375
376
- #: contact-form-7/includes/functions.php:180
377
msgid "Dutch"
378
msgstr ""
379
380
- #: contact-form-7/includes/functions.php:181
381
msgid "English"
382
msgstr ""
383
384
- #: contact-form-7/includes/functions.php:182
385
msgid "Estonian"
386
msgstr ""
387
388
- #: contact-form-7/includes/functions.php:183
389
msgid "Finnish"
390
msgstr ""
391
392
- #: contact-form-7/includes/functions.php:184
393
msgid "French"
394
msgstr ""
395
396
- #: contact-form-7/includes/functions.php:185
397
msgid "Galician"
398
msgstr ""
399
400
- #: contact-form-7/includes/functions.php:186
401
msgid "Georgian"
402
msgstr ""
403
404
- #: contact-form-7/includes/functions.php:187
405
msgid "German"
406
msgstr ""
407
408
- #: contact-form-7/includes/functions.php:188
409
msgid "Greek"
410
msgstr ""
411
412
- #: contact-form-7/includes/functions.php:189
413
msgid "Hebrew"
414
msgstr ""
415
416
- #: contact-form-7/includes/functions.php:190
417
msgid "Hindi"
418
msgstr ""
419
420
- #: contact-form-7/includes/functions.php:191
421
msgid "Hungarian"
422
msgstr ""
423
424
- #: contact-form-7/includes/functions.php:192
425
msgid "Indonesian"
426
msgstr ""
427
428
- #: contact-form-7/includes/functions.php:193
429
msgid "Italian"
430
msgstr ""
431
432
- #: contact-form-7/includes/functions.php:194
433
msgid "Japanese"
434
msgstr ""
435
436
- #: contact-form-7/includes/functions.php:195
437
msgid "Korean"
438
msgstr ""
439
440
- #: contact-form-7/includes/functions.php:196
441
msgid "Latvian"
442
msgstr ""
443
444
- #: contact-form-7/includes/functions.php:197
445
msgid "Lithuanian"
446
msgstr ""
447
448
- #: contact-form-7/includes/functions.php:198
449
msgid "Macedonian"
450
msgstr ""
451
452
- #: contact-form-7/includes/functions.php:199
453
msgid "Malay"
454
msgstr ""
455
456
- #: contact-form-7/includes/functions.php:200
457
msgid "Malayalam"
458
msgstr ""
459
460
- #: contact-form-7/includes/functions.php:201
461
msgid "Maltese"
462
msgstr ""
463
464
- #: contact-form-7/includes/functions.php:202
465
msgid "Norwegian"
466
msgstr ""
467
468
- #: contact-form-7/includes/functions.php:203
469
msgid "Persian"
470
msgstr ""
471
472
- #: contact-form-7/includes/functions.php:204
473
msgid "Polish"
474
msgstr ""
475
476
- #: contact-form-7/includes/functions.php:205
477
msgid "Portuguese"
478
msgstr ""
479
480
- #: contact-form-7/includes/functions.php:206
481
msgid "Russian"
482
msgstr ""
483
484
- #: contact-form-7/includes/functions.php:207
485
msgid "Romanian"
486
msgstr ""
487
488
- #: contact-form-7/includes/functions.php:208
489
msgid "Serbian"
490
msgstr ""
491
492
- #: contact-form-7/includes/functions.php:209
493
msgid "Sinhala"
494
msgstr ""
495
496
- #: contact-form-7/includes/functions.php:210
497
msgid "Slovak"
498
msgstr ""
499
500
- #: contact-form-7/includes/functions.php:211
501
msgid "Slovene"
502
msgstr ""
503
504
- #: contact-form-7/includes/functions.php:212
505
msgid "Spanish"
506
msgstr ""
507
508
- #: contact-form-7/includes/functions.php:213
509
msgid "Swedish"
510
msgstr ""
511
512
- #: contact-form-7/includes/functions.php:214
513
msgid "Tamil"
514
msgstr ""
515
516
- #: contact-form-7/includes/functions.php:215
517
msgid "Thai"
518
msgstr ""
519
520
- #: contact-form-7/includes/functions.php:216
521
msgid "Tagalog"
522
msgstr ""
523
524
- #: contact-form-7/includes/functions.php:217
525
msgid "Turkish"
526
msgstr ""
527
528
- #: contact-form-7/includes/functions.php:218
529
msgid "Ukrainian"
530
msgstr ""
531
532
- #: contact-form-7/includes/functions.php:219
533
msgid "Vietnamese"
534
msgstr ""
535
2
msgstr ""
3
"Project-Id-Version: Contact Form 7\n"
4
"Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2011-12-18 19:40+0900\n"
6
+ "PO-Revision-Date: 2011-12-18 19:40+0900\n"
7
"Last-Translator: Takayuki Miyoshi <takayukister@gmail.com>\n"
8
"Language-Team: \n"
9
"MIME-Version: 1.0\n"
19
msgid "Just another contact form plugin. Simple but flexible."
20
msgstr ""
21
22
+ #: contact-form-7/settings.php:75
23
msgid "Contact Forms"
24
msgstr ""
25
26
+ #: contact-form-7/settings.php:76
27
msgid "Contact Form"
28
msgstr ""
29
30
+ #: contact-form-7/settings.php:173
31
#, php-format
32
msgid "Contact form %d"
33
msgstr ""
117
msgid "Donate"
118
msgstr ""
119
120
+ #: contact-form-7/admin/admin.php:325
121
+ #, php-format
122
+ msgid "<strong>Contact Form 7 %1$s requires WordPress %2$s or higher.</strong> Please <a href=\"%3$s\">update WordPress</a> first."
123
+ msgstr ""
124
+
125
#: contact-form-7/admin/edit.php:20
126
#: contact-form-7/admin/edit.php:142
127
#: contact-form-7/admin/edit.php:155
216
msgstr ""
217
218
#: contact-form-7/admin/includes/meta-boxes.php:80
219
+ #: contact-form-7/includes/functions.php:108
220
msgid "Message body:"
221
msgstr ""
222
223
+ #: contact-form-7/includes/classes.php:523
224
msgid "Untitled"
225
msgstr ""
226
227
+ #: contact-form-7/includes/functions.php:26
228
msgid "Sender's message was sent successfully"
229
msgstr ""
230
231
+ #: contact-form-7/includes/functions.php:27
232
msgid "Your message was sent successfully. Thanks."
233
msgstr ""
234
235
+ #: contact-form-7/includes/functions.php:31
236
msgid "Sender's message was failed to send"
237
msgstr ""
238
239
+ #: contact-form-7/includes/functions.php:32
240
#: contact-form-7/modules/akismet.php:101
241
msgid "Failed to send your message. Please try later or contact the administrator by another method."
242
msgstr ""
243
244
+ #: contact-form-7/includes/functions.php:36
245
msgid "Validation errors occurred"
246
msgstr ""
247
248
+ #: contact-form-7/includes/functions.php:37
249
msgid "Validation errors occurred. Please confirm the fields and submit it again."
250
msgstr ""
251
252
+ #: contact-form-7/includes/functions.php:41
253
msgid "There are terms that the sender must accept"
254
msgstr ""
255
256
+ #: contact-form-7/includes/functions.php:42
257
msgid "Please accept the terms to proceed."
258
msgstr ""
259
260
+ #: contact-form-7/includes/functions.php:46
261
msgid "Email address that the sender entered is invalid"
262
msgstr ""
263
264
+ #: contact-form-7/includes/functions.php:47
265
msgid "Email address seems invalid."
266
msgstr ""
267
268
+ #: contact-form-7/includes/functions.php:51
269
msgid "There is a field that the sender must fill in"
270
msgstr ""
271
272
+ #: contact-form-7/includes/functions.php:52
273
msgid "Please fill the required field."
274
msgstr ""
275
276
+ #: contact-form-7/includes/functions.php:76
277
msgid "Your Name"
278
msgstr ""
279
280
+ #: contact-form-7/includes/functions.php:76
281
+ #: contact-form-7/includes/functions.php:78
282
msgid "(required)"
283
msgstr ""
284
285
+ #: contact-form-7/includes/functions.php:78
286
msgid "Your Email"
287
msgstr ""
288
289
+ #: contact-form-7/includes/functions.php:80
290
msgid "Subject"
291
msgstr ""
292
293
+ #: contact-form-7/includes/functions.php:82
294
msgid "Your Message"
295
msgstr ""
296
297
+ #: contact-form-7/includes/functions.php:84
298
msgid "Send"
299
msgstr ""
300
301
+ #: contact-form-7/includes/functions.php:92
302
#, php-format
303
msgid "From: %s"
304
msgstr ""
305
306
+ #: contact-form-7/includes/functions.php:93
307
#, php-format
308
msgid "Subject: %s"
309
msgstr ""
310
311
+ #: contact-form-7/includes/functions.php:94
312
msgid "Message Body:"
313
msgstr ""
314
315
+ #: contact-form-7/includes/functions.php:95
316
+ #: contact-form-7/includes/functions.php:109
317
#, php-format
318
msgid "This mail is sent via contact form on %1$s %2$s"
319
msgstr ""
320
321
+ #: contact-form-7/includes/functions.php:185
322
msgid "Afrikaans"
323
msgstr ""
324
325
+ #: contact-form-7/includes/functions.php:186
326
msgid "Albanian"
327
msgstr ""
328
329
+ #: contact-form-7/includes/functions.php:187
330
msgid "Arabic"
331
msgstr ""
332
333
+ #: contact-form-7/includes/functions.php:188
334
msgid "Armenian"
335
msgstr ""
336
337
+ #: contact-form-7/includes/functions.php:189
338
msgid "Bangla"
339
msgstr ""
340
341
+ #: contact-form-7/includes/functions.php:190
342
msgid "Belarusian"
343
msgstr ""
344
345
+ #: contact-form-7/includes/functions.php:191
346
msgid "Bosnian"
347
msgstr ""
348
349
+ #: contact-form-7/includes/functions.php:192
350
msgid "Brazilian Portuguese"
351
msgstr ""
352
353
+ #: contact-form-7/includes/functions.php:193
354
msgid "Bulgarian"
355
msgstr ""
356
357
+ #: contact-form-7/includes/functions.php:194
358
msgid "Catalan"
359
msgstr ""
360
361
+ #: contact-form-7/includes/functions.php:195
362
msgid "Chinese (Simplified)"
363
msgstr ""
364
365
+ #: contact-form-7/includes/functions.php:196
366
msgid "Chinese (Traditional)"
367
msgstr ""
368
369
+ #: contact-form-7/includes/functions.php:197
370
msgid "Croatian"
371
msgstr ""
372
373
+ #: contact-form-7/includes/functions.php:198
374
msgid "Czech"
375
msgstr ""
376
377
+ #: contact-form-7/includes/functions.php:199
378
msgid "Danish"
379
msgstr ""
380
381
+ #: contact-form-7/includes/functions.php:200
382
msgid "Dutch"
383
msgstr ""
384
385
+ #: contact-form-7/includes/functions.php:201
386
msgid "English"
387
msgstr ""
388
389
+ #: contact-form-7/includes/functions.php:202
390
+ msgid "Esperanto"
391
+ msgstr ""
392
+
393
+ #: contact-form-7/includes/functions.php:203
394
msgid "Estonian"
395
msgstr ""
396
397
+ #: contact-form-7/includes/functions.php:204
398
msgid "Finnish"
399
msgstr ""
400
401
+ #: contact-form-7/includes/functions.php:205
402
msgid "French"
403
msgstr ""
404
405
+ #: contact-form-7/includes/functions.php:206
406
msgid "Galician"
407
msgstr ""
408
409
+ #: contact-form-7/includes/functions.php:207
410
msgid "Georgian"
411
msgstr ""
412
413
+ #: contact-form-7/includes/functions.php:208
414
msgid "German"
415
msgstr ""
416
417
+ #: contact-form-7/includes/functions.php:209
418
msgid "Greek"
419
msgstr ""
420
421
+ #: contact-form-7/includes/functions.php:210
422
msgid "Hebrew"
423
msgstr ""
424
425
+ #: contact-form-7/includes/functions.php:211
426
msgid "Hindi"
427
msgstr ""
428
429
+ #: contact-form-7/includes/functions.php:212
430
msgid "Hungarian"
431
msgstr ""
432
433
+ #: contact-form-7/includes/functions.php:213
434
msgid "Indonesian"
435
msgstr ""
436
437
+ #: contact-form-7/includes/functions.php:214
438
msgid "Italian"
439
msgstr ""
440
441
+ #: contact-form-7/includes/functions.php:215
442
msgid "Japanese"
443
msgstr ""
444
445
+ #: contact-form-7/includes/functions.php:216
446
msgid "Korean"
447
msgstr ""
448
449
+ #: contact-form-7/includes/functions.php:217
450
msgid "Latvian"
451
msgstr ""
452
453
+ #: contact-form-7/includes/functions.php:218
454
msgid "Lithuanian"
455
msgstr ""
456
457
+ #: contact-form-7/includes/functions.php:219
458
msgid "Macedonian"
459
msgstr ""
460
461
+ #: contact-form-7/includes/functions.php:220
462
msgid "Malay"
463
msgstr ""
464
465
+ #: contact-form-7/includes/functions.php:221
466
msgid "Malayalam"
467
msgstr ""
468
469
+ #: contact-form-7/includes/functions.php:222
470
msgid "Maltese"
471
msgstr ""
472
473
+ #: contact-form-7/includes/functions.php:223
474
msgid "Norwegian"
475
msgstr ""
476
477
+ #: contact-form-7/includes/functions.php:224
478
msgid "Persian"
479
msgstr ""
480
481
+ #: contact-form-7/includes/functions.php:225
482
msgid "Polish"
483
msgstr ""
484
485
+ #: contact-form-7/includes/functions.php:226
486
msgid "Portuguese"
487
msgstr ""
488
489
+ #: contact-form-7/includes/functions.php:227
490
msgid "Russian"
491
msgstr ""
492
493
+ #: contact-form-7/includes/functions.php:228
494
msgid "Romanian"
495
msgstr ""
496
497
+ #: contact-form-7/includes/functions.php:229
498
msgid "Serbian"
499
msgstr ""
500
501
+ #: contact-form-7/includes/functions.php:230
502
msgid "Sinhala"
503
msgstr ""
504
505
+ #: contact-form-7/includes/functions.php:231
506
msgid "Slovak"
507
msgstr ""
508
509
+ #: contact-form-7/includes/functions.php:232
510
msgid "Slovene"
511
msgstr ""
512
513
+ #: contact-form-7/includes/functions.php:233
514
msgid "Spanish"
515
msgstr ""
516
517
+ #: contact-form-7/includes/functions.php:234
518
msgid "Swedish"
519
msgstr ""
520
521
+ #: contact-form-7/includes/functions.php:235
522
msgid "Tamil"
523
msgstr ""
524
525
+ #: contact-form-7/includes/functions.php:236
526
msgid "Thai"
527
msgstr ""
528
529
+ #: contact-form-7/includes/functions.php:237
530
msgid "Tagalog"
531
msgstr ""
532
533
+ #: contact-form-7/includes/functions.php:238
534
msgid "Turkish"
535
msgstr ""
536
537
+ #: contact-form-7/includes/functions.php:239
538
msgid "Ukrainian"
539
msgstr ""
540
541
+ #: contact-form-7/includes/functions.php:240
542
msgid "Vietnamese"
543
msgstr ""
544
modules/special-mail-tags.php CHANGED
@@ -17,7 +17,7 @@ function wpcf7_special_mail_tag( $output, $name ) {
17
$url = untrailingslashit( home_url() );
18
$url = preg_replace( '%(?<!:|/)/.*$%', '', $url );
19
$url .= wpcf7_get_request_uri();
20
- $output = $url;
21
}
22
23
elseif ( '_date' == $name )
17
$url = untrailingslashit( home_url() );
18
$url = preg_replace( '%(?<!:|/)/.*$%', '', $url );
19
$url .= wpcf7_get_request_uri();
20
+ $output = esc_url( $url );
21
}
22
23
elseif ( '_date' == $name )
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: takayukister
3
Donate link: http://contactform7.com/donate/
4
Tags: contact, form, contact form, feedback, email, ajax, captcha, akismet, multilingual
5
Requires at least: 3.2
6
- Tested up to: 3.2.1
7
- Stable tag: 3.0
8
9
Just another contact form plugin. Simple but flexible.
10
@@ -40,6 +40,7 @@ It is hard to continue development and support for this plugin without contribut
40
* Czech (cs_CZ) - Korry, [Radovan Fiser](http://algymsa.cz/), [Tomas Vesely](http://www.mcmotylek.cz/)
41
* Danish (da_DK) - [Jens Griebel](http://www.kompas-it.dk/), [Georg S. Adamsen](http://wordpress.blogos.dk/)
42
* Dutch (nl_NL) - [Chris Devriese](http://www.100it.be/), [Martin Hein](http://www.split-a-pixel.nl/), [Rene](http://wpwebshop.com/)
43
* Estonian (et) - [Peeter Rahuvarm](http://www.kraabus.ee), Egon Elbre
44
* Finnish (fi) - [Miika Turunen](http://www.webwork.fi/), [Mediajalostamo](http://www.mediajalostamo.fi/)
45
* French (fr_FR) - [Jillij](http://www.jillij.com/), [Oncle Tom](http://case.oncle-tom.net/), [Maître Mô](http://maitremo.fr/)
@@ -68,13 +69,13 @@ It is hard to continue development and support for this plugin without contribut
68
* Romanian (ro_RO) - [Stas Sushkov](http://stas.nerd.ro/), [Anunturi Jibo](http://www.jibo.ro/)
69
* Serbian (sr_RS) - [Vedran](http://www.seorabbit.com/), [Aleksandar Urošević](http://blog.urosevic.net/)
70
* Sinhala (si_LK) - [Nitin Aggarwal](http://offshoreally.com/)
71
- * Slovak (sk) - [Patrik Bóna](http://www.mrhead.sk/)
72
* Slovene (sl_SI) - [Mihael Simonič](http://smihael.bplaced.net)
73
* Spanish (es_ES) - [Jordi Sancho](http://www.qasolutions.net/blog), [Vladimir Prieto](http://vladimir.prie.to/), [Federico Mikaelian](http://www.fedemika.com.ar/), [Matias Baldanza](http://matiasbaldanza.com/), [Carlos Agnese](http://albumdecarlitos.com.ar/)
74
* Swedish (sv_SE) - [Fredrik Jonsson](http://www.fredda-o-ac.se/), [the Swedish community](http://wp-support.se/)
75
* Tagalog (tl) - [Rupert Agnew Lanuza](http://wheretobuy.com.ph/)
76
* Tamil (ta) - [Nitin Aggarwal](http://offshoreally.com/)
77
- * Thai (th) - [kazama](http://blog.wordthai.com/)
78
* Turkish (tr_TR) - [Roman Neumuller](http://katpatuka.wordpress.com), [Hasan Yılmaz](http://hedefturkce.com/), [Emin Buğra Saral](http://www.rahmetli.info/)
79
* Ukrainian (uk) - [Andrey Kovba](http://myserver.com.ua/), [Ukrainian WordPress localization team](http://wordpress.co.ua/plugins/contact-form-7.html)
80
* Vietnamese (vi) - Thanh Hải, Hà, [Khang Minh](http://betterwp.net/)
@@ -107,6 +108,19 @@ Do you have questions or issues with Contact Form 7? Use these support channels
107
108
== Changelog ==
109
110
= 3.0.1 =
111
112
* Removed unused icl.php file from modules folder.
3
Donate link: http://contactform7.com/donate/
4
Tags: contact, form, contact form, feedback, email, ajax, captcha, akismet, multilingual
5
Requires at least: 3.2
6
+ Tested up to: 3.3
7
+ Stable tag: 3.0.2
8
9
Just another contact form plugin. Simple but flexible.
10
40
* Czech (cs_CZ) - Korry, [Radovan Fiser](http://algymsa.cz/), [Tomas Vesely](http://www.mcmotylek.cz/)
41
* Danish (da_DK) - [Jens Griebel](http://www.kompas-it.dk/), [Georg S. Adamsen](http://wordpress.blogos.dk/)
42
* Dutch (nl_NL) - [Chris Devriese](http://www.100it.be/), [Martin Hein](http://www.split-a-pixel.nl/), [Rene](http://wpwebshop.com/)
43
+ * Esperanto (eo_EO) - Arkadiusz Zychewicz
44
* Estonian (et) - [Peeter Rahuvarm](http://www.kraabus.ee), Egon Elbre
45
* Finnish (fi) - [Miika Turunen](http://www.webwork.fi/), [Mediajalostamo](http://www.mediajalostamo.fi/)
46
* French (fr_FR) - [Jillij](http://www.jillij.com/), [Oncle Tom](http://case.oncle-tom.net/), [Maître Mô](http://maitremo.fr/)
69
* Romanian (ro_RO) - [Stas Sushkov](http://stas.nerd.ro/), [Anunturi Jibo](http://www.jibo.ro/)
70
* Serbian (sr_RS) - [Vedran](http://www.seorabbit.com/), [Aleksandar Urošević](http://blog.urosevic.net/)
71
* Sinhala (si_LK) - [Nitin Aggarwal](http://offshoreally.com/)
72
+ * Slovak (sk_SK) - [Patrik Bóna](http://www.mrhead.sk/)
73
* Slovene (sl_SI) - [Mihael Simonič](http://smihael.bplaced.net)
74
* Spanish (es_ES) - [Jordi Sancho](http://www.qasolutions.net/blog), [Vladimir Prieto](http://vladimir.prie.to/), [Federico Mikaelian](http://www.fedemika.com.ar/), [Matias Baldanza](http://matiasbaldanza.com/), [Carlos Agnese](http://albumdecarlitos.com.ar/)
75
* Swedish (sv_SE) - [Fredrik Jonsson](http://www.fredda-o-ac.se/), [the Swedish community](http://wp-support.se/)
76
* Tagalog (tl) - [Rupert Agnew Lanuza](http://wheretobuy.com.ph/)
77
* Tamil (ta) - [Nitin Aggarwal](http://offshoreally.com/)
78
+ * Thai (th) - [kazama](http://blog.wordthai.com/), [ToshiK](http://www.tuntikorn.com/)
79
* Turkish (tr_TR) - [Roman Neumuller](http://katpatuka.wordpress.com), [Hasan Yılmaz](http://hedefturkce.com/), [Emin Buğra Saral](http://www.rahmetli.info/)
80
* Ukrainian (uk) - [Andrey Kovba](http://myserver.com.ua/), [Ukrainian WordPress localization team](http://wordpress.co.ua/plugins/contact-form-7.html)
81
* Vietnamese (vi) - Thanh Hải, Hà, [Khang Minh](http://betterwp.net/)
108
109
== Changelog ==
110
111
+ = 3.0.2 =
112
+
113
+ * Show alert messages when you use it on old version of WordPress.
114
+ * Introduce wpcf7_is_rtl() to avoid “not exist” error of is_rtl().
115
+ * Take back data conversion from Contact Form 7 1.x.
116
+ * Normalize newline characters to \n (line feed) on save (fix export/import problem).
117
+ * Rewrite wpcf7_admin_url() and use menu_page_url() inside it.
118
+ * Use wp_enqueue_scripts and admin_enqueue_scripts action hooks instead of wp_print_styles and admin_print_styles.
119
+ * Use wp_safe_redirect() instead of wp_redirect().
120
+ * Updated jquery.form.js to 2.94.
121
+ * Translations for Esperanto has been created.
122
+ * Translations for German, Japanese, Malay, Thai, Slovak, and Hungarian have been updated.
123
+
124
= 3.0.1 =
125
126
* Removed unused icl.php file from modules folder.
settings.php CHANGED
@@ -1,29 +1,5 @@
1
<?php
2
3
- function wpcf7_plugin_path( $path = '' ) {
4
- return path_join( WPCF7_PLUGIN_DIR, trim( $path, '/' ) );
5
- }
6
-
7
- function wpcf7_plugin_url( $path = '' ) {
8
- return plugins_url( $path, WPCF7_PLUGIN_BASENAME );
9
- }
10
-
11
- function wpcf7_admin_url( $query = array() ) {
12
- global $plugin_page;
13
-
14
- if ( ! isset( $query['page'] ) )
15
- $query['page'] = $plugin_page;
16
-
17
- $path = 'admin.php';
18
-
19
- if ( $query = build_query( $query ) )
20
- $path .= '?' . $query;
21
-
22
- $url = admin_url( $path );
23
-
24
- return esc_url_raw( $url );
25
- }
26
-
27
function wpcf7() {
28
global $wpdb, $wpcf7;
29
@@ -124,11 +100,6 @@ function wpcf7_upgrade() {
124
$opt['version'] = $new_ver;
125
126
update_option( 'wpcf7', $opt );
127
-
128
- if ( is_admin() && isset( $_GET['page'] ) && 'wpcf7' == $_GET['page'] ) {
129
- wp_redirect( wpcf7_admin_url( array( 'page' => 'wpcf7' ) ) );
130
- exit();
131
- }
132
}
133
134
add_action( 'wpcf7_upgrade', 'wpcf7_convert_to_cpt', 10, 2 );
@@ -139,14 +110,19 @@ function wpcf7_convert_to_cpt( $new_ver, $old_ver ) {
139
if ( ! version_compare( $old_ver, '3.0-dev', '<' ) )
140
return;
141
142
- $table_name = $wpdb->prefix . "contact_form_7";
143
144
- if ( ! $wpdb->get_var( "SHOW TABLES LIKE '$table_name'" ) )
145
- return;
146
147
- $old_rows = $wpdb->get_results( "SELECT * FROM $table_name" );
148
149
- foreach ( $old_rows as $row ) {
150
$q = "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = '_old_cf7_unit_id'"
151
. $wpdb->prepare( " AND meta_value = %d", $row->cf7_unit_id );
152
@@ -162,12 +138,13 @@ function wpcf7_convert_to_cpt( $new_ver, $old_ver ) {
162
163
if ( $post_id ) {
164
update_post_meta( $post_id, '_old_cf7_unit_id', $row->cf7_unit_id );
165
- update_post_meta( $post_id, 'form', maybe_unserialize( $row->form ) );
166
- update_post_meta( $post_id, 'mail', maybe_unserialize( $row->mail ) );
167
- update_post_meta( $post_id, 'mail_2', maybe_unserialize( $row->mail_2 ) );
168
- update_post_meta( $post_id, 'messages', maybe_unserialize( $row->messages ) );
169
- update_post_meta( $post_id, 'additional_settings',
170
- maybe_unserialize( $row->additional_settings ) );
171
}
172
}
173
}
1
<?php
2
3
function wpcf7() {
4
global $wpdb, $wpcf7;
5
100
$opt['version'] = $new_ver;
101
102
update_option( 'wpcf7', $opt );
103
}
104
105
add_action( 'wpcf7_upgrade', 'wpcf7_convert_to_cpt', 10, 2 );
110
if ( ! version_compare( $old_ver, '3.0-dev', '<' ) )
111
return;
112
113
+ $old_rows = array();
114
115
+ $table_name = $wpdb->prefix . "contact_form_7";
116
117
+ if ( $wpdb->get_var( "SHOW TABLES LIKE '$table_name'" ) ) {
118
+ $old_rows = $wpdb->get_results( "SELECT * FROM $table_name" );
119
+ } elseif ( ( $opt = get_option( 'wpcf7' ) ) && ! empty( $opt['contact_forms'] ) ) {
120
+ foreach ( (array) $opt['contact_forms'] as $key => $value ) {
121
+ $old_rows[] = (object) array_merge( $value, array( 'cf7_unit_id' => $key ) );
122
+ }
123
+ }
124
125
+ foreach ( (array) $old_rows as $row ) {
126
$q = "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = '_old_cf7_unit_id'"
127
. $wpdb->prepare( " AND meta_value = %d", $row->cf7_unit_id );
128
138
139
if ( $post_id ) {
140
update_post_meta( $post_id, '_old_cf7_unit_id', $row->cf7_unit_id );
141
+
142
+ $metas = array( 'form', 'mail', 'mail_2', 'messages', 'additional_settings' );
143
+
144
+ foreach ( $metas as $meta ) {
145
+ update_post_meta( $post_id, $meta,
146
+ wpcf7_normalize_newline_deep( maybe_unserialize( $row->{$meta} ) ) );
147
+ }
148
}
149
}
150
}
wp-contact-form-7.php CHANGED
@@ -7,7 +7,7 @@ Author: Takayuki Miyoshi
7
Author URI: http://ideasilo.wordpress.com/
8
Text Domain: wpcf7
9
Domain Path: /languages/
10
- Version: 3.0.1
11
*/
12
13
/* Copyright 2007-2011 Takayuki Miyoshi (email: takayukister at gmail.com)
@@ -27,7 +27,9 @@ Version: 3.0.1
27
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
28
*/
29
30
- define( 'WPCF7_VERSION', '3.0.1' );
31
32
if ( ! defined( 'WPCF7_PLUGIN_BASENAME' ) )
33
define( 'WPCF7_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
7
Author URI: http://ideasilo.wordpress.com/
8
Text Domain: wpcf7
9
Domain Path: /languages/
10
+ Version: 3.0.2
11
*/
12
13
/* Copyright 2007-2011 Takayuki Miyoshi (email: takayukister at gmail.com)
27
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
28
*/
29
30
+ define( 'WPCF7_VERSION', '3.0.2' );
31
+
32
+ define( 'WPCF7_REQUIRED_WP_VERSION', '3.2' );
33
34
if ( ! defined( 'WPCF7_PLUGIN_BASENAME' ) )
35
define( 'WPCF7_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );