Contact Form 7 - Version 2.0-beta

Version Description

Download this release

Release Info

Developer takayukister
Plugin Icon 128x128 Contact Form 7
Version 2.0-beta
Comparing to
See all releases

Code changes from version 1.10.1 to 2.0-beta

README.txt CHANGED
@@ -2,8 +2,8 @@
2
  Contributors: takayukister
3
  Donate link: http://pledgie.com/campaigns/3117
4
  Tags: contact, contact form, email, ajax, captcha, akismet
5
- Requires at least: 2.5
6
- Tested up to: 2.8
7
  Stable tag: 1.10.1
8
 
9
  Just another contact form plugin. Simple but flexible.
@@ -29,13 +29,13 @@ Since being published in August 2007, Contact Form 7 has been translated into a
29
  * Croatian (hr) - [tolingo Translation Services](http://www.tolingo.com)
30
  * Czech (cs_CZ) - Korry
31
  * Danish (da_DK) - [Jens Griebel](http://www.kompas-it.dk/) (updated by [Georg S. Adamsen](http://wordpress.blogos.dk/))
32
- * Dutch (nl_NL) - [Chris Devriese](http://www.100it.be/)
33
  * Estonian (et) - [Peeter Rahuvarm](http://www.kraabus.ee)
34
  * Finnish (fi) - [Miika Turunen](http://www.webwork.fi/)
35
  * French (fr_FR) - [Jillij](http://www.jillij.com/)
36
  * Georgian (ka_GE) - [Nodar Davituri](http://omedia.ge/)
37
  * German (de_DE) - [Marcel Spitau](http://blog.spitau.de) (updated by [Ivan Graf](http://blog.bildergallery.com/))
38
- * Greek (el_EL) - [Nick Mouratidis](http://www.kepik.gr/)
39
  * Hebrew (he_IL) - [Yaron Ofer](http://www.gadgetguru.co.il/)
40
  * Hindi (hi_IN) - [Tarun Joshi](http://www.readers-cafe.net/)
41
  * Hungarian (hu_HU) - [Andras Hirschler](http://hia.itblog.hu/)
@@ -67,7 +67,7 @@ If you have created your own language pack, or have an update of an existing one
67
  1. Upload the entire `contact-form-7` folder to the `/wp-content/plugins/` directory.
68
  1. Activate the plugin through the 'Plugins' menu in WordPress.
69
 
70
- The control panel of Contact Form 7 is in 'Manage > Contact Form 7' (on WordPress 2.7 and greater, 'Tools > Contact Form 7'). Please note that it has moved from the 'Settings' menu since Contact Form 7 1.8.
71
 
72
  For basic usage, you can also have a look at the [plugin homepage](http://ideasilo.wordpress.com/2007/04/30/contact-form-7/) and [FAQ](http://ideasilo.wordpress.com/2008/03/29/contact-form-7-faq/).
73
 
2
  Contributors: takayukister
3
  Donate link: http://pledgie.com/campaigns/3117
4
  Tags: contact, contact form, email, ajax, captcha, akismet
5
+ Requires at least: 2.7
6
+ Tested up to: 2.9-rare
7
  Stable tag: 1.10.1
8
 
9
  Just another contact form plugin. Simple but flexible.
29
  * Croatian (hr) - [tolingo Translation Services](http://www.tolingo.com)
30
  * Czech (cs_CZ) - Korry
31
  * Danish (da_DK) - [Jens Griebel](http://www.kompas-it.dk/) (updated by [Georg S. Adamsen](http://wordpress.blogos.dk/))
32
+ * Dutch (nl_NL) - [Chris Devriese](http://www.100it.be/) (updated by [Martin Hein](http://www.split-a-pixel.nl/))
33
  * Estonian (et) - [Peeter Rahuvarm](http://www.kraabus.ee)
34
  * Finnish (fi) - [Miika Turunen](http://www.webwork.fi/)
35
  * French (fr_FR) - [Jillij](http://www.jillij.com/)
36
  * Georgian (ka_GE) - [Nodar Davituri](http://omedia.ge/)
37
  * German (de_DE) - [Marcel Spitau](http://blog.spitau.de) (updated by [Ivan Graf](http://blog.bildergallery.com/))
38
+ * Greek (el) - [Nick Mouratidis](http://www.kepik.gr/) (updated by [Pr. friedlich](http://friedlich.wordpress.com/))
39
  * Hebrew (he_IL) - [Yaron Ofer](http://www.gadgetguru.co.il/)
40
  * Hindi (hi_IN) - [Tarun Joshi](http://www.readers-cafe.net/)
41
  * Hungarian (hu_HU) - [Andras Hirschler](http://hia.itblog.hu/)
67
  1. Upload the entire `contact-form-7` folder to the `/wp-content/plugins/` directory.
68
  1. Activate the plugin through the 'Plugins' menu in WordPress.
69
 
70
+ You will find 'Contact Form 7' menu in your WordPress admin panel.
71
 
72
  For basic usage, you can also have a look at the [plugin homepage](http://ideasilo.wordpress.com/2007/04/30/contact-form-7/) and [FAQ](http://ideasilo.wordpress.com/2008/03/29/contact-form-7-faq/).
73
 
admin/admin-panel.php CHANGED
@@ -1,18 +1,15 @@
1
- <?php if ( ! version_compare( $wp_version, '2.7', '>=' ) && isset( $updated_message ) ) : ?>
2
- <div id="message" class="updated fade"><p><strong><?php echo $updated_message; ?></strong></p></div>
3
- <?php endif; ?>
4
  <div class="wrap wpcf7">
5
- <?php if ( function_exists( 'screen_icon' ) ) screen_icon(); ?>
6
  <h2><?php _e( 'Contact Form 7', 'wpcf7' ); ?></h2>
7
  <?php wpcf7_donation_link(); ?>
8
- <?php if ( version_compare( $wp_version, '2.7', '>=' ) && isset( $updated_message ) ) : ?>
9
- <div id="message" class="updated fade"><p><strong><?php echo $updated_message; ?></strong></p></div>
10
  <?php endif; ?>
11
 
12
  <ul class="subsubsub">
13
- <?php foreach ( $contact_forms as $k => $v ) : ?>
14
- <li><a href="<?php echo $base_url . '?page=' . $page . '&contactform=' . $k ?>"<?php if ( $k == $current ) echo ' class="current"'; ?>>
15
- <?php echo $v['title']; ?></a> |</li>
16
  <?php endforeach; ?>
17
 
18
  <?php if ( wpcf7_admin_has_edit_cap() ) : ?>
@@ -120,9 +117,6 @@
120
  </div>
121
  <div class="mail-field">
122
  <label for="wpcf7-mail-attachments"><?php _e( 'File attachments:', 'wpcf7' ); ?></label>
123
- <?php if ( version_compare( $wp_version, '2.7', '<' ) ) : ?>
124
- <span style="color: #ff3300; margin-left: 0.5em;"><?php _e( '(You need WordPress 2.7 or greater to use this feature)', 'wpcf7' ); ?></span>
125
- <?php endif; ?>
126
  <br />
127
  <input type="text" id="wpcf7-mail-attachments" name="wpcf7-mail-attachments" class="wide" size="70" value="<?php echo htmlspecialchars( $cf->mail['attachments'] ); ?>" />
128
  </div>
@@ -176,9 +170,6 @@
176
  </div>
177
  <div class="mail-field">
178
  <label for="wpcf7-mail-2-attachments"><?php _e( 'File attachments:', 'wpcf7' ); ?></label>
179
- <?php if ( version_compare( $wp_version, '2.7', '<' ) ) : ?>
180
- <span style="color: #ff3300; margin-left: 0.5em;"><?php _e( '(You need WordPress 2.7 or greater to use this feature)', 'wpcf7' ); ?></span>
181
- <?php endif; ?>
182
  <br />
183
  <input type="text" id="wpcf7-mail-2-attachments" name="wpcf7-mail-2-attachments" class="wide" size="70" value="<?php echo htmlspecialchars( $cf->mail_2['attachments'] ); ?>" />
184
  </div>
@@ -280,8 +271,6 @@
280
  </tbody>
281
  </table>
282
 
283
- <input type="hidden" id="wpcf7-options-recipient" name="wpcf7-options-recipient" value="<?php echo htmlspecialchars( $cf->options['recipient'] ); ?>" />
284
-
285
  <table class="widefat" style="margin-top: 1em;">
286
  <tbody>
287
  <tr>
 
 
 
1
  <div class="wrap wpcf7">
2
+ <?php screen_icon( 'tools' ); ?>
3
  <h2><?php _e( 'Contact Form 7', 'wpcf7' ); ?></h2>
4
  <?php wpcf7_donation_link(); ?>
5
+ <?php if ( isset( $updated_message ) ) : ?>
6
+ <div id="message" class="updated fade"><p><?php echo $updated_message; ?></p></div>
7
  <?php endif; ?>
8
 
9
  <ul class="subsubsub">
10
+ <?php foreach ( $contact_forms as $v ) : ?>
11
+ <li><a href="<?php echo $base_url . '?page=' . $page . '&contactform=' . $v->id ?>"<?php if ( $v->id == $current ) echo ' class="current"'; ?>>
12
+ <?php echo $v->title; ?></a> |</li>
13
  <?php endforeach; ?>
14
 
15
  <?php if ( wpcf7_admin_has_edit_cap() ) : ?>
117
  </div>
118
  <div class="mail-field">
119
  <label for="wpcf7-mail-attachments"><?php _e( 'File attachments:', 'wpcf7' ); ?></label>
 
 
 
120
  <br />
121
  <input type="text" id="wpcf7-mail-attachments" name="wpcf7-mail-attachments" class="wide" size="70" value="<?php echo htmlspecialchars( $cf->mail['attachments'] ); ?>" />
122
  </div>
170
  </div>
171
  <div class="mail-field">
172
  <label for="wpcf7-mail-2-attachments"><?php _e( 'File attachments:', 'wpcf7' ); ?></label>
 
 
 
173
  <br />
174
  <input type="text" id="wpcf7-mail-2-attachments" name="wpcf7-mail-2-attachments" class="wide" size="70" value="<?php echo htmlspecialchars( $cf->mail_2['attachments'] ); ?>" />
175
  </div>
271
  </tbody>
272
  </table>
273
 
 
 
274
  <table class="widefat" style="margin-top: 1em;">
275
  <tbody>
276
  <tr>
admin/admin.php CHANGED
@@ -1,31 +1,23 @@
1
  <?php
2
 
3
- function wpcf7_admin_menu_parent() {
4
- global $wp_version;
5
- if ( version_compare( $wp_version, '2.7', '>=' ) )
6
- return 'tools.php';
7
- else
8
- return 'edit.php';
9
- }
10
-
11
  function wpcf7_admin_has_edit_cap() {
12
  return current_user_can( WPCF7_ADMIN_READ_WRITE_CAPABILITY );
13
  }
14
 
15
  function wpcf7_admin_add_pages() {
16
- if ( function_exists( 'admin_url' ) ) {
17
- $base_url = admin_url( wpcf7_admin_menu_parent() );
18
- } else {
19
- $base_url = get_option( 'siteurl' ) . '/wp-admin/' . wpcf7_admin_menu_parent();
20
- }
21
 
22
- $page = str_replace( '\\', '%5C', plugin_basename( __FILE__ ) );
23
- $contact_forms = wpcf7_contact_forms();
24
 
25
  if ( isset( $_POST['wpcf7-save'] ) && wpcf7_admin_has_edit_cap() ) {
26
  $id = $_POST['wpcf7-id'];
27
  check_admin_referer( 'wpcf7-save_' . $id );
28
 
 
 
 
 
 
29
  $title = trim( $_POST['wpcf7-title'] );
30
  $form = trim( $_POST['wpcf7-form'] );
31
  $mail = array(
@@ -62,22 +54,20 @@ function wpcf7_admin_add_pages() {
62
  'upload_file_too_large' => trim( $_POST['wpcf7-message-upload-file-too-large'] )
63
  );
64
  $additional_settings = trim( $_POST['wpcf7-additional-settings'] );
65
- $options = array(
66
- 'recipient' => trim( $_POST['wpcf7-options-recipient'] ) // For backward compatibility.
67
- );
68
 
69
- $data = compact( 'title', 'form', 'mail', 'mail_2', 'messages', 'additional_settings', 'options' );
 
70
 
71
- if ( array_key_exists( $id, $contact_forms ) ) {
72
- $contact_forms[$id] = $data;
73
- $redirect_to = $base_url . '?page=' . $page . '&contactform=' . $id . '&message=saved';
74
- } else {
75
- $key = ( empty( $contact_forms ) ) ? 1 : max( array_keys( $contact_forms ) ) + 1;
76
- $contact_forms[$key] = $data;
77
- $redirect_to = $base_url . '?page=' . $page . '&contactform=' . $key . '&message=created';
78
- }
79
 
80
- wpcf7_update_contact_forms( $contact_forms );
 
 
81
 
82
  wp_redirect( $redirect_to );
83
  exit();
@@ -85,14 +75,15 @@ function wpcf7_admin_add_pages() {
85
  $id = $_POST['wpcf7-id'];
86
  check_admin_referer( 'wpcf7-copy_' . $id );
87
 
88
- if ( array_key_exists( $id, $contact_forms ) ) {
89
- $key = max( array_keys( $contact_forms ) ) + 1;
90
- $contact_forms[$key] = $contact_forms[$id];
91
- $contact_forms[$key]['title'] .= '_copy';
92
- wpcf7_update_contact_forms( $contact_forms );
93
- $redirect_to = $base_url . '?page=' . $page . '&contactform=' . $key . '&message=created';
 
94
  } else {
95
- $redirect_to = $base_url . '?page=' . $page . '&contactform=' . $id;
96
  }
97
 
98
  wp_redirect( $redirect_to );
@@ -101,14 +92,18 @@ function wpcf7_admin_add_pages() {
101
  $id = $_POST['wpcf7-id'];
102
  check_admin_referer( 'wpcf7-delete_' . $id );
103
 
104
- unset( $contact_forms[$id] );
105
- wpcf7_update_contact_forms( $contact_forms );
106
 
107
  wp_redirect( $base_url . '?page=' . $page . '&message=deleted' );
108
  exit();
109
  }
110
 
111
- add_management_page( __( 'Contact Form 7', 'wpcf7' ), __( 'Contact Form 7', 'wpcf7' ), WPCF7_ADMIN_READ_CAPABILITY, __FILE__, 'wpcf7_admin_management_page' );
 
 
 
 
112
  }
113
 
114
  add_action( 'admin_menu', 'wpcf7_admin_add_pages' );
@@ -146,7 +141,7 @@ function wpcf7_admin_load_js() {
146
  if ( ! is_admin() )
147
  return;
148
 
149
- if ( wpcf7_admin_menu_parent() != $pagenow )
150
  return;
151
 
152
  if ( false === strpos( $_GET['page'], 'contact-form-7' ) )
@@ -210,11 +205,7 @@ add_action( 'wp_print_scripts', 'wpcf7_admin_load_js' );
210
  function wpcf7_admin_management_page() {
211
  global $wp_version;
212
 
213
- if ( function_exists( 'admin_url' ) ) {
214
- $base_url = admin_url( wpcf7_admin_menu_parent() );
215
- } else {
216
- $base_url = get_option( 'siteurl' ) . '/wp-admin/' . wpcf7_admin_menu_parent();
217
- }
218
 
219
  $page = plugin_basename( __FILE__ );
220
 
@@ -237,97 +228,85 @@ function wpcf7_admin_management_page() {
237
  if ( 'new' == $_GET['contactform'] ) {
238
  $unsaved = true;
239
  $current = -1;
240
- $cf = wpcf7_contact_form( wpcf7_default_pack( __( 'Untitled', 'wpcf7' ), true ) );
241
- } elseif ( array_key_exists( $_GET['contactform'], $contact_forms ) ) {
242
  $current = (int) $_GET['contactform'];
243
- $cf = wpcf7_contact_form( $contact_forms[$current] );
244
  } else {
245
- $current = (int) array_shift( array_keys( $contact_forms ) );
246
- $cf = wpcf7_contact_form( $contact_forms[$current] );
 
247
  }
248
 
249
  require_once WPCF7_PLUGIN_DIR . '/admin/admin-panel.php';
250
  }
251
 
252
- function wpcf7_default_form_template() {
253
- $template .= '<p>' . __( 'Your Name', 'wpcf7' ) . ' ' . __( '(required)', 'wpcf7' ) . '<br />' . "\n";
254
- $template .= ' [text* your-name] </p>' . "\n\n";
255
- $template .= '<p>' . __( 'Your Email', 'wpcf7' ) . ' ' . __( '(required)', 'wpcf7' ) . '<br />' . "\n";
256
- $template .= ' [email* your-email] </p>' . "\n\n";
257
- $template .= '<p>' . __( 'Subject', 'wpcf7' ) . '<br />' . "\n";
258
- $template .= ' [text your-subject] </p>' . "\n\n";
259
- $template .= '<p>' . __( 'Your Message', 'wpcf7' ) . '<br />' . "\n";
260
- $template .= ' [textarea your-message] </p>' . "\n\n";
261
- $template .= '<p>[submit "' . __( 'Send', 'wpcf7' ) . '"]</p>';
262
- return $template;
263
- }
264
-
265
- function wpcf7_default_mail_template() {
266
- $subject = '[your-subject]';
267
- $sender = '[your-name] <[your-email]>';
268
- $body = '[your-message]';
269
- $recipient = get_option( 'admin_email' );
270
- return compact( 'subject', 'sender', 'body', 'recipient' );
271
- }
272
 
273
- function wpcf7_default_mail_2_template() {
274
- $active = false;
275
- $subject = '[your-subject]';
276
- $sender = '[your-name] <[your-email]>';
277
- $body = '[your-message]';
278
- $recipient = '[your-email]';
279
- return compact( 'active', 'subject', 'sender', 'body', 'recipient' );
280
- }
281
 
282
- function wpcf7_default_messages_template() {
283
- $mail_sent_ok = wpcf7_default_message( 'mail_sent_ok' );
284
- $mail_sent_ng = wpcf7_default_message( 'mail_sent_ng' );
285
- $akismet_says_spam = wpcf7_default_message( 'akismet_says_spam' );
286
- $validation_error = wpcf7_default_message( 'validation_error' );
287
- $accept_terms = wpcf7_default_message( 'accept_terms' );
288
- $invalid_email = wpcf7_default_message( 'invalid_email' );
289
- $invalid_required = wpcf7_default_message( 'invalid_required' );
290
- $quiz_answer_not_correct = wpcf7_default_message( 'quiz_answer_not_correct' );
291
- $captcha_not_match = wpcf7_default_message( 'captcha_not_match' );
292
- $upload_failed = wpcf7_default_message( 'upload_failed' );
293
- $upload_file_type_invalid = wpcf7_default_message( 'upload_file_type_invalid' );
294
- $upload_file_too_large = wpcf7_default_message( 'upload_file_too_large' );
295
-
296
- return compact( 'mail_sent_ok', 'mail_sent_ng', 'akismet_says_spam',
297
- 'validation_error', 'accept_terms', 'invalid_email', 'invalid_required', 'quiz_answer_not_correct',
298
- 'captcha_not_match', 'upload_failed', 'upload_file_type_invalid', 'upload_file_too_large' );
299
- }
300
 
301
- function wpcf7_default_options_template() {
302
- $recipient = get_option( 'admin_email' ); // For backward compatibility.
303
- return compact( 'recipient' );
304
- }
305
 
306
- function wpcf7_default_pack( $title, $initial = false ) {
307
- $cf = array(
308
- 'title' => $title,
309
- 'form' => wpcf7_default_form_template(),
310
- 'mail' => wpcf7_default_mail_template(),
311
- 'mail_2' => wpcf7_default_mail_2_template(),
312
- 'messages' => wpcf7_default_messages_template(),
313
- 'options' => wpcf7_default_options_template()
314
- );
315
 
316
- if ( $initial )
317
- $cf['initial'] = true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
318
 
319
- return $cf;
 
 
 
 
 
 
 
 
 
 
320
  }
321
 
 
 
 
 
322
  function wpcf7_plugin_action_links( $links, $file ) {
323
  if ( $file != WPCF7_PLUGIN_BASENAME )
324
  return $links;
325
 
326
- if ( function_exists( 'admin_url' ) ) {
327
- $base_url = admin_url( wpcf7_admin_menu_parent() );
328
- } else {
329
- $base_url = get_option( 'siteurl' ) . '/wp-admin/' . wpcf7_admin_menu_parent();
330
- }
331
 
332
  $url = $base_url . '?page=' . plugin_basename( __FILE__ );
333
 
1
  <?php
2
 
 
 
 
 
 
 
 
 
3
  function wpcf7_admin_has_edit_cap() {
4
  return current_user_can( WPCF7_ADMIN_READ_WRITE_CAPABILITY );
5
  }
6
 
7
  function wpcf7_admin_add_pages() {
8
+ $base_url = admin_url( 'admin.php' );
 
 
 
 
9
 
10
+ $page = plugin_basename( __FILE__ );
 
11
 
12
  if ( isset( $_POST['wpcf7-save'] ) && wpcf7_admin_has_edit_cap() ) {
13
  $id = $_POST['wpcf7-id'];
14
  check_admin_referer( 'wpcf7-save_' . $id );
15
 
16
+ if ( ! $contact_form = wpcf7_contact_form( $id ) ) {
17
+ $contact_form = new WPCF7_ContactForm();
18
+ $contact_form->initial = true;
19
+ }
20
+
21
  $title = trim( $_POST['wpcf7-title'] );
22
  $form = trim( $_POST['wpcf7-form'] );
23
  $mail = array(
54
  'upload_file_too_large' => trim( $_POST['wpcf7-message-upload-file-too-large'] )
55
  );
56
  $additional_settings = trim( $_POST['wpcf7-additional-settings'] );
 
 
 
57
 
58
+ $redirect_to = $base_url . '?page=' . $page;
59
+ $redirect_to .= ( $contact_form->initial ) ? '&message=created' : '&message=saved';
60
 
61
+ $contact_form->title = $title;
62
+ $contact_form->form = $form;
63
+ $contact_form->mail = $mail;
64
+ $contact_form->mail_2 = $mail_2;
65
+ $contact_form->messages = $messages;
66
+ $contact_form->additional_settings = $additional_settings;
 
 
67
 
68
+ $contact_form->save();
69
+
70
+ $redirect_to .= '&contactform=' . $contact_form->id;
71
 
72
  wp_redirect( $redirect_to );
73
  exit();
75
  $id = $_POST['wpcf7-id'];
76
  check_admin_referer( 'wpcf7-copy_' . $id );
77
 
78
+ $redirect_to = $base_url . '?page=' . $page;
79
+
80
+ if ( $contact_form = wpcf7_contact_form( $id ) ) {
81
+ $new_contact_form = $contact_form->copy();
82
+ $new_contact_form->save();
83
+
84
+ $redirect_to .= '&contactform=' . $new_contact_form->id . '&message=created';
85
  } else {
86
+ $redirect_to .= '&contactform=' . $contact_form->id;
87
  }
88
 
89
  wp_redirect( $redirect_to );
92
  $id = $_POST['wpcf7-id'];
93
  check_admin_referer( 'wpcf7-delete_' . $id );
94
 
95
+ if ( $contact_form = wpcf7_contact_form( $id ) )
96
+ $contact_form->delete();
97
 
98
  wp_redirect( $base_url . '?page=' . $page . '&message=deleted' );
99
  exit();
100
  }
101
 
102
+ add_menu_page( __( 'Contact Form 7', 'wpcf7' ), __( 'Contact Form 7', 'wpcf7' ),
103
+ WPCF7_ADMIN_READ_CAPABILITY, __FILE__, 'wpcf7_admin_management_page' );
104
+
105
+ add_submenu_page( __FILE__, __( 'Edit Contact Forms', 'wpcf7' ), __( 'Edit', 'wpcf7' ),
106
+ WPCF7_ADMIN_READ_CAPABILITY, __FILE__, 'wpcf7_admin_management_page' );
107
  }
108
 
109
  add_action( 'admin_menu', 'wpcf7_admin_add_pages' );
141
  if ( ! is_admin() )
142
  return;
143
 
144
+ if ( 'admin.php' != $pagenow )
145
  return;
146
 
147
  if ( false === strpos( $_GET['page'], 'contact-form-7' ) )
205
  function wpcf7_admin_management_page() {
206
  global $wp_version;
207
 
208
+ $base_url = admin_url( 'admin.php' );
 
 
 
 
209
 
210
  $page = plugin_basename( __FILE__ );
211
 
228
  if ( 'new' == $_GET['contactform'] ) {
229
  $unsaved = true;
230
  $current = -1;
231
+ $cf = wpcf7_contact_form_default_pack();
232
+ } elseif ( $cf = wpcf7_contact_form( $_GET['contactform'] ) ) {
233
  $current = (int) $_GET['contactform'];
 
234
  } else {
235
+ $first = reset( $contact_forms ); // Returns first item
236
+ $current = $first->id;
237
+ $cf = wpcf7_contact_form( $current );
238
  }
239
 
240
  require_once WPCF7_PLUGIN_DIR . '/admin/admin-panel.php';
241
  }
242
 
243
+ /* Install and default settings */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
244
 
245
+ function wpcf7_install() {
246
+ global $wpdb;
 
 
 
 
 
 
247
 
248
+ $table_name = wpcf7_table_name();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
249
 
250
+ if ( $wpdb->get_var( "SHOW TABLES LIKE '$table_name'" ) == $table_name )
251
+ return; // Exists already
 
 
252
 
253
+ $charset_collate = '';
254
+ if ( $wpdb->has_cap( 'collation' ) ) {
255
+ if ( ! empty( $wpdb->charset ) )
256
+ $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
257
+ if ( ! empty( $wpdb->collate ) )
258
+ $charset_collate .= " COLLATE $wpdb->collate";
259
+ }
 
 
260
 
261
+ $wpdb->query( "CREATE TABLE IF NOT EXISTS $table_name (
262
+ cf7_unit_id bigint(20) unsigned NOT NULL auto_increment,
263
+ title varchar(200) NOT NULL default '',
264
+ form text NOT NULL,
265
+ mail text NOT NULL,
266
+ mail_2 text NOT NULL,
267
+ messages text NOT NULL,
268
+ additional_settings text NOT NULL,
269
+ PRIMARY KEY (cf7_unit_id)) $charset_collate;" );
270
+
271
+ if ( $wpdb->get_var( "SHOW TABLES LIKE '$table_name'" ) != $table_name )
272
+ return false; // Failed to create
273
+
274
+ $legacy_data = get_option( 'wpcf7' );
275
+ if ( is_array( $legacy_data ) ) {
276
+ foreach ( $legacy_data['contact_forms'] as $key => $value ) {
277
+ $wpdb->insert( $table_name, array(
278
+ 'cf7_unit_id' => $key,
279
+ 'title' => $value['title'],
280
+ 'form' => maybe_serialize( $value['form'] ),
281
+ 'mail' => maybe_serialize( $value['mail'] ),
282
+ 'mail_2' => maybe_serialize( $value['mail_2'] ),
283
+ 'messages' => maybe_serialize( $value['messages'] ),
284
+ 'additional_settings' => maybe_serialize( $value['additional_settings'] )
285
+ ), array( '%d', '%s', '%s', '%s', '%s', '%s', '%s' ) );
286
+ }
287
 
288
+ delete_option( 'wpcf7' );
289
+ } else {
290
+ wpcf7_load_plugin_textdomain();
291
+
292
+ $wpdb->insert( $table_name, array(
293
+ 'title' => __( 'Contact form', 'wpcf7' ) . ' 1',
294
+ 'form' => maybe_serialize( wpcf7_default_form_template() ),
295
+ 'mail' => maybe_serialize( wpcf7_default_mail_template() ),
296
+ 'mail_2' => maybe_serialize ( wpcf7_default_mail_2_template() ),
297
+ 'messages' => maybe_serialize( wpcf7_default_messages_template() ) ) );
298
+ }
299
  }
300
 
301
+ add_action( 'activate_' . WPCF7_PLUGIN_BASENAME, 'wpcf7_install' );
302
+
303
+ /* Misc */
304
+
305
  function wpcf7_plugin_action_links( $links, $file ) {
306
  if ( $file != WPCF7_PLUGIN_BASENAME )
307
  return $links;
308
 
309
+ $base_url = admin_url( 'admin.php' );
 
 
 
 
310
 
311
  $url = $base_url . '?page=' . plugin_basename( __FILE__ );
312
 
includes/acceptance.php DELETED
@@ -1,21 +0,0 @@
1
- <?php
2
-
3
- function wpcf7_acceptance( $contact_form ) {
4
- $fes = $contact_form->form_elements( false );
5
-
6
- $accepted = true;
7
-
8
- foreach ( $fes as $fe ) {
9
- if ( 'acceptance' != $fe['type'] )
10
- continue;
11
-
12
- $invert = (bool) preg_grep( '%^invert$%', $fe['options'] );
13
-
14
- if ( $invert && $_POST[$fe['name']] || ! $invert && ! $_POST[$fe['name']] )
15
- $accepted = false;
16
- }
17
-
18
- return $accepted;
19
- }
20
-
21
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/akismet.php DELETED
@@ -1,73 +0,0 @@
1
- <?php
2
-
3
- function wpcf7_akismet( $contact_form ) {
4
- global $akismet_api_host, $akismet_api_port;
5
-
6
- if ( ! function_exists( 'akismet_http_post' ) || ! ( get_option( 'wordpress_api_key' ) || $wpcom_api_key ) )
7
- return false;
8
-
9
- $akismet_ready = false;
10
- $author = $author_email = $author_url = $content = '';
11
- $fes = $contact_form->form_elements( false );
12
-
13
- foreach ( $fes as $fe ) {
14
- if ( ! is_array( $fe['options'] ) ) continue;
15
-
16
- if ( preg_grep( '%^akismet:author$%', $fe['options'] ) && '' == $author ) {
17
- $author = $_POST[$fe['name']];
18
- $akismet_ready = true;
19
- }
20
-
21
- if ( preg_grep( '%^akismet:author_email$%', $fe['options'] ) && '' == $author_email ) {
22
- $author_email = $_POST[$fe['name']];
23
- $akismet_ready = true;
24
- }
25
-
26
- if ( preg_grep( '%^akismet:author_url$%', $fe['options'] ) && '' == $author_url ) {
27
- $author_url = $_POST[$fe['name']];
28
- $akismet_ready = true;
29
- }
30
-
31
- if ( '' != $content )
32
- $content .= "\n\n";
33
-
34
- $content .= $_POST[$fe['name']];
35
- }
36
-
37
- if ( ! $akismet_ready )
38
- return false;
39
-
40
- $c['blog'] = get_option( 'home' );
41
- $c['user_ip'] = preg_replace( '/[^0-9., ]/', '', $_SERVER['REMOTE_ADDR'] );
42
- $c['user_agent'] = $_SERVER['HTTP_USER_AGENT'];
43
- $c['referrer'] = $_SERVER['HTTP_REFERER'];
44
- $c['comment_type'] = 'contactform7';
45
- if ( $permalink = get_permalink() )
46
- $c['permalink'] = $permalink;
47
- if ( '' != $author )
48
- $c['comment_author'] = $author;
49
- if ( '' != $author_email )
50
- $c['comment_author_email'] = $author_email;
51
- if ( '' != $author_url )
52
- $c['comment_author_url'] = $author_url;
53
- if ( '' != $content )
54
- $c['comment_content'] = $content;
55
-
56
- $ignore = array( 'HTTP_COOKIE' );
57
-
58
- foreach ( $_SERVER as $key => $value )
59
- if ( ! in_array( $key, (array) $ignore ) )
60
- $c["$key"] = $value;
61
-
62
- $query_string = '';
63
- foreach ( $c as $key => $data )
64
- $query_string .= $key . '=' . urlencode( stripslashes( $data ) ) . '&';
65
-
66
- $response = akismet_http_post( $query_string, $akismet_api_host, '/1.1/comment-check', $akismet_api_port );
67
- if ( 'true' == $response[1] )
68
- return true;
69
- else
70
- return false;
71
- }
72
-
73
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/classes.php CHANGED
@@ -2,19 +2,23 @@
2
 
3
  class WPCF7_ContactForm {
4
 
5
- var $id;
6
 
 
7
  var $title;
8
  var $form;
9
  var $mail;
10
  var $mail_2;
11
  var $messages;
12
  var $additional_settings;
13
- var $options;
14
 
15
  var $unit_tag;
16
 
17
  var $responses_count = 0;
 
 
 
 
18
 
19
  // Return true if this form is the same one as currently POSTed.
20
  function is_posted() {
@@ -35,17 +39,7 @@ class WPCF7_ContactForm {
35
  $url = parse_url( $_SERVER['REQUEST_URI'] );
36
  $url = $url['path'] . ( empty( $url['query'] ) ? '' : '?' . $url['query'] ) . '#' . $this->unit_tag;
37
 
38
- $form_elements = $this->form_elements( false );
39
- $multipart = false;
40
-
41
- foreach ( $form_elements as $form_element ) {
42
- if ( preg_match( '/^file[*]?$/', $form_element['type'] ) ) {
43
- $multipart = true;
44
- break;
45
- }
46
- }
47
-
48
- $enctype = $multipart ? ' enctype="multipart/form-data"' : '';
49
 
50
  $form .= '<form action="' . $url . '" method="post" class="wpcf7-form"' . $enctype . '>';
51
  $form .= '<div style="display: none;">';
@@ -62,9 +56,6 @@ class WPCF7_ContactForm {
62
 
63
  $form .= '</div>';
64
 
65
- if ( WPCF7_AUTOP )
66
- $form = wpcf7_wpautop_substitute( $form );
67
-
68
  return $form;
69
  }
70
 
@@ -95,458 +86,295 @@ class WPCF7_ContactForm {
95
  return '<div' . $class . '>' . $content . '</div>';
96
  }
97
 
 
 
 
 
 
 
 
98
  /* Form Elements */
99
 
100
- function form_elements( $replace = true ) {
 
 
101
  $form = $this->form;
102
 
103
- $types = 'text[*]?|email[*]?|textarea[*]?|select[*]?|checkbox[*]?|radio|acceptance|captchac|captchar|file[*]?|quiz';
104
- $regex = '%\[\s*(' . $types . ')(\s+[a-zA-Z][0-9a-zA-Z:._-]*)([-0-9a-zA-Z:#_/|\s]*)?((?:\s*(?:"[^"]*"|\'[^\']*\'))*)?\s*\]%';
105
- $submit_regex = '%\[\s*submit(\s[-0-9a-zA-Z:#_/\s]*)?(\s+(?:"[^"]*"|\'[^\']*\'))?\s*\]%';
106
- $response_regex = '%\[\s*response\s*\]%';
107
- if ( $replace ) {
108
- $form = preg_replace_callback( $regex, array( &$this, 'form_element_replace_callback' ), $form );
109
- // Submit button
110
- $form = preg_replace_callback( $submit_regex, array( &$this, 'submit_replace_callback' ), $form );
111
- // Response output
112
- $form = preg_replace_callback( $response_regex, array( &$this, 'response_replace_callback' ), $form );
113
- return $form;
114
- } else {
115
- $results = array();
116
- preg_match_all( $regex, $form, $matches, PREG_SET_ORDER );
117
- foreach ( $matches as $match ) {
118
- $results[] = (array) $this->form_element_parse( $match );
119
- }
120
- return $results;
121
- }
122
- }
123
 
124
- function form_element_replace_callback( $matches ) {
125
- global $wpdb;
126
 
127
- extract( (array) $this->form_element_parse( $matches ) ); // $type, $name, $options, $values, $raw_values
 
 
 
 
128
 
129
- if ( $this->is_posted() ) {
130
- $validation_error = $_POST['_wpcf7_validation_errors']['messages'][$name];
131
- $validation_error = $validation_error ? '<span class="wpcf7-not-valid-tip-no-ajax">' . esc_html( $validation_error ) . '</span>' : '';
132
  } else {
133
- $validation_error = '';
 
134
  }
135
 
136
- $atts = '';
137
- $options = (array) $options;
138
 
139
- $id_array = preg_grep( '%^id:[-0-9a-zA-Z_]+$%', $options );
140
- if ( $id = array_shift( $id_array ) ) {
141
- preg_match( '%^id:([-0-9a-zA-Z_]+)$%', $id, $id_matches );
142
- if ( $id = $id_matches[1] )
143
- $atts .= ' id="' . $id . '"';
144
- }
 
 
 
 
 
 
 
 
 
 
145
 
146
- $class_att = "";
147
- $class_array = preg_grep( '%^class:[-0-9a-zA-Z_]+$%', $options );
148
- foreach ( $class_array as $class ) {
149
- preg_match( '%^class:([-0-9a-zA-Z_]+)$%', $class, $class_matches );
150
- if ( $class = $class_matches[1] )
151
- $class_att .= ' ' . $class;
 
 
 
 
 
152
  }
153
 
154
- if ( preg_match( '/^email[*]?$/', $type ) )
155
- $class_att .= ' wpcf7-validates-as-email';
156
- if ( preg_match( '/[*]$/', $type ) )
157
- $class_att .= ' wpcf7-validates-as-required';
158
 
159
- if ( preg_match( '/^checkbox[*]?$/', $type ) )
160
- $class_att .= ' wpcf7-checkbox';
161
 
162
- if ( 'radio' == $type )
163
- $class_att .= ' wpcf7-radio';
 
 
164
 
165
- if ( preg_match( '/^captchac$/', $type ) )
166
- $class_att .= ' wpcf7-captcha-' . $name;
167
 
168
- if ( 'acceptance' == $type ) {
169
- $class_att .= ' wpcf7-acceptance';
170
- if ( preg_grep( '%^invert$%', $options ) )
171
- $class_att .= ' wpcf7-invert';
172
- }
173
 
174
- if ( $class_att )
175
- $atts .= ' class="' . trim( $class_att ) . '"';
176
-
177
- // Value.
178
- if ( $this->is_posted() ) {
179
- if ( isset( $_POST['_wpcf7_mail_sent'] ) && $_POST['_wpcf7_mail_sent']['ok'] )
180
- $value = '';
181
- elseif ( 'captchar' == $type )
182
- $value = '';
183
- else
184
- $value = $_POST[$name];
185
- } else {
186
- $value = $values[0];
187
- }
188
 
189
- // Default selected/checked for select/checkbox/radio
190
- if ( preg_match( '/^(?:select|checkbox|radio)[*]?$/', $type ) ) {
191
- $scr_defaults = array_values( preg_grep( '/^default:/', $options ) );
192
- preg_match( '/^default:([0-9_]+)$/', $scr_defaults[0], $scr_default_matches );
193
- $scr_default = explode( '_', $scr_default_matches[1] );
194
- }
195
 
196
- switch ( $type ) {
197
- case 'text':
198
- case 'text*':
199
- case 'email':
200
- case 'email*':
201
- case 'captchar':
202
- if ( is_array( $options ) ) {
203
- $size_maxlength_array = preg_grep( '%^[0-9]*[/x][0-9]*$%', $options );
204
- if ( $size_maxlength = array_shift( $size_maxlength_array ) ) {
205
- preg_match( '%^([0-9]*)[/x]([0-9]*)$%', $size_maxlength, $sm_matches );
206
- if ( $size = (int) $sm_matches[1] )
207
- $atts .= ' size="' . $size . '"';
208
- else
209
- $atts .= ' size="40"';
210
- if ( $maxlength = (int) $sm_matches[2] )
211
- $atts .= ' maxlength="' . $maxlength . '"';
212
- } else {
213
- $atts .= ' size="40"';
214
- }
215
- }
216
- $html = '<input type="text" name="' . $name . '" value="' . esc_attr( $value ) . '"' . $atts . ' />';
217
- $html = '<span class="wpcf7-form-control-wrap ' . $name . '">' . $html . $validation_error . '</span>';
218
- return $html;
219
- break;
220
- case 'textarea':
221
- case 'textarea*':
222
- if ( is_array( $options ) ) {
223
- $cols_rows_array = preg_grep( '%^[0-9]*[x/][0-9]*$%', $options );
224
- if ( $cols_rows = array_shift( $cols_rows_array ) ) {
225
- preg_match( '%^([0-9]*)[x/]([0-9]*)$%', $cols_rows, $cr_matches );
226
- if ( $cols = (int) $cr_matches[1] )
227
- $atts .= ' cols="' . $cols . '"';
228
- else
229
- $atts .= ' cols="40"';
230
- if ( $rows = (int) $cr_matches[2] )
231
- $atts .= ' rows="' . $rows . '"';
232
- else
233
- $atts .= ' rows="10"';
234
- } else {
235
- $atts .= ' cols="40" rows="10"';
236
- }
237
- }
238
- $html = '<textarea name="' . $name . '"' . $atts . '>' . esc_html( $value ) . '</textarea>';
239
- $html = '<span class="wpcf7-form-control-wrap ' . $name . '">' . $html . $validation_error . '</span>';
240
- return $html;
241
- break;
242
- case 'select':
243
- case 'select*':
244
- $multiple = ( preg_grep( '%^multiple$%', $options ) ) ? true : false;
245
- $include_blank = preg_grep( '%^include_blank$%', $options );
246
-
247
- if ( $empty_select = empty( $values ) || $include_blank )
248
- array_unshift( $values, '---' );
249
-
250
- $html = '';
251
- foreach ( $values as $key => $value ) {
252
- $selected = '';
253
- if ( ! $empty_select && in_array( $key + 1, (array) $scr_default ) )
254
- $selected = ' selected="selected"';
255
- if ( $this->is_posted() && (
256
- $multiple && in_array( $wpdb->escape( $value ), (array) $_POST[$name] ) ||
257
- ! $multiple && $_POST[$name] == $wpdb->escape( $value ) ) )
258
- $selected = ' selected="selected"';
259
- $html .= '<option value="' . esc_attr( $value ) . '"' . $selected . '>' . esc_html( $value ) . '</option>';
260
- }
261
 
262
- if ( $multiple )
263
- $atts .= ' multiple="multiple"';
264
-
265
- $html = '<select name="' . $name . ( $multiple ? '[]' : '' ) . '"' . $atts . '>' . $html . '</select>';
266
- $html = '<span class="wpcf7-form-control-wrap ' . $name . '">' . $html . $validation_error . '</span>';
267
- return $html;
268
- break;
269
- case 'checkbox':
270
- case 'checkbox*':
271
- case 'radio':
272
- $multiple = ( preg_match( '/^checkbox[*]?$/', $type ) && ! preg_grep( '%^exclusive$%', $options ) ) ? true : false;
273
- $html = '';
274
-
275
- if ( preg_match( '/^checkbox[*]?$/', $type ) && ! $multiple )
276
- $onclick = ' onclick="wpcf7ExclusiveCheckbox(this);"';
277
-
278
- $input_type = rtrim( $type, '*' );
279
-
280
- foreach ( $values as $key => $value ) {
281
- $checked = '';
282
- if ( in_array( $key + 1, (array) $scr_default ) )
283
- $checked = ' checked="checked"';
284
- if ( $this->is_posted() && (
285
- $multiple && in_array( $wpdb->escape( $value ), (array) $_POST[$name] ) ||
286
- ! $multiple && $_POST[$name] == $wpdb->escape( $value ) ) )
287
- $checked = ' checked="checked"';
288
- if ( preg_grep( '%^label[_-]?first$%', $options ) ) { // put label first, input last
289
- $item = '<span class="wpcf7-list-item-label">' . $value . '</span>&nbsp;';
290
- $item .= '<input type="' . $input_type . '" name="' . $name . ( $multiple ? '[]' : '' ) . '" value="' . esc_attr( $value ) . '"' . $checked . $onclick . ' />';
291
- } else {
292
- $item = '<input type="' . $input_type . '" name="' . $name . ( $multiple ? '[]' : '' ) . '" value="' . esc_attr( $value ) . '"' . $checked . $onclick . ' />';
293
- $item .= '&nbsp;<span class="wpcf7-list-item-label">' . $value . '</span>';
294
- }
295
 
296
- if ( preg_grep( '%^use[_-]?label[_-]?element$%', $options ) )
297
- $item = '<label>' . $item . '</label>';
298
 
299
- $item = '<span class="wpcf7-list-item">' . $item . '</span>';
300
- $html .= $item;
301
- }
302
 
303
- $html = '<span' . $atts . '>' . $html . '</span>';
304
- $html = '<span class="wpcf7-form-control-wrap ' . $name . '">' . $html . $validation_error . '</span>';
305
- return $html;
306
- break;
307
- case 'quiz':
308
- if ( count( $raw_values ) == 0 && count( $values ) == 0 ) { // default quiz
309
- $raw_values[] = '1+1=?|2';
310
- $values[] = '1+1=?';
311
- }
312
 
313
- $pipes = wpcf7_get_pipes( $raw_values );
314
 
315
- if ( count( $values ) == 0 ) {
316
- break;
317
- } elseif ( count( $values ) == 1 ) {
318
- $value = $values[0];
319
- } else {
320
- $value = $values[array_rand( $values )];
321
- }
322
 
323
- $answer = wpcf7_pipe( $pipes, $value );
324
- $answer = wpcf7_canonicalize( $answer );
325
-
326
- if ( is_array( $options ) ) {
327
- $size_maxlength_array = preg_grep( '%^[0-9]*[/x][0-9]*$%', $options );
328
- if ( $size_maxlength = array_shift( $size_maxlength_array ) ) {
329
- preg_match( '%^([0-9]*)[/x]([0-9]*)$%', $size_maxlength, $sm_matches );
330
- if ( $size = (int) $sm_matches[1] )
331
- $atts .= ' size="' . $size . '"';
332
- else
333
- $atts .= ' size="40"';
334
- if ( $maxlength = (int) $sm_matches[2] )
335
- $atts .= ' maxlength="' . $maxlength . '"';
336
- } else {
337
- $atts .= ' size="40"';
338
- }
339
- }
340
-
341
- $html = '<span class="wpcf7-quiz-label">' . esc_html( $value ) . '</span>&nbsp;';
342
- $html .= '<input type="text" name="' . $name . '"' . $atts . ' />';
343
- $html .= '<input type="hidden" name="_wpcf7_quiz_answer_' . $name . '" value="' . wp_hash( $answer, 'wpcf7_quiz' ) . '" />';
344
- $html = '<span class="wpcf7-form-control-wrap ' . $name . '">' . $html . $validation_error . '</span>';
345
- return $html;
346
- break;
347
- case 'acceptance':
348
- $invert = (bool) preg_grep( '%^invert$%', $options );
349
- $default = (bool) preg_grep( '%^default:on$%', $options );
350
-
351
- $onclick = ' onclick="wpcf7ToggleSubmit(this.form);"';
352
- $checked = $default ? ' checked="checked"' : '';
353
- $html = '<input type="checkbox" name="' . $name . '" value="1"' . $atts . $onclick . $checked . ' />';
354
- return $html;
355
- break;
356
- case 'captchac':
357
- if ( ! class_exists( 'ReallySimpleCaptcha' ) ) {
358
- return '<em>' . __( 'To use CAPTCHA, you need <a href="http://wordpress.org/extend/plugins/really-simple-captcha/">Really Simple CAPTCHA</a> plugin installed.', 'wpcf7' ) . '</em>';
359
- break;
360
- }
361
 
362
- $op = array();
363
- // Default
364
- $op['img_size'] = array( 72, 24 );
365
- $op['base'] = array( 6, 18 );
366
- $op['font_size'] = 14;
367
- $op['font_char_width'] = 15;
368
 
369
- $op = array_merge( $op, wpcf7_captchac_options( $options ) );
 
370
 
371
- if ( ! $filename = wpcf7_generate_captcha( $op ) ) {
372
- return '';
373
- break;
374
- }
375
- if ( is_array( $op['img_size'] ) )
376
- $atts .= ' width="' . $op['img_size'][0] . '" height="' . $op['img_size'][1] . '"';
377
- $captcha_url = trailingslashit( wpcf7_captcha_tmp_url() ) . $filename;
378
- $html = '<img alt="captcha" src="' . $captcha_url . '"' . $atts . ' />';
379
- $ref = substr( $filename, 0, strrpos( $filename, '.' ) );
380
- $html = '<input type="hidden" name="_wpcf7_captcha_challenge_' . $name . '" value="' . $ref . '" />' . $html;
381
- return $html;
382
- break;
383
- case 'file':
384
- case 'file*':
385
- $html = '<input type="file" name="' . $name . '"' . $atts . ' value="1" />';
386
- $html = '<span class="wpcf7-form-control-wrap ' . $name . '">' . $html . $validation_error . '</span>';
387
- return $html;
388
- break;
389
- }
390
- }
391
 
392
- function submit_replace_callback( $matches ) {
393
- $atts = '';
394
- $options = preg_split( '/[\s]+/', trim( $matches[1] ) );
395
 
396
- $id_array = preg_grep( '%^id:[-0-9a-zA-Z_]+$%', $options );
397
- if ( $id = array_shift( $id_array ) ) {
398
- preg_match( '%^id:([-0-9a-zA-Z_]+)$%', $id, $id_matches );
399
- if ( $id = $id_matches[1] )
400
- $atts .= ' id="' . $id . '"';
401
- }
402
 
403
- $class_att = '';
404
- $class_array = preg_grep( '%^class:[-0-9a-zA-Z_]+$%', $options );
405
- foreach ( $class_array as $class ) {
406
- preg_match( '%^class:([-0-9a-zA-Z_]+)$%', $class, $class_matches );
407
- if ( $class = $class_matches[1] )
408
- $class_att .= ' ' . $class;
409
- }
410
-
411
- if ( $class_att )
412
- $atts .= ' class="' . trim( $class_att ) . '"';
413
-
414
- if ( $matches[2] )
415
- $value = wpcf7_strip_quote( $matches[2] );
416
- if ( empty( $value ) )
417
- $value = __( 'Send', 'wpcf7' );
418
- $ajax_loader_image_url = wpcf7_plugin_url( 'images/ajax-loader.gif' );
419
-
420
- $html = '<input type="submit" value="' . esc_attr( $value ) . '"' . $atts . ' />';
421
- $html .= ' <img class="ajax-loader" style="visibility: hidden;" alt="ajax loader" src="' . $ajax_loader_image_url . '" />';
422
- return $html;
423
- }
424
 
425
- function response_replace_callback( $matches ) {
426
- $this->responses_count += 1;
427
- return $this->form_response_output();
428
- }
429
 
430
- function form_element_parse( $element ) {
431
- $type = trim( $element[1] );
432
- $name = trim( $element[2] );
433
- $options = preg_split( '/[\s]+/', trim( $element[3] ) );
434
 
435
- preg_match_all( '/"[^"]*"|\'[^\']*\'/', $element[4], $matches );
436
- $raw_values = wpcf7_strip_quote_deep( $matches[0] );
437
 
438
- if ( WPCF7_USE_PIPE && preg_match( '/^(select[*]?|checkbox[*]?|radio)$/', $type ) || 'quiz' == $type ) {
439
- $pipes = wpcf7_get_pipes( $raw_values );
440
- $values = wpcf7_get_pipe_ins( $pipes );
441
- } else {
442
- $values =& $raw_values;
443
  }
444
 
445
- return compact( 'type', 'name', 'options', 'values', 'raw_values' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
446
  }
447
 
448
- /* Validate */
449
 
450
- function validate() {
451
- $fes = $this->form_elements( false );
452
- $valid = true;
453
- $reason = array();
454
 
455
  foreach ( $fes as $fe ) {
456
- $type = $fe['type'];
457
  $name = $fe['name'];
458
- $values = $fe['values'];
459
- $raw_values = $fe['raw_values'];
460
-
461
- // Before validation corrections
462
- if ( preg_match( '/^(?:text|email|captchar|textarea)[*]?$/', $type ) )
463
- $_POST[$name] = (string) $_POST[$name];
464
-
465
- if ( preg_match( '/^(?:text|email)[*]?$/', $type ) )
466
- $_POST[$name] = trim( strtr( $_POST[$name], "\n", " " ) );
467
-
468
- if ( preg_match( '/^(?:select|checkbox|radio)[*]?$/', $type ) ) {
469
- if ( is_array( $_POST[$name] ) ) {
470
- foreach ( $_POST[$name] as $key => $value ) {
471
- $value = stripslashes( $value );
472
- if ( ! in_array( $value, (array) $values ) ) // Not in given choices.
473
- unset( $_POST[$name][$key] );
474
  }
 
475
  } else {
476
- $value = stripslashes( $_POST[$name] );
477
- if ( ! in_array( $value, (array) $values ) ) // Not in given choices.
478
- $_POST[$name] = '';
479
  }
480
  }
481
 
482
- if ( 'acceptance' == $type )
483
- $_POST[$name] = $_POST[$name] ? 1 : 0;
484
 
485
- // Required item (*)
486
- if ( preg_match( '/^(?:text|textarea)[*]$/', $type ) ) {
487
- if ( ! isset( $_POST[$name] ) || '' == $_POST[$name] ) {
488
- $valid = false;
489
- $reason[$name] = $this->message( 'invalid_required' );
490
- }
491
- }
492
 
493
- if ( 'checkbox*' == $type ) {
494
- if ( empty( $_POST[$name] ) ) {
495
- $valid = false;
496
- $reason[$name] = $this->message( 'invalid_required' );
497
- }
498
- }
499
 
500
- if ( 'select*' == $type ) {
501
- if ( empty( $_POST[$name] ) ||
502
- ! is_array( $_POST[$name] ) && '---' == $_POST[$name] ||
503
- is_array( $_POST[$name] ) && 1 == count( $_POST[$name] ) && '---' == $_POST[$name][0] ) {
504
- $valid = false;
505
- $reason[$name] = $this->message( 'invalid_required' );
506
- }
507
- }
508
 
509
- if ( preg_match( '/^email[*]?$/', $type ) ) {
510
- if ( '*' == substr( $type, -1 ) && ( ! isset( $_POST[$name] ) || '' == $_POST[$name] ) ) {
511
- $valid = false;
512
- $reason[$name] = $this->message( 'invalid_required' );
513
- } elseif ( isset( $_POST[$name] ) && '' != $_POST[$name] && ! is_email( $_POST[$name] ) ) {
514
- $valid = false;
515
- $reason[$name] = $this->message( 'invalid_email' );
516
- }
517
- }
518
 
519
- if ( preg_match( '/^captchar$/', $type ) ) {
520
- $captchac = '_wpcf7_captcha_challenge_' . $name;
521
- if ( ! wpcf7_check_captcha( $_POST[$captchac], $_POST[$name] ) ) {
522
- $valid = false;
523
- $reason[$name] = $this->message( 'captcha_not_match' );
524
- }
525
- wpcf7_remove_captcha( $_POST[$captchac] );
526
- }
527
 
528
- if ( 'quiz' == $type ) {
529
- $answer = wpcf7_canonicalize( $_POST[$name] );
530
- $answer_hash = wp_hash( $answer, 'wpcf7_quiz' );
531
- $expected_hash = $_POST['_wpcf7_quiz_answer_' . $name];
532
- if ( $answer_hash != $expected_hash ) {
533
- $valid = false;
534
- $reason[$name] = $this->message( 'quiz_answer_not_correct' );
535
- }
 
 
 
 
 
 
 
536
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
537
  }
538
- return compact( 'valid', 'reason' );
539
  }
540
 
541
  /* Message */
542
 
543
  function message( $status ) {
544
  $messages = $this->messages;
 
545
 
546
  if ( ! is_array( $messages ) || ! isset( $messages[$status] ) )
547
- return wpcf7_default_message( $status );
 
 
548
 
549
- return $messages[$status];
550
  }
551
 
552
  /* Additional settings */
@@ -576,7 +404,7 @@ class WPCF7_ContactForm {
576
 
577
  function upgrade() {
578
  if ( ! isset( $this->mail['recipient'] ) )
579
- $this->mail['recipient'] = $this->options['recipient'];
580
 
581
 
582
  if ( ! is_array( $this->messages ) )
@@ -593,6 +421,125 @@ class WPCF7_ContactForm {
593
  }
594
  }
595
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
596
  }
597
 
598
  ?>
2
 
3
  class WPCF7_ContactForm {
4
 
5
+ var $initial = false;
6
 
7
+ var $id;
8
  var $title;
9
  var $form;
10
  var $mail;
11
  var $mail_2;
12
  var $messages;
13
  var $additional_settings;
 
14
 
15
  var $unit_tag;
16
 
17
  var $responses_count = 0;
18
+ var $scanned_form_tags;
19
+
20
+ var $posted_data;
21
+ var $uploaded_files;
22
 
23
  // Return true if this form is the same one as currently POSTed.
24
  function is_posted() {
39
  $url = parse_url( $_SERVER['REQUEST_URI'] );
40
  $url = $url['path'] . ( empty( $url['query'] ) ? '' : '?' . $url['query'] ) . '#' . $this->unit_tag;
41
 
42
+ $enctype = apply_filters( 'wpcf7_form_enctype', '' );
 
 
 
 
 
 
 
 
 
 
43
 
44
  $form .= '<form action="' . $url . '" method="post" class="wpcf7-form"' . $enctype . '>';
45
  $form .= '<div style="display: none;">';
56
 
57
  $form .= '</div>';
58
 
 
 
 
59
  return $form;
60
  }
61
 
86
  return '<div' . $class . '>' . $content . '</div>';
87
  }
88
 
89
+ function validation_error( $name ) {
90
+ if ( $this->is_posted() && $ve = $_POST['_wpcf7_validation_errors']['messages'][$name] )
91
+ return '<span class="wpcf7-not-valid-tip-no-ajax">' . esc_html( $ve ) . '</span>';
92
+
93
+ return '';
94
+ }
95
+
96
  /* Form Elements */
97
 
98
+ function form_do_shortcode() {
99
+ global $wpcf7_shortcode_manager;
100
+
101
  $form = $this->form;
102
 
103
+ $form = $wpcf7_shortcode_manager->do_shortcode( $form );
104
+ $this->scanned_form_tags = $wpcf7_shortcode_manager->scanned_tags;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
105
 
106
+ if ( WPCF7_AUTOP )
107
+ $form = wpcf7_autop( $form );
108
 
109
+ return $form;
110
+ }
111
+
112
+ function form_scan_shortcode( $cond = null ) {
113
+ global $wpcf7_shortcode_manager;
114
 
115
+ if ( ! empty( $this->scanned_form_tags ) ) {
116
+ $scanned = $this->scanned_form_tags;
 
117
  } else {
118
+ $scanned = $wpcf7_shortcode_manager->scan_shortcode( $this->form );
119
+ $this->scanned_form_tags = $scanned;
120
  }
121
 
122
+ if ( empty( $scanned ) )
123
+ return null;
124
 
125
+ if ( ! is_array( $cond ) || empty( $cond ) )
126
+ return $scanned;
127
+
128
+ for ( $i = 0, $size = count( $scanned ); $i < $size; $i++ ) {
129
+
130
+ if ( is_string( $cond['type'] ) && ! empty( $cond['type'] ) ) {
131
+ if ( $scanned[$i]['type'] != $cond['type'] ) {
132
+ unset( $scanned[$i] );
133
+ continue;
134
+ }
135
+ } elseif ( is_array( $cond['type'] ) ) {
136
+ if ( ! in_array( $scanned[$i]['type'], $cond['type'] ) ) {
137
+ unset( $scanned[$i] );
138
+ continue;
139
+ }
140
+ }
141
 
142
+ if ( is_string( $cond['name'] ) && ! empty( $cond['name'] ) ) {
143
+ if ( $scanned[$i]['name'] != $cond['name'] ) {
144
+ unset ( $scanned[$i] );
145
+ continue;
146
+ }
147
+ } elseif ( is_array( $cond['name'] ) ) {
148
+ if ( ! in_array( $scanned[$i]['name'], $cond['name'] ) ) {
149
+ unset( $scanned[$i] );
150
+ continue;
151
+ }
152
+ }
153
  }
154
 
155
+ return array_values( $scanned );
156
+ }
 
 
157
 
158
+ function form_elements() {
159
+ $form = $this->form_do_shortcode();
160
 
161
+ // Response output
162
+ $response_regex = '%\[\s*response\s*\]%';
163
+ $form = preg_replace_callback( $response_regex,
164
+ array( &$this, 'response_replace_callback' ), $form );
165
 
166
+ return $form;
167
+ }
168
 
169
+ function response_replace_callback( $matches ) {
170
+ $this->responses_count += 1;
171
+ return $this->form_response_output();
172
+ }
 
173
 
174
+ /* Validate */
 
 
 
 
 
 
 
 
 
 
 
 
 
175
 
176
+ function validate() {
177
+ $fes = $this->form_scan_shortcode();
 
 
 
 
178
 
179
+ $result = array( 'valid' => true, 'reason' => array() );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
180
 
181
+ foreach ( $fes as $fe ) {
182
+ $type = $fe['type'];
183
+ $name = $fe['name'];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
184
 
185
+ if ( empty( $name ) )
186
+ continue;
187
 
188
+ $result = apply_filters( 'wpcf7_validate_' . $type, $result, $fe );
189
+ }
 
190
 
191
+ return $result;
192
+ }
 
 
 
 
 
 
 
193
 
194
+ /* Acceptance */
195
 
196
+ function accepted() {
197
+ $accepted = true;
 
 
 
 
 
198
 
199
+ return apply_filters( 'wpcf7_acceptance', $accepted );
200
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
201
 
202
+ /* Akismet */
 
 
 
 
 
203
 
204
+ function akismet() {
205
+ global $akismet_api_host, $akismet_api_port;
206
 
207
+ if ( ! function_exists( 'akismet_http_post' ) ||
208
+ ! ( get_option( 'wordpress_api_key' ) || $wpcom_api_key ) )
209
+ return false;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
210
 
211
+ $akismet_ready = false;
212
+ $author = $author_email = $author_url = $content = '';
213
+ $fes = $this->form_scan_shortcode();
214
 
215
+ foreach ( $fes as $fe ) {
216
+ if ( ! is_array( $fe['options'] ) ) continue;
 
 
 
 
217
 
218
+ if ( preg_grep( '%^akismet:author$%', $fe['options'] ) && '' == $author ) {
219
+ $author = $_POST[$fe['name']];
220
+ $akismet_ready = true;
221
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
222
 
223
+ if ( preg_grep( '%^akismet:author_email$%', $fe['options'] ) && '' == $author_email ) {
224
+ $author_email = $_POST[$fe['name']];
225
+ $akismet_ready = true;
226
+ }
227
 
228
+ if ( preg_grep( '%^akismet:author_url$%', $fe['options'] ) && '' == $author_url ) {
229
+ $author_url = $_POST[$fe['name']];
230
+ $akismet_ready = true;
231
+ }
232
 
233
+ if ( '' != $content )
234
+ $content .= "\n\n";
235
 
236
+ $content .= $_POST[$fe['name']];
 
 
 
 
237
  }
238
 
239
+ if ( ! $akismet_ready )
240
+ return false;
241
+
242
+ $c['blog'] = get_option( 'home' );
243
+ $c['user_ip'] = preg_replace( '/[^0-9., ]/', '', $_SERVER['REMOTE_ADDR'] );
244
+ $c['user_agent'] = $_SERVER['HTTP_USER_AGENT'];
245
+ $c['referrer'] = $_SERVER['HTTP_REFERER'];
246
+ $c['comment_type'] = 'contactform7';
247
+ if ( $permalink = get_permalink() )
248
+ $c['permalink'] = $permalink;
249
+ if ( '' != $author )
250
+ $c['comment_author'] = $author;
251
+ if ( '' != $author_email )
252
+ $c['comment_author_email'] = $author_email;
253
+ if ( '' != $author_url )
254
+ $c['comment_author_url'] = $author_url;
255
+ if ( '' != $content )
256
+ $c['comment_content'] = $content;
257
+
258
+ $ignore = array( 'HTTP_COOKIE' );
259
+
260
+ foreach ( $_SERVER as $key => $value )
261
+ if ( ! in_array( $key, (array) $ignore ) )
262
+ $c["$key"] = $value;
263
+
264
+ $query_string = '';
265
+ foreach ( $c as $key => $data )
266
+ $query_string .= $key . '=' . urlencode( stripslashes( $data ) ) . '&';
267
+
268
+ $response = akismet_http_post( $query_string, $akismet_api_host,
269
+ '/1.1/comment-check', $akismet_api_port );
270
+ if ( 'true' == $response[1] )
271
+ return true;
272
+ else
273
+ return false;
274
  }
275
 
276
+ /* Mail */
277
 
278
+ function mail() {
279
+ $fes = $this->form_scan_shortcode();
 
 
280
 
281
  foreach ( $fes as $fe ) {
 
282
  $name = $fe['name'];
283
+ $pipes = $fe['pipes'];
284
+
285
+ if ( empty( $name ) )
286
+ continue;
287
+
288
+ $value = $_POST[$name];
289
+
290
+ if ( WPCF7_USE_PIPE && is_a( $pipes, 'WPCF7_Pipes' ) && ! $pipes->zero() ) {
291
+ if ( is_array( $value) ) {
292
+ $new_value = array();
293
+ foreach ( $value as $v ) {
294
+ $new_value[] = $pipes->do_pipe( $v );
 
 
 
 
295
  }
296
+ $value = $new_value;
297
  } else {
298
+ $value = $pipes->do_pipe( $value );
 
 
299
  }
300
  }
301
 
302
+ $this->posted_data[$name] = $value;
303
+ }
304
 
305
+ if ( $this->compose_and_send_mail( $this->mail ) ) {
306
+ if ( $this->mail_2['active'] )
307
+ $this->compose_and_send_mail( $this->mail_2 );
 
 
 
 
308
 
309
+ return true;
310
+ }
 
 
 
 
311
 
312
+ return false;
313
+ }
 
 
 
 
 
 
314
 
315
+ function compose_and_send_mail( $mail_template ) {
316
+ $regex = '/\[\s*([a-zA-Z][0-9a-zA-Z:._-]*)\s*\]/';
317
+ $callback = array( &$this, 'mail_callback' );
 
 
 
 
 
 
318
 
319
+ $mail_subject = preg_replace_callback( $regex, $callback, $mail_template['subject'] );
320
+ $mail_sender = preg_replace_callback( $regex, $callback, $mail_template['sender'] );
321
+ $mail_body = preg_replace_callback( $regex, $callback, $mail_template['body'] );
322
+ $mail_recipient = preg_replace_callback( $regex, $callback, $mail_template['recipient'] );
 
 
 
 
323
 
324
+ $mail_headers = "From: $mail_sender\n";
325
+
326
+ if ( $mail_template['use_html'] )
327
+ $mail_headers .= "Content-Type: text/html\n";
328
+
329
+ $mail_additional_headers = preg_replace_callback( $regex, $callback,
330
+ $mail_template['additional_headers'] );
331
+ $mail_headers .= trim( $mail_additional_headers ) . "\n";
332
+
333
+ if ( $this->uploaded_files ) {
334
+ $for_this_mail = array();
335
+ foreach ( $this->uploaded_files as $name => $path ) {
336
+ if ( false === strpos( $mail_template['attachments'], "[${name}]" ) )
337
+ continue;
338
+ $for_this_mail[] = $path;
339
  }
340
+
341
+ return @wp_mail( $mail_recipient, $mail_subject, $mail_body, $mail_headers,
342
+ $for_this_mail );
343
+ } else {
344
+ return @wp_mail( $mail_recipient, $mail_subject, $mail_body, $mail_headers );
345
+ }
346
+ }
347
+
348
+ function mail_callback( $matches ) {
349
+ if ( isset( $this->posted_data[$matches[1]] ) ) {
350
+ $submitted = $this->posted_data[$matches[1]];
351
+
352
+ if ( is_array( $submitted ) )
353
+ $submitted = join( ', ', $submitted );
354
+
355
+ return stripslashes( $submitted );
356
+
357
+ } else {
358
+ // Special [wpcf7.remote_ip] tag
359
+ if ( 'wpcf7.remote_ip' == $matches[1] )
360
+ return preg_replace( '/[^0-9a-f.:, ]/', '', $_SERVER['REMOTE_ADDR'] );
361
+
362
+ return $matches[0];
363
  }
 
364
  }
365
 
366
  /* Message */
367
 
368
  function message( $status ) {
369
  $messages = $this->messages;
370
+ $message = '';
371
 
372
  if ( ! is_array( $messages ) || ! isset( $messages[$status] ) )
373
+ $message = wpcf7_default_message( $status );
374
+ else
375
+ $message = $messages[$status];
376
 
377
+ return apply_filters( 'wpcf7_display_message', $message );
378
  }
379
 
380
  /* Additional settings */
404
 
405
  function upgrade() {
406
  if ( ! isset( $this->mail['recipient'] ) )
407
+ $this->mail['recipient'] = get_option( 'admin_email' );
408
 
409
 
410
  if ( ! is_array( $this->messages ) )
421
  }
422
  }
423
 
424
+ /* Save */
425
+
426
+ function save() {
427
+ global $wpdb;
428
+
429
+ $table_name = wpcf7_table_name();
430
+
431
+ if ( $this->initial ) {
432
+ $result = $wpdb->insert( $table_name, array(
433
+ 'title' => $this->title,
434
+ 'form' => maybe_serialize( $this->form ),
435
+ 'mail' => maybe_serialize( $this->mail ),
436
+ 'mail_2' => maybe_serialize ( $this->mail_2 ),
437
+ 'messages' => maybe_serialize( $this->messages ),
438
+ 'additional_settings' => maybe_serialize( $this->additional_settings ) ) );
439
+
440
+ if ( $result ) {
441
+ $this->initial = false;
442
+ $this->id = $wpdb->insert_id;
443
+
444
+ do_action_ref_array( 'wpcf7_after_create', array( &$this ) );
445
+ } else {
446
+ return false; // Failed to save
447
+ }
448
+
449
+ } else { // Update
450
+ if ( ! (int) $this->id )
451
+ return false; // Missing ID
452
+
453
+ $result = $wpdb->update( $table_name, array(
454
+ 'title' => $this->title,
455
+ 'form' => maybe_serialize( $this->form ),
456
+ 'mail' => maybe_serialize( $this->mail ),
457
+ 'mail_2' => maybe_serialize ( $this->mail_2 ),
458
+ 'messages' => maybe_serialize( $this->messages ),
459
+ 'additional_settings' => maybe_serialize( $this->additional_settings )
460
+ ), array( 'cf7_unit_id' => absint( $this->id) ) );
461
+
462
+ if ( false !== $result ) {
463
+ do_action_ref_array( 'wpcf7_after_update', array( &$this ) );
464
+ } else {
465
+ return false; // Failed to save
466
+ }
467
+ }
468
+
469
+ do_action_ref_array( 'wpcf7_after_save', array( &$this ) );
470
+ return true; // Succeeded to save
471
+ }
472
+
473
+ function copy() {
474
+ $new = new WPCF7_ContactForm();
475
+ $new->initial = true;
476
+
477
+ $new->title = $this->title . '_copy';
478
+ $new->form = $this->form;
479
+ $new->mail = $this->mail;
480
+ $new->mail_2 = $this->mail_2;
481
+ $new->messages = $this->messages;
482
+ $new->additional_settings = $this->additional_settings;
483
+
484
+ return $new;
485
+ }
486
+
487
+ function delete() {
488
+ global $wpdb;
489
+
490
+ if ( $this->initial )
491
+ return;
492
+
493
+ $table_name = wpcf7_table_name();
494
+
495
+ $query = $wpdb->prepare(
496
+ "DELETE FROM $table_name WHERE cf7_unit_id = %d LIMIT 1",
497
+ absint( $this->id ) );
498
+
499
+ $wpdb->query( $query );
500
+
501
+ $this->initial = true;
502
+ $this->id = null;
503
+ }
504
+ }
505
+
506
+ function wpcf7_contact_form( $id ) {
507
+ global $wpdb;
508
+
509
+ $table_name = wpcf7_table_name();
510
+
511
+ $id = (int) $id;
512
+
513
+ $query = $wpdb->prepare( "SELECT * FROM $table_name WHERE cf7_unit_id = %d", $id );
514
+
515
+ if ( ! $row = $wpdb->get_row( $query ) )
516
+ return false; // No data
517
+
518
+ $contact_form = new WPCF7_ContactForm();
519
+ $contact_form->id = $row->cf7_unit_id;
520
+ $contact_form->title = stripslashes_deep( $row->title );
521
+ $contact_form->form = stripslashes_deep( maybe_unserialize( $row->form ) );
522
+ $contact_form->mail = stripslashes_deep( maybe_unserialize( $row->mail ) );
523
+ $contact_form->mail_2 = stripslashes_deep( maybe_unserialize( $row->mail_2 ) );
524
+ $contact_form->messages = stripslashes_deep( maybe_unserialize( $row->messages ) );
525
+ $contact_form->additional_settings = stripslashes_deep( maybe_unserialize( $row->additional_settings ) );
526
+
527
+ $contact_form->upgrade();
528
+
529
+ return $contact_form;
530
+ }
531
+
532
+ function wpcf7_contact_form_default_pack() {
533
+ $contact_form = new WPCF7_ContactForm();
534
+ $contact_form->initial = true;
535
+
536
+ $contact_form->title = __( 'Untitled', 'wpcf7' );
537
+ $contact_form->form = wpcf7_default_form_template();
538
+ $contact_form->mail = wpcf7_default_mail_template();
539
+ $contact_form->mail_2 = wpcf7_default_mail_2_template();
540
+ $contact_form->messages = wpcf7_default_messages_template();
541
+
542
+ return $contact_form;
543
  }
544
 
545
  ?>
includes/formatting.php CHANGED
@@ -1,10 +1,13 @@
1
  <?php
2
 
3
- function wpcf7_wpautop_substitute( $pee, $br = 1 ) {
 
 
4
  $pee = $pee . "\n"; // just to make things a little easier, pad the end
5
  $pee = preg_replace( '|<br />\s*<br />|', "\n\n", $pee );
6
  // Space things out a little
7
- $allblocks = '(?:table|thead|tfoot|caption|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|form|map|area|blockquote|address|math|style|p|h[1-6]|hr)';
 
8
  $pee = preg_replace( '!(<' . $allblocks . '[^>]*>)!', "\n$1", $pee );
9
  $pee = preg_replace( '!(</' . $allblocks . '>)!', "$1\n\n", $pee );
10
  $pee = str_replace( array( "\r\n", "\r" ), "\n", $pee ); // cross-platform newlines
@@ -18,9 +21,8 @@ function wpcf7_wpautop_substitute( $pee, $br = 1 ) {
18
  $pee = '';
19
  foreach ( $pees as $tinkle )
20
  $pee .= '<p>' . trim( $tinkle, "\n" ) . "</p>\n";
21
- $pee = preg_replace( '|<p>\s*?</p>|', '', $pee ); // under certain strange conditions it could create a P of entirely whitespace
22
- $pee = preg_replace( '!<p>([^<]+)\s*?(</(?:div|address|form)[^>]*>)!', "<p>$1</p>$2", $pee );
23
- $pee = preg_replace( '|<p>|', "$1<p>", $pee );
24
  $pee = preg_replace( '!<p>\s*(</?' . $allblocks . '[^>]*>)\s*</p>!', "$1", $pee ); // don't pee all over a tag
25
  $pee = preg_replace( "|<p>(<li.+?)</p>|", "$1", $pee ); // problem with nested lists
26
  $pee = preg_replace( '|<p><blockquote([^>]*)>|i', "<blockquote$1><p>", $pee );
@@ -28,18 +30,19 @@ function wpcf7_wpautop_substitute( $pee, $br = 1 ) {
28
  $pee = preg_replace( '!<p>\s*(</?' . $allblocks . '[^>]*>)!', "$1", $pee );
29
  $pee = preg_replace( '!(</?' . $allblocks . '[^>]*>)\s*</p>!', "$1", $pee );
30
  if ( $br ) {
31
- $pee = preg_replace_callback( '/<(script|style).*?<\/\\1>/s', create_function( '$matches', 'return str_replace("\n", "<WPPreserveNewline />", $matches[0]);' ), $pee );
 
32
  $pee = preg_replace( '|(?<!<br />)\s*\n|', "<br />\n", $pee ); // optionally make line breaks
33
  $pee = str_replace( '<WPPreserveNewline />', "\n", $pee );
34
  }
35
  $pee = preg_replace( '!(</?' . $allblocks . '[^>]*>)\s*<br />!', "$1", $pee );
36
  $pee = preg_replace( '!<br />(\s*</?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)[^>]*>)!', '$1', $pee );
37
  if ( strpos( $pee, '<pre' ) !== false )
38
- $pee = preg_replace_callback( '!(<pre.*?>)(.*?)</pre>!is', 'clean_pre', $pee );
39
  $pee = preg_replace( "|\n</p>$|", '</p>', $pee );
40
-
41
- if ( function_exists( 'get_shortcode_regex' ) )
42
- $pee = preg_replace( '/<p>\s*?(' . get_shortcode_regex() . ')\s*<\/p>/s', '$1', $pee ); // don't auto-p wrap shortcodes that stand alone
43
 
44
  return $pee;
45
  }
1
  <?php
2
 
3
+ function wpcf7_autop( $pee, $br = 1 ) {
4
+ if ( trim($pee) === '' )
5
+ return '';
6
  $pee = $pee . "\n"; // just to make things a little easier, pad the end
7
  $pee = preg_replace( '|<br />\s*<br />|', "\n\n", $pee );
8
  // Space things out a little
9
+ /* wpcf7: removed select and input */
10
+ $allblocks = '(?:table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|form|map|area|blockquote|address|math|style|p|h[1-6]|hr)';
11
  $pee = preg_replace( '!(<' . $allblocks . '[^>]*>)!', "\n$1", $pee );
12
  $pee = preg_replace( '!(</' . $allblocks . '>)!', "$1\n\n", $pee );
13
  $pee = str_replace( array( "\r\n", "\r" ), "\n", $pee ); // cross-platform newlines
21
  $pee = '';
22
  foreach ( $pees as $tinkle )
23
  $pee .= '<p>' . trim( $tinkle, "\n" ) . "</p>\n";
24
+ $pee = preg_replace( '|<p>\s*</p>|', '', $pee ); // under certain strange conditions it could create a P of entirely whitespace
25
+ $pee = preg_replace( '!<p>([^<]+)</(div|address|form)>!', "<p>$1</p></$2>", $pee );
 
26
  $pee = preg_replace( '!<p>\s*(</?' . $allblocks . '[^>]*>)\s*</p>!', "$1", $pee ); // don't pee all over a tag
27
  $pee = preg_replace( "|<p>(<li.+?)</p>|", "$1", $pee ); // problem with nested lists
28
  $pee = preg_replace( '|<p><blockquote([^>]*)>|i', "<blockquote$1><p>", $pee );
30
  $pee = preg_replace( '!<p>\s*(</?' . $allblocks . '[^>]*>)!', "$1", $pee );
31
  $pee = preg_replace( '!(</?' . $allblocks . '[^>]*>)\s*</p>!', "$1", $pee );
32
  if ( $br ) {
33
+ /* wpcf7: add textarea */
34
+ $pee = preg_replace_callback( '/<(script|style|textarea).*?<\/\\1>/s', create_function( '$matches', 'return str_replace("\n", "<WPPreserveNewline />", $matches[0]);' ), $pee );
35
  $pee = preg_replace( '|(?<!<br />)\s*\n|', "<br />\n", $pee ); // optionally make line breaks
36
  $pee = str_replace( '<WPPreserveNewline />', "\n", $pee );
37
  }
38
  $pee = preg_replace( '!(</?' . $allblocks . '[^>]*>)\s*<br />!', "$1", $pee );
39
  $pee = preg_replace( '!<br />(\s*</?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)[^>]*>)!', '$1', $pee );
40
  if ( strpos( $pee, '<pre' ) !== false )
41
+ $pee = preg_replace_callback( '!(<pre[^>]*>)(.*?)</pre>!is', 'clean_pre', $pee );
42
  $pee = preg_replace( "|\n</p>$|", '</p>', $pee );
43
+ /* wpcf7: replaced to wpcf7_get_shortcode_regex ( -> comment out) */
44
+ // don't auto-p wrap shortcodes that stand alone
45
+ // $pee = preg_replace( '/<p>\s*?(' . wpcf7_get_shortcode_regex() . ')\s*<\/p>/s', '$1', $pee );
46
 
47
  return $pee;
48
  }
includes/functions.php CHANGED
@@ -29,6 +29,55 @@ function wpcf7_default_message( $status ) {
29
  }
30
  }
31
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
  function wpcf7_upload_dir( $type = false ) {
33
  $siteurl = get_option( 'siteurl' );
34
  $upload_path = trim( get_option( 'upload_path' ) );
@@ -79,4 +128,46 @@ function wpcf7_upload_tmp_dir() {
79
  return wpcf7_upload_dir( 'dir' ) . '/wpcf7_uploads';
80
  }
81
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
82
  ?>
29
  }
30
  }
31
 
32
+ function wpcf7_default_form_template() {
33
+ $template .= '<p>' . __( 'Your Name', 'wpcf7' ) . ' ' . __( '(required)', 'wpcf7' ) . '<br />' . "\n";
34
+ $template .= ' [text* your-name] </p>' . "\n\n";
35
+ $template .= '<p>' . __( 'Your Email', 'wpcf7' ) . ' ' . __( '(required)', 'wpcf7' ) . '<br />' . "\n";
36
+ $template .= ' [email* your-email] </p>' . "\n\n";
37
+ $template .= '<p>' . __( 'Subject', 'wpcf7' ) . '<br />' . "\n";
38
+ $template .= ' [text your-subject] </p>' . "\n\n";
39
+ $template .= '<p>' . __( 'Your Message', 'wpcf7' ) . '<br />' . "\n";
40
+ $template .= ' [textarea your-message] </p>' . "\n\n";
41
+ $template .= '<p>[submit "' . __( 'Send', 'wpcf7' ) . '"]</p>';
42
+ return $template;
43
+ }
44
+
45
+ function wpcf7_default_mail_template() {
46
+ $subject = '[your-subject]';
47
+ $sender = '[your-name] <[your-email]>';
48
+ $body = '[your-message]';
49
+ $recipient = get_option( 'admin_email' );
50
+ return compact( 'subject', 'sender', 'body', 'recipient' );
51
+ }
52
+
53
+ function wpcf7_default_mail_2_template() {
54
+ $active = false;
55
+ $subject = '[your-subject]';
56
+ $sender = '[your-name] <[your-email]>';
57
+ $body = '[your-message]';
58
+ $recipient = '[your-email]';
59
+ return compact( 'active', 'subject', 'sender', 'body', 'recipient' );
60
+ }
61
+
62
+ function wpcf7_default_messages_template() {
63
+ $mail_sent_ok = wpcf7_default_message( 'mail_sent_ok' );
64
+ $mail_sent_ng = wpcf7_default_message( 'mail_sent_ng' );
65
+ $akismet_says_spam = wpcf7_default_message( 'akismet_says_spam' );
66
+ $validation_error = wpcf7_default_message( 'validation_error' );
67
+ $accept_terms = wpcf7_default_message( 'accept_terms' );
68
+ $invalid_email = wpcf7_default_message( 'invalid_email' );
69
+ $invalid_required = wpcf7_default_message( 'invalid_required' );
70
+ $quiz_answer_not_correct = wpcf7_default_message( 'quiz_answer_not_correct' );
71
+ $captcha_not_match = wpcf7_default_message( 'captcha_not_match' );
72
+ $upload_failed = wpcf7_default_message( 'upload_failed' );
73
+ $upload_file_type_invalid = wpcf7_default_message( 'upload_file_type_invalid' );
74
+ $upload_file_too_large = wpcf7_default_message( 'upload_file_too_large' );
75
+
76
+ return compact( 'mail_sent_ok', 'mail_sent_ng', 'akismet_says_spam',
77
+ 'validation_error', 'accept_terms', 'invalid_email', 'invalid_required', 'quiz_answer_not_correct',
78
+ 'captcha_not_match', 'upload_failed', 'upload_file_type_invalid', 'upload_file_too_large' );
79
+ }
80
+
81
  function wpcf7_upload_dir( $type = false ) {
82
  $siteurl = get_option( 'siteurl' );
83
  $upload_path = trim( get_option( 'upload_path' ) );
128
  return wpcf7_upload_dir( 'dir' ) . '/wpcf7_uploads';
129
  }
130
 
131
+ function wpcf7_json( $items ) {
132
+ if ( is_array( $items ) ) {
133
+ if ( empty( $items ) )
134
+ return 'null';
135
+
136
+ $keys = array_keys( $items );
137
+ $all_int = true;
138
+ foreach ( $keys as $key ) {
139
+ if ( ! is_int( $key ) ) {
140
+ $all_int = false;
141
+ break;
142
+ }
143
+ }
144
+
145
+ if ( $all_int ) {
146
+ $children = array();
147
+ foreach ( $items as $item ) {
148
+ $children[] = wpcf7_json( $item );
149
+ }
150
+ return '[' . join( ', ', $children ) . ']';
151
+ } else { // Object
152
+ $children = array();
153
+ foreach ( $items as $key => $item ) {
154
+ $key = esc_js( (string) $key );
155
+ if ( preg_match( '/[^a-zA-Z]/', $key ) )
156
+ $key = '"' . $key . '"';
157
+
158
+ $children[] = $key . ': ' . wpcf7_json( $item );
159
+ }
160
+ return '{ ' . join( ', ', $children ) . ' }';
161
+ }
162
+ } elseif ( is_numeric( $items ) ) {
163
+ return (string) $items;
164
+ } elseif ( is_bool( $items ) ) {
165
+ return $items ? '1' : '0';
166
+ } elseif ( is_null( $items ) ) {
167
+ return 'null';
168
+ } else {
169
+ return '"' . esc_js( (string) $items ) . '"';
170
+ }
171
+ }
172
+
173
  ?>
includes/mail.php DELETED
@@ -1,70 +0,0 @@
1
- <?php
2
-
3
- function wpcf7_mail( $contact_form, $files = array() ) {
4
- global $wpcf7_posted_data;
5
-
6
- $wpcf7_posted_data = $_POST;
7
-
8
- if ( WPCF7_USE_PIPE ) {
9
- wpcf7_pipe_all_posted( $contact_form );
10
- }
11
-
12
- if ( wpcf7_compose_and_send_mail( $contact_form->mail, $files ) ) {
13
- if ( $contact_form->mail_2['active'] )
14
- wpcf7_compose_and_send_mail( $contact_form->mail_2, $files );
15
-
16
- return true;
17
- }
18
-
19
- return false;
20
- }
21
-
22
- function wpcf7_compose_and_send_mail( $mail_template, $attachments = array() ) {
23
- $regex = '/\[\s*([a-zA-Z][0-9a-zA-Z:._-]*)\s*\]/';
24
- $callback = 'wpcf7_mail_callback';
25
- $mail_subject = preg_replace_callback( $regex, $callback, $mail_template['subject'] );
26
- $mail_sender = preg_replace_callback( $regex, $callback, $mail_template['sender'] );
27
- $mail_body = preg_replace_callback( $regex, $callback, $mail_template['body'] );
28
- $mail_recipient = preg_replace_callback( $regex, $callback, $mail_template['recipient'] );
29
-
30
- $mail_headers = "From: $mail_sender\n";
31
-
32
- if ( $mail_template['use_html'] )
33
- $mail_headers .= "Content-Type: text/html\n";
34
-
35
- $mail_additional_headers = preg_replace_callback( $regex, $callback, $mail_template['additional_headers'] );
36
- $mail_headers .= trim($mail_additional_headers) . "\n";
37
-
38
- if ( $attachments ) {
39
- $for_this_mail = array();
40
- foreach ( $attachments as $name => $path ) {
41
- if ( false === strpos( $mail_template['attachments'], "[${name}]" ) )
42
- continue;
43
- $for_this_mail[] = $path;
44
- }
45
- return @wp_mail( $mail_recipient, $mail_subject, $mail_body, $mail_headers, $for_this_mail );
46
- } else {
47
- return @wp_mail( $mail_recipient, $mail_subject, $mail_body, $mail_headers );
48
- }
49
- }
50
-
51
- function wpcf7_mail_callback( $matches ) {
52
- global $wpcf7_posted_data;
53
-
54
- if ( isset( $wpcf7_posted_data[$matches[1]] ) ) {
55
- $submitted = $wpcf7_posted_data[$matches[1]];
56
-
57
- if ( is_array( $submitted ) )
58
- $submitted = join( ', ', $submitted );
59
- return stripslashes( $submitted );
60
- } else {
61
-
62
- // Special [wpcf7.remote_ip] tag
63
- if ( 'wpcf7.remote_ip' == $matches[1] )
64
- return preg_replace( '/[^0-9a-f.:, ]/', '', $_SERVER['REMOTE_ADDR'] );
65
-
66
- return $matches[0];
67
- }
68
- }
69
-
70
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/pipe.php CHANGED
@@ -1,72 +1,66 @@
1
  <?php
2
 
3
- function wpcf7_pipe( $pipes, $value ) {
4
- if ( is_array( $value ) ) {
5
- $results = array();
6
- foreach ( $value as $k => $v ) {
7
- $results[$k] = wpcf7_pipe( $pipes, $v );
8
- }
9
- return $results;
10
- }
11
-
12
- foreach ( $pipes as $p ) {
13
- if ( $p[0] == $value )
14
- return $p[1];
15
- }
16
 
17
- return $value;
18
- }
19
 
20
- function wpcf7_get_pipe_ins( $pipes ) {
21
- $ins = array();
22
- foreach ( $pipes as $pipe ) {
23
- $in = $pipe[0];
24
- if ( ! in_array( $in, $ins ) )
25
- $ins[] = $in;
 
 
26
  }
27
- return $ins;
28
  }
29
 
30
- function wpcf7_get_pipes( $values ) {
31
- $pipes = array();
32
 
33
- foreach ( $values as $value ) {
34
- $pipe_pos = strpos( $value, '|' );
35
- if ( false === $pipe_pos ) {
36
- $before = $after = $value;
37
- } else {
38
- $before = substr( $value, 0, $pipe_pos );
39
- $after = substr( $value, $pipe_pos + 1 );
40
- }
41
 
42
- $pipes[] = array( $before, $after );
43
- }
 
44
 
45
- return $pipes;
46
- }
 
 
47
 
48
- function wpcf7_pipe_all_posted( $contact_form ) {
49
- global $wpcf7_posted_data;
 
 
50
 
51
- $all_pipes = array();
 
 
 
 
 
 
52
 
53
- $fes = $contact_form->form_elements( false );
54
- foreach ( $fes as $fe ) {
55
- $type = $fe['type'];
56
- $name = $fe['name'];
57
- $raw_values = $fe['raw_values'];
58
 
59
- if ( ! preg_match( '/^(select[*]?|checkbox[*]?|radio)$/', $type ) )
60
- continue;
 
61
 
62
- $pipes = wpcf7_get_pipes( $raw_values );
 
63
 
64
- $all_pipes[$name] = array_merge( $pipes, (array) $all_pipes[$name] );
 
65
  }
66
 
67
- foreach ( $all_pipes as $name => $pipes ) {
68
- if ( isset( $wpcf7_posted_data[$name] ) )
69
- $wpcf7_posted_data[$name] = wpcf7_pipe( $pipes, $wpcf7_posted_data[$name] );
 
 
70
  }
71
  }
72
 
1
  <?php
2
 
3
+ class WPCF7_Pipe {
 
 
 
 
 
 
 
 
 
 
 
 
4
 
5
+ var $before = '';
6
+ var $after = '';
7
 
8
+ function WPCF7_Pipe( $text ) {
9
+ $pipe_pos = strpos( $text, '|' );
10
+ if ( false === $pipe_pos ) {
11
+ $this->before = $this->after = $text;
12
+ } else {
13
+ $this->before = substr( $text, 0, $pipe_pos );
14
+ $this->after = substr( $text, $pipe_pos + 1 );
15
+ }
16
  }
 
17
  }
18
 
19
+ class WPCF7_Pipes {
 
20
 
21
+ var $pipes = array();
 
 
 
 
 
 
 
22
 
23
+ function WPCF7_Pipes( $texts ) {
24
+ if ( ! is_array( $texts ) )
25
+ return;
26
 
27
+ foreach ( $texts as $text ) {
28
+ $this->add_pipe( $text );
29
+ }
30
+ }
31
 
32
+ function add_pipe( $text ) {
33
+ $pipe = new WPCF7_Pipe( $text );
34
+ $this->pipes[] = $pipe;
35
+ }
36
 
37
+ function do_pipe( $before ) {
38
+ foreach ( $this->pipes as $pipe ) {
39
+ if ( $pipe->before == $before )
40
+ return $pipe->after;
41
+ }
42
+ return $before;
43
+ }
44
 
45
+ function collect_befores() {
46
+ $befores = array();
 
 
 
47
 
48
+ foreach ( $this->pipes as $pipe ) {
49
+ $befores[] = $pipe->before;
50
+ }
51
 
52
+ return $befores;
53
+ }
54
 
55
+ function zero() {
56
+ return empty( $this->pipes );
57
  }
58
 
59
+ function random_pipe() {
60
+ if ( $this->zero() )
61
+ return null;
62
+
63
+ return $this->pipes[array_rand( $this->pipes )];
64
  }
65
  }
66
 
includes/quiz.php DELETED
@@ -1,34 +0,0 @@
1
- <?php
2
-
3
- function wpcf7_refill_quiz( $contact_form ) {
4
- $fes = $contact_form->form_elements( false );
5
- $refill = array();
6
-
7
- foreach ( $fes as $fe ) {
8
- $type = $fe['type'];
9
- $name = $fe['name'];
10
- $values = $fe['values'];
11
- $raw_values = $fe['raw_values'];
12
-
13
- if ( 'quiz' != $type )
14
- continue;
15
-
16
- if ( count( $values ) == 0 )
17
- continue;
18
-
19
- if ( count( $values ) == 1 )
20
- $question = $values[0];
21
- else
22
- $question = $values[array_rand( $values )];
23
-
24
- $pipes = wpcf7_get_pipes( $raw_values );
25
- $answer = wpcf7_pipe( $pipes, $question );
26
- $answer = wpcf7_canonicalize( $answer );
27
-
28
- $refill[$name] = array( $question, wp_hash( $answer, 'wpcf7_quiz' ) );
29
- }
30
-
31
- return $refill;
32
- }
33
-
34
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/shortcodes.php ADDED
@@ -0,0 +1,146 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class WPCF7_ShortcodeManager {
4
+
5
+ var $shortcode_tags = array();
6
+
7
+ // Taggs scanned at the last time of do_shortcode()
8
+ var $scanned_tags = null;
9
+
10
+ // Executing shortcodes (true) or just scanning (false)
11
+ var $exec = true;
12
+
13
+ function add_shortcode( $tag, $func, $has_name = false ) {
14
+ if ( is_callable( $func ) )
15
+ $this->shortcode_tags[$tag] = array(
16
+ 'function' => $func,
17
+ 'has_name' => (boolean) $has_name );
18
+ }
19
+
20
+ function remove_shortcode( $tag ) {
21
+ unset( $this->shortcode_tags[$tag] );
22
+ }
23
+
24
+ function do_shortcode( $content, $exec = true ) {
25
+ $this->exec = (bool) $exec;
26
+ $this->scanned_tags = array();
27
+
28
+ if ( empty( $this->shortcode_tags ) || ! is_array( $this->shortcode_tags) )
29
+ return $content;
30
+
31
+ $pattern = $this->get_shortcode_regex();
32
+ return preg_replace_callback( '/' . $pattern . '/s',
33
+ array(&$this, 'do_shortcode_tag'), $content );
34
+ }
35
+
36
+ function scan_shortcode( $content ) {
37
+ $this->do_shortcode( $content, false );
38
+ return $this->scanned_tags;
39
+ }
40
+
41
+ function get_shortcode_regex() {
42
+ $tagnames = array_keys( $this->shortcode_tags );
43
+ $tagregexp = join( '|', array_map( 'preg_quote', $tagnames ) );
44
+
45
+ return '(.?)\[(' . $tagregexp . ')(?:\s(.*?))?(?:(\/))?\](?:(.+?)\[\/\2\])?(.?)';
46
+ }
47
+
48
+ function do_shortcode_tag( $m ) {
49
+ // allow [[foo]] syntax for escaping a tag
50
+ if ( $m[1] == '[' && $m[6] == ']' ) {
51
+ return substr( $m[0], 1, -1 );
52
+ }
53
+
54
+ $tag = $m[2];
55
+ $attr = $this->shortcode_parse_atts( $m[3] );
56
+
57
+ $scanned_tag = array();
58
+ $scanned_tag['type'] = $tag;
59
+
60
+ if ( is_array( $attr ) ) {
61
+ if ( is_array( $attr['options'] ) && ! empty( $attr['options'] ) ) {
62
+ if ( $this->shortcode_tags[$tag]['has_name'] )
63
+ $scanned_tag['name'] = array_shift( $attr['options'] );
64
+ $scanned_tag['options'] = $attr['options'];
65
+ }
66
+ $scanned_tag['raw_values'] = (array) $attr['values'];
67
+
68
+ if ( WPCF7_USE_PIPE ) {
69
+ $pipes = new WPCF7_Pipes( $scanned_tag['raw_values'] );
70
+ $scanned_tag['values'] = $pipes->collect_befores();
71
+ $scanned_tag['pipes'] = $pipes;
72
+ } else {
73
+ $scanned_tag['values'] = $scanned_tag['raw_values'];
74
+ }
75
+
76
+ } else {
77
+ $scanned_tag['attr'] = $attr;
78
+ }
79
+
80
+ $content = trim( $m[5] );
81
+ $content = preg_replace( "/<br\s*\/?>$/m", '', $content );
82
+ $scanned_tag['content'] = $content;
83
+
84
+ $this->scanned_tags[] = $scanned_tag;
85
+
86
+ $func = $this->shortcode_tags[$tag]['function'];
87
+
88
+ if ( $this->exec ) {
89
+ $scanned_tag = apply_filters( 'wpcf7_form_tag', $scanned_tag );
90
+ return $m[1] . call_user_func( $func, $scanned_tag ) . $m[6];
91
+ } else {
92
+ return $m[0];
93
+ }
94
+ }
95
+
96
+ function shortcode_parse_atts( $text ) {
97
+ $atts = array();
98
+ $text = preg_replace( "/[\x{00a0}\x{200b}]+/u", " ", $text );
99
+ $text = stripcslashes( trim( $text ) );
100
+
101
+ $pattern = '%^([-0-9a-zA-Z:.#_/|\s]*?)((?:\s*"[^"]*"|\s*\'[^\']*\')*)$%';
102
+
103
+ if ( preg_match( $pattern, $text, $match ) ) {
104
+ if ( ! empty( $match[1] ) ) {
105
+ $atts['options'] = preg_split( '/[\s]+/', trim( $match[1] ) );
106
+ }
107
+ if ( ! empty( $match[2] ) ) {
108
+ preg_match_all( '/"[^"]*"|\'[^\']*\'/', $match[2], $matched_values );
109
+ $atts['values'] = wpcf7_strip_quote_deep( $matched_values[0] );
110
+ }
111
+ } else {
112
+ $atts = $text;
113
+ }
114
+
115
+ return $atts;
116
+ }
117
+
118
+ }
119
+
120
+ $wpcf7_shortcode_manager = new WPCF7_ShortcodeManager();
121
+
122
+ function wpcf7_add_shortcode( $tag, $func, $has_name = false ) {
123
+ global $wpcf7_shortcode_manager;
124
+
125
+ return $wpcf7_shortcode_manager->add_shortcode( $tag, $func, $has_name );
126
+ }
127
+
128
+ function wpcf7_remove_shortcode( $tag ) {
129
+ global $wpcf7_shortcode_manager;
130
+
131
+ return $wpcf7_shortcode_manager->remove_shortcode( $tag );
132
+ }
133
+
134
+ function wpcf7_do_shortcode( $content ) {
135
+ global $wpcf7_shortcode_manager;
136
+
137
+ return $wpcf7_shortcode_manager->do_shortcode( $content );
138
+ }
139
+
140
+ function wpcf7_get_shortcode_regex() {
141
+ global $wpcf7_shortcode_manager;
142
+
143
+ return $wpcf7_shortcode_manager->get_shortcode_regex();
144
+ }
145
+
146
+ ?>
includes/upload.php DELETED
@@ -1,148 +0,0 @@
1
- <?php
2
-
3
- function wpcf7_handle_uploads( $contact_form ) {
4
- $files = array();
5
- $valid = true;
6
- $reason = array();
7
-
8
- $uploads_dir = null;
9
-
10
- $fes = $contact_form->form_elements( false );
11
-
12
- foreach ( $fes as $fe ) {
13
- if ( 'file' != $fe['type'] && 'file*' != $fe['type'] )
14
- continue;
15
-
16
- $name = $fe['name'];
17
- $options = (array) $fe['options'];
18
-
19
- $file = $_FILES[$name];
20
-
21
- if ( empty( $file['tmp_name'] ) && 'file*' == $fe['type'] ) {
22
- $valid = false;
23
- $reason[$name] = $contact_form->message( 'invalid_required' );
24
- continue;
25
- }
26
-
27
- if ( ! is_uploaded_file( $file['tmp_name'] ) )
28
- continue;
29
-
30
- /* File type validation */
31
-
32
- $pattern = '';
33
- if ( $allowed_types_options = preg_grep( '%^filetypes:%', $options ) ) {
34
- foreach ( $allowed_types_options as $allowed_types_option ) {
35
- if ( preg_match( '%^filetypes:(.+)$%', $allowed_types_option, $matches ) ) {
36
- $file_types = explode( '|', $matches[1] );
37
- foreach ( $file_types as $file_type ) {
38
- $file_type = trim( $file_type, '.' );
39
- $file_type = str_replace( array( '.', '+', '*', '?' ), array( '\.', '\+', '\*', '\?' ), $file_type );
40
- $pattern .= '|' . $file_type;
41
- }
42
- }
43
- }
44
- }
45
-
46
- // Default file-type restriction
47
- if ( '' == $pattern )
48
- $pattern = 'jpg|jpeg|png|gif|pdf|doc|docx|ppt|pptx|odt|avi|ogg|m4a|mov|mp3|mp4|mpg|wav|wmv';
49
-
50
- $pattern = trim( $pattern, '|' );
51
- $pattern = '(' . $pattern . ')';
52
- $pattern = '/\.' . $pattern . '$/i';
53
- if ( ! preg_match( $pattern, $file['name'] ) ) {
54
- $valid = false;
55
- $reason[$name] = $contact_form->message( 'upload_file_type_invalid' );
56
- continue;
57
- }
58
-
59
- /* File size validation */
60
-
61
- $allowed_size = 1048576; // default size 1 MB
62
- if ( $allowed_size_options = preg_grep( '%^limit:%', $options ) ) {
63
- $allowed_size_option = array_shift( $allowed_size_options );
64
- preg_match( '/^limit:([1-9][0-9]*)([kKmM]?[bB])?$/', $allowed_size_option, $matches );
65
- $allowed_size = (int) $matches[1];
66
-
67
- $kbmb = strtolower( $matches[2] );
68
- if ( 'kb' == $kbmb ) {
69
- $allowed_size *= 1024;
70
- } elseif ( 'mb' == $kbmb ) {
71
- $allowed_size *= 1024 * 1024;
72
- }
73
- }
74
-
75
- if ( $file['size'] > $allowed_size ) {
76
- $valid = false;
77
- $reason[$name] = $contact_form->message( 'upload_file_too_large' );
78
- continue;
79
- }
80
-
81
- if ( ! $uploads_dir ) {
82
- $uploads_dir = wpcf7_upload_tmp_dir();
83
- wpcf7_init_uploads(); // Confirm upload dir
84
- }
85
-
86
- $filename = wp_unique_filename( $uploads_dir, $file['name'] );
87
-
88
- // If you get script file, it's a danger. Make it TXT file.
89
- if ( preg_match( '/\.(php|pl|py|rb|cgi)\d?$/', $filename ) )
90
- $filename .= '.txt';
91
-
92
- $new_file = trailingslashit( $uploads_dir ) . $filename;
93
- if ( false === @move_uploaded_file( $file['tmp_name'], $new_file ) ) {
94
- $valid = false;
95
- $reason[$name] = $contact_form->message( 'upload_failed' );
96
- continue;
97
- }
98
-
99
- // Make sure the uploaded file is only readable for the owner process
100
- @chmod( $new_file, 0400 );
101
-
102
- $files[$name] = $new_file;
103
- }
104
-
105
- $validation = compact( 'valid', 'reason' );
106
-
107
- return compact( 'files', 'validation' );
108
- }
109
-
110
- function wpcf7_init_uploads() {
111
- $dir = wpcf7_upload_tmp_dir();
112
- wp_mkdir_p( trailingslashit( $dir ) );
113
- @chmod( $dir, 0733 );
114
-
115
- $htaccess_file = trailingslashit( $dir ) . '.htaccess';
116
- if ( file_exists( $htaccess_file ) )
117
- return;
118
-
119
- if ( $handle = @fopen( $htaccess_file, 'w' ) ) {
120
- fwrite( $handle, "Deny from all\n" );
121
- fclose( $handle );
122
- }
123
- }
124
-
125
- function wpcf7_cleanup_upload_files() {
126
- $dir = trailingslashit( wpcf7_upload_tmp_dir() );
127
-
128
- if ( ! is_dir( $dir ) )
129
- return false;
130
- if ( ! is_readable( $dir ) )
131
- return false;
132
- if ( ! is_writable( $dir ) )
133
- return false;
134
-
135
- if ( $handle = @opendir( $dir ) ) {
136
- while ( false !== ( $file = readdir( $handle ) ) ) {
137
- if ( $file == "." || $file == ".." || $file == ".htaccess" )
138
- continue;
139
-
140
- $stat = stat( $dir . $file );
141
- if ( $stat['mtime'] + 60 < time() ) // 60 secs
142
- @unlink( $dir . $file );
143
- }
144
- closedir( $handle );
145
- }
146
- }
147
-
148
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
languages/wpcf7-el.mo ADDED
Binary file
languages/wpcf7-el.po ADDED
@@ -0,0 +1,468 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: wpcf7-el\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2009-05-31 23:05+0900\n"
6
+ "PO-Revision-Date: \n"
7
+ "Last-Translator: Πρόδρομος Τσαλικίδης <pr.tsalikidis@gmail.com>\n"
8
+ "Language-Team: <http://friedlich.wordpress.com>\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Poedit-Language: Greek\n"
13
+ "X-Poedit-Country: GREECE/ CYPRUS\n"
14
+ "X-Poedit-SourceCharset: utf-8\n"
15
+
16
+ #: contact-form-7/wp-contact-form-7.php:373
17
+ msgid "Contact form"
18
+ msgstr "Φόρμα επικοινωνίας"
19
+
20
+ #: contact-form-7/admin/admin-panel.php:6
21
+ #: contact-form-7/admin/admin.php:111
22
+ msgid "Contact Form 7"
23
+ msgstr "Contact Form 7"
24
+
25
+ #: contact-form-7/admin/admin-panel.php:21
26
+ msgid "Add new"
27
+ msgstr "Προσθήκη νέας"
28
+
29
+ #: contact-form-7/admin/admin-panel.php:43
30
+ msgid "Copy this code and paste it into your post, page or text widget content."
31
+ msgstr "Αντιγράψτε αυτόν τον κώδικα και επικολλήστε τον στο περιεχόμενο του άρθρου ή της σελίδας σας ή μιας μονάδας κειμένου."
32
+
33
+ #: contact-form-7/admin/admin-panel.php:50
34
+ #: contact-form-7/admin/admin-panel.php:290
35
+ msgid "Save"
36
+ msgstr "Αποθήκευση"
37
+
38
+ #: contact-form-7/admin/admin-panel.php:57
39
+ msgid "Copy"
40
+ msgstr "Αντιγραφή"
41
+
42
+ #: contact-form-7/admin/admin-panel.php:61
43
+ msgid "Delete"
44
+ msgstr "Διαγραφή"
45
+
46
+ #: contact-form-7/admin/admin-panel.php:63
47
+ msgid ""
48
+ "You are about to delete this contact form.\n"
49
+ " 'Cancel' to stop, 'OK' to delete."
50
+ msgstr ""
51
+ "Είστε έτοιμος να διαγράψετε αυτή τη φόρμα επικοινωνίας.\n"
52
+ " 'ΟΚ' για διαγραφή."
53
+
54
+ #: contact-form-7/admin/admin-panel.php:78
55
+ msgid "Form"
56
+ msgstr "Φόρμα"
57
+
58
+ #: contact-form-7/admin/admin-panel.php:98
59
+ msgid "Mail"
60
+ msgstr "Mail"
61
+
62
+ #: contact-form-7/admin/admin-panel.php:105
63
+ #: contact-form-7/admin/admin-panel.php:161
64
+ msgid "To:"
65
+ msgstr "Προς:"
66
+
67
+ #: contact-form-7/admin/admin-panel.php:109
68
+ #: contact-form-7/admin/admin-panel.php:165
69
+ msgid "From:"
70
+ msgstr "Από:"
71
+
72
+ #: contact-form-7/admin/admin-panel.php:113
73
+ #: contact-form-7/admin/admin-panel.php:169
74
+ msgid "Subject:"
75
+ msgstr "Θέμα:"
76
+
77
+ #: contact-form-7/admin/admin-panel.php:118
78
+ #: contact-form-7/admin/admin-panel.php:174
79
+ msgid "Additional headers:"
80
+ msgstr "Επιπρόσθετα headers:"
81
+
82
+ #: contact-form-7/admin/admin-panel.php:122
83
+ #: contact-form-7/admin/admin-panel.php:178
84
+ msgid "File attachments:"
85
+ msgstr "Συνημμένα αρχεία:"
86
+
87
+ #: contact-form-7/admin/admin-panel.php:124
88
+ #: contact-form-7/admin/admin-panel.php:180
89
+ msgid "(You need WordPress 2.7 or greater to use this feature)"
90
+ msgstr "(Χρειάζεστε το WordPress 2.7 ή μεταγενέστερο για να χρησιμοποιήσετε αυτό το χαρακτηριστικό.)"
91
+
92
+ #: contact-form-7/admin/admin-panel.php:132
93
+ #: contact-form-7/admin/admin-panel.php:188
94
+ msgid "Use HTML content type"
95
+ msgstr "Αποστολή σε μορφή HTML"
96
+
97
+ #: contact-form-7/admin/admin-panel.php:137
98
+ #: contact-form-7/admin/admin-panel.php:193
99
+ msgid "Message body:"
100
+ msgstr "Σώμα μηνύματος:"
101
+
102
+ #: contact-form-7/admin/admin-panel.php:148
103
+ msgid "Mail (2)"
104
+ msgstr "Mail (2)"
105
+
106
+ #: contact-form-7/admin/admin-panel.php:155
107
+ msgid "Use mail (2)"
108
+ msgstr "Χρήση mail (2)"
109
+
110
+ #: contact-form-7/admin/admin-panel.php:204
111
+ msgid "Messages"
112
+ msgstr "Μηνύματα"
113
+
114
+ #: contact-form-7/admin/admin-panel.php:212
115
+ msgid "Sender's message was sent successfully"
116
+ msgstr "Το μήνυμα του αποστολέα στάλθηκε επιτυχώς."
117
+
118
+ #: contact-form-7/admin/admin-panel.php:216
119
+ msgid "Sender's message was failed to send"
120
+ msgstr "Το μήνυμα του αποστολέα απέτυχε να σταλεί."
121
+
122
+ #: contact-form-7/admin/admin-panel.php:220
123
+ msgid "Akismet judged the sending activity as spamming"
124
+ msgstr "Το Akismet θεώρησε την ενέργεια αποστολής ανεπιθύμητη."
125
+
126
+ #: contact-form-7/admin/admin-panel.php:224
127
+ msgid "Validation errors occurred"
128
+ msgstr "Συνέβησαν σφάλματα εγκυρότητας."
129
+
130
+ #: contact-form-7/admin/admin-panel.php:228
131
+ msgid "There is a field that sender is needed to fill in"
132
+ msgstr "Υπάρχει πεδίο που ο αποστολέας πρέπει να συμπληρώσει."
133
+
134
+ #: contact-form-7/admin/admin-panel.php:232
135
+ msgid "Email address that sender entered is invalid"
136
+ msgstr "Η διεύθυνση email που εισήγαγε ο αποστολέας είναι άκυρη."
137
+
138
+ #: contact-form-7/admin/admin-panel.php:236
139
+ msgid "There is a field of term that sender is needed to accept"
140
+ msgstr "Υπάρχει πεδίο όρων που ο αποστολέας πρέπει να αποδεχθεί."
141
+
142
+ #: contact-form-7/admin/admin-panel.php:240
143
+ msgid "Sender doesn't enter the correct answer to the quiz"
144
+ msgstr "Ο αποστολέας δεν εισάγει την σωστή απάντηση στο κουΐζ."
145
+
146
+ #: contact-form-7/admin/admin-panel.php:244
147
+ msgid "The code that sender entered does not match the CAPTCHA"
148
+ msgstr "Ο κώδικας που εισήγαγε ο αποστολέας δεν ταιριάζει με το CAPTCHA."
149
+
150
+ #: contact-form-7/admin/admin-panel.php:248
151
+ msgid "Uploading a file fails for any reason"
152
+ msgstr "Αποτυχία μεταφοράς αρχείου για οποιονδήποτε λόγο."
153
+
154
+ #: contact-form-7/admin/admin-panel.php:252
155
+ msgid "Uploaded file is not allowed file type"
156
+ msgstr "Ο τύπος αρχείου που μεταφέρθηκε δεν είναι επιτρεπτός."
157
+
158
+ #: contact-form-7/admin/admin-panel.php:256
159
+ msgid "Uploaded file is too large"
160
+ msgstr "Το αρχείο που μεταφέρθηκε είναι πολύ μεγάλο."
161
+
162
+ #: contact-form-7/admin/admin-panel.php:269
163
+ msgid "Additional Settings"
164
+ msgstr "Επιπρόσθετες ρυθμίσεις"
165
+
166
+ #: contact-form-7/admin/admin.php:157
167
+ msgid "optional"
168
+ msgstr "προαιρετικό"
169
+
170
+ #: contact-form-7/admin/admin.php:158
171
+ msgid "Generate Tag"
172
+ msgstr "Δημιουργία ετικέτας"
173
+
174
+ #: contact-form-7/admin/admin.php:159
175
+ msgid "Text field"
176
+ msgstr "Πεδίο κειμένου"
177
+
178
+ #: contact-form-7/admin/admin.php:160
179
+ msgid "Email field"
180
+ msgstr "Πεδίο email"
181
+
182
+ #: contact-form-7/admin/admin.php:161
183
+ msgid "Text area"
184
+ msgstr "Περιοχή κειμένου"
185
+
186
+ #: contact-form-7/admin/admin.php:162
187
+ msgid "Drop-down menu"
188
+ msgstr "Αναδιπλούμενο μενού"
189
+
190
+ #: contact-form-7/admin/admin.php:163
191
+ msgid "Checkboxes"
192
+ msgstr "Checkboxes"
193
+
194
+ #: contact-form-7/admin/admin.php:164
195
+ msgid "Radio buttons"
196
+ msgstr "Radio buttons"
197
+
198
+ #: contact-form-7/admin/admin.php:165
199
+ msgid "Acceptance"
200
+ msgstr "Αποδοχή"
201
+
202
+ #: contact-form-7/admin/admin.php:166
203
+ msgid "Make this checkbox checked by default?"
204
+ msgstr "Το checkbox να είναι σημειωμένο εκ προεπιλογής;"
205
+
206
+ #: contact-form-7/admin/admin.php:167
207
+ msgid "Make this checkbox work inversely?"
208
+ msgstr "Αντίστροφη λειτουργία του checkbox;"
209
+
210
+ #: contact-form-7/admin/admin.php:168
211
+ msgid "* That means visitor who accepts the term unchecks it."
212
+ msgstr "* Αυτό σημαίνει ότι ο επισκέπτης που αποδέχεται τους όρους το αποσημειώνει."
213
+
214
+ #: contact-form-7/admin/admin.php:169
215
+ msgid "CAPTCHA"
216
+ msgstr "CAPTCHA"
217
+
218
+ #: contact-form-7/admin/admin.php:170
219
+ msgid "Quiz"
220
+ msgstr "Κουΐζ"
221
+
222
+ #: contact-form-7/admin/admin.php:171
223
+ msgid "Quizzes"
224
+ msgstr "Κουΐζ"
225
+
226
+ #: contact-form-7/admin/admin.php:172
227
+ msgid "* quiz|answer (e.g. 1+1=?|2)"
228
+ msgstr "* κουΐζ|απάντηση (πχ. 1+1=?|2)"
229
+
230
+ #: contact-form-7/admin/admin.php:173
231
+ msgid "File upload"
232
+ msgstr "Μεταφορά αρχείου"
233
+
234
+ #: contact-form-7/admin/admin.php:174
235
+ msgid "bytes"
236
+ msgstr "bytes"
237
+
238
+ #: contact-form-7/admin/admin.php:175
239
+ msgid "Submit button"
240
+ msgstr "Πλήκτρο υποβολής"
241
+
242
+ #: contact-form-7/admin/admin.php:176
243
+ msgid "Name"
244
+ msgstr "Όνομα"
245
+
246
+ #: contact-form-7/admin/admin.php:177
247
+ msgid "Required field?"
248
+ msgstr "Υποχρεωτικό πεδίο;"
249
+
250
+ #: contact-form-7/admin/admin.php:178
251
+ msgid "Allow multiple selections?"
252
+ msgstr "Επιτρέπονται πολλαπλές επιλογές;"
253
+
254
+ #: contact-form-7/admin/admin.php:179
255
+ msgid "Insert a blank item as the first option?"
256
+ msgstr "Εισαγωγή ενός κενού αντικειμένου ως πρώτη επιλογή;"
257
+
258
+ #: contact-form-7/admin/admin.php:180
259
+ msgid "Make checkboxes exclusive?"
260
+ msgstr "Τα checkboxes να είναι μονής επιλογής;"
261
+
262
+ #: contact-form-7/admin/admin.php:181
263
+ msgid "Choices"
264
+ msgstr "Επιλογές"
265
+
266
+ #: contact-form-7/admin/admin.php:182
267
+ msgid "Label"
268
+ msgstr "Κείμενο πλήκτρου"
269
+
270
+ #: contact-form-7/admin/admin.php:183
271
+ msgid "Default value"
272
+ msgstr "Προεπιλεγμένη τιμή"
273
+
274
+ #: contact-form-7/admin/admin.php:184
275
+ msgid "Akismet"
276
+ msgstr "Akismet"
277
+
278
+ #: contact-form-7/admin/admin.php:185
279
+ msgid "This field requires author's name"
280
+ msgstr "Αυτό το πεδίο απαιτεί το όνομα του συντάκτη."
281
+
282
+ #: contact-form-7/admin/admin.php:186
283
+ msgid "This field requires author's URL"
284
+ msgstr "Αυτό το πεδίο απαιτεί το URL του συντάκτη."
285
+
286
+ #: contact-form-7/admin/admin.php:187
287
+ msgid "This field requires author's email address"
288
+ msgstr "Αυτό το πεδίο απαιτεί τη διεύθυνση email του συντάκτη."
289
+
290
+ #: contact-form-7/admin/admin.php:188
291
+ msgid "Copy this code and paste it into the form left."
292
+ msgstr "Αντιγράψτε τον κώδικα και επικολλήστε τον στη φόρμα αριστερά."
293
+
294
+ #: contact-form-7/admin/admin.php:189
295
+ msgid "Foreground color"
296
+ msgstr "Χρώμα προσκηνίου"
297
+
298
+ #: contact-form-7/admin/admin.php:190
299
+ msgid "Background color"
300
+ msgstr "Χρώμα φόντου"
301
+
302
+ #: contact-form-7/admin/admin.php:191
303
+ msgid "Image size"
304
+ msgstr "Μέγεθος εικόνας"
305
+
306
+ #: contact-form-7/admin/admin.php:192
307
+ msgid "Small"
308
+ msgstr "Μικρό"
309
+
310
+ #: contact-form-7/admin/admin.php:193
311
+ msgid "Medium"
312
+ msgstr "Μεσαίο"
313
+
314
+ #: contact-form-7/admin/admin.php:194
315
+ msgid "Large"
316
+ msgstr "Μεγάλο"
317
+
318
+ #: contact-form-7/admin/admin.php:195
319
+ msgid "Image settings"
320
+ msgstr "Ρυθμίσεις εικόνας"
321
+
322
+ #: contact-form-7/admin/admin.php:196
323
+ msgid "Input field settings"
324
+ msgstr "Ρυθμίσεις πεδίου εισαγωγής"
325
+
326
+ #: contact-form-7/admin/admin.php:197
327
+ msgid "For image"
328
+ msgstr "Για την εικόνα"
329
+
330
+ #: contact-form-7/admin/admin.php:198
331
+ msgid "For input field"
332
+ msgstr "Για το πεδίο εισαγωγής"
333
+
334
+ #: contact-form-7/admin/admin.php:199
335
+ msgid "* One choice per line."
336
+ msgstr "* Μία επιλογή ανά γραμμή."
337
+
338
+ #: contact-form-7/admin/admin.php:200
339
+ msgid "Show"
340
+ msgstr "Εμφάνιση"
341
+
342
+ #: contact-form-7/admin/admin.php:201
343
+ msgid "Hide"
344
+ msgstr "Απόκρυψη"
345
+
346
+ #: contact-form-7/admin/admin.php:202
347
+ msgid "File size limit"
348
+ msgstr "Όριο μεγέθους αρχείου"
349
+
350
+ #: contact-form-7/admin/admin.php:203
351
+ msgid "Acceptable file types"
352
+ msgstr "Επιτρεπόμενοι τύποι αρχείων"
353
+
354
+ #: contact-form-7/admin/admin.php:204
355
+ msgid "Note: To use CAPTCHA, you need Really Simple CAPTCHA plugin installed."
356
+ msgstr "Σημείωση: Για να χρησιμοποιήσετε το CAPTCHA, πρέπει να έχετε εγκατεστημένο το πρόσθετο Really Simple CAPTCHA."
357
+
358
+ #: contact-form-7/admin/admin.php:223
359
+ msgid "Contact form created."
360
+ msgstr "Η φόρμα επικοινωνίας δημιουργήθηκε."
361
+
362
+ #: contact-form-7/admin/admin.php:226
363
+ msgid "Contact form saved."
364
+ msgstr "Η φόρμα επικοινωνίας αποθηκεύτηκε."
365
+
366
+ #: contact-form-7/admin/admin.php:229
367
+ msgid "Contact form deleted."
368
+ msgstr "Η φόρμα επικοινωνίας διαγράφηκε."
369
+
370
+ #: contact-form-7/admin/admin.php:240
371
+ msgid "Untitled"
372
+ msgstr "Χωρίς τίτλο"
373
+
374
+ #: contact-form-7/admin/admin.php:253
375
+ msgid "Your Name"
376
+ msgstr "Το όνομά σας"
377
+
378
+ #: contact-form-7/admin/admin.php:253
379
+ #: contact-form-7/admin/admin.php:255
380
+ msgid "(required)"
381
+ msgstr "(απαραίτητο)"
382
+
383
+ #: contact-form-7/admin/admin.php:255
384
+ msgid "Your Email"
385
+ msgstr "Το email σας"
386
+
387
+ #: contact-form-7/admin/admin.php:257
388
+ msgid "Subject"
389
+ msgstr "Θέμα"
390
+
391
+ #: contact-form-7/admin/admin.php:259
392
+ msgid "Your Message"
393
+ msgstr "Το μήνυμά σας"
394
+
395
+ #: contact-form-7/admin/admin.php:261
396
+ #: contact-form-7/includes/classes.php:411
397
+ msgid "Send"
398
+ msgstr "Αποστολή"
399
+
400
+ #: contact-form-7/admin/admin.php:334
401
+ msgid "Settings"
402
+ msgstr "Ρυθμίσεις"
403
+
404
+ #: contact-form-7/admin/admin.php:355
405
+ msgid "Contact Form 7 needs your support. Please donate today."
406
+ msgstr "Contact Form 7 needs your support. Please donate today."
407
+
408
+ #: contact-form-7/admin/admin.php:356
409
+ msgid "Is this plugin useful for you? If you like it, please help the developer."
410
+ msgstr "Is this plugin useful for you? If you like it, please help the developer."
411
+
412
+ #: contact-form-7/admin/admin.php:357
413
+ msgid "Your contribution is needed for making this plugin better."
414
+ msgstr "Your contribution is needed for making this plugin better."
415
+
416
+ #: contact-form-7/admin/admin.php:358
417
+ msgid "Developing a plugin and providing user support is really hard work. Please help."
418
+ msgstr "Developing a plugin and providing user support is really hard work. Please help."
419
+
420
+ #: contact-form-7/includes/classes.php:352
421
+ msgid "To use CAPTCHA, you need <a href=\"http://wordpress.org/extend/plugins/really-simple-captcha/\">Really Simple CAPTCHA</a> plugin installed."
422
+ msgstr "Για να χρησιμοποιήσετε CAPTCHA, χρειάζεται να έχετε εγκατεστημένο το πρόσθετο <a href=\"http://wordpress.org/extend/plugins/really-simple-captcha/\">Really Simple CAPTCHA</a>."
423
+
424
+ #: contact-form-7/includes/functions.php:6
425
+ msgid "Your message was sent successfully. Thanks."
426
+ msgstr "Το μήνυμά σας στάλθηκε επιτυχώς. Ευχαριστούμε."
427
+
428
+ #: contact-form-7/includes/functions.php:8
429
+ #: contact-form-7/includes/functions.php:10
430
+ msgid "Failed to send your message. Please try later or contact administrator by other way."
431
+ msgstr "Αποτυχία κατά την αποστολή του μηνύματός σας. Παρακαλώ δοκιμάστε αργότερα ή επικοινωνήστε με το διαχειριστή με άλλον τρόπο."
432
+
433
+ #: contact-form-7/includes/functions.php:12
434
+ msgid "Validation errors occurred. Please confirm the fields and submit it again."
435
+ msgstr "Συνέβησαν σφάλματα εγκυρότητας. Παρακαλώ ελέγξτε τα πεδία και υποβάλλετε το μήνυμα ξανά."
436
+
437
+ #: contact-form-7/includes/functions.php:14
438
+ msgid "Please accept the terms to proceed."
439
+ msgstr "Παρακαλώ αποδεχθείτε τους όρους για να συνεχίσετε."
440
+
441
+ #: contact-form-7/includes/functions.php:16
442
+ msgid "Email address seems invalid."
443
+ msgstr "Η διεύθυνση email δείχνει άκυρη."
444
+
445
+ #: contact-form-7/includes/functions.php:18
446
+ msgid "Please fill the required field."
447
+ msgstr "Παρακαλώ συμπληρώστε τα απαραίτητα πεδία."
448
+
449
+ #: contact-form-7/includes/functions.php:20
450
+ msgid "Your entered code is incorrect."
451
+ msgstr "Ο κωδικός που εισάγατε δεν είναι σωστός."
452
+
453
+ #: contact-form-7/includes/functions.php:22
454
+ msgid "Your answer is not correct."
455
+ msgstr "Η απάντησή σας δεν είναι σωστή."
456
+
457
+ #: contact-form-7/includes/functions.php:24
458
+ msgid "Failed to upload file."
459
+ msgstr "Αποτυχία κατά τη μεταφορά του αρχείου."
460
+
461
+ #: contact-form-7/includes/functions.php:26
462
+ msgid "This file type is not allowed."
463
+ msgstr "Αυτός ο τύπος αρχείου δεν είναι επιτρεπτός."
464
+
465
+ #: contact-form-7/includes/functions.php:28
466
+ msgid "This file is too large."
467
+ msgstr "Το αρχείο είναι πολύ μεγάλο."
468
+
languages/wpcf7-el_EL.mo DELETED
Binary file
languages/wpcf7-el_EL.po DELETED
@@ -1,288 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: Contact Form 7 Greek translation\n"
4
- "POT-Creation-Date: 2007-10-24 13:47+0900\n"
5
- "PO-Revision-Date: 2008-10-13 16:03+0200\n"
6
- "Last-Translator: Mouratidis Nick <mouridis@freemail.gr>\n"
7
- "Language-Team: Mouratidis Nick <mouridis@freemail.gr>\n"
8
- "MIME-Version: 1.0\n"
9
- "Content-Type: text/plain; charset=utf-8\n"
10
- "Content-Transfer-Encoding: 8bit\n"
11
- "X-Poedit-SourceCharset: utf-8\n"
12
- "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_c\n"
13
- "X-Poedit-Basepath: ../..\n"
14
- "X-Poedit-Language: Greek\n"
15
- "X-Poedit-Country: GREECE\n"
16
- "X-Poedit-SearchPath-0: contact-form-7\n"
17
-
18
- #: contact-form-7/wp-contact-form-7.php:251
19
- msgid "Contact form"
20
- msgstr "Φόρμα επικοινωνίας"
21
-
22
- #: contact-form-7/wp-contact-form-7.php:336
23
- #: contact-form-7/includes/admin-panel.php:5
24
- msgid "Contact Form 7"
25
- msgstr "Contact Form 7"
26
-
27
- #: contact-form-7/wp-contact-form-7.php:352
28
- msgid "optional"
29
- msgstr "προαιρετικό"
30
-
31
- #: contact-form-7/wp-contact-form-7.php:353
32
- msgid "Generate Tag"
33
- msgstr "Δημιουργία Tag"
34
-
35
- #: contact-form-7/wp-contact-form-7.php:354
36
- msgid "Text field"
37
- msgstr "Πεδίο κειμένου"
38
-
39
- #: contact-form-7/wp-contact-form-7.php:355
40
- msgid "Email field"
41
- msgstr "Πεδίο email"
42
-
43
- #: contact-form-7/wp-contact-form-7.php:356
44
- msgid "Text area"
45
- msgstr "Περιοχή κειμένου"
46
-
47
- #: contact-form-7/wp-contact-form-7.php:357
48
- msgid "Drop-down menu"
49
- msgstr "Αναδιπλούμενο μενού"
50
-
51
- #: contact-form-7/wp-contact-form-7.php:358
52
- msgid "Checkboxes"
53
- msgstr "Checkboxes"
54
-
55
- #: contact-form-7/wp-contact-form-7.php:359
56
- msgid "Radio buttons"
57
- msgstr "Radio buttons"
58
-
59
- #: contact-form-7/wp-contact-form-7.php:360
60
- msgid "CAPTCHA"
61
- msgstr "CAPTCHA"
62
-
63
- #: contact-form-7/wp-contact-form-7.php:361
64
- msgid "Submit button"
65
- msgstr "Κουμπί υποβολής"
66
-
67
- #: contact-form-7/wp-contact-form-7.php:362
68
- msgid "Name"
69
- msgstr "Όνομα"
70
-
71
- #: contact-form-7/wp-contact-form-7.php:363
72
- msgid "Required field?"
73
- msgstr "Υποχρεωτικό πεδίο;"
74
-
75
- #: contact-form-7/wp-contact-form-7.php:364
76
- msgid "Allow multiple selections?"
77
- msgstr "Να επιτρέπεται η πολλαπλή επιλογή;"
78
-
79
- #: contact-form-7/wp-contact-form-7.php:365
80
- msgid "Insert a blank item as the first option?"
81
- msgstr "Εισαγωγή κενού αντικειμένου ως πρώτη επιλογή;"
82
-
83
- #: contact-form-7/wp-contact-form-7.php:366
84
- msgid "Make checkboxes exclusive?"
85
- msgstr "Μετατροπή των checkboxes σε μονής επιλογής;"
86
-
87
- #: contact-form-7/wp-contact-form-7.php:367
88
- msgid "Choices"
89
- msgstr "Επιλογές"
90
-
91
- #: contact-form-7/wp-contact-form-7.php:368
92
- msgid "Label"
93
- msgstr "Ετικέτα"
94
-
95
- #: contact-form-7/wp-contact-form-7.php:369
96
- msgid "Default value"
97
- msgstr "Προεπιλεγμένη τιμή"
98
-
99
- #: contact-form-7/wp-contact-form-7.php:370
100
- msgid "Akismet"
101
- msgstr "Akismet"
102
-
103
- #: contact-form-7/wp-contact-form-7.php:371
104
- msgid "This field requires author's name"
105
- msgstr "Αυτό το πεδίο απαιτεί το όνομα του συντάκτη"
106
-
107
- #: contact-form-7/wp-contact-form-7.php:372
108
- msgid "This field requires author's URL"
109
- msgstr "Αυτό το πεδίο απαιτεί το URL του συντάκτη"
110
-
111
- #: contact-form-7/wp-contact-form-7.php:373
112
- msgid "This field requires author's email address"
113
- msgstr "Αυτό το πεδίο απαιτεί το email του συντάκτη"
114
-
115
- #: contact-form-7/wp-contact-form-7.php:374
116
- msgid "Copy and paste this code into the form"
117
- msgstr "Αντιγράψτε και επικολλήστε αυτόν τον κώδικα στην φόρμα"
118
-
119
- #: contact-form-7/wp-contact-form-7.php:375
120
- msgid "Foreground color"
121
- msgstr "Χρώμα στο προσκήνιο"
122
-
123
- #: contact-form-7/wp-contact-form-7.php:376
124
- msgid "Background color"
125
- msgstr "Χρώμα στο φόντο"
126
-
127
- #: contact-form-7/wp-contact-form-7.php:377
128
- msgid "Image size"
129
- msgstr "Μέγεθος εικόνας"
130
-
131
- #: contact-form-7/wp-contact-form-7.php:378
132
- msgid "Small"
133
- msgstr "Μικρό"
134
-
135
- #: contact-form-7/wp-contact-form-7.php:379
136
- msgid "Medium"
137
- msgstr "Μέτριο"
138
-
139
- #: contact-form-7/wp-contact-form-7.php:380
140
- msgid "Large"
141
- msgstr "Μεγάλο"
142
-
143
- #: contact-form-7/wp-contact-form-7.php:381
144
- msgid "Image settings"
145
- msgstr "Ρυθμίσεις εικόνας"
146
-
147
- #: contact-form-7/wp-contact-form-7.php:382
148
- msgid "Input field settings"
149
- msgstr "Ρυθμίσεις πεδίου εισαγωγής"
150
-
151
- #: contact-form-7/wp-contact-form-7.php:383
152
- msgid "For image"
153
- msgstr "Για την εικόνα"
154
-
155
- #: contact-form-7/wp-contact-form-7.php:384
156
- msgid "For input field"
157
- msgstr "Για το πεδίο εισαγωγής"
158
-
159
- #: contact-form-7/wp-contact-form-7.php:385
160
- msgid "* One choice per line."
161
- msgstr "* Μια επιλογή ανα γραμμή."
162
-
163
- #: contact-form-7/wp-contact-form-7.php:404
164
- msgid "Contact form created."
165
- msgstr "Η φόρμα επικοινωνίας δημιουργήθηκε."
166
-
167
- #: contact-form-7/wp-contact-form-7.php:407
168
- msgid "Contact form saved."
169
- msgstr "Η φόρμα επικοινωνίας αποθηκεύτηκε."
170
-
171
- #: contact-form-7/wp-contact-form-7.php:410
172
- msgid "Contact form deleted."
173
- msgstr "Η φόρμα επικοινωνίας διαγράφηκε."
174
-
175
- #: contact-form-7/wp-contact-form-7.php:417
176
- msgid "Untitled"
177
- msgstr "Χωρίς όνομα"
178
-
179
- #: contact-form-7/wp-contact-form-7.php:441
180
- msgid "Your Name"
181
- msgstr "Το Όνομά σας"
182
-
183
- #: contact-form-7/wp-contact-form-7.php:441
184
- #: contact-form-7/wp-contact-form-7.php:443
185
- msgid "(required)"
186
- msgstr "(υποχρεωτικό)"
187
-
188
- #: contact-form-7/wp-contact-form-7.php:443
189
- msgid "Your Email"
190
- msgstr "Το Email σας"
191
-
192
- #: contact-form-7/wp-contact-form-7.php:445
193
- msgid "Subject"
194
- msgstr "Θέμα"
195
-
196
- #: contact-form-7/wp-contact-form-7.php:447
197
- msgid "Your Message"
198
- msgstr "Το Μήνυμά σας"
199
-
200
- #: contact-form-7/wp-contact-form-7.php:449
201
- #: contact-form-7/wp-contact-form-7.php:893
202
- msgid "Send"
203
- msgstr "Αποστολή"
204
-
205
- #: contact-form-7/wp-contact-form-7.php:478
206
- msgid "Your message was sent successfully. Thanks."
207
- msgstr "Το μήνυμά σας στάλθηκε με επιτυχία. Ευχαριστούμε."
208
-
209
- #: contact-form-7/wp-contact-form-7.php:480
210
- msgid "Failed to send your message. Please try later or contact administrator by other way."
211
- msgstr "Η αποστολή του μηνύματος απέτυχε. Δοκιμάστε αργότερα ή επικοινωνήστε με τον διαχειριστή με κάποιον άλλο τρόπο."
212
-
213
- #: contact-form-7/wp-contact-form-7.php:482
214
- msgid "Validation errors occurred. Please confirm the fields and submit it again."
215
- msgstr "Παρουσιάστηκαν σφάλματα επαλήθευσης. Επιβεβαιώστε την σωστή συμπλήρωση των πεδίων και δοκιμάστε ξανά."
216
-
217
- #: contact-form-7/wp-contact-form-7.php:484
218
- msgid "Email address seems invalid."
219
- msgstr "Η διεύθυνση email δεν είναι έγκυρη."
220
-
221
- #: contact-form-7/wp-contact-form-7.php:486
222
- msgid "Please fill the required field."
223
- msgstr "Παρακαλώ συμπληρώστε το υποχρεωτικό πεδίο"
224
-
225
- #: contact-form-7/wp-contact-form-7.php:488
226
- msgid "Your entered code is incorrect."
227
- msgstr "Ο κωδικός που πληκτρολογήσατε δεν είναι σωστός."
228
-
229
- #: contact-form-7/includes/admin-panel.php:15
230
- msgid "Add new"
231
- msgstr "Προσθήκη νέας"
232
-
233
- #: contact-form-7/includes/admin-panel.php:28
234
- msgid "Copy and paste this code into your post content."
235
- msgstr "Αντιγράψτε και επικολλήστε αυτόν τον κώδικα στο περιεχόμενο της δημοσίευσής σας"
236
-
237
- #: contact-form-7/includes/admin-panel.php:33
238
- msgid "Form"
239
- msgstr "Φόρμα"
240
-
241
- #: contact-form-7/includes/admin-panel.php:37
242
- msgid "Mail"
243
- msgstr "Μήνυμα"
244
-
245
- #: contact-form-7/includes/admin-panel.php:39
246
- #: contact-form-7/includes/admin-panel.php:60
247
- msgid "To:"
248
- msgstr "Προς:"
249
-
250
- #: contact-form-7/includes/admin-panel.php:43
251
- #: contact-form-7/includes/admin-panel.php:64
252
- msgid "From:"
253
- msgstr "Από:"
254
-
255
- #: contact-form-7/includes/admin-panel.php:47
256
- #: contact-form-7/includes/admin-panel.php:68
257
- msgid "Subject:"
258
- msgstr "Θέμα:"
259
-
260
- #: contact-form-7/includes/admin-panel.php:51
261
- #: contact-form-7/includes/admin-panel.php:72
262
- msgid "Message body:"
263
- msgstr "Σώμα μηνύματος:"
264
-
265
- #: contact-form-7/includes/admin-panel.php:56
266
- msgid "Mail (2)"
267
- msgstr "Δεύτερο μήνυμα"
268
-
269
- #: contact-form-7/includes/admin-panel.php:58
270
- msgid "Use mail (2)"
271
- msgstr "Χρήση δεύτερου μηνύματος"
272
-
273
- #: contact-form-7/includes/admin-panel.php:80
274
- msgid "Save"
275
- msgstr "Αποθήκευση"
276
-
277
- #: contact-form-7/includes/admin-panel.php:86
278
- msgid "Delete this contact form"
279
- msgstr "Διαγραφή αυτής της φόρμας επικοινωνίας"
280
-
281
- #: contact-form-7/includes/admin-panel.php:87
282
- msgid ""
283
- "You are about to delete this contact form.\n"
284
- " 'Cancel' to stop, 'OK' to delete."
285
- msgstr ""
286
- "Αυτή η φόρμα επικοινωνίας θα διαγραφεί.\n"
287
- " 'Cancel' για ακύρωση, 'OK' για διαγραφή."
288
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
languages/wpcf7-ja.mo CHANGED
Binary file
languages/wpcf7-ja.po CHANGED
@@ -2,9 +2,9 @@ msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Contact Form 7\n"
4
  "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2009-05-31 23:05+0900\n"
6
- "PO-Revision-Date: 2009-05-31 23:06+0900\n"
7
- "Last-Translator: Takayuki Miyoshi <takayukister@gmail.com>\n"
8
  "Language-Team: Takayuki Miyoshi <takayukister@gmail.com>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
@@ -17,37 +17,33 @@ msgstr ""
17
  "Plural-Forms: nplurals=1; plural=0;\n"
18
  "X-Poedit-SearchPath-0: contact-form-7\n"
19
 
20
- #: contact-form-7/wp-contact-form-7.php:373
21
- msgid "Contact form"
22
- msgstr "コンタクトフォーム"
23
-
24
- #: contact-form-7/admin/admin-panel.php:6
25
- #: contact-form-7/admin/admin.php:111
26
  msgid "Contact Form 7"
27
  msgstr "Contact Form 7"
28
 
29
- #: contact-form-7/admin/admin-panel.php:21
30
  msgid "Add new"
31
  msgstr "新規追加"
32
 
33
- #: contact-form-7/admin/admin-panel.php:43
34
  msgid "Copy this code and paste it into your post, page or text widget content."
35
  msgstr "このコードをコピーして、投稿、ページ、またはテキストウィジェットの本文内にペーストしてください。"
36
 
37
- #: contact-form-7/admin/admin-panel.php:50
38
- #: contact-form-7/admin/admin-panel.php:290
39
  msgid "Save"
40
  msgstr "保存"
41
 
42
- #: contact-form-7/admin/admin-panel.php:57
43
  msgid "Copy"
44
  msgstr "複製"
45
 
46
- #: contact-form-7/admin/admin-panel.php:61
47
  msgid "Delete"
48
  msgstr "削除 "
49
 
50
- #: contact-form-7/admin/admin-panel.php:63
51
  msgid ""
52
  "You are about to delete this contact form.\n"
53
  " 'Cancel' to stop, 'OK' to delete."
@@ -55,375 +51,352 @@ msgstr ""
55
  "このコンタクトフォームを削除しようとしています。\n"
56
  " 'キャンセル' で中止、 'OK' で削除します。"
57
 
58
- #: contact-form-7/admin/admin-panel.php:78
59
  msgid "Form"
60
  msgstr "フォーム"
61
 
62
- #: contact-form-7/admin/admin-panel.php:98
63
  msgid "Mail"
64
  msgstr "メール"
65
 
66
- #: contact-form-7/admin/admin-panel.php:105
67
- #: contact-form-7/admin/admin-panel.php:161
68
  msgid "To:"
69
  msgstr "宛先:"
70
 
71
- #: contact-form-7/admin/admin-panel.php:109
72
- #: contact-form-7/admin/admin-panel.php:165
73
  msgid "From:"
74
  msgstr "差出人:"
75
 
76
- #: contact-form-7/admin/admin-panel.php:113
77
- #: contact-form-7/admin/admin-panel.php:169
78
  msgid "Subject:"
79
  msgstr "件名:"
80
 
81
- #: contact-form-7/admin/admin-panel.php:118
82
- #: contact-form-7/admin/admin-panel.php:174
83
  msgid "Additional headers:"
84
  msgstr "追加ヘッダー:"
85
 
86
- #: contact-form-7/admin/admin-panel.php:122
87
- #: contact-form-7/admin/admin-panel.php:178
88
  msgid "File attachments:"
89
  msgstr "ファイル添付:"
90
 
91
- #: contact-form-7/admin/admin-panel.php:124
92
- #: contact-form-7/admin/admin-panel.php:180
93
- msgid "(You need WordPress 2.7 or greater to use this feature)"
94
- msgstr "(この機能を使うためには WordPress 2.7 以上が必要です)"
95
-
96
- #: contact-form-7/admin/admin-panel.php:132
97
- #: contact-form-7/admin/admin-panel.php:188
98
  msgid "Use HTML content type"
99
  msgstr "HTML 形式のメールを使用する"
100
 
101
- #: contact-form-7/admin/admin-panel.php:137
102
- #: contact-form-7/admin/admin-panel.php:193
103
  msgid "Message body:"
104
  msgstr "メッセージ本文:"
105
 
106
- #: contact-form-7/admin/admin-panel.php:148
107
  msgid "Mail (2)"
108
  msgstr "メール (2)"
109
 
110
- #: contact-form-7/admin/admin-panel.php:155
111
  msgid "Use mail (2)"
112
  msgstr "メール (2) を使う"
113
 
114
- #: contact-form-7/admin/admin-panel.php:204
115
  msgid "Messages"
116
  msgstr "メッセージ"
117
 
118
- #: contact-form-7/admin/admin-panel.php:212
119
  msgid "Sender's message was sent successfully"
120
  msgstr "メッセージが正常に送信された"
121
 
122
- #: contact-form-7/admin/admin-panel.php:216
123
  msgid "Sender's message was failed to send"
124
  msgstr "メッセージの送信に失敗した"
125
 
126
- #: contact-form-7/admin/admin-panel.php:220
127
  msgid "Akismet judged the sending activity as spamming"
128
  msgstr "Akismet によりスパム行為と判定された"
129
 
130
- #: contact-form-7/admin/admin-panel.php:224
131
  msgid "Validation errors occurred"
132
  msgstr "入力内容に不備が見つかった"
133
 
134
- #: contact-form-7/admin/admin-panel.php:228
135
  msgid "There is a field that sender is needed to fill in"
136
  msgstr "入力必須の項目が入力されていない"
137
 
138
- #: contact-form-7/admin/admin-panel.php:232
139
  msgid "Email address that sender entered is invalid"
140
  msgstr "入力されたメールアドレスの形式が正しくない"
141
 
142
- #: contact-form-7/admin/admin-panel.php:236
143
  msgid "There is a field of term that sender is needed to accept"
144
  msgstr "承諾が必要な項目が承諾されていない"
145
 
146
- #: contact-form-7/admin/admin-panel.php:240
147
  msgid "Sender doesn't enter the correct answer to the quiz"
148
  msgstr "クイズに対する正しい答えが入力されなかった"
149
 
150
- #: contact-form-7/admin/admin-panel.php:244
151
  msgid "The code that sender entered does not match the CAPTCHA"
152
  msgstr "入力されたコードが CAPTCHA に適合していない"
153
 
154
- #: contact-form-7/admin/admin-panel.php:248
155
  msgid "Uploading a file fails for any reason"
156
  msgstr "ファイルのアップロードが何らかの理由により失敗している"
157
 
158
- #: contact-form-7/admin/admin-panel.php:252
159
  msgid "Uploaded file is not allowed file type"
160
  msgstr "アップロードされたファイルが許可されたファイル形式に適合しない"
161
 
162
- #: contact-form-7/admin/admin-panel.php:256
163
  msgid "Uploaded file is too large"
164
  msgstr "アップロードされたファイルが大きすぎる"
165
 
166
- #: contact-form-7/admin/admin-panel.php:269
167
  msgid "Additional Settings"
168
  msgstr "その他の設定"
169
 
170
- #: contact-form-7/admin/admin.php:157
 
 
 
 
 
 
 
 
171
  msgid "optional"
172
  msgstr "オプション"
173
 
174
- #: contact-form-7/admin/admin.php:158
175
  msgid "Generate Tag"
176
  msgstr "タグの作成"
177
 
178
- #: contact-form-7/admin/admin.php:159
179
  msgid "Text field"
180
  msgstr "テキスト項目"
181
 
182
- #: contact-form-7/admin/admin.php:160
183
  msgid "Email field"
184
  msgstr "メールアドレス項目"
185
 
186
- #: contact-form-7/admin/admin.php:161
187
  msgid "Text area"
188
  msgstr "テキストエリア"
189
 
190
- #: contact-form-7/admin/admin.php:162
191
  msgid "Drop-down menu"
192
  msgstr "ドロップダウン・メニュー"
193
 
194
- #: contact-form-7/admin/admin.php:163
195
  msgid "Checkboxes"
196
  msgstr "チェックボックス"
197
 
198
- #: contact-form-7/admin/admin.php:164
199
  msgid "Radio buttons"
200
  msgstr "ラジオボタン"
201
 
202
- #: contact-form-7/admin/admin.php:165
203
  msgid "Acceptance"
204
  msgstr "承諾の確認"
205
 
206
- #: contact-form-7/admin/admin.php:166
207
  msgid "Make this checkbox checked by default?"
208
  msgstr "初期状態でチェックボックスにチェックを入れますか?"
209
 
210
- #: contact-form-7/admin/admin.php:167
211
  msgid "Make this checkbox work inversely?"
212
  msgstr "チェックボックスを反転させますか?"
213
 
214
- #: contact-form-7/admin/admin.php:168
215
  msgid "* That means visitor who accepts the term unchecks it."
216
  msgstr "* つまり、利用者には条項に承諾する場合にチェックボックスのチェックをはずしてもらいます。"
217
 
218
- #: contact-form-7/admin/admin.php:169
219
  msgid "CAPTCHA"
220
  msgstr "CAPTCHA"
221
 
222
- #: contact-form-7/admin/admin.php:170
223
  msgid "Quiz"
224
  msgstr "クイズ"
225
 
226
- #: contact-form-7/admin/admin.php:171
227
  msgid "Quizzes"
228
  msgstr "質問と答え"
229
 
230
- #: contact-form-7/admin/admin.php:172
231
  msgid "* quiz|answer (e.g. 1+1=?|2)"
232
  msgstr "* 質問|答え (例: 1+1=?|2)"
233
 
234
- #: contact-form-7/admin/admin.php:173
235
  msgid "File upload"
236
  msgstr "ファイルのアップロード"
237
 
238
- #: contact-form-7/admin/admin.php:174
239
  msgid "bytes"
240
  msgstr "バイト"
241
 
242
- #: contact-form-7/admin/admin.php:175
243
  msgid "Submit button"
244
  msgstr "送信ボタン"
245
 
246
- #: contact-form-7/admin/admin.php:176
247
  msgid "Name"
248
  msgstr "名前"
249
 
250
- #: contact-form-7/admin/admin.php:177
251
  msgid "Required field?"
252
  msgstr "必須入力の項目ですか?"
253
 
254
- #: contact-form-7/admin/admin.php:178
255
  msgid "Allow multiple selections?"
256
  msgstr "複数選択を可能にしますか?"
257
 
258
- #: contact-form-7/admin/admin.php:179
259
  msgid "Insert a blank item as the first option?"
260
  msgstr "先頭に空の項目を挿入しますか?"
261
 
262
- #: contact-form-7/admin/admin.php:180
263
  msgid "Make checkboxes exclusive?"
264
  msgstr "チェックボックスを排他化しますか?"
265
 
266
- #: contact-form-7/admin/admin.php:181
267
  msgid "Choices"
268
  msgstr "選択項目"
269
 
270
- #: contact-form-7/admin/admin.php:182
271
  msgid "Label"
272
  msgstr "ラベル"
273
 
274
- #: contact-form-7/admin/admin.php:183
275
  msgid "Default value"
276
  msgstr "デフォルト値"
277
 
278
- #: contact-form-7/admin/admin.php:184
279
  msgid "Akismet"
280
  msgstr "Akismet"
281
 
282
- #: contact-form-7/admin/admin.php:185
283
  msgid "This field requires author's name"
284
  msgstr "送信者の名前の入力を要求する項目"
285
 
286
- #: contact-form-7/admin/admin.php:186
287
  msgid "This field requires author's URL"
288
  msgstr "送信者の URL の入力を要求する項目"
289
 
290
- #: contact-form-7/admin/admin.php:187
291
  msgid "This field requires author's email address"
292
  msgstr "送信者のメールアドレスの入力を要求する項目"
293
 
294
- #: contact-form-7/admin/admin.php:188
295
  msgid "Copy this code and paste it into the form left."
296
  msgstr "このコードをコピーして、左のフォーム内にペーストしてください。"
297
 
298
- #: contact-form-7/admin/admin.php:189
299
  msgid "Foreground color"
300
  msgstr "文字色"
301
 
302
- #: contact-form-7/admin/admin.php:190
303
  msgid "Background color"
304
  msgstr "背景色"
305
 
306
- #: contact-form-7/admin/admin.php:191
307
  msgid "Image size"
308
  msgstr "画像サイズ"
309
 
310
- #: contact-form-7/admin/admin.php:192
311
  msgid "Small"
312
  msgstr "小"
313
 
314
- #: contact-form-7/admin/admin.php:193
315
  msgid "Medium"
316
  msgstr "中"
317
 
318
- #: contact-form-7/admin/admin.php:194
319
  msgid "Large"
320
  msgstr "大"
321
 
322
- #: contact-form-7/admin/admin.php:195
323
  msgid "Image settings"
324
  msgstr "画像の設定"
325
 
326
- #: contact-form-7/admin/admin.php:196
327
  msgid "Input field settings"
328
  msgstr "入力項目の設定"
329
 
330
- #: contact-form-7/admin/admin.php:197
331
  msgid "For image"
332
  msgstr "画像"
333
 
334
- #: contact-form-7/admin/admin.php:198
335
  msgid "For input field"
336
  msgstr "入力項目"
337
 
338
- #: contact-form-7/admin/admin.php:199
339
  msgid "* One choice per line."
340
  msgstr "* 1行ごとに分けて入力してください。"
341
 
342
- #: contact-form-7/admin/admin.php:200
343
  msgid "Show"
344
  msgstr "表示"
345
 
346
- #: contact-form-7/admin/admin.php:201
347
  msgid "Hide"
348
  msgstr "非表示"
349
 
350
- #: contact-form-7/admin/admin.php:202
351
  msgid "File size limit"
352
  msgstr "ファイルサイズの上限"
353
 
354
- #: contact-form-7/admin/admin.php:203
355
  msgid "Acceptable file types"
356
  msgstr "受け入れ可能なファイル形式"
357
 
358
- #: contact-form-7/admin/admin.php:204
359
  msgid "Note: To use CAPTCHA, you need Really Simple CAPTCHA plugin installed."
360
  msgstr "お知らせ: CAPTCHA を使うには Really Simple CAPTCHA プラグインのインストールが必要です。"
361
 
362
- #: contact-form-7/admin/admin.php:223
363
  msgid "Contact form created."
364
  msgstr "コンタクトフォームが作成されました。"
365
 
366
- #: contact-form-7/admin/admin.php:226
367
  msgid "Contact form saved."
368
  msgstr "コンタクトフォームが保存されました。"
369
 
370
- #: contact-form-7/admin/admin.php:229
371
  msgid "Contact form deleted."
372
  msgstr "コンタクトフォームが削除されました。"
373
 
374
- #: contact-form-7/admin/admin.php:240
375
- msgid "Untitled"
376
- msgstr "無題"
377
-
378
- #: contact-form-7/admin/admin.php:253
379
- msgid "Your Name"
380
- msgstr "お名前"
381
-
382
- #: contact-form-7/admin/admin.php:253
383
- #: contact-form-7/admin/admin.php:255
384
- msgid "(required)"
385
- msgstr "(必須)"
386
-
387
- #: contact-form-7/admin/admin.php:255
388
- msgid "Your Email"
389
- msgstr "メールアドレス"
390
-
391
- #: contact-form-7/admin/admin.php:257
392
- msgid "Subject"
393
- msgstr "題名"
394
-
395
- #: contact-form-7/admin/admin.php:259
396
- msgid "Your Message"
397
- msgstr "メッセージ本文"
398
-
399
- #: contact-form-7/admin/admin.php:261
400
- #: contact-form-7/includes/classes.php:411
401
- msgid "Send"
402
- msgstr "送信"
403
 
404
- #: contact-form-7/admin/admin.php:334
405
  msgid "Settings"
406
  msgstr "設定"
407
 
408
- #: contact-form-7/admin/admin.php:355
409
  msgid "Contact Form 7 needs your support. Please donate today."
410
  msgstr "Contact Form 7 はあなたの支援を必要としています。寄付をお願いします。"
411
 
412
- #: contact-form-7/admin/admin.php:356
413
  msgid "Is this plugin useful for you? If you like it, please help the developer."
414
  msgstr "このプラグインは役に立っていますか? プラグインの開発を続けるためにあなたの支援が必要です。"
415
 
416
- #: contact-form-7/admin/admin.php:357
417
  msgid "Your contribution is needed for making this plugin better."
418
  msgstr "あなたの貢献があればこのプラグインをもっと良くすることができます。"
419
 
420
- #: contact-form-7/admin/admin.php:358
421
  msgid "Developing a plugin and providing user support is really hard work. Please help."
422
  msgstr "プラグインを開発してユーザーサポートを提供するというのはとても大変な仕事です。ちょっとでいいから助けてください。"
423
 
424
- #: contact-form-7/includes/classes.php:352
425
- msgid "To use CAPTCHA, you need <a href=\"http://wordpress.org/extend/plugins/really-simple-captcha/\">Really Simple CAPTCHA</a> plugin installed."
426
- msgstr "CAPTCHA を使うには <a href=\"http://wordpress.org/extend/plugins/really-simple-captcha/\">Really Simple CAPTCHA</a> プラグインのインストールが必要です。"
427
 
428
  #: contact-form-7/includes/functions.php:6
429
  msgid "Your message was sent successfully. Thanks."
@@ -470,6 +443,38 @@ msgstr "許可されていないファイル形式です。"
470
  msgid "This file is too large."
471
  msgstr "ファイルが大きすぎます。"
472
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
473
  #~ msgid "Delete this contact form"
474
  #~ msgstr "このコンタクトフォームを削除"
475
 
2
  msgstr ""
3
  "Project-Id-Version: Contact Form 7\n"
4
  "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2009-07-16 00:33+0900\n"
6
+ "PO-Revision-Date: 2009-07-16 00:40+0900\n"
7
+ "Last-Translator: \n"
8
  "Language-Team: Takayuki Miyoshi <takayukister@gmail.com>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
17
  "Plural-Forms: nplurals=1; plural=0;\n"
18
  "X-Poedit-SearchPath-0: contact-form-7\n"
19
 
20
+ #: contact-form-7/admin/admin-panel.php:3
21
+ #: contact-form-7/admin/admin.php:102
 
 
 
 
22
  msgid "Contact Form 7"
23
  msgstr "Contact Form 7"
24
 
25
+ #: contact-form-7/admin/admin-panel.php:18
26
  msgid "Add new"
27
  msgstr "新規追加"
28
 
29
+ #: contact-form-7/admin/admin-panel.php:40
30
  msgid "Copy this code and paste it into your post, page or text widget content."
31
  msgstr "このコードをコピーして、投稿、ページ、またはテキストウィジェットの本文内にペーストしてください。"
32
 
33
+ #: contact-form-7/admin/admin-panel.php:47
34
+ #: contact-form-7/admin/admin-panel.php:279
35
  msgid "Save"
36
  msgstr "保存"
37
 
38
+ #: contact-form-7/admin/admin-panel.php:54
39
  msgid "Copy"
40
  msgstr "複製"
41
 
42
+ #: contact-form-7/admin/admin-panel.php:58
43
  msgid "Delete"
44
  msgstr "削除 "
45
 
46
+ #: contact-form-7/admin/admin-panel.php:60
47
  msgid ""
48
  "You are about to delete this contact form.\n"
49
  " 'Cancel' to stop, 'OK' to delete."
51
  "このコンタクトフォームを削除しようとしています。\n"
52
  " 'キャンセル' で中止、 'OK' で削除します。"
53
 
54
+ #: contact-form-7/admin/admin-panel.php:75
55
  msgid "Form"
56
  msgstr "フォーム"
57
 
58
+ #: contact-form-7/admin/admin-panel.php:95
59
  msgid "Mail"
60
  msgstr "メール"
61
 
62
+ #: contact-form-7/admin/admin-panel.php:102
63
+ #: contact-form-7/admin/admin-panel.php:155
64
  msgid "To:"
65
  msgstr "宛先:"
66
 
67
+ #: contact-form-7/admin/admin-panel.php:106
68
+ #: contact-form-7/admin/admin-panel.php:159
69
  msgid "From:"
70
  msgstr "差出人:"
71
 
72
+ #: contact-form-7/admin/admin-panel.php:110
73
+ #: contact-form-7/admin/admin-panel.php:163
74
  msgid "Subject:"
75
  msgstr "件名:"
76
 
77
+ #: contact-form-7/admin/admin-panel.php:115
78
+ #: contact-form-7/admin/admin-panel.php:168
79
  msgid "Additional headers:"
80
  msgstr "追加ヘッダー:"
81
 
82
+ #: contact-form-7/admin/admin-panel.php:119
83
+ #: contact-form-7/admin/admin-panel.php:172
84
  msgid "File attachments:"
85
  msgstr "ファイル添付:"
86
 
87
+ #: contact-form-7/admin/admin-panel.php:126
88
+ #: contact-form-7/admin/admin-panel.php:179
 
 
 
 
 
89
  msgid "Use HTML content type"
90
  msgstr "HTML 形式のメールを使用する"
91
 
92
+ #: contact-form-7/admin/admin-panel.php:131
93
+ #: contact-form-7/admin/admin-panel.php:184
94
  msgid "Message body:"
95
  msgstr "メッセージ本文:"
96
 
97
+ #: contact-form-7/admin/admin-panel.php:142
98
  msgid "Mail (2)"
99
  msgstr "メール (2)"
100
 
101
+ #: contact-form-7/admin/admin-panel.php:149
102
  msgid "Use mail (2)"
103
  msgstr "メール (2) を使う"
104
 
105
+ #: contact-form-7/admin/admin-panel.php:195
106
  msgid "Messages"
107
  msgstr "メッセージ"
108
 
109
+ #: contact-form-7/admin/admin-panel.php:203
110
  msgid "Sender's message was sent successfully"
111
  msgstr "メッセージが正常に送信された"
112
 
113
+ #: contact-form-7/admin/admin-panel.php:207
114
  msgid "Sender's message was failed to send"
115
  msgstr "メッセージの送信に失敗した"
116
 
117
+ #: contact-form-7/admin/admin-panel.php:211
118
  msgid "Akismet judged the sending activity as spamming"
119
  msgstr "Akismet によりスパム行為と判定された"
120
 
121
+ #: contact-form-7/admin/admin-panel.php:215
122
  msgid "Validation errors occurred"
123
  msgstr "入力内容に不備が見つかった"
124
 
125
+ #: contact-form-7/admin/admin-panel.php:219
126
  msgid "There is a field that sender is needed to fill in"
127
  msgstr "入力必須の項目が入力されていない"
128
 
129
+ #: contact-form-7/admin/admin-panel.php:223
130
  msgid "Email address that sender entered is invalid"
131
  msgstr "入力されたメールアドレスの形式が正しくない"
132
 
133
+ #: contact-form-7/admin/admin-panel.php:227
134
  msgid "There is a field of term that sender is needed to accept"
135
  msgstr "承諾が必要な項目が承諾されていない"
136
 
137
+ #: contact-form-7/admin/admin-panel.php:231
138
  msgid "Sender doesn't enter the correct answer to the quiz"
139
  msgstr "クイズに対する正しい答えが入力されなかった"
140
 
141
+ #: contact-form-7/admin/admin-panel.php:235
142
  msgid "The code that sender entered does not match the CAPTCHA"
143
  msgstr "入力されたコードが CAPTCHA に適合していない"
144
 
145
+ #: contact-form-7/admin/admin-panel.php:239
146
  msgid "Uploading a file fails for any reason"
147
  msgstr "ファイルのアップロードが何らかの理由により失敗している"
148
 
149
+ #: contact-form-7/admin/admin-panel.php:243
150
  msgid "Uploaded file is not allowed file type"
151
  msgstr "アップロードされたファイルが許可されたファイル形式に適合しない"
152
 
153
+ #: contact-form-7/admin/admin-panel.php:247
154
  msgid "Uploaded file is too large"
155
  msgstr "アップロードされたファイルが大きすぎる"
156
 
157
+ #: contact-form-7/admin/admin-panel.php:260
158
  msgid "Additional Settings"
159
  msgstr "その他の設定"
160
 
161
+ #: contact-form-7/admin/admin.php:105
162
+ msgid "Edit Contact Forms"
163
+ msgstr "コンタクトフォームの編集"
164
+
165
+ #: contact-form-7/admin/admin.php:105
166
+ msgid "Edit"
167
+ msgstr "編集"
168
+
169
+ #: contact-form-7/admin/admin.php:152
170
  msgid "optional"
171
  msgstr "オプション"
172
 
173
+ #: contact-form-7/admin/admin.php:153
174
  msgid "Generate Tag"
175
  msgstr "タグの作成"
176
 
177
+ #: contact-form-7/admin/admin.php:154
178
  msgid "Text field"
179
  msgstr "テキスト項目"
180
 
181
+ #: contact-form-7/admin/admin.php:155
182
  msgid "Email field"
183
  msgstr "メールアドレス項目"
184
 
185
+ #: contact-form-7/admin/admin.php:156
186
  msgid "Text area"
187
  msgstr "テキストエリア"
188
 
189
+ #: contact-form-7/admin/admin.php:157
190
  msgid "Drop-down menu"
191
  msgstr "ドロップダウン・メニュー"
192
 
193
+ #: contact-form-7/admin/admin.php:158
194
  msgid "Checkboxes"
195
  msgstr "チェックボックス"
196
 
197
+ #: contact-form-7/admin/admin.php:159
198
  msgid "Radio buttons"
199
  msgstr "ラジオボタン"
200
 
201
+ #: contact-form-7/admin/admin.php:160
202
  msgid "Acceptance"
203
  msgstr "承諾の確認"
204
 
205
+ #: contact-form-7/admin/admin.php:161
206
  msgid "Make this checkbox checked by default?"
207
  msgstr "初期状態でチェックボックスにチェックを入れますか?"
208
 
209
+ #: contact-form-7/admin/admin.php:162
210
  msgid "Make this checkbox work inversely?"
211
  msgstr "チェックボックスを反転させますか?"
212
 
213
+ #: contact-form-7/admin/admin.php:163
214
  msgid "* That means visitor who accepts the term unchecks it."
215
  msgstr "* つまり、利用者には条項に承諾する場合にチェックボックスのチェックをはずしてもらいます。"
216
 
217
+ #: contact-form-7/admin/admin.php:164
218
  msgid "CAPTCHA"
219
  msgstr "CAPTCHA"
220
 
221
+ #: contact-form-7/admin/admin.php:165
222
  msgid "Quiz"
223
  msgstr "クイズ"
224
 
225
+ #: contact-form-7/admin/admin.php:166
226
  msgid "Quizzes"
227
  msgstr "質問と答え"
228
 
229
+ #: contact-form-7/admin/admin.php:167
230
  msgid "* quiz|answer (e.g. 1+1=?|2)"
231
  msgstr "* 質問|答え (例: 1+1=?|2)"
232
 
233
+ #: contact-form-7/admin/admin.php:168
234
  msgid "File upload"
235
  msgstr "ファイルのアップロード"
236
 
237
+ #: contact-form-7/admin/admin.php:169
238
  msgid "bytes"
239
  msgstr "バイト"
240
 
241
+ #: contact-form-7/admin/admin.php:170
242
  msgid "Submit button"
243
  msgstr "送信ボタン"
244
 
245
+ #: contact-form-7/admin/admin.php:171
246
  msgid "Name"
247
  msgstr "名前"
248
 
249
+ #: contact-form-7/admin/admin.php:172
250
  msgid "Required field?"
251
  msgstr "必須入力の項目ですか?"
252
 
253
+ #: contact-form-7/admin/admin.php:173
254
  msgid "Allow multiple selections?"
255
  msgstr "複数選択を可能にしますか?"
256
 
257
+ #: contact-form-7/admin/admin.php:174
258
  msgid "Insert a blank item as the first option?"
259
  msgstr "先頭に空の項目を挿入しますか?"
260
 
261
+ #: contact-form-7/admin/admin.php:175
262
  msgid "Make checkboxes exclusive?"
263
  msgstr "チェックボックスを排他化しますか?"
264
 
265
+ #: contact-form-7/admin/admin.php:176
266
  msgid "Choices"
267
  msgstr "選択項目"
268
 
269
+ #: contact-form-7/admin/admin.php:177
270
  msgid "Label"
271
  msgstr "ラベル"
272
 
273
+ #: contact-form-7/admin/admin.php:178
274
  msgid "Default value"
275
  msgstr "デフォルト値"
276
 
277
+ #: contact-form-7/admin/admin.php:179
278
  msgid "Akismet"
279
  msgstr "Akismet"
280
 
281
+ #: contact-form-7/admin/admin.php:180
282
  msgid "This field requires author's name"
283
  msgstr "送信者の名前の入力を要求する項目"
284
 
285
+ #: contact-form-7/admin/admin.php:181
286
  msgid "This field requires author's URL"
287
  msgstr "送信者の URL の入力を要求する項目"
288
 
289
+ #: contact-form-7/admin/admin.php:182
290
  msgid "This field requires author's email address"
291
  msgstr "送信者のメールアドレスの入力を要求する項目"
292
 
293
+ #: contact-form-7/admin/admin.php:183
294
  msgid "Copy this code and paste it into the form left."
295
  msgstr "このコードをコピーして、左のフォーム内にペーストしてください。"
296
 
297
+ #: contact-form-7/admin/admin.php:184
298
  msgid "Foreground color"
299
  msgstr "文字色"
300
 
301
+ #: contact-form-7/admin/admin.php:185
302
  msgid "Background color"
303
  msgstr "背景色"
304
 
305
+ #: contact-form-7/admin/admin.php:186
306
  msgid "Image size"
307
  msgstr "画像サイズ"
308
 
309
+ #: contact-form-7/admin/admin.php:187
310
  msgid "Small"
311
  msgstr "小"
312
 
313
+ #: contact-form-7/admin/admin.php:188
314
  msgid "Medium"
315
  msgstr "中"
316
 
317
+ #: contact-form-7/admin/admin.php:189
318
  msgid "Large"
319
  msgstr "大"
320
 
321
+ #: contact-form-7/admin/admin.php:190
322
  msgid "Image settings"
323
  msgstr "画像の設定"
324
 
325
+ #: contact-form-7/admin/admin.php:191
326
  msgid "Input field settings"
327
  msgstr "入力項目の設定"
328
 
329
+ #: contact-form-7/admin/admin.php:192
330
  msgid "For image"
331
  msgstr "画像"
332
 
333
+ #: contact-form-7/admin/admin.php:193
334
  msgid "For input field"
335
  msgstr "入力項目"
336
 
337
+ #: contact-form-7/admin/admin.php:194
338
  msgid "* One choice per line."
339
  msgstr "* 1行ごとに分けて入力してください。"
340
 
341
+ #: contact-form-7/admin/admin.php:195
342
  msgid "Show"
343
  msgstr "表示"
344
 
345
+ #: contact-form-7/admin/admin.php:196
346
  msgid "Hide"
347
  msgstr "非表示"
348
 
349
+ #: contact-form-7/admin/admin.php:197
350
  msgid "File size limit"
351
  msgstr "ファイルサイズの上限"
352
 
353
+ #: contact-form-7/admin/admin.php:198
354
  msgid "Acceptable file types"
355
  msgstr "受け入れ可能なファイル形式"
356
 
357
+ #: contact-form-7/admin/admin.php:199
358
  msgid "Note: To use CAPTCHA, you need Really Simple CAPTCHA plugin installed."
359
  msgstr "お知らせ: CAPTCHA を使うには Really Simple CAPTCHA プラグインのインストールが必要です。"
360
 
361
+ #: contact-form-7/admin/admin.php:214
362
  msgid "Contact form created."
363
  msgstr "コンタクトフォームが作成されました。"
364
 
365
+ #: contact-form-7/admin/admin.php:217
366
  msgid "Contact form saved."
367
  msgstr "コンタクトフォームが保存されました。"
368
 
369
+ #: contact-form-7/admin/admin.php:220
370
  msgid "Contact form deleted."
371
  msgstr "コンタクトフォームが削除されました。"
372
 
373
+ #: contact-form-7/admin/admin.php:293
374
+ msgid "Contact form"
375
+ msgstr "コンタクトフォーム"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
376
 
377
+ #: contact-form-7/admin/admin.php:313
378
  msgid "Settings"
379
  msgstr "設定"
380
 
381
+ #: contact-form-7/admin/admin.php:334
382
  msgid "Contact Form 7 needs your support. Please donate today."
383
  msgstr "Contact Form 7 はあなたの支援を必要としています。寄付をお願いします。"
384
 
385
+ #: contact-form-7/admin/admin.php:335
386
  msgid "Is this plugin useful for you? If you like it, please help the developer."
387
  msgstr "このプラグインは役に立っていますか? プラグインの開発を続けるためにあなたの支援が必要です。"
388
 
389
+ #: contact-form-7/admin/admin.php:336
390
  msgid "Your contribution is needed for making this plugin better."
391
  msgstr "あなたの貢献があればこのプラグインをもっと良くすることができます。"
392
 
393
+ #: contact-form-7/admin/admin.php:337
394
  msgid "Developing a plugin and providing user support is really hard work. Please help."
395
  msgstr "プラグインを開発してユーザーサポートを提供するというのはとても大変な仕事です。ちょっとでいいから助けてください。"
396
 
397
+ #: contact-form-7/includes/classes.php:536
398
+ msgid "Untitled"
399
+ msgstr "無題"
400
 
401
  #: contact-form-7/includes/functions.php:6
402
  msgid "Your message was sent successfully. Thanks."
443
  msgid "This file is too large."
444
  msgstr "ファイルが大きすぎます。"
445
 
446
+ #: contact-form-7/includes/functions.php:33
447
+ msgid "Your Name"
448
+ msgstr "お名前"
449
+
450
+ #: contact-form-7/includes/functions.php:33
451
+ #: contact-form-7/includes/functions.php:35
452
+ msgid "(required)"
453
+ msgstr "(必須)"
454
+
455
+ #: contact-form-7/includes/functions.php:35
456
+ msgid "Your Email"
457
+ msgstr "メールアドレス"
458
+
459
+ #: contact-form-7/includes/functions.php:37
460
+ msgid "Subject"
461
+ msgstr "題名"
462
+
463
+ #: contact-form-7/includes/functions.php:39
464
+ msgid "Your Message"
465
+ msgstr "メッセージ本文"
466
+
467
+ #: contact-form-7/includes/functions.php:41
468
+ #: contact-form-7/modules/submit.php:37
469
+ msgid "Send"
470
+ msgstr "送信"
471
+
472
+ #: contact-form-7/modules/captcha.php:62
473
+ msgid "To use CAPTCHA, you need <a href=\"http://wordpress.org/extend/plugins/really-simple-captcha/\">Really Simple CAPTCHA</a> plugin installed."
474
+ msgstr "CAPTCHA を使うには <a href=\"http://wordpress.org/extend/plugins/really-simple-captcha/\">Really Simple CAPTCHA</a> プラグインのインストールが必要です。"
475
+
476
+ #~ msgid "(You need WordPress 2.7 or greater to use this feature)"
477
+ #~ msgstr "(この機能を使うためには WordPress 2.7 以上が必要です)"
478
  #~ msgid "Delete this contact form"
479
  #~ msgstr "このコンタクトフォームを削除"
480
 
languages/wpcf7-nl_NL.mo CHANGED
Binary file
languages/wpcf7-nl_NL.po CHANGED
@@ -1,168 +1,469 @@
1
- # translation of wpcf7-de_DE.po to deutsch
2
- # Marcel Spitau <marcel.spitau@mawspitau.de>, 2007.
3
- msgid ""
4
- msgstr ""
5
- "Project-Id-Version: wpcf7-du_DU\n"
6
- "POT-Creation-Date: \n"
7
- "PO-Revision-Date: 2007-10-17 08:56+0100\n"
8
- "Last-Translator: Chris Devriese <chris.devriese@100it.be>\n"
9
- "Language-Team: Nederlands\n"
10
- "MIME-Version: 1.0\n"
11
- "Content-Type: text/plain; charset=UTF-8\n"
12
- "Content-Transfer-Encoding: 8bit\n"
13
- "X-Poedit-Language: Japanese\n"
14
- "X-Poedit-Country: JAPAN\n"
15
- "X-Poedit-SourceCharset: utf-8\n"
16
- "X-Poedit-KeywordsList: __;_e\n"
17
- "X-Poedit-Basepath: ../..\n"
18
- "X-Generator: KBabel 1.11.4\n"
19
- "X-Poedit-SearchPath-0: contact-form-7\n"
20
-
21
- #: contact-form-7/wp-contact-form-7.php:128
22
- #: contact-form-7/wp-contact-form-7.php:201
23
- msgid "Contact form"
24
- msgstr "Contactformulier"
25
-
26
- #: contact-form-7/wp-contact-form-7.php:157
27
- #: contact-form-7/includes/admin-panel.php:5
28
- msgid "Contact Form 7"
29
- msgstr "Contact Form 7"
30
-
31
- #: contact-form-7/wp-contact-form-7.php:177
32
- #, php-format
33
- msgid "Contact form \"%s\" deleted. "
34
- msgstr "Contactformulier Nr. \"%s\" gewist."
35
-
36
- #: contact-form-7/wp-contact-form-7.php:193
37
- #, php-format
38
- msgid "Contact form \"%s\" saved. "
39
- msgstr "Contactformulier Nr. \"%s\" bewaard."
40
-
41
- #: contact-form-7/wp-contact-form-7.php:222
42
- msgid "Your Name"
43
- msgstr "Uw naam"
44
-
45
- #: contact-form-7/wp-contact-form-7.php:222
46
- #: contact-form-7/wp-contact-form-7.php:224
47
- msgid "(required)"
48
- msgstr "(Noodzakelijk)"
49
-
50
- #: contact-form-7/wp-contact-form-7.php:224
51
- msgid "Your Email"
52
- msgstr "Uw E-Mail"
53
-
54
- #: contact-form-7/wp-contact-form-7.php:226
55
- msgid "Subject"
56
- msgstr "Onderwerp"
57
-
58
- #: contact-form-7/wp-contact-form-7.php:228
59
- msgid "Your Message"
60
- msgstr "Uw bericht"
61
-
62
- #: contact-form-7/wp-contact-form-7.php:230
63
- #: contact-form-7/wp-contact-form-7.php:593
64
- msgid "Send"
65
- msgstr "Verstuur"
66
-
67
- #: contact-form-7/wp-contact-form-7.php:249
68
- msgid "Your message was sent successfully. Thanks."
69
- msgstr "Uw bericht werd succesvol verzonden. Bedankt."
70
-
71
- #: contact-form-7/wp-contact-form-7.php:251
72
- msgid "Failed to send your message. Please try later or contact administrator by other way."
73
- msgstr "Uw bericht kon niet worden verzonden. Gelieve op een later moment opnieuw te proberen of de beheerder te contacteren."
74
-
75
- #: contact-form-7/wp-contact-form-7.php:324
76
- #: contact-form-7/wp-contact-form-7.php:424
77
- msgid "Validation errors occurred. Please confirm the fields and submit it again."
78
- msgstr "Validatiefouten opgetreden. Controleer de nodige invulvelden en verstuur opnieuw"
79
-
80
- #: contact-form-7/wp-contact-form-7.php:351
81
- #: contact-form-7/wp-contact-form-7.php:358
82
- #: contact-form-7/wp-contact-form-7.php:409
83
- msgid "Please fill the required field."
84
- msgstr "Gelieve het nodige veld in te vullen"
85
-
86
- #: contact-form-7/wp-contact-form-7.php:361
87
- #: contact-form-7/wp-contact-form-7.php:402
88
- msgid "Email address seems invalid."
89
- msgstr "Uw emailadres lijkt niet geldig."
90
-
91
- #: contact-form-7/includes/admin-panel.php:19
92
- #: contact-form-7/includes/admin-panel.php:22
93
- msgid "Add new"
94
- msgstr "Nieuw formulier toevoegen"
95
-
96
- #: contact-form-7/includes/admin-panel.php:34
97
- msgid "Title"
98
- msgstr "Titel"
99
-
100
- #: contact-form-7/includes/admin-panel.php:39
101
- msgid "Copy and paste this code into your post content."
102
- msgstr "Kopieer en plak deze code in uw bericht."
103
-
104
- #: contact-form-7/includes/admin-panel.php:45
105
- msgid "Form content"
106
- msgstr "formulierinhoud"
107
-
108
- #: contact-form-7/includes/admin-panel.php:58
109
- msgid "Mail template"
110
- msgstr "Email sjabloon"
111
-
112
- #: contact-form-7/includes/admin-panel.php:59
113
- msgid "Subject field:"
114
- msgstr "Onderwerp:"
115
-
116
- #: contact-form-7/includes/admin-panel.php:61
117
- msgid "Sender field:"
118
- msgstr "Afzender:"
119
-
120
- #: contact-form-7/includes/admin-panel.php:63
121
- msgid "Message body:"
122
- msgstr "Bericht:"
123
-
124
- #: contact-form-7/includes/admin-panel.php:67
125
- msgid "Options"
126
- msgstr "Opties"
127
-
128
- #: contact-form-7/includes/admin-panel.php:68
129
- msgid "Recipient address:"
130
- msgstr "Ontvanger adres:"
131
-
132
- #: contact-form-7/includes/admin-panel.php:73
133
- msgid "Save"
134
- msgstr "Bewaren"
135
-
136
- #: contact-form-7/includes/admin-panel.php:80
137
- msgid "Delete this contact form"
138
- msgstr "Dit formulier wissen"
139
-
140
- #: contact-form-7/includes/admin-panel.php:81
141
- msgid ""
142
- "You are about to delete this contact form.\n"
143
- " 'Cancel' to stop, 'OK' to delete."
144
- msgstr ""
145
- "U gaat dit contactformulier wissen.\n"
146
- "'Onderbreken' om te stoppen, 'OK' om te wissen."
147
-
148
- #: contact-form-7/includes/admin-panel.php:137
149
- #: contact-form-7/includes/admin-panel.php:148
150
- msgid "Default value"
151
- msgstr "standaard waarde"
152
-
153
- #: contact-form-7/includes/admin-panel.php:156
154
- msgid "Choices"
155
- msgstr "Keuzes"
156
-
157
- #: contact-form-7/includes/admin-panel.php:157
158
- msgid "* One choice per line."
159
- msgstr "* Een keuze per lijn"
160
-
161
- #: contact-form-7/includes/admin-panel.php:162
162
- msgid "Label"
163
- msgstr "Etiket"
164
-
165
- #: contact-form-7/includes/admin-panel.php:169
166
- msgid "Insert"
167
- msgstr "Invoegen"
168
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Contact Form 7 Nederlandse vertaling\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2009-05-31 23:05+0900\n"
6
+ "PO-Revision-Date: \n"
7
+ "Last-Translator: Martin Hein <martin@split-a-pixel.nl>\n"
8
+ "Language-Team: Martin Hein <martin@split-a-pixel.nl>\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Poedit-Language: Dutch\n"
13
+ "X-Poedit-Country: Netherlands\n"
14
+ "X-Poedit-SourceCharset: utf-8\n"
15
+ "X-Poedit-KeywordsList: __\n"
16
+
17
+ #: contact-form-7/wp-contact-form-7.php:373
18
+ msgid "Contact form"
19
+ msgstr "Contactformulier"
20
+
21
+ #: contact-form-7/admin/admin-panel.php:6
22
+ #: contact-form-7/admin/admin.php:111
23
+ msgid "Contact Form 7"
24
+ msgstr "Contact Form 7"
25
+
26
+ #: contact-form-7/admin/admin-panel.php:21
27
+ msgid "Add new"
28
+ msgstr "Nieuwe toevoegen"
29
+
30
+ #: contact-form-7/admin/admin-panel.php:43
31
+ msgid "Copy this code and paste it into your post, page or text widget content."
32
+ msgstr "Kopieer deze code en plak hem in de inhoud van je bericht, pagina of widget."
33
+
34
+ #: contact-form-7/admin/admin-panel.php:50
35
+ #: contact-form-7/admin/admin-panel.php:290
36
+ msgid "Save"
37
+ msgstr "Opslaan"
38
+
39
+ #: contact-form-7/admin/admin-panel.php:57
40
+ msgid "Copy"
41
+ msgstr "Kopieren"
42
+
43
+ #: contact-form-7/admin/admin-panel.php:61
44
+ msgid "Delete"
45
+ msgstr "Verwijderen"
46
+
47
+ #: contact-form-7/admin/admin-panel.php:63
48
+ msgid ""
49
+ "You are about to delete this contact form.\n"
50
+ " 'Cancel' to stop, 'OK' to delete."
51
+ msgstr ""
52
+ "Je staat op het punt dit contactformulier te verwijderen.\n"
53
+ " 'Cancel' om te stoppen, 'OK' om te verwijderen."
54
+
55
+ #: contact-form-7/admin/admin-panel.php:78
56
+ msgid "Form"
57
+ msgstr "Formulier"
58
+
59
+ #: contact-form-7/admin/admin-panel.php:98
60
+ msgid "Mail"
61
+ msgstr "Mail"
62
+
63
+ #: contact-form-7/admin/admin-panel.php:105
64
+ #: contact-form-7/admin/admin-panel.php:161
65
+ msgid "To:"
66
+ msgstr "Aan:"
67
+
68
+ #: contact-form-7/admin/admin-panel.php:109
69
+ #: contact-form-7/admin/admin-panel.php:165
70
+ msgid "From:"
71
+ msgstr "Van:"
72
+
73
+ #: contact-form-7/admin/admin-panel.php:113
74
+ #: contact-form-7/admin/admin-panel.php:169
75
+ msgid "Subject:"
76
+ msgstr "Onderwerp:"
77
+
78
+ #: contact-form-7/admin/admin-panel.php:118
79
+ #: contact-form-7/admin/admin-panel.php:174
80
+ msgid "Additional headers:"
81
+ msgstr "Aanvullende headers:"
82
+
83
+ #: contact-form-7/admin/admin-panel.php:122
84
+ #: contact-form-7/admin/admin-panel.php:178
85
+ msgid "File attachments:"
86
+ msgstr "Bestandsbijlages:"
87
+
88
+ #: contact-form-7/admin/admin-panel.php:124
89
+ #: contact-form-7/admin/admin-panel.php:180
90
+ msgid "(You need WordPress 2.7 or greater to use this feature)"
91
+ msgstr "(Je hebt Wordpress 2.7 of nieuwer nodig om dit gereedschap te gebruiken)"
92
+
93
+ #: contact-form-7/admin/admin-panel.php:132
94
+ #: contact-form-7/admin/admin-panel.php:188
95
+ msgid "Use HTML content type"
96
+ msgstr "HTML indeling gebruiken"
97
+
98
+ #: contact-form-7/admin/admin-panel.php:137
99
+ #: contact-form-7/admin/admin-panel.php:193
100
+ msgid "Message body:"
101
+ msgstr "Berichttekst:"
102
+
103
+ #: contact-form-7/admin/admin-panel.php:148
104
+ msgid "Mail (2)"
105
+ msgstr "Mail (2)"
106
+
107
+ #: contact-form-7/admin/admin-panel.php:155
108
+ msgid "Use mail (2)"
109
+ msgstr "Mail gebruiken (2)"
110
+
111
+ #: contact-form-7/admin/admin-panel.php:204
112
+ msgid "Messages"
113
+ msgstr "Berichten"
114
+
115
+ #: contact-form-7/admin/admin-panel.php:212
116
+ msgid "Sender's message was sent successfully"
117
+ msgstr "Het te zenden bericht werd succesvol verstuurd"
118
+
119
+ #: contact-form-7/admin/admin-panel.php:216
120
+ msgid "Sender's message was failed to send"
121
+ msgstr "Het bericht kon niet worden verstuurd"
122
+
123
+ #: contact-form-7/admin/admin-panel.php:220
124
+ msgid "Akismet judged the sending activity as spamming"
125
+ msgstr "Aksimet heeft de verzendactiviteit als spam beoordeeld"
126
+
127
+ #: contact-form-7/admin/admin-panel.php:224
128
+ msgid "Validation errors occurred"
129
+ msgstr "Validatiefout opgetreden"
130
+
131
+ #: contact-form-7/admin/admin-panel.php:228
132
+ msgid "There is a field that sender is needed to fill in"
133
+ msgstr "Er is een veld dat door de verzender moet worden ingevuld"
134
+
135
+ #: contact-form-7/admin/admin-panel.php:232
136
+ msgid "Email address that sender entered is invalid"
137
+ msgstr "Het ingevulde email adres is ongeldig"
138
+
139
+ #: contact-form-7/admin/admin-panel.php:236
140
+ msgid "There is a field of term that sender is needed to accept"
141
+ msgstr "Er is een voorwaardenveld dat moet worden geaccepteerd"
142
+
143
+ #: contact-form-7/admin/admin-panel.php:240
144
+ msgid "Sender doesn't enter the correct answer to the quiz"
145
+ msgstr "Er is geen juist antwoord voor de quiz ingevuld"
146
+
147
+ #: contact-form-7/admin/admin-panel.php:244
148
+ msgid "The code that sender entered does not match the CAPTCHA"
149
+ msgstr "De ingevulde verificatiecode komt niet overeen met de CAPTCHA"
150
+
151
+ #: contact-form-7/admin/admin-panel.php:248
152
+ msgid "Uploading a file fails for any reason"
153
+ msgstr "Het uploaden van het bestand is mislukt"
154
+
155
+ #: contact-form-7/admin/admin-panel.php:252
156
+ msgid "Uploaded file is not allowed file type"
157
+ msgstr "Het up te loaden bestand heeft een ongeldige extensie"
158
+
159
+ #: contact-form-7/admin/admin-panel.php:256
160
+ msgid "Uploaded file is too large"
161
+ msgstr "Het up te loaden bestand is te groot"
162
+
163
+ #: contact-form-7/admin/admin-panel.php:269
164
+ msgid "Additional Settings"
165
+ msgstr "Aanvullende instellingen"
166
+
167
+ #: contact-form-7/admin/admin.php:157
168
+ msgid "optional"
169
+ msgstr "optioneel"
170
+
171
+ #: contact-form-7/admin/admin.php:158
172
+ msgid "Generate Tag"
173
+ msgstr "Tag aanmaken"
174
+
175
+ #: contact-form-7/admin/admin.php:159
176
+ msgid "Text field"
177
+ msgstr "Tekstveld"
178
+
179
+ #: contact-form-7/admin/admin.php:160
180
+ msgid "Email field"
181
+ msgstr "Email veld"
182
+
183
+ #: contact-form-7/admin/admin.php:161
184
+ msgid "Text area"
185
+ msgstr "Tekstgebied"
186
+
187
+ #: contact-form-7/admin/admin.php:162
188
+ msgid "Drop-down menu"
189
+ msgstr "Keuzemenu"
190
+
191
+ #: contact-form-7/admin/admin.php:163
192
+ msgid "Checkboxes"
193
+ msgstr "Keuzevakjes"
194
+
195
+ #: contact-form-7/admin/admin.php:164
196
+ msgid "Radio buttons"
197
+ msgstr "Keuzerondjes"
198
+
199
+ #: contact-form-7/admin/admin.php:165
200
+ msgid "Acceptance"
201
+ msgstr "Acceptatie"
202
+
203
+ #: contact-form-7/admin/admin.php:166
204
+ msgid "Make this checkbox checked by default?"
205
+ msgstr "Aanvinkvakje standaard aanvinken?"
206
+
207
+ #: contact-form-7/admin/admin.php:167
208
+ msgid "Make this checkbox work inversely?"
209
+ msgstr "Aanvinkvakje omgekeerd laten werken?"
210
+
211
+ #: contact-form-7/admin/admin.php:168
212
+ msgid "* That means visitor who accepts the term unchecks it."
213
+ msgstr "* Dit betekent dat de bezoeker het vakje moet uitvinken om de voorwaarden te accepteren."
214
+
215
+ #: contact-form-7/admin/admin.php:169
216
+ msgid "CAPTCHA"
217
+ msgstr "CAPTCHA"
218
+
219
+ #: contact-form-7/admin/admin.php:170
220
+ msgid "Quiz"
221
+ msgstr "Kwis"
222
+
223
+ #: contact-form-7/admin/admin.php:171
224
+ msgid "Quizzes"
225
+ msgstr "Kwissen"
226
+
227
+ #: contact-form-7/admin/admin.php:172
228
+ msgid "* quiz|answer (e.g. 1+1=?|2)"
229
+ msgstr "* quiz|antwoord (bijv. 1+1=?|2)"
230
+
231
+ #: contact-form-7/admin/admin.php:173
232
+ msgid "File upload"
233
+ msgstr "Upload bestand"
234
+
235
+ #: contact-form-7/admin/admin.php:174
236
+ msgid "bytes"
237
+ msgstr "bytes"
238
+
239
+ #: contact-form-7/admin/admin.php:175
240
+ msgid "Submit button"
241
+ msgstr "Verzendknop"
242
+
243
+ #: contact-form-7/admin/admin.php:176
244
+ msgid "Name"
245
+ msgstr "Naam"
246
+
247
+ #: contact-form-7/admin/admin.php:177
248
+ msgid "Required field?"
249
+ msgstr "Verplicht veld?"
250
+
251
+ #: contact-form-7/admin/admin.php:178
252
+ msgid "Allow multiple selections?"
253
+ msgstr "Meerdere selecties toestaan?"
254
+
255
+ #: contact-form-7/admin/admin.php:179
256
+ msgid "Insert a blank item as the first option?"
257
+ msgstr "Een leeg item als eerste optie invoegen?"
258
+
259
+ #: contact-form-7/admin/admin.php:180
260
+ msgid "Make checkboxes exclusive?"
261
+ msgstr "Keuzevakjes exclusief maken?"
262
+
263
+ #: contact-form-7/admin/admin.php:181
264
+ msgid "Choices"
265
+ msgstr "Keuzes"
266
+
267
+ #: contact-form-7/admin/admin.php:182
268
+ msgid "Label"
269
+ msgstr "Label"
270
+
271
+ #: contact-form-7/admin/admin.php:183
272
+ msgid "Default value"
273
+ msgstr "Standaard waarde"
274
+
275
+ #: contact-form-7/admin/admin.php:184
276
+ msgid "Akismet"
277
+ msgstr "Akismet"
278
+
279
+ #: contact-form-7/admin/admin.php:185
280
+ msgid "This field requires author's name"
281
+ msgstr "Dti veld vereist de naam van de auteur"
282
+
283
+ #: contact-form-7/admin/admin.php:186
284
+ msgid "This field requires author's URL"
285
+ msgstr "Dit veld vereist de URL van de auteur"
286
+
287
+ #: contact-form-7/admin/admin.php:187
288
+ msgid "This field requires author's email address"
289
+ msgstr "Voor dit veld is het email adres vereist"
290
+
291
+ #: contact-form-7/admin/admin.php:188
292
+ msgid "Copy this code and paste it into the form left."
293
+ msgstr "Kopieer deze code en plak hem in het formulier aan de linkerzijde."
294
+
295
+ #: contact-form-7/admin/admin.php:189
296
+ msgid "Foreground color"
297
+ msgstr "Voorgrond kleur"
298
+
299
+ #: contact-form-7/admin/admin.php:190
300
+ msgid "Background color"
301
+ msgstr "Achtergrondkleur"
302
+
303
+ #: contact-form-7/admin/admin.php:191
304
+ msgid "Image size"
305
+ msgstr "Grootte afbeelding"
306
+
307
+ #: contact-form-7/admin/admin.php:192
308
+ msgid "Small"
309
+ msgstr "Klein"
310
+
311
+ #: contact-form-7/admin/admin.php:193
312
+ msgid "Medium"
313
+ msgstr "Gemiddeld"
314
+
315
+ #: contact-form-7/admin/admin.php:194
316
+ msgid "Large"
317
+ msgstr "Groot"
318
+
319
+ #: contact-form-7/admin/admin.php:195
320
+ msgid "Image settings"
321
+ msgstr "Instellingen afbeelding"
322
+
323
+ #: contact-form-7/admin/admin.php:196
324
+ msgid "Input field settings"
325
+ msgstr "Instellingen invulveld"
326
+
327
+ #: contact-form-7/admin/admin.php:197
328
+ msgid "For image"
329
+ msgstr "Voor afbeelding"
330
+
331
+ #: contact-form-7/admin/admin.php:198
332
+ msgid "For input field"
333
+ msgstr "Voor invulveld"
334
+
335
+ #: contact-form-7/admin/admin.php:199
336
+ msgid "* One choice per line."
337
+ msgstr "* Eén keuze per regel"
338
+
339
+ #: contact-form-7/admin/admin.php:200
340
+ msgid "Show"
341
+ msgstr "Laten zien"
342
+
343
+ #: contact-form-7/admin/admin.php:201
344
+ msgid "Hide"
345
+ msgstr "Verbergen"
346
+
347
+ #: contact-form-7/admin/admin.php:202
348
+ msgid "File size limit"
349
+ msgstr "Maximale bestandsgrootte"
350
+
351
+ #: contact-form-7/admin/admin.php:203
352
+ msgid "Acceptable file types"
353
+ msgstr "Toegelaten bestandstypes"
354
+
355
+ #: contact-form-7/admin/admin.php:204
356
+ msgid "Note: To use CAPTCHA, you need Really Simple CAPTCHA plugin installed."
357
+ msgstr "Let op: Om CAPTCHA te gebruiken moet de Really Simple CAPTCHA plugin geinstalleerd zijn."
358
+
359
+ #: contact-form-7/admin/admin.php:223
360
+ msgid "Contact form created."
361
+ msgstr "Contactformulier aangemaakt."
362
+
363
+ #: contact-form-7/admin/admin.php:226
364
+ msgid "Contact form saved."
365
+ msgstr "Contactformulier opgeslagen."
366
+
367
+ #: contact-form-7/admin/admin.php:229
368
+ msgid "Contact form deleted."
369
+ msgstr "Contactformulier verwijderd."
370
+
371
+ #: contact-form-7/admin/admin.php:240
372
+ msgid "Untitled"
373
+ msgstr "Zonder titel."
374
+
375
+ #: contact-form-7/admin/admin.php:253
376
+ msgid "Your Name"
377
+ msgstr "Uw naam"
378
+
379
+ #: contact-form-7/admin/admin.php:253
380
+ #: contact-form-7/admin/admin.php:255
381
+ msgid "(required)"
382
+ msgstr "(verplicht)"
383
+
384
+ #: contact-form-7/admin/admin.php:255
385
+ msgid "Your Email"
386
+ msgstr "Uw email"
387
+
388
+ #: contact-form-7/admin/admin.php:257
389
+ msgid "Subject"
390
+ msgstr "Onderwerp"
391
+
392
+ #: contact-form-7/admin/admin.php:259
393
+ msgid "Your Message"
394
+ msgstr "Uw bericht"
395
+
396
+ #: contact-form-7/admin/admin.php:261
397
+ #: contact-form-7/includes/classes.php:411
398
+ msgid "Send"
399
+ msgstr "Verzenden"
400
+
401
+ #: contact-form-7/admin/admin.php:334
402
+ msgid "Settings"
403
+ msgstr "Instellingen"
404
+
405
+ #: contact-form-7/admin/admin.php:355
406
+ msgid "Contact Form 7 needs your support. Please donate today."
407
+ msgstr "Contact Form 7 heeft jouw steun nodig. Doneer vandaag nog."
408
+
409
+ #: contact-form-7/admin/admin.php:356
410
+ msgid "Is this plugin useful for you? If you like it, please help the developer."
411
+ msgstr "Komt deze plugin jou van pas? Help de ontwikkelaar."
412
+
413
+ #: contact-form-7/admin/admin.php:357
414
+ msgid "Your contribution is needed for making this plugin better."
415
+ msgstr "Jouw bijdrage is nodig voor het verbeteren van deze plugin."
416
+
417
+ #: contact-form-7/admin/admin.php:358
418
+ msgid "Developing a plugin and providing user support is really hard work. Please help."
419
+ msgstr "Het ontwikkelen van een plugin en leveren van ondersteuning is veel werk. Help mee."
420
+
421
+ #: contact-form-7/includes/classes.php:352
422
+ msgid "To use CAPTCHA, you need <a href=\"http://wordpress.org/extend/plugins/really-simple-captcha/\">Really Simple CAPTCHA</a> plugin installed."
423
+ msgstr "Om CAPTCHA te gebruiken moet je de <a href=\"http://wordpress.org/extend/plugins/really-simple-captcha/\">Really Simple CAPTCHA</a> plugin geinstalleerd hebben."
424
+
425
+ #: contact-form-7/includes/functions.php:6
426
+ msgid "Your message was sent successfully. Thanks."
427
+ msgstr "Uw bericht werd succesvol verzonden."
428
+
429
+ #: contact-form-7/includes/functions.php:8
430
+ #: contact-form-7/includes/functions.php:10
431
+ msgid "Failed to send your message. Please try later or contact administrator by other way."
432
+ msgstr "Het is niet gelukt uw bericht te verzenden. Probeer het later nog een keer of neem op een andere manier contact op."
433
+
434
+ #: contact-form-7/includes/functions.php:12
435
+ msgid "Validation errors occurred. Please confirm the fields and submit it again."
436
+ msgstr "Validatiefouten opgetreden. Controleer de velden en druk nogmaals op verzend."
437
+
438
+ #: contact-form-7/includes/functions.php:14
439
+ msgid "Please accept the terms to proceed."
440
+ msgstr "Aanvaard de voorwaarden om door te gaan."
441
+
442
+ #: contact-form-7/includes/functions.php:16
443
+ msgid "Email address seems invalid."
444
+ msgstr "Het email adres lijkt ongeldig te zijn."
445
+
446
+ #: contact-form-7/includes/functions.php:18
447
+ msgid "Please fill the required field."
448
+ msgstr "Vul aub het verplichte veld in."
449
+
450
+ #: contact-form-7/includes/functions.php:20
451
+ msgid "Your entered code is incorrect."
452
+ msgstr "De ingevulde code is onjuist."
453
+
454
+ #: contact-form-7/includes/functions.php:22
455
+ msgid "Your answer is not correct."
456
+ msgstr "Uw antwoord is niet juist."
457
+
458
+ #: contact-form-7/includes/functions.php:24
459
+ msgid "Failed to upload file."
460
+ msgstr "Uploaden van het bestand mislukt"
461
+
462
+ #: contact-form-7/includes/functions.php:26
463
+ msgid "This file type is not allowed."
464
+ msgstr "Dit bestandstype is niet toegestaan"
465
+
466
+ #: contact-form-7/includes/functions.php:28
467
+ msgid "This file is too large."
468
+ msgstr "Dit bestand is te groot"
469
+
languages/wpcf7-zh_TW.mo CHANGED
Binary file
languages/wpcf7-zh_TW.po CHANGED
@@ -2,7 +2,7 @@ msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Contact Form 1.9.2.2 正體中文語系檔\n"
4
  "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2009-02-07 16:17+0900\n"
6
  "PO-Revision-Date: \n"
7
  "Last-Translator: James Wu <admin@jameswublog.com>\n"
8
  "Language-Team: http://jameswublog.com <phptech@gmail.com>\n"
@@ -14,415 +14,460 @@ msgstr ""
14
  "X-Poedit-Country: TAIWAN\n"
15
  "X-Poedit-SourceCharset: utf-8\n"
16
 
17
- #: contact-form-7/wp-contact-form-7.php:413
18
  msgid "Contact form"
19
  msgstr "聯絡表單"
20
 
21
- #: contact-form-7/wp-contact-form-7.php:582
22
- #: contact-form-7/includes/admin-panel.php:5
23
  msgid "Contact Form 7"
24
  msgstr "Contact Form 7"
25
 
26
- #: contact-form-7/wp-contact-form-7.php:605
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  msgid "optional"
28
  msgstr "可不填"
29
 
30
- #: contact-form-7/wp-contact-form-7.php:606
31
  msgid "Generate Tag"
32
  msgstr "標籤產生器"
33
 
34
- #: contact-form-7/wp-contact-form-7.php:607
35
  msgid "Text field"
36
  msgstr "文字欄位"
37
 
38
- #: contact-form-7/wp-contact-form-7.php:608
39
  msgid "Email field"
40
  msgstr "電子郵件欄位"
41
 
42
- #: contact-form-7/wp-contact-form-7.php:609
43
  msgid "Text area"
44
  msgstr "文字區塊"
45
 
46
- #: contact-form-7/wp-contact-form-7.php:610
47
  msgid "Drop-down menu"
48
  msgstr "下拉式選單"
49
 
50
- #: contact-form-7/wp-contact-form-7.php:611
51
  msgid "Checkboxes"
52
  msgstr "核選方塊"
53
 
54
- #: contact-form-7/wp-contact-form-7.php:612
55
  msgid "Radio buttons"
56
  msgstr "選項按鈕"
57
 
58
- #: contact-form-7/wp-contact-form-7.php:613
59
  msgid "Acceptance"
60
  msgstr "接受使用條款"
61
 
62
- #: contact-form-7/wp-contact-form-7.php:614
63
  msgid "Make this checkbox checked by default?"
64
  msgstr "預設核選方塊為核取(已勾選)?"
65
 
66
- #: contact-form-7/wp-contact-form-7.php:615
67
  msgid "Make this checkbox work inversely?"
68
  msgstr "設定核取方塊被選取的狀態相反?"
69
 
70
- #: contact-form-7/wp-contact-form-7.php:616
71
  msgid "* That means visitor who accepts the term unchecks it."
72
  msgstr "*意思是如果使用者如果接受服務條款,則不需勾選核取方塊。"
73
 
74
- #: contact-form-7/wp-contact-form-7.php:617
75
  msgid "CAPTCHA"
76
  msgstr "圖片驗證"
77
 
78
- #: contact-form-7/wp-contact-form-7.php:618
79
  msgid "Quiz"
80
  msgstr "測驗題目驗證"
81
 
82
- #: contact-form-7/wp-contact-form-7.php:619
83
  msgid "Quizzes"
84
  msgstr "測驗題庫"
85
 
86
- #: contact-form-7/wp-contact-form-7.php:620
87
  msgid "* quiz|answer (e.g. 1+1=?|2)"
88
  msgstr "* 測驗題目|答案 (例如 1+1=?|2)"
89
 
90
- #: contact-form-7/wp-contact-form-7.php:621
91
  msgid "File upload"
92
  msgstr "檔案上傳"
93
 
94
- #: contact-form-7/wp-contact-form-7.php:622
95
  msgid "bytes"
96
  msgstr "位元組"
97
 
98
- #: contact-form-7/wp-contact-form-7.php:623
99
  msgid "Submit button"
100
  msgstr "提交按鈕"
101
 
102
- #: contact-form-7/wp-contact-form-7.php:624
103
  msgid "Name"
104
  msgstr "物件名稱"
105
 
106
- #: contact-form-7/wp-contact-form-7.php:625
107
  msgid "Required field?"
108
  msgstr "設定為必要欄位?"
109
 
110
- #: contact-form-7/wp-contact-form-7.php:626
111
  msgid "Allow multiple selections?"
112
  msgstr "允許在下拉式選單中,可以選擇一個以上的選項?"
113
 
114
- #: contact-form-7/wp-contact-form-7.php:627
115
  msgid "Insert a blank item as the first option?"
116
  msgstr "要插入一個空白資料欄位,作為第一個選項?"
117
 
118
- #: contact-form-7/wp-contact-form-7.php:628
119
  msgid "Make checkboxes exclusive?"
120
  msgstr "設定核取方塊,為不允許修改(唯讀)?"
121
 
122
- #: contact-form-7/wp-contact-form-7.php:629
123
  msgid "Choices"
124
  msgstr "選項"
125
 
126
- #: contact-form-7/wp-contact-form-7.php:630
127
  msgid "Label"
128
  msgstr "標籤"
129
 
130
- #: contact-form-7/wp-contact-form-7.php:631
131
  msgid "Default value"
132
  msgstr "預設值"
133
 
134
- #: contact-form-7/wp-contact-form-7.php:632
135
  msgid "Akismet"
136
  msgstr "Akismet(防止垃圾郵件的插件)"
137
 
138
- #: contact-form-7/wp-contact-form-7.php:633
139
  msgid "This field requires author's name"
140
  msgstr "這個欄位需要填寫作者的姓名"
141
 
142
- #: contact-form-7/wp-contact-form-7.php:634
143
  msgid "This field requires author's URL"
144
  msgstr "這個欄位需要填寫作者的網址"
145
 
146
- #: contact-form-7/wp-contact-form-7.php:635
147
  msgid "This field requires author's email address"
148
  msgstr "這個欄位需要填寫作者的電子郵件信箱"
149
 
150
- #: contact-form-7/wp-contact-form-7.php:636
151
  msgid "Copy this code and paste it into the form left."
152
  msgstr "把這段代碼複製後,貼到左方的表格"
153
 
154
- #: contact-form-7/wp-contact-form-7.php:637
155
  msgid "Foreground color"
156
  msgstr "前景顏色"
157
 
158
- #: contact-form-7/wp-contact-form-7.php:638
159
  msgid "Background color"
160
  msgstr "背景顏色"
161
 
162
- #: contact-form-7/wp-contact-form-7.php:639
163
  msgid "Image size"
164
  msgstr "圖片尺寸"
165
 
166
- #: contact-form-7/wp-contact-form-7.php:640
167
  msgid "Small"
168
  msgstr "小"
169
 
170
- #: contact-form-7/wp-contact-form-7.php:641
171
  msgid "Medium"
172
  msgstr "中"
173
 
174
- #: contact-form-7/wp-contact-form-7.php:642
175
  msgid "Large"
176
  msgstr "大"
177
 
178
- #: contact-form-7/wp-contact-form-7.php:643
179
  msgid "Image settings"
180
  msgstr "圖片設定"
181
 
182
- #: contact-form-7/wp-contact-form-7.php:644
183
  msgid "Input field settings"
184
  msgstr "設定輸入欄位"
185
 
186
- #: contact-form-7/wp-contact-form-7.php:645
187
  msgid "For image"
188
  msgstr "圖片使用"
189
 
190
- #: contact-form-7/wp-contact-form-7.php:646
191
  msgid "For input field"
192
  msgstr "輸入欄位使用"
193
 
194
- #: contact-form-7/wp-contact-form-7.php:647
195
  msgid "* One choice per line."
196
  msgstr "*每行只能有一個選項。"
197
 
198
- #: contact-form-7/wp-contact-form-7.php:648
199
  msgid "Show"
200
  msgstr "顯示"
201
 
202
- #: contact-form-7/wp-contact-form-7.php:649
203
  msgid "Hide"
204
  msgstr "隱藏"
205
 
206
- #: contact-form-7/wp-contact-form-7.php:650
207
  msgid "File size limit"
208
  msgstr "檔案大小限制"
209
 
210
- #: contact-form-7/wp-contact-form-7.php:651
211
  msgid "Acceptable file types"
212
  msgstr "可接受上傳檔案的種類"
213
 
214
- #: contact-form-7/wp-contact-form-7.php:677
 
 
 
 
215
  msgid "Contact form created."
216
  msgstr "已新增聯絡表單。"
217
 
218
- #: contact-form-7/wp-contact-form-7.php:680
219
  msgid "Contact form saved."
220
  msgstr "已儲存聯絡表單。"
221
 
222
- #: contact-form-7/wp-contact-form-7.php:683
223
  msgid "Contact form deleted."
224
  msgstr "已刪除聯絡表單。"
225
 
226
- #: contact-form-7/wp-contact-form-7.php:694
227
  msgid "Untitled"
228
  msgstr "無標題"
229
 
230
- #: contact-form-7/wp-contact-form-7.php:721
231
  msgid "Your Name"
232
  msgstr "您的姓名"
233
 
234
- #: contact-form-7/wp-contact-form-7.php:721
235
- #: contact-form-7/wp-contact-form-7.php:723
236
  msgid "(required)"
237
  msgstr "〈需填寫〉"
238
 
239
- #: contact-form-7/wp-contact-form-7.php:723
240
  msgid "Your Email"
241
  msgstr "您的電子郵件信箱"
242
 
243
- #: contact-form-7/wp-contact-form-7.php:725
244
  msgid "Subject"
245
  msgstr "主旨"
246
 
247
- #: contact-form-7/wp-contact-form-7.php:727
248
  msgid "Your Message"
249
  msgstr "您的信件內容"
250
 
251
- #: contact-form-7/wp-contact-form-7.php:729
252
- #: contact-form-7/wp-contact-form-7.php:1458
253
  msgid "Send"
254
  msgstr "傳送"
255
 
256
- #: contact-form-7/wp-contact-form-7.php:783
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
257
  msgid "Your message was sent successfully. Thanks."
258
  msgstr "您的信件已成功寄出,感謝。"
259
 
260
- #: contact-form-7/wp-contact-form-7.php:785
261
- #: contact-form-7/wp-contact-form-7.php:787
262
  msgid "Failed to send your message. Please try later or contact administrator by other way."
263
  msgstr "信件傳送失敗。請稍後再試或以其他方式與站管人員聯絡。"
264
 
265
- #: contact-form-7/wp-contact-form-7.php:789
266
  msgid "Validation errors occurred. Please confirm the fields and submit it again."
267
  msgstr "認證發生錯誤。請確認各項欄位資料是否正確後,再行提交。"
268
 
269
- #: contact-form-7/wp-contact-form-7.php:791
270
  msgid "Please accept the terms to proceed."
271
  msgstr "請接受本服務條款再繼續進行。"
272
 
273
- #: contact-form-7/wp-contact-form-7.php:793
274
  msgid "Email address seems invalid."
275
  msgstr "電子郵件格式不符。"
276
 
277
- #: contact-form-7/wp-contact-form-7.php:795
278
  msgid "Please fill the required field."
279
  msgstr "請填寫必要欄位。"
280
 
281
- #: contact-form-7/wp-contact-form-7.php:797
282
  msgid "Your entered code is incorrect."
283
  msgstr "您輸入的認證代碼錯誤。 "
284
 
285
- #: contact-form-7/wp-contact-form-7.php:799
286
  msgid "Your answer is not correct."
287
  msgstr "您的答案不正確。"
288
 
289
- #: contact-form-7/wp-contact-form-7.php:801
290
  msgid "Failed to upload file."
291
  msgstr "上傳檔案失敗。"
292
 
293
- #: contact-form-7/wp-contact-form-7.php:803
294
  msgid "This file type is not allowed."
295
  msgstr "上傳的檔案不是允許的檔案種類。"
296
 
297
- #: contact-form-7/wp-contact-form-7.php:805
298
  msgid "This file is too large."
299
  msgstr "上傳檔案過大。"
300
 
301
- #: contact-form-7/includes/admin-panel.php:20
302
- msgid "Add new"
303
- msgstr "建立新聯絡表單"
304
-
305
- #: contact-form-7/includes/admin-panel.php:42
306
- msgid "Copy this code and paste it into your post, page or text widget content."
307
- msgstr "您可以把這段代碼複製到您的網誌文章、分頁或文字小工具(Text Widget)的內容中。"
308
-
309
- #: contact-form-7/includes/admin-panel.php:49
310
- #: contact-form-7/includes/admin-panel.php:257
311
- msgid "Save"
312
- msgstr "儲存"
313
-
314
- #: contact-form-7/includes/admin-panel.php:55
315
- msgid "Delete this contact form"
316
- msgstr "刪除這個聯絡表單"
317
-
318
- #: contact-form-7/includes/admin-panel.php:56
319
- msgid ""
320
- "You are about to delete this contact form.\n"
321
- " 'Cancel' to stop, 'OK' to delete."
322
- msgstr ""
323
- "您即將刪除這個聯絡表單。\n"
324
- "按「確定」刪除表單,或按「取消」取消刪除表單的動作。"
325
-
326
- #: contact-form-7/includes/admin-panel.php:70
327
- msgid "Form"
328
- msgstr "表單"
329
-
330
- #: contact-form-7/includes/admin-panel.php:90
331
- msgid "Mail"
332
- msgstr "郵件"
333
-
334
- #: contact-form-7/includes/admin-panel.php:97
335
- #: contact-form-7/includes/admin-panel.php:149
336
- msgid "To:"
337
- msgstr "收件人:"
338
-
339
- #: contact-form-7/includes/admin-panel.php:101
340
- #: contact-form-7/includes/admin-panel.php:153
341
- msgid "From:"
342
- msgstr "寄件人:"
343
-
344
- #: contact-form-7/includes/admin-panel.php:105
345
- #: contact-form-7/includes/admin-panel.php:157
346
- msgid "Subject:"
347
- msgstr "主旨:"
348
-
349
- #: contact-form-7/includes/admin-panel.php:110
350
- #: contact-form-7/includes/admin-panel.php:162
351
- msgid "File attachments:"
352
- msgstr "附加檔案:"
353
-
354
- #: contact-form-7/includes/admin-panel.php:112
355
- #: contact-form-7/includes/admin-panel.php:164
356
- msgid "(You need WordPress 2.7 or greater to use this feature)"
357
- msgstr "您必需使用WordPress 2.7或以上版本,才能使用這個功能。"
358
-
359
- #: contact-form-7/includes/admin-panel.php:120
360
- #: contact-form-7/includes/admin-panel.php:172
361
- msgid "Use HTML content type"
362
- msgstr "使用HTML內文格式"
363
-
364
- #: contact-form-7/includes/admin-panel.php:125
365
- #: contact-form-7/includes/admin-panel.php:177
366
- msgid "Message body:"
367
- msgstr "郵件內容:"
368
-
369
- #: contact-form-7/includes/admin-panel.php:136
370
- msgid "Mail (2)"
371
- msgstr "郵件(2)"
372
-
373
- #: contact-form-7/includes/admin-panel.php:143
374
- msgid "Use mail (2)"
375
- msgstr "使用郵件(2)"
376
-
377
- #: contact-form-7/includes/admin-panel.php:188
378
- msgid "Messages"
379
- msgstr "郵件內容"
380
-
381
- #: contact-form-7/includes/admin-panel.php:196
382
- msgid "Sender's message was sent successfully"
383
- msgstr "寄件者的信件已經成功寄出"
384
-
385
- #: contact-form-7/includes/admin-panel.php:200
386
- msgid "Sender's message was failed to send"
387
- msgstr "寄件者的信件傳送失敗"
388
-
389
- #: contact-form-7/includes/admin-panel.php:204
390
- msgid "Akismet judged the sending activity as spamming"
391
- msgstr "經Akismet機制判斷,這個寄信的動作為濫發廣告信"
392
-
393
- #: contact-form-7/includes/admin-panel.php:208
394
- msgid "Validation errors occurred"
395
- msgstr "發生認證錯誤"
396
-
397
- #: contact-form-7/includes/admin-panel.php:212
398
- msgid "There is a field that sender is needed to fill in"
399
- msgstr " 有一個必需填寫的欄位不允許空白,請寄信者再確認。"
400
-
401
- #: contact-form-7/includes/admin-panel.php:216
402
- msgid "Email address that sender entered is invalid"
403
- msgstr " 電子郵件格式不符,請寄信者再確認。"
404
-
405
- #: contact-form-7/includes/admin-panel.php:220
406
- msgid "There is a field of term that sender is needed to accept"
407
- msgstr "寄信者必需接受使用者條款"
408
-
409
- #: contact-form-7/includes/admin-panel.php:224
410
- msgid "Sender doesn't enter the correct answer to the quiz"
411
- msgstr "寄信者沒有輸入測驗題目的正確答案"
412
-
413
- #: contact-form-7/includes/admin-panel.php:228
414
- msgid "The code that sender entered does not match the CAPTCHA"
415
- msgstr "寄信者所輸入的圖片認證碼錯誤"
416
-
417
- #: contact-form-7/includes/admin-panel.php:232
418
- msgid "Uploading a file fails for any reason"
419
- msgstr "檔案上傳的過程中,因不明原因導致上傳失敗。"
420
-
421
- #: contact-form-7/includes/admin-panel.php:236
422
- msgid "Uploaded file is not allowed file type"
423
- msgstr "所上傳的檔案是不被允許的檔案種類"
424
-
425
- #: contact-form-7/includes/admin-panel.php:240
426
- msgid "Uploaded file is too large"
427
- msgstr "上傳擋案過大"
428
 
2
  msgstr ""
3
  "Project-Id-Version: Contact Form 1.9.2.2 正體中文語系檔\n"
4
  "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2009-05-31 23:05+0900\n"
6
  "PO-Revision-Date: \n"
7
  "Last-Translator: James Wu <admin@jameswublog.com>\n"
8
  "Language-Team: http://jameswublog.com <phptech@gmail.com>\n"
14
  "X-Poedit-Country: TAIWAN\n"
15
  "X-Poedit-SourceCharset: utf-8\n"
16
 
17
+ #: contact-form-7/wp-contact-form-7.php:373
18
  msgid "Contact form"
19
  msgstr "聯絡表單"
20
 
21
+ #: contact-form-7/admin/admin-panel.php:6
22
+ #: contact-form-7/admin/admin.php:111
23
  msgid "Contact Form 7"
24
  msgstr "Contact Form 7"
25
 
26
+ #: contact-form-7/admin/admin-panel.php:21
27
+ msgid "Add new"
28
+ msgstr "建立新聯絡表單"
29
+
30
+ #: contact-form-7/admin/admin-panel.php:43
31
+ msgid "Copy this code and paste it into your post, page or text widget content."
32
+ msgstr "您可以把這段代碼複製到您的網誌文章、分頁或文字小工具(Text Widget)的內容中。"
33
+
34
+ #: contact-form-7/admin/admin-panel.php:50
35
+ #: contact-form-7/admin/admin-panel.php:290
36
+ msgid "Save"
37
+ msgstr "儲存"
38
+
39
+ #: contact-form-7/admin/admin-panel.php:57
40
+ msgid "Copy"
41
+ msgstr "複製"
42
+
43
+ #: contact-form-7/admin/admin-panel.php:61
44
+ msgid "Delete"
45
+ msgstr "刪除"
46
+
47
+ #: contact-form-7/admin/admin-panel.php:63
48
+ msgid ""
49
+ "You are about to delete this contact form.\n"
50
+ " 'Cancel' to stop, 'OK' to delete."
51
+ msgstr ""
52
+ "您即將刪除這個聯絡表單。\n"
53
+ "按「確定」刪除表單,或按「取消」取消刪除表單的動作。"
54
+
55
+ #: contact-form-7/admin/admin-panel.php:78
56
+ msgid "Form"
57
+ msgstr "表單"
58
+
59
+ #: contact-form-7/admin/admin-panel.php:98
60
+ msgid "Mail"
61
+ msgstr "郵件"
62
+
63
+ #: contact-form-7/admin/admin-panel.php:105
64
+ #: contact-form-7/admin/admin-panel.php:161
65
+ msgid "To:"
66
+ msgstr "收件人:"
67
+
68
+ #: contact-form-7/admin/admin-panel.php:109
69
+ #: contact-form-7/admin/admin-panel.php:165
70
+ msgid "From:"
71
+ msgstr "寄件人:"
72
+
73
+ #: contact-form-7/admin/admin-panel.php:113
74
+ #: contact-form-7/admin/admin-panel.php:169
75
+ msgid "Subject:"
76
+ msgstr "主旨:"
77
+
78
+ #: contact-form-7/admin/admin-panel.php:118
79
+ #: contact-form-7/admin/admin-panel.php:174
80
+ msgid "Additional headers:"
81
+ msgstr "額外的標頭(header) "
82
+
83
+ #: contact-form-7/admin/admin-panel.php:122
84
+ #: contact-form-7/admin/admin-panel.php:178
85
+ msgid "File attachments:"
86
+ msgstr "附加檔案:"
87
+
88
+ #: contact-form-7/admin/admin-panel.php:124
89
+ #: contact-form-7/admin/admin-panel.php:180
90
+ msgid "(You need WordPress 2.7 or greater to use this feature)"
91
+ msgstr "您必需使用WordPress 2.7或以上版本,才能使用這個功能。"
92
+
93
+ #: contact-form-7/admin/admin-panel.php:132
94
+ #: contact-form-7/admin/admin-panel.php:188
95
+ msgid "Use HTML content type"
96
+ msgstr "使用HTML內文格式"
97
+
98
+ #: contact-form-7/admin/admin-panel.php:137
99
+ #: contact-form-7/admin/admin-panel.php:193
100
+ msgid "Message body:"
101
+ msgstr "郵件內容:"
102
+
103
+ #: contact-form-7/admin/admin-panel.php:148
104
+ msgid "Mail (2)"
105
+ msgstr "郵件(2)"
106
+
107
+ #: contact-form-7/admin/admin-panel.php:155
108
+ msgid "Use mail (2)"
109
+ msgstr "使用郵件(2)"
110
+
111
+ #: contact-form-7/admin/admin-panel.php:204
112
+ msgid "Messages"
113
+ msgstr "郵件內容"
114
+
115
+ #: contact-form-7/admin/admin-panel.php:212
116
+ msgid "Sender's message was sent successfully"
117
+ msgstr "寄件者的信件已經成功寄出"
118
+
119
+ #: contact-form-7/admin/admin-panel.php:216
120
+ msgid "Sender's message was failed to send"
121
+ msgstr "寄件者的信件傳送失敗"
122
+
123
+ #: contact-form-7/admin/admin-panel.php:220
124
+ msgid "Akismet judged the sending activity as spamming"
125
+ msgstr "經Akismet機制判斷,這個寄信的動作為濫發廣告信"
126
+
127
+ #: contact-form-7/admin/admin-panel.php:224
128
+ msgid "Validation errors occurred"
129
+ msgstr "發生認證錯誤"
130
+
131
+ #: contact-form-7/admin/admin-panel.php:228
132
+ msgid "There is a field that sender is needed to fill in"
133
+ msgstr " 有一個必需填寫的欄位不允許空白,請寄信者再確認。"
134
+
135
+ #: contact-form-7/admin/admin-panel.php:232
136
+ msgid "Email address that sender entered is invalid"
137
+ msgstr " 電子郵件格式不符,請寄信者再確認。"
138
+
139
+ #: contact-form-7/admin/admin-panel.php:236
140
+ msgid "There is a field of term that sender is needed to accept"
141
+ msgstr "寄信者必需接受使用者條款"
142
+
143
+ #: contact-form-7/admin/admin-panel.php:240
144
+ msgid "Sender doesn't enter the correct answer to the quiz"
145
+ msgstr "寄信者沒有輸入測驗題目的正確答案"
146
+
147
+ #: contact-form-7/admin/admin-panel.php:244
148
+ msgid "The code that sender entered does not match the CAPTCHA"
149
+ msgstr "寄信者所輸入的圖片認證碼錯誤"
150
+
151
+ #: contact-form-7/admin/admin-panel.php:248
152
+ msgid "Uploading a file fails for any reason"
153
+ msgstr "檔案上傳的過程中,因不明原因導致上傳失敗。"
154
+
155
+ #: contact-form-7/admin/admin-panel.php:252
156
+ msgid "Uploaded file is not allowed file type"
157
+ msgstr "所上傳的檔案是不被允許的檔案種類"
158
+
159
+ #: contact-form-7/admin/admin-panel.php:256
160
+ msgid "Uploaded file is too large"
161
+ msgstr "上傳擋案過大"
162
+
163
+ #: contact-form-7/admin/admin-panel.php:269
164
+ msgid "Additional Settings"
165
+ msgstr "額外的設定"
166
+
167
+ #: contact-form-7/admin/admin.php:157
168
  msgid "optional"
169
  msgstr "可不填"
170
 
171
+ #: contact-form-7/admin/admin.php:158
172
  msgid "Generate Tag"
173
  msgstr "標籤產生器"
174
 
175
+ #: contact-form-7/admin/admin.php:159
176
  msgid "Text field"
177
  msgstr "文字欄位"
178
 
179
+ #: contact-form-7/admin/admin.php:160
180
  msgid "Email field"
181
  msgstr "電子郵件欄位"
182
 
183
+ #: contact-form-7/admin/admin.php:161
184
  msgid "Text area"
185
  msgstr "文字區塊"
186
 
187
+ #: contact-form-7/admin/admin.php:162
188
  msgid "Drop-down menu"
189
  msgstr "下拉式選單"
190
 
191
+ #: contact-form-7/admin/admin.php:163
192
  msgid "Checkboxes"
193
  msgstr "核選方塊"
194
 
195
+ #: contact-form-7/admin/admin.php:164
196
  msgid "Radio buttons"
197
  msgstr "選項按鈕"
198
 
199
+ #: contact-form-7/admin/admin.php:165
200
  msgid "Acceptance"
201
  msgstr "接受使用條款"
202
 
203
+ #: contact-form-7/admin/admin.php:166
204
  msgid "Make this checkbox checked by default?"
205
  msgstr "預設核選方塊為核取(已勾選)?"
206
 
207
+ #: contact-form-7/admin/admin.php:167
208
  msgid "Make this checkbox work inversely?"
209
  msgstr "設定核取方塊被選取的狀態相反?"
210
 
211
+ #: contact-form-7/admin/admin.php:168
212
  msgid "* That means visitor who accepts the term unchecks it."
213
  msgstr "*意思是如果使用者如果接受服務條款,則不需勾選核取方塊。"
214
 
215
+ #: contact-form-7/admin/admin.php:169
216
  msgid "CAPTCHA"
217
  msgstr "圖片驗證"
218
 
219
+ #: contact-form-7/admin/admin.php:170
220
  msgid "Quiz"
221
  msgstr "測驗題目驗證"
222
 
223
+ #: contact-form-7/admin/admin.php:171
224
  msgid "Quizzes"
225
  msgstr "測驗題庫"
226
 
227
+ #: contact-form-7/admin/admin.php:172
228
  msgid "* quiz|answer (e.g. 1+1=?|2)"
229
  msgstr "* 測驗題目|答案 (例如 1+1=?|2)"
230
 
231
+ #: contact-form-7/admin/admin.php:173
232
  msgid "File upload"
233
  msgstr "檔案上傳"
234
 
235
+ #: contact-form-7/admin/admin.php:174
236
  msgid "bytes"
237
  msgstr "位元組"
238
 
239
+ #: contact-form-7/admin/admin.php:175
240
  msgid "Submit button"
241
  msgstr "提交按鈕"
242
 
243
+ #: contact-form-7/admin/admin.php:176
244
  msgid "Name"
245
  msgstr "物件名稱"
246
 
247
+ #: contact-form-7/admin/admin.php:177
248
  msgid "Required field?"
249
  msgstr "設定為必要欄位?"
250
 
251
+ #: contact-form-7/admin/admin.php:178
252
  msgid "Allow multiple selections?"
253
  msgstr "允許在下拉式選單中,可以選擇一個以上的選項?"
254
 
255
+ #: contact-form-7/admin/admin.php:179
256
  msgid "Insert a blank item as the first option?"
257
  msgstr "要插入一個空白資料欄位,作為第一個選項?"
258
 
259
+ #: contact-form-7/admin/admin.php:180
260
  msgid "Make checkboxes exclusive?"
261
  msgstr "設定核取方塊,為不允許修改(唯讀)?"
262
 
263
+ #: contact-form-7/admin/admin.php:181
264
  msgid "Choices"
265
  msgstr "選項"
266
 
267
+ #: contact-form-7/admin/admin.php:182
268
  msgid "Label"
269
  msgstr "標籤"
270
 
271
+ #: contact-form-7/admin/admin.php:183
272
  msgid "Default value"
273
  msgstr "預設值"
274
 
275
+ #: contact-form-7/admin/admin.php:184
276
  msgid "Akismet"
277
  msgstr "Akismet(防止垃圾郵件的插件)"
278
 
279
+ #: contact-form-7/admin/admin.php:185
280
  msgid "This field requires author's name"
281
  msgstr "這個欄位需要填寫作者的姓名"
282
 
283
+ #: contact-form-7/admin/admin.php:186
284
  msgid "This field requires author's URL"
285
  msgstr "這個欄位需要填寫作者的網址"
286
 
287
+ #: contact-form-7/admin/admin.php:187
288
  msgid "This field requires author's email address"
289
  msgstr "這個欄位需要填寫作者的電子郵件信箱"
290
 
291
+ #: contact-form-7/admin/admin.php:188
292
  msgid "Copy this code and paste it into the form left."
293
  msgstr "把這段代碼複製後,貼到左方的表格"
294
 
295
+ #: contact-form-7/admin/admin.php:189
296
  msgid "Foreground color"
297
  msgstr "前景顏色"
298
 
299
+ #: contact-form-7/admin/admin.php:190
300
  msgid "Background color"
301
  msgstr "背景顏色"
302
 
303
+ #: contact-form-7/admin/admin.php:191
304
  msgid "Image size"
305
  msgstr "圖片尺寸"
306
 
307
+ #: contact-form-7/admin/admin.php:192
308
  msgid "Small"
309
  msgstr "小"
310
 
311
+ #: contact-form-7/admin/admin.php:193
312
  msgid "Medium"
313
  msgstr "中"
314
 
315
+ #: contact-form-7/admin/admin.php:194
316
  msgid "Large"
317
  msgstr "大"
318
 
319
+ #: contact-form-7/admin/admin.php:195
320
  msgid "Image settings"
321
  msgstr "圖片設定"
322
 
323
+ #: contact-form-7/admin/admin.php:196
324
  msgid "Input field settings"
325
  msgstr "設定輸入欄位"
326
 
327
+ #: contact-form-7/admin/admin.php:197
328
  msgid "For image"
329
  msgstr "圖片使用"
330
 
331
+ #: contact-form-7/admin/admin.php:198
332
  msgid "For input field"
333
  msgstr "輸入欄位使用"
334
 
335
+ #: contact-form-7/admin/admin.php:199
336
  msgid "* One choice per line."
337
  msgstr "*每行只能有一個選項。"
338
 
339
+ #: contact-form-7/admin/admin.php:200
340
  msgid "Show"
341
  msgstr "顯示"
342
 
343
+ #: contact-form-7/admin/admin.php:201
344
  msgid "Hide"
345
  msgstr "隱藏"
346
 
347
+ #: contact-form-7/admin/admin.php:202
348
  msgid "File size limit"
349
  msgstr "檔案大小限制"
350
 
351
+ #: contact-form-7/admin/admin.php:203
352
  msgid "Acceptable file types"
353
  msgstr "可接受上傳檔案的種類"
354
 
355
+ #: contact-form-7/admin/admin.php:204
356
+ msgid "Note: To use CAPTCHA, you need Really Simple CAPTCHA plugin installed."
357
+ msgstr "作者註:使用圖片驗證(CAPTCHA)的功能前,您必需先安裝\"Really Simple CAPTCHA\"這個外掛。"
358
+
359
+ #: contact-form-7/admin/admin.php:223
360
  msgid "Contact form created."
361
  msgstr "已新增聯絡表單。"
362
 
363
+ #: contact-form-7/admin/admin.php:226
364
  msgid "Contact form saved."
365
  msgstr "已儲存聯絡表單。"
366
 
367
+ #: contact-form-7/admin/admin.php:229
368
  msgid "Contact form deleted."
369
  msgstr "已刪除聯絡表單。"
370
 
371
+ #: contact-form-7/admin/admin.php:240
372
  msgid "Untitled"
373
  msgstr "無標題"
374
 
375
+ #: contact-form-7/admin/admin.php:253
376
  msgid "Your Name"
377
  msgstr "您的姓名"
378
 
379
+ #: contact-form-7/admin/admin.php:253
380
+ #: contact-form-7/admin/admin.php:255
381
  msgid "(required)"
382
  msgstr "〈需填寫〉"
383
 
384
+ #: contact-form-7/admin/admin.php:255
385
  msgid "Your Email"
386
  msgstr "您的電子郵件信箱"
387
 
388
+ #: contact-form-7/admin/admin.php:257
389
  msgid "Subject"
390
  msgstr "主旨"
391
 
392
+ #: contact-form-7/admin/admin.php:259
393
  msgid "Your Message"
394
  msgstr "您的信件內容"
395
 
396
+ #: contact-form-7/admin/admin.php:261
397
+ #: contact-form-7/includes/classes.php:411
398
  msgid "Send"
399
  msgstr "傳送"
400
 
401
+ #: contact-form-7/admin/admin.php:334
402
+ #, fuzzy
403
+ msgid "Settings"
404
+ msgstr "圖片設定"
405
+
406
+ #: contact-form-7/admin/admin.php:355
407
+ msgid "Contact Form 7 needs your support. Please donate today."
408
+ msgstr "Contact Form 7 需要您的支持,請今天就慷慨解囊。"
409
+
410
+ #: contact-form-7/admin/admin.php:356
411
+ msgid "Is this plugin useful for you? If you like it, please help the developer."
412
+ msgstr "您覺得本外掛實用嗎? 如果您喜歡這個外掛,請捐款支持本外掛的作者。"
413
+
414
+ #: contact-form-7/admin/admin.php:357
415
+ msgid "Your contribution is needed for making this plugin better."
416
+ msgstr "為了讓這個外掛更好用,我們需要您的捐款。"
417
+
418
+ #: contact-form-7/admin/admin.php:358
419
+ msgid "Developing a plugin and providing user support is really hard work. Please help."
420
+ msgstr "外掛程式的製作和幫助使用者解決技術上的問題,是很辛苦的工作。請捐款支持。"
421
+
422
+ #: contact-form-7/includes/classes.php:352
423
+ msgid "To use CAPTCHA, you need <a href=\"http://wordpress.org/extend/plugins/really-simple-captcha/\">Really Simple CAPTCHA</a> plugin installed."
424
+ msgstr "使用圖片驗證(CAPTCHA)的功能前,您必需先安裝 <a href=\"http://wordpress.org/extend/plugins/really-simple-captcha/\">Really Simple CAPTCHA</a>這個外掛。"
425
+
426
+ #: contact-form-7/includes/functions.php:6
427
  msgid "Your message was sent successfully. Thanks."
428
  msgstr "您的信件已成功寄出,感謝。"
429
 
430
+ #: contact-form-7/includes/functions.php:8
431
+ #: contact-form-7/includes/functions.php:10
432
  msgid "Failed to send your message. Please try later or contact administrator by other way."
433
  msgstr "信件傳送失敗。請稍後再試或以其他方式與站管人員聯絡。"
434
 
435
+ #: contact-form-7/includes/functions.php:12
436
  msgid "Validation errors occurred. Please confirm the fields and submit it again."
437
  msgstr "認證發生錯誤。請確認各項欄位資料是否正確後,再行提交。"
438
 
439
+ #: contact-form-7/includes/functions.php:14
440
  msgid "Please accept the terms to proceed."
441
  msgstr "請接受本服務條款再繼續進行。"
442
 
443
+ #: contact-form-7/includes/functions.php:16
444
  msgid "Email address seems invalid."
445
  msgstr "電子郵件格式不符。"
446
 
447
+ #: contact-form-7/includes/functions.php:18
448
  msgid "Please fill the required field."
449
  msgstr "請填寫必要欄位。"
450
 
451
+ #: contact-form-7/includes/functions.php:20
452
  msgid "Your entered code is incorrect."
453
  msgstr "您輸入的認證代碼錯誤。 "
454
 
455
+ #: contact-form-7/includes/functions.php:22
456
  msgid "Your answer is not correct."
457
  msgstr "您的答案不正確。"
458
 
459
+ #: contact-form-7/includes/functions.php:24
460
  msgid "Failed to upload file."
461
  msgstr "上傳檔案失敗。"
462
 
463
+ #: contact-form-7/includes/functions.php:26
464
  msgid "This file type is not allowed."
465
  msgstr "上傳的檔案不是允許的檔案種類。"
466
 
467
+ #: contact-form-7/includes/functions.php:28
468
  msgid "This file is too large."
469
  msgstr "上傳檔案過大。"
470
 
471
+ #~ msgid "Delete this contact form"
472
+ #~ msgstr "刪除這個聯絡表單"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
473
 
languages/wpcf7.pot CHANGED
@@ -2,9 +2,9 @@ msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Contact Form 7\n"
4
  "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2009-05-31 23:05+0900\n"
6
- "PO-Revision-Date: 2009-05-31 23:05+0900\n"
7
- "Last-Translator: Takayuki Miyoshi <takayukister@gmail.com>\n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
@@ -15,410 +15,383 @@ msgstr ""
15
  "Plural-Forms: nplurals=1; plural=0;\n"
16
  "X-Poedit-SearchPath-0: contact-form-7\n"
17
 
18
- #: contact-form-7/wp-contact-form-7.php:373
19
- msgid "Contact form"
20
- msgstr ""
21
-
22
- #: contact-form-7/admin/admin-panel.php:6
23
- #: contact-form-7/admin/admin.php:111
24
  msgid "Contact Form 7"
25
  msgstr ""
26
 
27
- #: contact-form-7/admin/admin-panel.php:21
28
  msgid "Add new"
29
  msgstr ""
30
 
31
- #: contact-form-7/admin/admin-panel.php:43
32
  msgid "Copy this code and paste it into your post, page or text widget content."
33
  msgstr ""
34
 
35
- #: contact-form-7/admin/admin-panel.php:50
36
- #: contact-form-7/admin/admin-panel.php:290
37
  msgid "Save"
38
  msgstr ""
39
 
40
- #: contact-form-7/admin/admin-panel.php:57
41
  msgid "Copy"
42
  msgstr ""
43
 
44
- #: contact-form-7/admin/admin-panel.php:61
45
  msgid "Delete"
46
  msgstr ""
47
 
48
- #: contact-form-7/admin/admin-panel.php:63
49
  msgid ""
50
  "You are about to delete this contact form.\n"
51
  " 'Cancel' to stop, 'OK' to delete."
52
  msgstr ""
53
 
54
- #: contact-form-7/admin/admin-panel.php:78
55
  msgid "Form"
56
  msgstr ""
57
 
58
- #: contact-form-7/admin/admin-panel.php:98
59
  msgid "Mail"
60
  msgstr ""
61
 
62
- #: contact-form-7/admin/admin-panel.php:105
63
- #: contact-form-7/admin/admin-panel.php:161
64
  msgid "To:"
65
  msgstr ""
66
 
67
- #: contact-form-7/admin/admin-panel.php:109
68
- #: contact-form-7/admin/admin-panel.php:165
69
  msgid "From:"
70
  msgstr ""
71
 
72
- #: contact-form-7/admin/admin-panel.php:113
73
- #: contact-form-7/admin/admin-panel.php:169
74
  msgid "Subject:"
75
  msgstr ""
76
 
77
- #: contact-form-7/admin/admin-panel.php:118
78
- #: contact-form-7/admin/admin-panel.php:174
79
  msgid "Additional headers:"
80
  msgstr ""
81
 
82
- #: contact-form-7/admin/admin-panel.php:122
83
- #: contact-form-7/admin/admin-panel.php:178
84
  msgid "File attachments:"
85
  msgstr ""
86
 
87
- #: contact-form-7/admin/admin-panel.php:124
88
- #: contact-form-7/admin/admin-panel.php:180
89
- msgid "(You need WordPress 2.7 or greater to use this feature)"
90
- msgstr ""
91
-
92
- #: contact-form-7/admin/admin-panel.php:132
93
- #: contact-form-7/admin/admin-panel.php:188
94
  msgid "Use HTML content type"
95
  msgstr ""
96
 
97
- #: contact-form-7/admin/admin-panel.php:137
98
- #: contact-form-7/admin/admin-panel.php:193
99
  msgid "Message body:"
100
  msgstr ""
101
 
102
- #: contact-form-7/admin/admin-panel.php:148
103
  msgid "Mail (2)"
104
  msgstr ""
105
 
106
- #: contact-form-7/admin/admin-panel.php:155
107
  msgid "Use mail (2)"
108
  msgstr ""
109
 
110
- #: contact-form-7/admin/admin-panel.php:204
111
  msgid "Messages"
112
  msgstr ""
113
 
114
- #: contact-form-7/admin/admin-panel.php:212
115
  msgid "Sender's message was sent successfully"
116
  msgstr ""
117
 
118
- #: contact-form-7/admin/admin-panel.php:216
119
  msgid "Sender's message was failed to send"
120
  msgstr ""
121
 
122
- #: contact-form-7/admin/admin-panel.php:220
123
  msgid "Akismet judged the sending activity as spamming"
124
  msgstr ""
125
 
126
- #: contact-form-7/admin/admin-panel.php:224
127
  msgid "Validation errors occurred"
128
  msgstr ""
129
 
130
- #: contact-form-7/admin/admin-panel.php:228
131
  msgid "There is a field that sender is needed to fill in"
132
  msgstr ""
133
 
134
- #: contact-form-7/admin/admin-panel.php:232
135
  msgid "Email address that sender entered is invalid"
136
  msgstr ""
137
 
138
- #: contact-form-7/admin/admin-panel.php:236
139
  msgid "There is a field of term that sender is needed to accept"
140
  msgstr ""
141
 
142
- #: contact-form-7/admin/admin-panel.php:240
143
  msgid "Sender doesn't enter the correct answer to the quiz"
144
  msgstr ""
145
 
146
- #: contact-form-7/admin/admin-panel.php:244
147
  msgid "The code that sender entered does not match the CAPTCHA"
148
  msgstr ""
149
 
150
- #: contact-form-7/admin/admin-panel.php:248
151
  msgid "Uploading a file fails for any reason"
152
  msgstr ""
153
 
154
- #: contact-form-7/admin/admin-panel.php:252
155
  msgid "Uploaded file is not allowed file type"
156
  msgstr ""
157
 
158
- #: contact-form-7/admin/admin-panel.php:256
159
  msgid "Uploaded file is too large"
160
  msgstr ""
161
 
162
- #: contact-form-7/admin/admin-panel.php:269
163
  msgid "Additional Settings"
164
  msgstr ""
165
 
166
- #: contact-form-7/admin/admin.php:157
 
 
 
 
 
 
 
 
167
  msgid "optional"
168
  msgstr ""
169
 
170
- #: contact-form-7/admin/admin.php:158
171
  msgid "Generate Tag"
172
  msgstr ""
173
 
174
- #: contact-form-7/admin/admin.php:159
175
  msgid "Text field"
176
  msgstr ""
177
 
178
- #: contact-form-7/admin/admin.php:160
179
  msgid "Email field"
180
  msgstr ""
181
 
182
- #: contact-form-7/admin/admin.php:161
183
  msgid "Text area"
184
  msgstr ""
185
 
186
- #: contact-form-7/admin/admin.php:162
187
  msgid "Drop-down menu"
188
  msgstr ""
189
 
190
- #: contact-form-7/admin/admin.php:163
191
  msgid "Checkboxes"
192
  msgstr ""
193
 
194
- #: contact-form-7/admin/admin.php:164
195
  msgid "Radio buttons"
196
  msgstr ""
197
 
198
- #: contact-form-7/admin/admin.php:165
199
  msgid "Acceptance"
200
  msgstr ""
201
 
202
- #: contact-form-7/admin/admin.php:166
203
  msgid "Make this checkbox checked by default?"
204
  msgstr ""
205
 
206
- #: contact-form-7/admin/admin.php:167
207
  msgid "Make this checkbox work inversely?"
208
  msgstr ""
209
 
210
- #: contact-form-7/admin/admin.php:168
211
  msgid "* That means visitor who accepts the term unchecks it."
212
  msgstr ""
213
 
214
- #: contact-form-7/admin/admin.php:169
215
  msgid "CAPTCHA"
216
  msgstr ""
217
 
218
- #: contact-form-7/admin/admin.php:170
219
  msgid "Quiz"
220
  msgstr ""
221
 
222
- #: contact-form-7/admin/admin.php:171
223
  msgid "Quizzes"
224
  msgstr ""
225
 
226
- #: contact-form-7/admin/admin.php:172
227
  msgid "* quiz|answer (e.g. 1+1=?|2)"
228
  msgstr ""
229
 
230
- #: contact-form-7/admin/admin.php:173
231
  msgid "File upload"
232
  msgstr ""
233
 
234
- #: contact-form-7/admin/admin.php:174
235
  msgid "bytes"
236
  msgstr ""
237
 
238
- #: contact-form-7/admin/admin.php:175
239
  msgid "Submit button"
240
  msgstr ""
241
 
242
- #: contact-form-7/admin/admin.php:176
243
  msgid "Name"
244
  msgstr ""
245
 
246
- #: contact-form-7/admin/admin.php:177
247
  msgid "Required field?"
248
  msgstr ""
249
 
250
- #: contact-form-7/admin/admin.php:178
251
  msgid "Allow multiple selections?"
252
  msgstr ""
253
 
254
- #: contact-form-7/admin/admin.php:179
255
  msgid "Insert a blank item as the first option?"
256
  msgstr ""
257
 
258
- #: contact-form-7/admin/admin.php:180
259
  msgid "Make checkboxes exclusive?"
260
  msgstr ""
261
 
262
- #: contact-form-7/admin/admin.php:181
263
  msgid "Choices"
264
  msgstr ""
265
 
266
- #: contact-form-7/admin/admin.php:182
267
  msgid "Label"
268
  msgstr ""
269
 
270
- #: contact-form-7/admin/admin.php:183
271
  msgid "Default value"
272
  msgstr ""
273
 
274
- #: contact-form-7/admin/admin.php:184
275
  msgid "Akismet"
276
  msgstr ""
277
 
278
- #: contact-form-7/admin/admin.php:185
279
  msgid "This field requires author's name"
280
  msgstr ""
281
 
282
- #: contact-form-7/admin/admin.php:186
283
  msgid "This field requires author's URL"
284
  msgstr ""
285
 
286
- #: contact-form-7/admin/admin.php:187
287
  msgid "This field requires author's email address"
288
  msgstr ""
289
 
290
- #: contact-form-7/admin/admin.php:188
291
  msgid "Copy this code and paste it into the form left."
292
  msgstr ""
293
 
294
- #: contact-form-7/admin/admin.php:189
295
  msgid "Foreground color"
296
  msgstr ""
297
 
298
- #: contact-form-7/admin/admin.php:190
299
  msgid "Background color"
300
  msgstr ""
301
 
302
- #: contact-form-7/admin/admin.php:191
303
  msgid "Image size"
304
  msgstr ""
305
 
306
- #: contact-form-7/admin/admin.php:192
307
  msgid "Small"
308
  msgstr ""
309
 
310
- #: contact-form-7/admin/admin.php:193
311
  msgid "Medium"
312
  msgstr ""
313
 
314
- #: contact-form-7/admin/admin.php:194
315
  msgid "Large"
316
  msgstr ""
317
 
318
- #: contact-form-7/admin/admin.php:195
319
  msgid "Image settings"
320
  msgstr ""
321
 
322
- #: contact-form-7/admin/admin.php:196
323
  msgid "Input field settings"
324
  msgstr ""
325
 
326
- #: contact-form-7/admin/admin.php:197
327
  msgid "For image"
328
  msgstr ""
329
 
330
- #: contact-form-7/admin/admin.php:198
331
  msgid "For input field"
332
  msgstr ""
333
 
334
- #: contact-form-7/admin/admin.php:199
335
  msgid "* One choice per line."
336
  msgstr ""
337
 
338
- #: contact-form-7/admin/admin.php:200
339
  msgid "Show"
340
  msgstr ""
341
 
342
- #: contact-form-7/admin/admin.php:201
343
  msgid "Hide"
344
  msgstr ""
345
 
346
- #: contact-form-7/admin/admin.php:202
347
  msgid "File size limit"
348
  msgstr ""
349
 
350
- #: contact-form-7/admin/admin.php:203
351
  msgid "Acceptable file types"
352
  msgstr ""
353
 
354
- #: contact-form-7/admin/admin.php:204
355
  msgid "Note: To use CAPTCHA, you need Really Simple CAPTCHA plugin installed."
356
  msgstr ""
357
 
358
- #: contact-form-7/admin/admin.php:223
359
  msgid "Contact form created."
360
  msgstr ""
361
 
362
- #: contact-form-7/admin/admin.php:226
363
  msgid "Contact form saved."
364
  msgstr ""
365
 
366
- #: contact-form-7/admin/admin.php:229
367
  msgid "Contact form deleted."
368
  msgstr ""
369
 
370
- #: contact-form-7/admin/admin.php:240
371
- msgid "Untitled"
372
- msgstr ""
373
-
374
- #: contact-form-7/admin/admin.php:253
375
- msgid "Your Name"
376
- msgstr ""
377
-
378
- #: contact-form-7/admin/admin.php:253
379
- #: contact-form-7/admin/admin.php:255
380
- msgid "(required)"
381
- msgstr ""
382
-
383
- #: contact-form-7/admin/admin.php:255
384
- msgid "Your Email"
385
- msgstr ""
386
-
387
- #: contact-form-7/admin/admin.php:257
388
- msgid "Subject"
389
- msgstr ""
390
-
391
- #: contact-form-7/admin/admin.php:259
392
- msgid "Your Message"
393
- msgstr ""
394
-
395
- #: contact-form-7/admin/admin.php:261
396
- #: contact-form-7/includes/classes.php:411
397
- msgid "Send"
398
  msgstr ""
399
 
400
- #: contact-form-7/admin/admin.php:334
401
  msgid "Settings"
402
  msgstr ""
403
 
404
- #: contact-form-7/admin/admin.php:355
405
  msgid "Contact Form 7 needs your support. Please donate today."
406
  msgstr ""
407
 
408
- #: contact-form-7/admin/admin.php:356
409
  msgid "Is this plugin useful for you? If you like it, please help the developer."
410
  msgstr ""
411
 
412
- #: contact-form-7/admin/admin.php:357
413
  msgid "Your contribution is needed for making this plugin better."
414
  msgstr ""
415
 
416
- #: contact-form-7/admin/admin.php:358
417
  msgid "Developing a plugin and providing user support is really hard work. Please help."
418
  msgstr ""
419
 
420
- #: contact-form-7/includes/classes.php:352
421
- msgid "To use CAPTCHA, you need <a href=\"http://wordpress.org/extend/plugins/really-simple-captcha/\">Really Simple CAPTCHA</a> plugin installed."
422
  msgstr ""
423
 
424
  #: contact-form-7/includes/functions.php:6
@@ -466,3 +439,33 @@ msgstr ""
466
  msgid "This file is too large."
467
  msgstr ""
468
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  msgstr ""
3
  "Project-Id-Version: Contact Form 7\n"
4
  "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2009-07-16 00:33+0900\n"
6
+ "PO-Revision-Date: 2009-07-16 00:33+0900\n"
7
+ "Last-Translator: \n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
15
  "Plural-Forms: nplurals=1; plural=0;\n"
16
  "X-Poedit-SearchPath-0: contact-form-7\n"
17
 
18
+ #: contact-form-7/admin/admin-panel.php:3
19
+ #: contact-form-7/admin/admin.php:102
 
 
 
 
20
  msgid "Contact Form 7"
21
  msgstr ""
22
 
23
+ #: contact-form-7/admin/admin-panel.php:18
24
  msgid "Add new"
25
  msgstr ""
26
 
27
+ #: contact-form-7/admin/admin-panel.php:40
28
  msgid "Copy this code and paste it into your post, page or text widget content."
29
  msgstr ""
30
 
31
+ #: contact-form-7/admin/admin-panel.php:47
32
+ #: contact-form-7/admin/admin-panel.php:279
33
  msgid "Save"
34
  msgstr ""
35
 
36
+ #: contact-form-7/admin/admin-panel.php:54
37
  msgid "Copy"
38
  msgstr ""
39
 
40
+ #: contact-form-7/admin/admin-panel.php:58
41
  msgid "Delete"
42
  msgstr ""
43
 
44
+ #: contact-form-7/admin/admin-panel.php:60
45
  msgid ""
46
  "You are about to delete this contact form.\n"
47
  " 'Cancel' to stop, 'OK' to delete."
48
  msgstr ""
49
 
50
+ #: contact-form-7/admin/admin-panel.php:75
51
  msgid "Form"
52
  msgstr ""
53
 
54
+ #: contact-form-7/admin/admin-panel.php:95
55
  msgid "Mail"
56
  msgstr ""
57
 
58
+ #: contact-form-7/admin/admin-panel.php:102
59
+ #: contact-form-7/admin/admin-panel.php:155
60
  msgid "To:"
61
  msgstr ""
62
 
63
+ #: contact-form-7/admin/admin-panel.php:106
64
+ #: contact-form-7/admin/admin-panel.php:159
65
  msgid "From:"
66
  msgstr ""
67
 
68
+ #: contact-form-7/admin/admin-panel.php:110
69
+ #: contact-form-7/admin/admin-panel.php:163
70
  msgid "Subject:"
71
  msgstr ""
72
 
73
+ #: contact-form-7/admin/admin-panel.php:115
74
+ #: contact-form-7/admin/admin-panel.php:168
75
  msgid "Additional headers:"
76
  msgstr ""
77
 
78
+ #: contact-form-7/admin/admin-panel.php:119
79
+ #: contact-form-7/admin/admin-panel.php:172
80
  msgid "File attachments:"
81
  msgstr ""
82
 
83
+ #: contact-form-7/admin/admin-panel.php:126
84
+ #: contact-form-7/admin/admin-panel.php:179
 
 
 
 
 
85
  msgid "Use HTML content type"
86
  msgstr ""
87
 
88
+ #: contact-form-7/admin/admin-panel.php:131
89
+ #: contact-form-7/admin/admin-panel.php:184
90
  msgid "Message body:"
91
  msgstr ""
92
 
93
+ #: contact-form-7/admin/admin-panel.php:142
94
  msgid "Mail (2)"
95
  msgstr ""
96
 
97
+ #: contact-form-7/admin/admin-panel.php:149
98
  msgid "Use mail (2)"
99
  msgstr ""
100
 
101
+ #: contact-form-7/admin/admin-panel.php:195
102
  msgid "Messages"
103
  msgstr ""
104
 
105
+ #: contact-form-7/admin/admin-panel.php:203
106
  msgid "Sender's message was sent successfully"
107
  msgstr ""
108
 
109
+ #: contact-form-7/admin/admin-panel.php:207
110
  msgid "Sender's message was failed to send"
111
  msgstr ""
112
 
113
+ #: contact-form-7/admin/admin-panel.php:211
114
  msgid "Akismet judged the sending activity as spamming"
115
  msgstr ""
116
 
117
+ #: contact-form-7/admin/admin-panel.php:215
118
  msgid "Validation errors occurred"
119
  msgstr ""
120
 
121
+ #: contact-form-7/admin/admin-panel.php:219
122
  msgid "There is a field that sender is needed to fill in"
123
  msgstr ""
124
 
125
+ #: contact-form-7/admin/admin-panel.php:223
126
  msgid "Email address that sender entered is invalid"
127
  msgstr ""
128
 
129
+ #: contact-form-7/admin/admin-panel.php:227
130
  msgid "There is a field of term that sender is needed to accept"
131
  msgstr ""
132
 
133
+ #: contact-form-7/admin/admin-panel.php:231
134
  msgid "Sender doesn't enter the correct answer to the quiz"
135
  msgstr ""
136
 
137
+ #: contact-form-7/admin/admin-panel.php:235
138
  msgid "The code that sender entered does not match the CAPTCHA"
139
  msgstr ""
140
 
141
+ #: contact-form-7/admin/admin-panel.php:239
142
  msgid "Uploading a file fails for any reason"
143
  msgstr ""
144
 
145
+ #: contact-form-7/admin/admin-panel.php:243
146
  msgid "Uploaded file is not allowed file type"
147
  msgstr ""
148
 
149
+ #: contact-form-7/admin/admin-panel.php:247
150
  msgid "Uploaded file is too large"
151
  msgstr ""
152
 
153
+ #: contact-form-7/admin/admin-panel.php:260
154
  msgid "Additional Settings"
155
  msgstr ""
156
 
157
+ #: contact-form-7/admin/admin.php:105
158
+ msgid "Edit Contact Forms"
159
+ msgstr ""
160
+
161
+ #: contact-form-7/admin/admin.php:105
162
+ msgid "Edit"
163
+ msgstr ""
164
+
165
+ #: contact-form-7/admin/admin.php:152
166
  msgid "optional"
167
  msgstr ""
168
 
169
+ #: contact-form-7/admin/admin.php:153
170
  msgid "Generate Tag"
171
  msgstr ""
172
 
173
+ #: contact-form-7/admin/admin.php:154
174
  msgid "Text field"
175
  msgstr ""
176
 
177
+ #: contact-form-7/admin/admin.php:155
178
  msgid "Email field"
179
  msgstr ""
180
 
181
+ #: contact-form-7/admin/admin.php:156
182
  msgid "Text area"
183
  msgstr ""
184
 
185
+ #: contact-form-7/admin/admin.php:157
186
  msgid "Drop-down menu"
187
  msgstr ""
188
 
189
+ #: contact-form-7/admin/admin.php:158
190
  msgid "Checkboxes"
191
  msgstr ""
192
 
193
+ #: contact-form-7/admin/admin.php:159
194
  msgid "Radio buttons"
195
  msgstr ""
196
 
197
+ #: contact-form-7/admin/admin.php:160
198
  msgid "Acceptance"
199
  msgstr ""
200
 
201
+ #: contact-form-7/admin/admin.php:161
202
  msgid "Make this checkbox checked by default?"
203
  msgstr ""
204
 
205
+ #: contact-form-7/admin/admin.php:162
206
  msgid "Make this checkbox work inversely?"
207
  msgstr ""
208
 
209
+ #: contact-form-7/admin/admin.php:163
210
  msgid "* That means visitor who accepts the term unchecks it."
211
  msgstr ""
212
 
213
+ #: contact-form-7/admin/admin.php:164
214
  msgid "CAPTCHA"
215
  msgstr ""
216
 
217
+ #: contact-form-7/admin/admin.php:165
218
  msgid "Quiz"
219
  msgstr ""
220
 
221
+ #: contact-form-7/admin/admin.php:166
222
  msgid "Quizzes"
223
  msgstr ""
224
 
225
+ #: contact-form-7/admin/admin.php:167
226
  msgid "* quiz|answer (e.g. 1+1=?|2)"
227
  msgstr ""
228
 
229
+ #: contact-form-7/admin/admin.php:168
230
  msgid "File upload"
231
  msgstr ""
232
 
233
+ #: contact-form-7/admin/admin.php:169
234
  msgid "bytes"
235
  msgstr ""
236
 
237
+ #: contact-form-7/admin/admin.php:170
238
  msgid "Submit button"
239
  msgstr ""
240
 
241
+ #: contact-form-7/admin/admin.php:171
242
  msgid "Name"
243
  msgstr ""
244
 
245
+ #: contact-form-7/admin/admin.php:172
246
  msgid "Required field?"
247
  msgstr ""
248
 
249
+ #: contact-form-7/admin/admin.php:173
250
  msgid "Allow multiple selections?"
251
  msgstr ""
252
 
253
+ #: contact-form-7/admin/admin.php:174
254
  msgid "Insert a blank item as the first option?"
255
  msgstr ""
256
 
257
+ #: contact-form-7/admin/admin.php:175
258
  msgid "Make checkboxes exclusive?"
259
  msgstr ""
260
 
261
+ #: contact-form-7/admin/admin.php:176
262
  msgid "Choices"
263
  msgstr ""
264
 
265
+ #: contact-form-7/admin/admin.php:177
266
  msgid "Label"
267
  msgstr ""
268
 
269
+ #: contact-form-7/admin/admin.php:178
270
  msgid "Default value"
271
  msgstr ""
272
 
273
+ #: contact-form-7/admin/admin.php:179
274
  msgid "Akismet"
275
  msgstr ""
276
 
277
+ #: contact-form-7/admin/admin.php:180
278
  msgid "This field requires author's name"
279
  msgstr ""
280
 
281
+ #: contact-form-7/admin/admin.php:181
282
  msgid "This field requires author's URL"
283
  msgstr ""
284
 
285
+ #: contact-form-7/admin/admin.php:182
286
  msgid "This field requires author's email address"
287
  msgstr ""
288
 
289
+ #: contact-form-7/admin/admin.php:183
290
  msgid "Copy this code and paste it into the form left."
291
  msgstr ""
292
 
293
+ #: contact-form-7/admin/admin.php:184
294
  msgid "Foreground color"
295
  msgstr ""
296
 
297
+ #: contact-form-7/admin/admin.php:185
298
  msgid "Background color"
299
  msgstr ""
300
 
301
+ #: contact-form-7/admin/admin.php:186
302
  msgid "Image size"
303
  msgstr ""
304
 
305
+ #: contact-form-7/admin/admin.php:187
306
  msgid "Small"
307
  msgstr ""
308
 
309
+ #: contact-form-7/admin/admin.php:188
310
  msgid "Medium"
311
  msgstr ""
312
 
313
+ #: contact-form-7/admin/admin.php:189
314
  msgid "Large"
315
  msgstr ""
316
 
317
+ #: contact-form-7/admin/admin.php:190
318
  msgid "Image settings"
319
  msgstr ""
320
 
321
+ #: contact-form-7/admin/admin.php:191
322
  msgid "Input field settings"
323
  msgstr ""
324
 
325
+ #: contact-form-7/admin/admin.php:192
326
  msgid "For image"
327
  msgstr ""
328
 
329
+ #: contact-form-7/admin/admin.php:193
330
  msgid "For input field"
331
  msgstr ""
332
 
333
+ #: contact-form-7/admin/admin.php:194
334
  msgid "* One choice per line."
335
  msgstr ""
336
 
337
+ #: contact-form-7/admin/admin.php:195
338
  msgid "Show"
339
  msgstr ""
340
 
341
+ #: contact-form-7/admin/admin.php:196
342
  msgid "Hide"
343
  msgstr ""
344
 
345
+ #: contact-form-7/admin/admin.php:197
346
  msgid "File size limit"
347
  msgstr ""
348
 
349
+ #: contact-form-7/admin/admin.php:198
350
  msgid "Acceptable file types"
351
  msgstr ""
352
 
353
+ #: contact-form-7/admin/admin.php:199
354
  msgid "Note: To use CAPTCHA, you need Really Simple CAPTCHA plugin installed."
355
  msgstr ""
356
 
357
+ #: contact-form-7/admin/admin.php:214
358
  msgid "Contact form created."
359
  msgstr ""
360
 
361
+ #: contact-form-7/admin/admin.php:217
362
  msgid "Contact form saved."
363
  msgstr ""
364
 
365
+ #: contact-form-7/admin/admin.php:220
366
  msgid "Contact form deleted."
367
  msgstr ""
368
 
369
+ #: contact-form-7/admin/admin.php:293
370
+ msgid "Contact form"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
371
  msgstr ""
372
 
373
+ #: contact-form-7/admin/admin.php:313
374
  msgid "Settings"
375
  msgstr ""
376
 
377
+ #: contact-form-7/admin/admin.php:334
378
  msgid "Contact Form 7 needs your support. Please donate today."
379
  msgstr ""
380
 
381
+ #: contact-form-7/admin/admin.php:335
382
  msgid "Is this plugin useful for you? If you like it, please help the developer."
383
  msgstr ""
384
 
385
+ #: contact-form-7/admin/admin.php:336
386
  msgid "Your contribution is needed for making this plugin better."
387
  msgstr ""
388
 
389
+ #: contact-form-7/admin/admin.php:337
390
  msgid "Developing a plugin and providing user support is really hard work. Please help."
391
  msgstr ""
392
 
393
+ #: contact-form-7/includes/classes.php:536
394
+ msgid "Untitled"
395
  msgstr ""
396
 
397
  #: contact-form-7/includes/functions.php:6
439
  msgid "This file is too large."
440
  msgstr ""
441
 
442
+ #: contact-form-7/includes/functions.php:33
443
+ msgid "Your Name"
444
+ msgstr ""
445
+
446
+ #: contact-form-7/includes/functions.php:33
447
+ #: contact-form-7/includes/functions.php:35
448
+ msgid "(required)"
449
+ msgstr ""
450
+
451
+ #: contact-form-7/includes/functions.php:35
452
+ msgid "Your Email"
453
+ msgstr ""
454
+
455
+ #: contact-form-7/includes/functions.php:37
456
+ msgid "Subject"
457
+ msgstr ""
458
+
459
+ #: contact-form-7/includes/functions.php:39
460
+ msgid "Your Message"
461
+ msgstr ""
462
+
463
+ #: contact-form-7/includes/functions.php:41
464
+ #: contact-form-7/modules/submit.php:37
465
+ msgid "Send"
466
+ msgstr ""
467
+
468
+ #: contact-form-7/modules/captcha.php:62
469
+ msgid "To use CAPTCHA, you need <a href=\"http://wordpress.org/extend/plugins/really-simple-captcha/\">Really Simple CAPTCHA</a> plugin installed."
470
+ msgstr ""
471
+
modules/acceptance.php ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ ** A base module for [acceptance]
4
+ **/
5
+
6
+ /* Shortcode handler */
7
+
8
+ function wpcf7_acceptance_shortcode_handler( $tag ) {
9
+ global $wpcf7_contact_form;
10
+
11
+ if ( ! is_array( $tag ) )
12
+ return '';
13
+
14
+ $type = $tag['type'];
15
+ $name = $tag['name'];
16
+ $options = (array) $tag['options'];
17
+ $values = (array) $tag['values'];
18
+
19
+ if ( empty( $name ) )
20
+ return '';
21
+
22
+ $atts = '';
23
+ $id_att = '';
24
+ $class_att = '';
25
+
26
+ $class_att .= ' wpcf7-acceptance';
27
+
28
+ foreach ( $options as $option ) {
29
+ if ( preg_match( '%^id:([-0-9a-zA-Z_]+)$%', $option, $matches ) ) {
30
+ $id_att = $matches[1];
31
+
32
+ } elseif ( preg_match( '%^class:([-0-9a-zA-Z_]+)$%', $option, $matches ) ) {
33
+ $class_att .= ' ' . $matches[1];
34
+
35
+ } elseif ( 'invert' == $option ) {
36
+ $class_att .= ' wpcf7-invert';
37
+ }
38
+ }
39
+
40
+ if ( $id_att )
41
+ $atts .= ' id="' . trim( $id_att ) . '"';
42
+
43
+ if ( $class_att )
44
+ $atts .= ' class="' . trim( $class_att ) . '"';
45
+
46
+ $default_on = (bool) preg_grep( '/^default:on$/i', $options );
47
+
48
+ if ( WPCF7_LOAD_JS )
49
+ $onclick = ' onclick="wpcf7ToggleSubmit(this.form);"';
50
+
51
+ $checked = $default_on ? ' checked="checked"' : '';
52
+
53
+ $html = '<input type="checkbox" name="' . $name . '" value="1"' . $atts . $onclick . $checked . ' />';
54
+
55
+ return $html;
56
+ }
57
+
58
+ wpcf7_add_shortcode( 'acceptance', 'wpcf7_acceptance_shortcode_handler', true );
59
+
60
+
61
+ /* Acceptance filter */
62
+
63
+ function wpcf7_acceptance_filter( $accepted ) {
64
+ global $wpcf7_contact_form;
65
+
66
+ $fes = $wpcf7_contact_form->form_scan_shortcode( array( 'type' => 'acceptance' ) );
67
+
68
+ foreach ( $fes as $fe ) {
69
+ $name = $fe['name'];
70
+ $options = (array) $fe['options'];
71
+
72
+ if ( empty( $name ) )
73
+ continue;
74
+
75
+ $value = $_POST[$name] ? 1 : 0;
76
+
77
+ $invert = (bool) preg_grep( '%^invert$%', $options );
78
+
79
+ if ( $invert && $value || ! $invert && ! $value )
80
+ $accepted = false;
81
+ }
82
+
83
+ return $accepted;
84
+ }
85
+
86
+ add_filter( 'wpcf7_acceptance', 'wpcf7_acceptance_filter' );
87
+
88
+ ?>
{includes → modules}/captcha.php RENAMED
@@ -1,190 +1,345 @@
1
- <?php
2
-
3
- $wpcf7_captcha = null;
4
-
5
- function wpcf7_init_captcha() {
6
- global $wpcf7_captcha;
7
-
8
- if ( ! class_exists( 'ReallySimpleCaptcha' ) )
9
- return false;
10
-
11
- if ( ! is_object( $wpcf7_captcha ) )
12
- $wpcf7_captcha = new ReallySimpleCaptcha();
13
- $captcha =& $wpcf7_captcha;
14
-
15
- $captcha->tmp_dir = trailingslashit( wpcf7_captcha_tmp_dir() );
16
- wp_mkdir_p( $captcha->tmp_dir );
17
- return true;
18
- }
19
-
20
- function wpcf7_generate_captcha( $options = null ) {
21
- global $wpcf7_captcha;
22
-
23
- if ( ! wpcf7_init_captcha() )
24
- return false;
25
- $captcha =& $wpcf7_captcha;
26
-
27
- if ( ! is_dir( $captcha->tmp_dir ) || ! is_writable( $captcha->tmp_dir ) )
28
- return false;
29
-
30
- $img_type = imagetypes();
31
- if ( $img_type & IMG_PNG )
32
- $captcha->img_type = 'png';
33
- elseif ( $img_type & IMG_GIF )
34
- $captcha->img_type = 'gif';
35
- elseif ( $img_type & IMG_JPG )
36
- $captcha->img_type = 'jpeg';
37
- else
38
- return false;
39
-
40
- if ( is_array( $options ) ) {
41
- if ( isset( $options['img_size'] ) )
42
- $captcha->img_size = $options['img_size'];
43
- if ( isset( $options['base'] ) )
44
- $captcha->base = $options['base'];
45
- if ( isset( $options['font_size'] ) )
46
- $captcha->font_size = $options['font_size'];
47
- if ( isset( $options['font_char_width'] ) )
48
- $captcha->font_char_width = $options['font_char_width'];
49
- if ( isset( $options['fg'] ) )
50
- $captcha->fg = $options['fg'];
51
- if ( isset( $options['bg'] ) )
52
- $captcha->bg = $options['bg'];
53
- }
54
-
55
- $prefix = mt_rand();
56
- $captcha_word = $captcha->generate_random_word();
57
- return $captcha->generate_image( $prefix, $captcha_word );
58
- }
59
-
60
- function wpcf7_check_captcha( $prefix, $response ) {
61
- global $wpcf7_captcha;
62
-
63
- if ( ! wpcf7_init_captcha() )
64
- return false;
65
- $captcha =& $wpcf7_captcha;
66
-
67
- return $captcha->check( $prefix, $response );
68
- }
69
-
70
- function wpcf7_remove_captcha( $prefix ) {
71
- global $wpcf7_captcha;
72
-
73
- if ( ! wpcf7_init_captcha() )
74
- return false;
75
- $captcha =& $wpcf7_captcha;
76
-
77
- $captcha->remove( $prefix );
78
- }
79
-
80
- function wpcf7_cleanup_captcha_files() {
81
- $dir = trailingslashit( wpcf7_captcha_tmp_dir() );
82
-
83
- if ( ! is_dir( $dir ) )
84
- return false;
85
- if ( ! is_readable( $dir ) )
86
- return false;
87
- if ( ! is_writable( $dir ) )
88
- return false;
89
-
90
- if ( $handle = @opendir( $dir ) ) {
91
- while ( false !== ( $file = readdir( $handle ) ) ) {
92
- if ( ! preg_match( '/^[0-9]+\.(php|png|gif|jpeg)$/', $file ) )
93
- continue;
94
-
95
- $stat = stat( $dir . $file );
96
- if ( $stat['mtime'] + 21600 < time() ) // 21600 secs == 6 hours
97
- @unlink( $dir . $file );
98
- }
99
- closedir( $handle );
100
- }
101
- }
102
-
103
- function wpcf7_captchac_options( $options ) {
104
- if ( ! is_array( $options ) )
105
- return array();
106
-
107
- $op = array();
108
- $image_size_array = preg_grep( '%^size:[smlSML]$%', $options );
109
-
110
- if ( $image_size = array_shift( $image_size_array ) ) {
111
- preg_match( '%^size:([smlSML])$%', $image_size, $is_matches );
112
- switch ( strtolower( $is_matches[1] ) ) {
113
- case 's':
114
- $op['img_size'] = array( 60, 20 );
115
- $op['base'] = array( 6, 15 );
116
- $op['font_size'] = 11;
117
- $op['font_char_width'] = 13;
118
- break;
119
- case 'l':
120
- $op['img_size'] = array( 84, 28 );
121
- $op['base'] = array( 6, 20 );
122
- $op['font_size'] = 17;
123
- $op['font_char_width'] = 19;
124
- break;
125
- case 'm':
126
- default:
127
- $op['img_size'] = array( 72, 24 );
128
- $op['base'] = array( 6, 18 );
129
- $op['font_size'] = 14;
130
- $op['font_char_width'] = 15;
131
- }
132
- }
133
-
134
- $fg_color_array = preg_grep( '%^fg:#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$%', $options );
135
- if ( $fg_color = array_shift( $fg_color_array ) ) {
136
- preg_match( '%^fg:#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$%', $fg_color, $fc_matches );
137
- if ( 3 == strlen( $fc_matches[1] ) ) {
138
- $r = substr( $fc_matches[1], 0, 1 );
139
- $g = substr( $fc_matches[1], 1, 1 );
140
- $b = substr( $fc_matches[1], 2, 1 );
141
- $op['fg'] = array( hexdec( $r . $r ), hexdec( $g . $g ), hexdec( $b . $b ) );
142
- } elseif ( 6 == strlen( $fc_matches[1] ) ) {
143
- $r = substr( $fc_matches[1], 0, 2 );
144
- $g = substr( $fc_matches[1], 2, 2 );
145
- $b = substr( $fc_matches[1], 4, 2 );
146
- $op['fg'] = array( hexdec( $r ), hexdec( $g ), hexdec( $b ) );
147
- }
148
- }
149
-
150
- $bg_color_array = preg_grep( '%^bg:#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$%', $options );
151
- if ( $bg_color = array_shift( $bg_color_array ) ) {
152
- preg_match( '%^bg:#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$%', $bg_color, $bc_matches );
153
- if ( 3 == strlen( $bc_matches[1] ) ) {
154
- $r = substr( $bc_matches[1], 0, 1 );
155
- $g = substr( $bc_matches[1], 1, 1 );
156
- $b = substr( $bc_matches[1], 2, 1 );
157
- $op['bg'] = array( hexdec( $r . $r ), hexdec( $g . $g ), hexdec( $b . $b ) );
158
- } elseif ( 6 == strlen( $bc_matches[1] ) ) {
159
- $r = substr( $bc_matches[1], 0, 2 );
160
- $g = substr( $bc_matches[1], 2, 2 );
161
- $b = substr( $bc_matches[1], 4, 2 );
162
- $op['bg'] = array( hexdec( $r ), hexdec( $g ), hexdec( $b ) );
163
- }
164
- }
165
-
166
- return $op;
167
- }
168
-
169
- function wpcf7_refill_captcha( $contact_form ) {
170
- $fes = $contact_form->form_elements( false );
171
- $refill = array();
172
-
173
- foreach ( $fes as $fe ) {
174
- $type = $fe['type'];
175
- $name = $fe['name'];
176
- $options = $fe['options'];
177
-
178
- if ( 'captchac' == $type ) {
179
- $op = wpcf7_captchac_options( $options );
180
- if ( $filename = wpcf7_generate_captcha( $op ) ) {
181
- $captcha_url = trailingslashit( wpcf7_captcha_tmp_url() ) . $filename;
182
- $refill[$name] = $captcha_url;
183
- }
184
- }
185
- }
186
-
187
- return $refill;
188
- }
189
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
190
  ?>
1
+ <?php
2
+ /**
3
+ ** A base module for [captchac] and [captchar]
4
+ **/
5
+
6
+ /* Shortcode handler */
7
+
8
+ function wpcf7_captcha_shortcode_handler( $tag ) {
9
+ global $wpcf7_contact_form;
10
+
11
+ if ( ! is_array( $tag ) )
12
+ return '';
13
+
14
+ $type = $tag['type'];
15
+ $name = $tag['name'];
16
+ $options = (array) $tag['options'];
17
+ $values = (array) $tag['values'];
18
+
19
+ if ( empty( $name ) )
20
+ return '';
21
+
22
+ $validation_error = '';
23
+ if ( is_a( $wpcf7_contact_form, 'WPCF7_ContactForm' ) )
24
+ $validation_error = $wpcf7_contact_form->validation_error( $name );
25
+
26
+ $atts = '';
27
+ $id_att = '';
28
+ $class_att = '';
29
+ $size_att = '';
30
+ $maxlength_att = '';
31
+
32
+ if ( 'captchac' == $type )
33
+ $class_att .= ' wpcf7-captcha-' . $name;
34
+
35
+ foreach ( $options as $option ) {
36
+ if ( preg_match( '%^id:([-0-9a-zA-Z_]+)$%', $option, $matches ) ) {
37
+ $id_att = $matches[1];
38
+
39
+ } elseif ( preg_match( '%^class:([-0-9a-zA-Z_]+)$%', $option, $matches ) ) {
40
+ $class_att .= ' ' . $matches[1];
41
+
42
+ } elseif ( preg_match( '%^([0-9]*)[/x]([0-9]*)$%', $option, $matches ) ) {
43
+ $size_att = (int) $matches[1];
44
+ $maxlength_att = (int) $matches[2];
45
+ }
46
+ }
47
+
48
+ if ( $id_att )
49
+ $atts .= ' id="' . trim( $id_att ) . '"';
50
+
51
+ if ( $class_att )
52
+ $atts .= ' class="' . trim( $class_att ) . '"';
53
+
54
+ // Value.
55
+ if ( is_a( $wpcf7_contact_form, 'WPCF7_ContactForm' ) && $wpcf7_contact_form->is_posted() )
56
+ $value = '';
57
+ else
58
+ $value = $values[0];
59
+
60
+ if ( 'captchac' == $type ) {
61
+ if ( ! class_exists( 'ReallySimpleCaptcha' ) ) {
62
+ return '<em>' . __( 'To use CAPTCHA, you need <a href="http://wordpress.org/extend/plugins/really-simple-captcha/">Really Simple CAPTCHA</a> plugin installed.', 'wpcf7' ) . '</em>';
63
+ }
64
+
65
+ $op = array();
66
+ // Default
67
+ $op['img_size'] = array( 72, 24 );
68
+ $op['base'] = array( 6, 18 );
69
+ $op['font_size'] = 14;
70
+ $op['font_char_width'] = 15;
71
+
72
+ $op = array_merge( $op, wpcf7_captchac_options( $options ) );
73
+
74
+ if ( ! $filename = wpcf7_generate_captcha( $op ) )
75
+ return '';
76
+
77
+ if ( is_array( $op['img_size'] ) )
78
+ $atts .= ' width="' . $op['img_size'][0] . '" height="' . $op['img_size'][1] . '"';
79
+
80
+ $captcha_url = trailingslashit( wpcf7_captcha_tmp_url() ) . $filename;
81
+ $html = '<img alt="captcha" src="' . $captcha_url . '"' . $atts . ' />';
82
+ $ref = substr( $filename, 0, strrpos( $filename, '.' ) );
83
+ $html = '<input type="hidden" name="_wpcf7_captcha_challenge_' . $name . '" value="' . $ref . '" />' . $html;
84
+
85
+ return $html;
86
+
87
+ } elseif ( 'captchar' == $type ) {
88
+ if ( $size_att )
89
+ $atts .= ' size="' . $size_att . '"';
90
+ else
91
+ $atts .= ' size="40"'; // default size
92
+
93
+ if ( $maxlength_att )
94
+ $atts .= ' maxlength="' . $maxlength_att . '"';
95
+
96
+ $html = '<input type="text" name="' . $name . '" value="' . esc_attr( $value ) . '"' . $atts . ' />';
97
+ $html = '<span class="wpcf7-form-control-wrap ' . $name . '">' . $html . $validation_error . '</span>';
98
+
99
+ return $html;
100
+ }
101
+ }
102
+
103
+ wpcf7_add_shortcode( 'captchac', 'wpcf7_captcha_shortcode_handler', true );
104
+ wpcf7_add_shortcode( 'captchar', 'wpcf7_captcha_shortcode_handler', true );
105
+
106
+
107
+ /* Validation filter */
108
+
109
+ function wpcf7_captcha_validation_filter( $result, $tag ) {
110
+ global $wpcf7_contact_form;
111
+
112
+ $type = $tag['type'];
113
+ $name = $tag['name'];
114
+
115
+ $_POST[$name] = (string) $_POST[$name];
116
+
117
+ $captchac = '_wpcf7_captcha_challenge_' . $name;
118
+
119
+ if ( ! wpcf7_check_captcha( $_POST[$captchac], $_POST[$name] ) ) {
120
+ $result['valid'] = false;
121
+ $result['reason'][$name] = $wpcf7_contact_form->message( 'captcha_not_match' );
122
+ }
123
+
124
+ wpcf7_remove_captcha( $_POST[$captchac] );
125
+
126
+ return $result;
127
+ }
128
+
129
+ add_filter( 'wpcf7_validate_captchar', 'wpcf7_captcha_validation_filter', 10, 2 );
130
+
131
+
132
+ /* Ajax echo filter */
133
+
134
+ function wpcf7_captcha_ajax_echo_filter( $items ) {
135
+ global $wpcf7_contact_form;
136
+
137
+ if ( ! is_a( $wpcf7_contact_form, 'WPCF7_ContactForm' ) )
138
+ return $items;
139
+
140
+ if ( ! is_array( $items ) )
141
+ return $items;
142
+
143
+ $fes = $wpcf7_contact_form->form_scan_shortcode(
144
+ array( 'type' => 'captchac' ) );
145
+
146
+ if ( empty( $fes ) )
147
+ return $items;
148
+
149
+ $refill = array();
150
+
151
+ foreach ( $fes as $fe ) {
152
+ $name = $fe['name'];
153
+ $options = $fe['options'];
154
+
155
+ if ( empty( $name ) )
156
+ continue;
157
+
158
+ $op = wpcf7_captchac_options( $options );
159
+ if ( $filename = wpcf7_generate_captcha( $op ) ) {
160
+ $captcha_url = trailingslashit( wpcf7_captcha_tmp_url() ) . $filename;
161
+ $refill[$name] = $captcha_url;
162
+ }
163
+ }
164
+
165
+ if ( ! empty( $refill ) )
166
+ $items['captcha'] = $refill;
167
+
168
+ return $items;
169
+ }
170
+
171
+ add_filter( 'wpcf7_ajax_json_echo', 'wpcf7_captcha_ajax_echo_filter' );
172
+
173
+
174
+ /* CAPTCHA functions */
175
+
176
+ function wpcf7_init_captcha() {
177
+ global $wpcf7_captcha;
178
+
179
+ if ( ! class_exists( 'ReallySimpleCaptcha' ) )
180
+ return false;
181
+
182
+ if ( ! is_object( $wpcf7_captcha ) )
183
+ $wpcf7_captcha = new ReallySimpleCaptcha();
184
+ $captcha =& $wpcf7_captcha;
185
+
186
+ $captcha->tmp_dir = trailingslashit( wpcf7_captcha_tmp_dir() );
187
+ wp_mkdir_p( $captcha->tmp_dir );
188
+ return true;
189
+ }
190
+
191
+ function wpcf7_generate_captcha( $options = null ) {
192
+ global $wpcf7_captcha;
193
+
194
+ if ( ! wpcf7_init_captcha() )
195
+ return false;
196
+ $captcha =& $wpcf7_captcha;
197
+
198
+ if ( ! is_dir( $captcha->tmp_dir ) || ! is_writable( $captcha->tmp_dir ) )
199
+ return false;
200
+
201
+ $img_type = imagetypes();
202
+ if ( $img_type & IMG_PNG )
203
+ $captcha->img_type = 'png';
204
+ elseif ( $img_type & IMG_GIF )
205
+ $captcha->img_type = 'gif';
206
+ elseif ( $img_type & IMG_JPG )
207
+ $captcha->img_type = 'jpeg';
208
+ else
209
+ return false;
210
+
211
+ if ( is_array( $options ) ) {
212
+ if ( isset( $options['img_size'] ) )
213
+ $captcha->img_size = $options['img_size'];
214
+ if ( isset( $options['base'] ) )
215
+ $captcha->base = $options['base'];
216
+ if ( isset( $options['font_size'] ) )
217
+ $captcha->font_size = $options['font_size'];
218
+ if ( isset( $options['font_char_width'] ) )
219
+ $captcha->font_char_width = $options['font_char_width'];
220
+ if ( isset( $options['fg'] ) )
221
+ $captcha->fg = $options['fg'];
222
+ if ( isset( $options['bg'] ) )
223
+ $captcha->bg = $options['bg'];
224
+ }
225
+
226
+ $prefix = mt_rand();
227
+ $captcha_word = $captcha->generate_random_word();
228
+ return $captcha->generate_image( $prefix, $captcha_word );
229
+ }
230
+
231
+ function wpcf7_check_captcha( $prefix, $response ) {
232
+ global $wpcf7_captcha;
233
+
234
+ if ( ! wpcf7_init_captcha() )
235
+ return false;
236
+ $captcha =& $wpcf7_captcha;
237
+
238
+ return $captcha->check( $prefix, $response );
239
+ }
240
+
241
+ function wpcf7_remove_captcha( $prefix ) {
242
+ global $wpcf7_captcha;
243
+
244
+ if ( ! wpcf7_init_captcha() )
245
+ return false;
246
+ $captcha =& $wpcf7_captcha;
247
+
248
+ $captcha->remove( $prefix );
249
+ }
250
+
251
+ function wpcf7_cleanup_captcha_files() {
252
+ $dir = trailingslashit( wpcf7_captcha_tmp_dir() );
253
+
254
+ if ( ! is_dir( $dir ) )
255
+ return false;
256
+ if ( ! is_readable( $dir ) )
257
+ return false;
258
+ if ( ! is_writable( $dir ) )
259
+ return false;
260
+
261
+ if ( $handle = @opendir( $dir ) ) {
262
+ while ( false !== ( $file = readdir( $handle ) ) ) {
263
+ if ( ! preg_match( '/^[0-9]+\.(php|png|gif|jpeg)$/', $file ) )
264
+ continue;
265
+
266
+ $stat = stat( $dir . $file );
267
+ if ( $stat['mtime'] + 21600 < time() ) // 21600 secs == 6 hours
268
+ @unlink( $dir . $file );
269
+ }
270
+ closedir( $handle );
271
+ }
272
+ }
273
+
274
+ if ( ! is_admin() && 'GET' == $_SERVER['REQUEST_METHOD'] )
275
+ wpcf7_cleanup_captcha_files();
276
+
277
+ function wpcf7_captchac_options( $options ) {
278
+ if ( ! is_array( $options ) )
279
+ return array();
280
+
281
+ $op = array();
282
+ $image_size_array = preg_grep( '%^size:[smlSML]$%', $options );
283
+
284
+ if ( $image_size = array_shift( $image_size_array ) ) {
285
+ preg_match( '%^size:([smlSML])$%', $image_size, $is_matches );
286
+ switch ( strtolower( $is_matches[1] ) ) {
287
+ case 's':
288
+ $op['img_size'] = array( 60, 20 );
289
+ $op['base'] = array( 6, 15 );
290
+ $op['font_size'] = 11;
291
+ $op['font_char_width'] = 13;
292
+ break;
293
+ case 'l':
294
+ $op['img_size'] = array( 84, 28 );
295
+ $op['base'] = array( 6, 20 );
296
+ $op['font_size'] = 17;
297
+ $op['font_char_width'] = 19;
298
+ break;
299
+ case 'm':
300
+ default:
301
+ $op['img_size'] = array( 72, 24 );
302
+ $op['base'] = array( 6, 18 );
303
+ $op['font_size'] = 14;
304
+ $op['font_char_width'] = 15;
305
+ }
306
+ }
307
+
308
+ $fg_color_array = preg_grep( '%^fg:#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$%', $options );
309
+ if ( $fg_color = array_shift( $fg_color_array ) ) {
310
+ preg_match( '%^fg:#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$%', $fg_color, $fc_matches );
311
+ if ( 3 == strlen( $fc_matches[1] ) ) {
312
+ $r = substr( $fc_matches[1], 0, 1 );
313
+ $g = substr( $fc_matches[1], 1, 1 );
314
+ $b = substr( $fc_matches[1], 2, 1 );
315
+ $op['fg'] = array( hexdec( $r . $r ), hexdec( $g . $g ), hexdec( $b . $b ) );
316
+ } elseif ( 6 == strlen( $fc_matches[1] ) ) {
317
+ $r = substr( $fc_matches[1], 0, 2 );
318
+ $g = substr( $fc_matches[1], 2, 2 );
319
+ $b = substr( $fc_matches[1], 4, 2 );
320
+ $op['fg'] = array( hexdec( $r ), hexdec( $g ), hexdec( $b ) );
321
+ }
322
+ }
323
+
324
+ $bg_color_array = preg_grep( '%^bg:#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$%', $options );
325
+ if ( $bg_color = array_shift( $bg_color_array ) ) {
326
+ preg_match( '%^bg:#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$%', $bg_color, $bc_matches );
327
+ if ( 3 == strlen( $bc_matches[1] ) ) {
328
+ $r = substr( $bc_matches[1], 0, 1 );
329
+ $g = substr( $bc_matches[1], 1, 1 );
330
+ $b = substr( $bc_matches[1], 2, 1 );
331
+ $op['bg'] = array( hexdec( $r . $r ), hexdec( $g . $g ), hexdec( $b . $b ) );
332
+ } elseif ( 6 == strlen( $bc_matches[1] ) ) {
333
+ $r = substr( $bc_matches[1], 0, 2 );
334
+ $g = substr( $bc_matches[1], 2, 2 );
335
+ $b = substr( $bc_matches[1], 4, 2 );
336
+ $op['bg'] = array( hexdec( $r ), hexdec( $g ), hexdec( $b ) );
337
+ }
338
+ }
339
+
340
+ return $op;
341
+ }
342
+
343
+ $wpcf7_captcha = null;
344
+
345
  ?>
modules/checkbox.php ADDED
@@ -0,0 +1,162 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ ** A base module for [checkbox], [checkbox*], and [radio]
4
+ **/
5
+
6
+ /* Shortcode handler */
7
+
8
+ function wpcf7_checkbox_shortcode_handler( $tag ) {
9
+ global $wpcf7_contact_form;
10
+
11
+ if ( ! is_array( $tag ) )
12
+ return '';
13
+
14
+ $type = $tag['type'];
15
+ $name = $tag['name'];
16
+ $options = (array) $tag['options'];
17
+ $values = (array) $tag['values'];
18
+
19
+ if ( empty( $name ) )
20
+ return '';
21
+
22
+ $atts = '';
23
+ $id_att = '';
24
+ $class_att = '';
25
+
26
+ $defaults = array();
27
+
28
+ $label_first = false;
29
+ $use_label_element = false;
30
+
31
+ if ( 'checkbox*' == $type )
32
+ $class_att .= ' wpcf7-validates-as-required';
33
+
34
+ if ( 'checkbox' == $type || 'checkbox*' == $type )
35
+ $class_att .= ' wpcf7-checkbox';
36
+
37
+ if ( 'radio' == $type )
38
+ $class_att .= ' wpcf7-radio';
39
+
40
+ foreach ( $options as $option ) {
41
+ if ( preg_match( '%^id:([-0-9a-zA-Z_]+)$%', $option, $matches ) ) {
42
+ $id_att = $matches[1];
43
+
44
+ } elseif ( preg_match( '%^class:([-0-9a-zA-Z_]+)$%', $option, $matches ) ) {
45
+ $class_att .= ' ' . $matches[1];
46
+
47
+ } elseif ( preg_match( '/^default:([0-9_]+)$/', $option, $matches ) ) {
48
+ $defaults = explode( '_', $matches[1] );
49
+
50
+ } elseif ( preg_match( '%^label[_-]?first$%', $option ) ) {
51
+ $label_first = true;
52
+
53
+ } elseif ( preg_match( '%^use[_-]?label[_-]?element$%', $option ) ) {
54
+ $use_label_element = true;
55
+
56
+ }
57
+ }
58
+
59
+ if ( $id_att )
60
+ $atts .= ' id="' . trim( $id_att ) . '"';
61
+
62
+ if ( $class_att )
63
+ $atts .= ' class="' . trim( $class_att ) . '"';
64
+
65
+ $multiple = preg_match( '/^checkbox[*]?$/', $type ) && ! preg_grep( '%^exclusive$%', $options );
66
+
67
+ $html = '';
68
+
69
+ if ( preg_match( '/^checkbox[*]?$/', $type ) && ! $multiple && WPCF7_LOAD_JS )
70
+ $onclick = ' onclick="wpcf7ExclusiveCheckbox(this);"';
71
+
72
+ $input_type = rtrim( $type, '*' );
73
+
74
+ $posted = is_a( $wpcf7_contact_form, 'WPCF7_ContactForm' ) && $wpcf7_contact_form->is_posted();
75
+
76
+ foreach ( $values as $key => $value ) {
77
+ $checked = false;
78
+
79
+ if ( in_array( $key + 1, (array) $defaults ) )
80
+ $checked = true;
81
+
82
+ if ( $posted) {
83
+ if ( $multiple && in_array( esc_sql( $value ), (array) $_POST[$name] ) )
84
+ $checked = true;
85
+ if ( ! $multiple && $_POST[$name] == esc_sql( $value ) )
86
+ $checked = true;
87
+ }
88
+
89
+ $checked = $checked ? ' checked="checked"' : '';
90
+
91
+ if ( is_array( $tag['labels'] ) && isset( $tag['labels'][$key] ) )
92
+ $label = $tag['labels'][$key];
93
+ else
94
+ $label = $value;
95
+
96
+ if ( $label_first ) { // put label first, input last
97
+ $item = '<span class="wpcf7-list-item-label">' . esc_html( $label ) . '</span>&nbsp;';
98
+ $item .= '<input type="' . $input_type . '" name="' . $name . ( $multiple ? '[]' : '' ) . '" value="' . esc_attr( $value ) . '"' . $checked . $onclick . ' />';
99
+ } else {
100
+ $item = '<input type="' . $input_type . '" name="' . $name . ( $multiple ? '[]' : '' ) . '" value="' . esc_attr( $value ) . '"' . $checked . $onclick . ' />';
101
+ $item .= '&nbsp;<span class="wpcf7-list-item-label">' . esc_html( $label ) . '</span>';
102
+ }
103
+
104
+ if ( $use_label_element )
105
+ $item = '<label>' . $item . '</label>';
106
+
107
+ $item = '<span class="wpcf7-list-item">' . $item . '</span>';
108
+ $html .= $item;
109
+ }
110
+
111
+ $html = '<span' . $atts . '>' . $html . '</span>';
112
+
113
+ $validation_error = '';
114
+ if ( is_a( $wpcf7_contact_form, 'WPCF7_ContactForm' ) )
115
+ $validation_error = $wpcf7_contact_form->validation_error( $name );
116
+
117
+ $html = '<span class="wpcf7-form-control-wrap ' . $name . '">' . $html . $validation_error . '</span>';
118
+
119
+ return $html;
120
+ }
121
+
122
+ wpcf7_add_shortcode( 'checkbox', 'wpcf7_checkbox_shortcode_handler', true );
123
+ wpcf7_add_shortcode( 'checkbox*', 'wpcf7_checkbox_shortcode_handler', true );
124
+ wpcf7_add_shortcode( 'radio', 'wpcf7_checkbox_shortcode_handler', true );
125
+
126
+
127
+ /* Validation filter */
128
+
129
+ function wpcf7_checkbox_validation_filter( $result, $tag ) {
130
+ global $wpcf7_contact_form;
131
+
132
+ $type = $tag['type'];
133
+ $name = $tag['name'];
134
+ $values = $tag['values'];
135
+
136
+ if ( is_array( $_POST[$name] ) ) {
137
+ foreach ( $_POST[$name] as $key => $value ) {
138
+ $value = stripslashes( $value );
139
+ if ( ! in_array( $value, (array) $values ) ) // Not in given choices.
140
+ unset( $_POST[$name][$key] );
141
+ }
142
+ } else {
143
+ $value = stripslashes( $_POST[$name] );
144
+ if ( ! in_array( $value, (array) $values ) ) // Not in given choices.
145
+ $_POST[$name] = '';
146
+ }
147
+
148
+ if ( 'checkbox*' == $type ) {
149
+ if ( empty( $_POST[$name] ) ) {
150
+ $result['valid'] = false;
151
+ $result['reason'][$name] = $wpcf7_contact_form->message( 'invalid_required' );
152
+ }
153
+ }
154
+
155
+ return $result;
156
+ }
157
+
158
+ add_filter( 'wpcf7_validate_checkbox', 'wpcf7_checkbox_validation_filter', 10, 2 );
159
+ add_filter( 'wpcf7_validate_checkbox*', 'wpcf7_checkbox_validation_filter', 10, 2 );
160
+ add_filter( 'wpcf7_validate_radio', 'wpcf7_checkbox_validation_filter', 10, 2 );
161
+
162
+ ?>
modules/file.php ADDED
@@ -0,0 +1,217 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ ** A base module for [file] and [file*]
4
+ **/
5
+
6
+ function wpcf7_file_shortcode_handler( $tag ) {
7
+ global $wpcf7_contact_form;
8
+
9
+ if ( ! is_array( $tag ) )
10
+ return '';
11
+
12
+ $type = $tag['type'];
13
+ $name = $tag['name'];
14
+ $options = (array) $tag['options'];
15
+ $values = (array) $tag['values'];
16
+
17
+ if ( empty( $name ) )
18
+ return '';
19
+
20
+ $atts = '';
21
+ $id_att = '';
22
+ $class_att = '';
23
+
24
+ if ( 'file*' == $type )
25
+ $class_att .= ' wpcf7-validates-as-required';
26
+
27
+ foreach ( $options as $option ) {
28
+ if ( preg_match( '%^id:([-0-9a-zA-Z_]+)$%', $option, $matches ) ) {
29
+ $id_att = $matches[1];
30
+
31
+ } elseif ( preg_match( '%^class:([-0-9a-zA-Z_]+)$%', $option, $matches ) ) {
32
+ $class_att .= ' ' . $matches[1];
33
+
34
+ }
35
+ }
36
+
37
+ if ( $id_att )
38
+ $atts .= ' id="' . trim( $id_att ) . '"';
39
+
40
+ if ( $class_att )
41
+ $atts .= ' class="' . trim( $class_att ) . '"';
42
+
43
+ $html = '<input type="file" name="' . $name . '"' . $atts . ' value="1" />';
44
+
45
+ $validation_error = '';
46
+ if ( is_a( $wpcf7_contact_form, 'WPCF7_ContactForm' ) )
47
+ $validation_error = $wpcf7_contact_form->validation_error( $name );
48
+
49
+ $html = '<span class="wpcf7-form-control-wrap ' . $name . '">' . $html . $validation_error . '</span>';
50
+
51
+ return $html;
52
+ }
53
+
54
+ wpcf7_add_shortcode( 'file', 'wpcf7_file_shortcode_handler', true );
55
+ wpcf7_add_shortcode( 'file*', 'wpcf7_file_shortcode_handler', true );
56
+
57
+
58
+ /* Encode type filter */
59
+
60
+ function wpcf7_file_form_enctype_filter( $enctype ) {
61
+ global $wpcf7_contact_form;
62
+
63
+ $multipart = (bool) $wpcf7_contact_form->form_scan_shortcode(
64
+ array( 'type' => array( 'file', 'file*' ) ) );
65
+
66
+ if ( $multipart )
67
+ $enctype = ' enctype="multipart/form-data"';
68
+
69
+ return $enctype;
70
+ }
71
+
72
+ add_filter( 'wpcf7_form_enctype', 'wpcf7_file_form_enctype_filter' );
73
+
74
+
75
+ /* Validation + upload handling filter */
76
+
77
+ function wpcf7_file_validation_filter( $result, $tag ) {
78
+ global $wpcf7_contact_form;
79
+
80
+ $type = $tag['type'];
81
+ $name = $tag['name'];
82
+ $options = (array) $tag['options'];
83
+
84
+ $file = $_FILES[$name];
85
+
86
+ if ( empty( $file['tmp_name'] ) && 'file*' == $type ) {
87
+ $result['valid'] = false;
88
+ $result['reason'][$name] = $wpcf7_contact_form->message( 'invalid_required' );
89
+ return $result;
90
+ }
91
+
92
+ if ( ! is_uploaded_file( $file['tmp_name'] ) )
93
+ return $result;
94
+
95
+ $file_type_pattern = '';
96
+ $allowed_size = 1048576; // default size 1 MB
97
+
98
+ foreach ( $options as $option ) {
99
+ if ( preg_match( '%^filetypes:(.+)$%', $option, $matches ) ) {
100
+ $file_types = explode( '|', $matches[1] );
101
+ foreach ( $file_types as $file_type ) {
102
+ $file_type = trim( $file_type, '.' );
103
+ $file_type = str_replace(
104
+ array( '.', '+', '*', '?' ), array( '\.', '\+', '\*', '\?' ), $file_type );
105
+ $file_type_pattern .= '|' . $file_type;
106
+ }
107
+
108
+ } elseif ( preg_match( '/^limit:([1-9][0-9]*)([kKmM]?[bB])?$/', $option, $matches ) ) {
109
+ $allowed_size = (int) $matches[1];
110
+
111
+ $kbmb = strtolower( $matches[2] );
112
+ if ( 'kb' == $kbmb ) {
113
+ $allowed_size *= 1024;
114
+ } elseif ( 'mb' == $kbmb ) {
115
+ $allowed_size *= 1024 * 1024;
116
+ }
117
+
118
+ }
119
+ }
120
+
121
+ /* File type validation */
122
+
123
+ // Default file-type restriction
124
+ if ( '' == $file_type_pattern )
125
+ $file_type_pattern = 'jpg|jpeg|png|gif|pdf|doc|docx|ppt|pptx|odt|avi|ogg|m4a|mov|mp3|mp4|mpg|wav|wmv';
126
+
127
+ $file_type_pattern = trim( $file_type_pattern, '|' );
128
+ $file_type_pattern = '(' . $file_type_pattern . ')';
129
+ $file_type_pattern = '/\.' . $file_type_pattern . '$/i';
130
+
131
+ if ( ! preg_match( $file_type_pattern, $file['name'] ) ) {
132
+ $result['valid'] = false;
133
+ $result['reason'][$name] = $wpcf7_contact_form->message( 'upload_file_type_invalid' );
134
+ return $result;
135
+ }
136
+
137
+ /* File size validation */
138
+
139
+ if ( $file['size'] > $allowed_size ) {
140
+ $result['valid'] = false;
141
+ $result['reason'][$name] = $wpcf7_contact_form->message( 'upload_file_too_large' );
142
+ return $result;
143
+ }
144
+
145
+ $uploads_dir = wpcf7_upload_tmp_dir();
146
+ wpcf7_init_uploads(); // Confirm upload dir
147
+
148
+ $filename = wp_unique_filename( $uploads_dir, $file['name'] );
149
+
150
+ // If you get script file, it's a danger. Make it TXT file.
151
+ if ( preg_match( '/\.(php|pl|py|rb|cgi)\d?$/', $filename ) )
152
+ $filename .= '.txt';
153
+
154
+ $new_file = trailingslashit( $uploads_dir ) . $filename;
155
+
156
+ if ( false === @move_uploaded_file( $file['tmp_name'], $new_file ) ) {
157
+ $result['valid'] = false;
158
+ $result['reason'][$name] = $wpcf7_contact_form->message( 'upload_failed' );
159
+ return $result;
160
+ }
161
+
162
+ // Make sure the uploaded file is only readable for the owner process
163
+ @chmod( $new_file, 0400 );
164
+
165
+ $wpcf7_contact_form->uploaded_files[$name] = $new_file;
166
+
167
+ return $result;
168
+ }
169
+
170
+ add_filter( 'wpcf7_validate_file', 'wpcf7_file_validation_filter', 10, 2 );
171
+ add_filter( 'wpcf7_validate_file*', 'wpcf7_file_validation_filter', 10, 2 );
172
+
173
+
174
+ /* File uploading functions */
175
+
176
+ function wpcf7_init_uploads() {
177
+ $dir = wpcf7_upload_tmp_dir();
178
+ wp_mkdir_p( trailingslashit( $dir ) );
179
+ @chmod( $dir, 0733 );
180
+
181
+ $htaccess_file = trailingslashit( $dir ) . '.htaccess';
182
+ if ( file_exists( $htaccess_file ) )
183
+ return;
184
+
185
+ if ( $handle = @fopen( $htaccess_file, 'w' ) ) {
186
+ fwrite( $handle, "Deny from all\n" );
187
+ fclose( $handle );
188
+ }
189
+ }
190
+
191
+ function wpcf7_cleanup_upload_files() {
192
+ $dir = trailingslashit( wpcf7_upload_tmp_dir() );
193
+
194
+ if ( ! is_dir( $dir ) )
195
+ return false;
196
+ if ( ! is_readable( $dir ) )
197
+ return false;
198
+ if ( ! is_writable( $dir ) )
199
+ return false;
200
+
201
+ if ( $handle = @opendir( $dir ) ) {
202
+ while ( false !== ( $file = readdir( $handle ) ) ) {
203
+ if ( $file == "." || $file == ".." || $file == ".htaccess" )
204
+ continue;
205
+
206
+ $stat = stat( $dir . $file );
207
+ if ( $stat['mtime'] + 60 < time() ) // 60 secs
208
+ @unlink( $dir . $file );
209
+ }
210
+ closedir( $handle );
211
+ }
212
+ }
213
+
214
+ if ( ! is_admin() && 'GET' == $_SERVER['REQUEST_METHOD'] )
215
+ wpcf7_cleanup_upload_files();
216
+
217
+ ?>
modules/icl.php ADDED
@@ -0,0 +1,217 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ ** ICL module for ICanLocalize translation service
4
+ **/
5
+
6
+ /* Shortcode handler */
7
+
8
+ function icl_wpcf7_shortcode_handler( $tag ) {
9
+
10
+ if ( ! is_array( $tag ) )
11
+ return '';
12
+
13
+ $name = $tag['name'];
14
+ $values = (array) $tag['values'];
15
+ $content = $tag['content'];
16
+
17
+ $content = trim( $content );
18
+ if ( ! empty( $content ) ) {
19
+ $string_name = icl_wpcf7_string_name( $content, $name );
20
+ return icl_wpcf7_translate( $string_name, $content );
21
+ }
22
+
23
+ $value = trim( $values[0] );
24
+ if ( ! empty( $value ) ) {
25
+ $string_name = icl_wpcf7_string_name( $value, $name, 0 );
26
+ return icl_wpcf7_translate( $string_name, $value );
27
+ }
28
+
29
+ return '';
30
+ }
31
+
32
+ wpcf7_add_shortcode( 'icl', 'icl_wpcf7_shortcode_handler', true );
33
+
34
+
35
+ /* Form tag filter */
36
+
37
+ function icl_wpcf7_form_tag_filter( $tag ) {
38
+ if ( ! is_array( $tag ) )
39
+ return $tag;
40
+
41
+ $type = $tag['type'];
42
+ $name = $tag['name'];
43
+ $options = (array) $tag['options'];
44
+ $values = (array) $tag['values'];
45
+ $content = $tag['content'];
46
+
47
+ $icl_option = array();
48
+ foreach ( $options as $option ) {
49
+ if ( 'icl' == $option ) {
50
+ $icl_option = array( 'icl', null );
51
+ break;
52
+ } elseif ( preg_match( '/^icl:(.+)$/', $option, $matches ) ) {
53
+ $icl_option = array( 'icl', $matches[1] );
54
+ break;
55
+ }
56
+ }
57
+
58
+ if ( ! ('icl' == $type || $icl_option ) )
59
+ return $tag;
60
+
61
+ $str_id = $icl_option[1] ? $icl_option[1] : $name;
62
+
63
+ if ( ! empty( $values ) ) {
64
+ $new_values = array();
65
+ foreach ( $values as $key => $value ) {
66
+ $string_name = icl_wpcf7_string_name( $value, $str_id, $key );
67
+ $new_values[$key] = icl_wpcf7_translate( $string_name, $value );
68
+ }
69
+
70
+ if ( preg_match( '/^(?:text|email|textarea|captchar|submit)[*]?$/', $type ) )
71
+ $tag['values'] = $new_values;
72
+ else
73
+ $tag['labels'] = $new_values;
74
+ }
75
+
76
+ $content = trim( $content );
77
+
78
+ if ( ! empty( $content ) ) {
79
+ $string_name = icl_wpcf7_string_name( $content, $str_id );
80
+ $content = icl_wpcf7_translate( $string_name, $content );
81
+ $tag['content'] = $content;
82
+ }
83
+
84
+ return $tag;
85
+ }
86
+
87
+ add_filter( 'wpcf7_form_tag', 'icl_wpcf7_form_tag_filter' );
88
+
89
+
90
+ /* Message dispaly filter */
91
+
92
+ function icl_wpcf7_display_message_filter( $message ) {
93
+ $shortcode_manager = new WPCF7_ShortcodeManager();
94
+ $shortcode_manager->add_shortcode( 'icl', 'icl_wpcf7_shortcode_handler', true );
95
+
96
+ return $shortcode_manager->do_shortcode( $message );
97
+ }
98
+
99
+ add_filter( 'wpcf7_display_message', 'icl_wpcf7_display_message_filter' );
100
+
101
+
102
+ /* Collecting strings hook after saving */
103
+
104
+ function icl_wpcf7_collect_strings( &$contact_form ) {
105
+ $scanned = $contact_form->form_scan_shortcode();
106
+
107
+ foreach ( $scanned as $tag ) {
108
+ if ( ! is_array( $tag ) )
109
+ continue;
110
+
111
+ $type = $tag['type'];
112
+ $name = $tag['name'];
113
+ $options = (array) $tag['options'];
114
+ $values = (array) $tag['values'];
115
+ $content = $tag['content'];
116
+
117
+ $icl_option = array();
118
+ foreach ( $options as $option ) {
119
+ if ( 'icl' == $option ) {
120
+ $icl_option = array( 'icl', null );
121
+ break;
122
+ } elseif ( preg_match( '/^icl:(.+)$/', $option, $matches ) ) {
123
+ $icl_option = array( 'icl', $matches[1] );
124
+ break;
125
+ }
126
+ }
127
+
128
+ if ( ! ('icl' == $type || $icl_option ) )
129
+ continue;
130
+
131
+ $str_id = $icl_option[1] ? $icl_option[1] : $name;
132
+
133
+ if ( ! empty( $content ) ) {
134
+ $string_name = icl_wpcf7_string_name( $content, $str_id );
135
+ icl_wpcf7_register_string( $string_name, $content );
136
+
137
+ } elseif ( ! empty( $values ) ) {
138
+ foreach ( $values as $key => $value ) {
139
+ $value = trim( $value );
140
+ $string_name = icl_wpcf7_string_name( $value, $str_id, $key );
141
+ icl_wpcf7_register_string( $string_name, $value );
142
+ }
143
+ }
144
+ }
145
+
146
+ /* From messages */
147
+
148
+ $messages = (array) $contact_form->messages;
149
+
150
+ $shortcode_manager = new WPCF7_ShortcodeManager();
151
+ $shortcode_manager->add_shortcode( 'icl', create_function( '$tag', 'return null;' ), true );
152
+
153
+ foreach ( $messages as $message ) {
154
+ $tags = $shortcode_manager->scan_shortcode( $message );
155
+ foreach ( $tags as $tag ) {
156
+ $name = $tag['name'];
157
+ $values = (array) $tag['values'];
158
+ $content = trim( $tag['content'] );
159
+
160
+ if ( ! empty( $content ) ) {
161
+ $string_name = icl_wpcf7_string_name( $content, $name );
162
+ icl_wpcf7_register_string( $string_name, $content );
163
+
164
+ } else {
165
+ foreach ( $values as $key => $value ) {
166
+ $value = trim( $value );
167
+ $string_name = icl_wpcf7_string_name( $value, $name, $key );
168
+ icl_wpcf7_register_string( $string_name, $value );
169
+ }
170
+ }
171
+ }
172
+ }
173
+ }
174
+
175
+ add_action( 'wpcf7_after_save', 'icl_wpcf7_collect_strings' );
176
+
177
+
178
+ /* Functions */
179
+
180
+ function icl_wpcf7_string_name( $value, $name = '', $key = '' ) {
181
+ if ( ! empty( $name ) ) {
182
+ $string_name = '@' . $name;
183
+ if ( '' !== $key )
184
+ $string_name .= ' ' . $key;
185
+ } else {
186
+ $string_name = '#' . md5( $value );
187
+ }
188
+
189
+ return $string_name;
190
+ }
191
+
192
+ function icl_wpcf7_register_string( $name, $value ) {
193
+ if ( ! function_exists( 'icl_register_string' ) )
194
+ return false;
195
+
196
+ $context = 'Contact Form 7';
197
+
198
+ $value = trim( $value );
199
+ if ( empty( $value ) )
200
+ return false;
201
+
202
+ icl_register_string( $context, $name, $value );
203
+ }
204
+
205
+ function icl_wpcf7_translate( $name, $value = '' ) {
206
+ if ( ! function_exists( 'icl_t' ) )
207
+ return $value;
208
+
209
+ if ( empty( $name ) )
210
+ return $value;
211
+
212
+ $context = 'Contact Form 7';
213
+
214
+ return icl_t( $context, $name, $value );
215
+ }
216
+
217
+ ?>
modules/quiz.php ADDED
@@ -0,0 +1,154 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ ** A base module for [quiz]
4
+ **/
5
+
6
+ /* Shortcode handler */
7
+
8
+ function wpcf7_quiz_shortcode_handler( $tag ) {
9
+ global $wpcf7_contact_form;
10
+
11
+ if ( ! is_array( $tag ) )
12
+ return '';
13
+
14
+ $type = $tag['type'];
15
+ $name = $tag['name'];
16
+ $options = (array) $tag['options'];
17
+ $pipes = $tag['pipes'];
18
+
19
+ if ( empty( $name ) )
20
+ return '';
21
+
22
+ $atts = '';
23
+ $id_att = '';
24
+ $class_att = '';
25
+ $size_att = '';
26
+ $maxlength_att = '';
27
+
28
+ foreach ( $options as $option ) {
29
+ if ( preg_match( '%^id:([-0-9a-zA-Z_]+)$%', $option, $matches ) ) {
30
+ $id_att = $matches[1];
31
+
32
+ } elseif ( preg_match( '%^class:([-0-9a-zA-Z_]+)$%', $option, $matches ) ) {
33
+ $class_att .= ' ' . $matches[1];
34
+
35
+ } elseif ( preg_match( '%^([0-9]*)[/x]([0-9]*)$%', $option, $matches ) ) {
36
+ $size_att = (int) $matches[1];
37
+ $maxlength_att = (int) $matches[2];
38
+ }
39
+ }
40
+
41
+ if ( $id_att )
42
+ $atts .= ' id="' . trim( $id_att ) . '"';
43
+
44
+ if ( $class_att )
45
+ $atts .= ' class="' . trim( $class_att ) . '"';
46
+
47
+ if ( $size_att )
48
+ $atts .= ' size="' . $size_att . '"';
49
+ else
50
+ $atts .= ' size="40"'; // default size
51
+
52
+ if ( $maxlength_att )
53
+ $atts .= ' maxlength="' . $maxlength_att . '"';
54
+
55
+ if ( is_a( $pipes, 'WPCF7_Pipes' ) && ! $pipes->zero() ) {
56
+ $pipe = $pipes->random_pipe();
57
+ $question = $pipe->before;
58
+ $answer = $pipe->after;
59
+ } else {
60
+ // default quiz
61
+ $question = '1+1=?';
62
+ $answer = '2';
63
+ }
64
+
65
+ $answer = wpcf7_canonicalize( $answer );
66
+
67
+ $html = '<span class="wpcf7-quiz-label">' . esc_html( $question ) . '</span>&nbsp;';
68
+ $html .= '<input type="text" name="' . $name . '"' . $atts . ' />';
69
+ $html .= '<input type="hidden" name="_wpcf7_quiz_answer_' . $name . '" value="' . wp_hash( $answer, 'wpcf7_quiz' ) . '" />';
70
+
71
+ $validation_error = '';
72
+ if ( is_a( $wpcf7_contact_form, 'WPCF7_ContactForm' ) )
73
+ $validation_error = $wpcf7_contact_form->validation_error( $name );
74
+
75
+ $html = '<span class="wpcf7-form-control-wrap ' . $name . '">' . $html . $validation_error . '</span>';
76
+
77
+ return $html;
78
+ }
79
+
80
+ wpcf7_add_shortcode( 'quiz', 'wpcf7_quiz_shortcode_handler', true );
81
+
82
+
83
+ /* Validation filter */
84
+
85
+ function wpcf7_quiz_validation_filter( $result, $tag ) {
86
+ global $wpcf7_contact_form;
87
+
88
+ $type = $tag['type'];
89
+ $name = $tag['name'];
90
+
91
+ $answer = wpcf7_canonicalize( $_POST[$name] );
92
+ $answer_hash = wp_hash( $answer, 'wpcf7_quiz' );
93
+ $expected_hash = $_POST['_wpcf7_quiz_answer_' . $name];
94
+ if ( $answer_hash != $expected_hash ) {
95
+ $result['valid'] = false;
96
+ $result['reason'][$name] = $wpcf7_contact_form->message( 'quiz_answer_not_correct' );
97
+ }
98
+
99
+ return $result;
100
+ }
101
+
102
+ add_filter( 'wpcf7_validate_quiz', 'wpcf7_quiz_validation_filter', 10, 2 );
103
+
104
+
105
+ /* Ajax echo filter */
106
+
107
+ function wpcf7_quiz_ajax_echo_filter( $items ) {
108
+ global $wpcf7_contact_form;
109
+
110
+ if ( ! is_a( $wpcf7_contact_form, 'WPCF7_ContactForm' ) )
111
+ return $items;
112
+
113
+ if ( ! is_array( $items ) )
114
+ return $items;
115
+
116
+ $fes = $wpcf7_contact_form->form_scan_shortcode(
117
+ array( 'type' => 'quiz' ) );
118
+
119
+ if ( empty( $fes ) )
120
+ return $items;
121
+
122
+ $refill = array();
123
+
124
+ foreach ( $fes as $fe ) {
125
+ $name = $fe['name'];
126
+ $pipes = $fe['pipes'];
127
+
128
+ if ( empty( $name ) )
129
+ continue;
130
+
131
+ if ( is_a( $pipes, 'WPCF7_Pipes' ) && ! $pipes->zero() ) {
132
+ $pipe = $pipes->random_pipe();
133
+ $question = $pipe->before;
134
+ $answer = $pipe->after;
135
+ } else {
136
+ // default quiz
137
+ $question = '1+1=?';
138
+ $answer = '2';
139
+ }
140
+
141
+ $answer = wpcf7_canonicalize( $answer );
142
+
143
+ $refill[$name] = array( $question, wp_hash( $answer, 'wpcf7_quiz' ) );
144
+ }
145
+
146
+ if ( ! empty( $refill ) )
147
+ $items['quiz'] = $refill;
148
+
149
+ return $items;
150
+ }
151
+
152
+ add_filter( 'wpcf7_ajax_json_echo', 'wpcf7_quiz_ajax_echo_filter' );
153
+
154
+ ?>
modules/select.php ADDED
@@ -0,0 +1,137 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ ** A base module for [select] and [select*]
4
+ **/
5
+
6
+ /* Shortcode handler */
7
+
8
+ function wpcf7_select_shortcode_handler( $tag ) {
9
+ global $wpcf7_contact_form;
10
+
11
+ if ( ! is_array( $tag ) )
12
+ return '';
13
+
14
+ $type = $tag['type'];
15
+ $name = $tag['name'];
16
+ $options = (array) $tag['options'];
17
+ $values = (array) $tag['values'];
18
+
19
+ if ( empty( $name ) )
20
+ return '';
21
+
22
+ $atts = '';
23
+ $id_att = '';
24
+ $class_att = '';
25
+
26
+ $defaults = array();
27
+
28
+ if ( 'select*' == $type )
29
+ $class_att .= ' wpcf7-validates-as-required';
30
+
31
+ foreach ( $options as $option ) {
32
+ if ( preg_match( '%^id:([-0-9a-zA-Z_]+)$%', $option, $matches ) ) {
33
+ $id_att = $matches[1];
34
+
35
+ } elseif ( preg_match( '%^class:([-0-9a-zA-Z_]+)$%', $option, $matches ) ) {
36
+ $class_att .= ' ' . $matches[1];
37
+
38
+ } elseif ( preg_match( '/^default:([0-9_]+)$/', $option, $matches ) ) {
39
+ $defaults = explode( '_', $matches[1] );
40
+ }
41
+ }
42
+
43
+ if ( $id_att )
44
+ $atts .= ' id="' . trim( $id_att ) . '"';
45
+
46
+ if ( $class_att )
47
+ $atts .= ' class="' . trim( $class_att ) . '"';
48
+
49
+ $multiple = (bool) preg_grep( '%^multiple$%', $options );
50
+ $include_blank = (bool) preg_grep( '%^include_blank$%', $options );
51
+
52
+ $empty_select = empty( $values );
53
+ if ( $empty_select || $include_blank )
54
+ array_unshift( $values, '---' );
55
+
56
+ $html = '';
57
+
58
+ $posted = is_a( $wpcf7_contact_form, 'WPCF7_ContactForm' ) && $wpcf7_contact_form->is_posted();
59
+
60
+ foreach ( $values as $key => $value ) {
61
+ $selected = false;
62
+
63
+ if ( ! $empty_select && in_array( $key + 1, (array) $defaults ) )
64
+ $selected = true;
65
+
66
+ if ( $posted ) {
67
+ if ( $multiple && in_array( esc_sql( $value ), (array) $_POST[$name] ) )
68
+ $selected = true;
69
+ if ( ! $multiple && $_POST[$name] == esc_sql( $value ) )
70
+ $selected = true;
71
+ }
72
+
73
+ $selected = $selected ? ' selected="selected"' : '';
74
+
75
+ if ( is_array( $tag['labels'] ) && isset( $tag['labels'][$key] ) )
76
+ $label = $tag['labels'][$key];
77
+ else
78
+ $label = $value;
79
+
80
+ $html .= '<option value="' . esc_attr( $value ) . '"' . $selected . '>' . esc_html( $label ) . '</option>';
81
+ }
82
+
83
+ if ( $multiple )
84
+ $atts .= ' multiple="multiple"';
85
+
86
+ $html = '<select name="' . $name . ( $multiple ? '[]' : '' ) . '"' . $atts . '>' . $html . '</select>';
87
+
88
+ $validation_error = '';
89
+ if ( is_a( $wpcf7_contact_form, 'WPCF7_ContactForm' ) )
90
+ $validation_error = $wpcf7_contact_form->validation_error( $name );
91
+
92
+ $html = '<span class="wpcf7-form-control-wrap ' . $name . '">' . $html . $validation_error . '</span>';
93
+
94
+ return $html;
95
+ }
96
+
97
+ wpcf7_add_shortcode( 'select', 'wpcf7_select_shortcode_handler', true );
98
+ wpcf7_add_shortcode( 'select*', 'wpcf7_select_shortcode_handler', true );
99
+
100
+
101
+ /* Validation filter */
102
+
103
+ function wpcf7_select_validation_filter( $result, $tag ) {
104
+ global $wpcf7_contact_form;
105
+
106
+ $type = $tag['type'];
107
+ $name = $tag['name'];
108
+ $values = $tag['values'];
109
+
110
+ if ( is_array( $_POST[$name] ) ) {
111
+ foreach ( $_POST[$name] as $key => $value ) {
112
+ $value = stripslashes( $value );
113
+ if ( ! in_array( $value, (array) $values ) ) // Not in given choices.
114
+ unset( $_POST[$name][$key] );
115
+ }
116
+ } else {
117
+ $value = stripslashes( $_POST[$name] );
118
+ if ( ! in_array( $value, (array) $values ) ) // Not in given choices.
119
+ $_POST[$name] = '';
120
+ }
121
+
122
+ if ( 'select*' == $type ) {
123
+ if ( empty( $_POST[$name] ) ||
124
+ ! is_array( $_POST[$name] ) && '---' == $_POST[$name] ||
125
+ is_array( $_POST[$name] ) && 1 == count( $_POST[$name] ) && '---' == $_POST[$name][0] ) {
126
+ $result['valid'] = false;
127
+ $result['reason'][$name] = $wpcf7_contact_form->message( 'invalid_required' );
128
+ }
129
+ }
130
+
131
+ return $result;
132
+ }
133
+
134
+ add_filter( 'wpcf7_validate_select', 'wpcf7_select_validation_filter', 10, 2 );
135
+ add_filter( 'wpcf7_validate_select*', 'wpcf7_select_validation_filter', 10, 2 );
136
+
137
+ ?>
modules/submit.php ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ ** A base module for [submit]
4
+ **/
5
+
6
+ /* Shortcode handler */
7
+
8
+ function wpcf7_submit_shortcode_handler( $tag ) {
9
+ if ( ! is_array( $tag ) )
10
+ return '';
11
+
12
+ $options = (array) $tag['options'];
13
+ $values = (array) $tag['values'];
14
+
15
+ $atts = '';
16
+ $id_att = '';
17
+ $class_att = '';
18
+
19
+ foreach ( $options as $option ) {
20
+ if ( preg_match( '%^id:([-0-9a-zA-Z_]+)$%', $option, $matches ) ) {
21
+ $id_att = $matches[1];
22
+
23
+ } elseif ( preg_match( '%^class:([-0-9a-zA-Z_]+)$%', $option, $matches ) ) {
24
+ $class_att .= ' ' . $matches[1];
25
+
26
+ }
27
+ }
28
+
29
+ if ( $id_att )
30
+ $atts .= ' id="' . trim( $id_att ) . '"';
31
+
32
+ if ( $class_att )
33
+ $atts .= ' class="' . trim( $class_att ) . '"';
34
+
35
+ $value = $values[0];
36
+ if ( empty( $value ) )
37
+ $value = __( 'Send', 'wpcf7' );
38
+
39
+ $ajax_loader_image_url = wpcf7_plugin_url( 'images/ajax-loader.gif' );
40
+
41
+ $html = '<input type="submit" value="' . esc_attr( $value ) . '"' . $atts . ' />';
42
+ $html .= ' <img class="ajax-loader" style="visibility: hidden;" alt="ajax loader" src="' . $ajax_loader_image_url . '" />';
43
+
44
+ return $html;
45
+ }
46
+
47
+ wpcf7_add_shortcode( 'submit', 'wpcf7_submit_shortcode_handler' );
48
+
49
+ ?>
modules/text.php ADDED
@@ -0,0 +1,123 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ ** A base module for [text], [text*], [email], and [email*]
4
+ **/
5
+
6
+ /* Shortcode handler */
7
+
8
+ function wpcf7_text_shortcode_handler( $tag ) {
9
+ global $wpcf7_contact_form;
10
+
11
+ if ( ! is_array( $tag ) )
12
+ return '';
13
+
14
+ $type = $tag['type'];
15
+ $name = $tag['name'];
16
+ $options = (array) $tag['options'];
17
+ $values = (array) $tag['values'];
18
+
19
+ if ( empty( $name ) )
20
+ return '';
21
+
22
+ $atts = '';
23
+ $id_att = '';
24
+ $class_att = '';
25
+ $size_att = '';
26
+ $maxlength_att = '';
27
+
28
+ if ( 'email' == $type || 'email*' == $type )
29
+ $class_att .= ' wpcf7-validates-as-email';
30
+
31
+ if ( 'text*' == $type || 'email*' == $type )
32
+ $class_att .= ' wpcf7-validates-as-required';
33
+
34
+ foreach ( $options as $option ) {
35
+ if ( preg_match( '%^id:([-0-9a-zA-Z_]+)$%', $option, $matches ) ) {
36
+ $id_att = $matches[1];
37
+
38
+ } elseif ( preg_match( '%^class:([-0-9a-zA-Z_]+)$%', $option, $matches ) ) {
39
+ $class_att .= ' ' . $matches[1];
40
+
41
+ } elseif ( preg_match( '%^([0-9]*)[/x]([0-9]*)$%', $option, $matches ) ) {
42
+ $size_att = (int) $matches[1];
43
+ $maxlength_att = (int) $matches[2];
44
+ }
45
+ }
46
+
47
+ if ( $id_att )
48
+ $atts .= ' id="' . trim( $id_att ) . '"';
49
+
50
+ if ( $class_att )
51
+ $atts .= ' class="' . trim( $class_att ) . '"';
52
+
53
+ if ( $size_att )
54
+ $atts .= ' size="' . $size_att . '"';
55
+ else
56
+ $atts .= ' size="40"'; // default size
57
+
58
+ if ( $maxlength_att )
59
+ $atts .= ' maxlength="' . $maxlength_att . '"';
60
+
61
+ // Value
62
+ if ( is_a( $wpcf7_contact_form, 'WPCF7_ContactForm' ) && $wpcf7_contact_form->is_posted() ) {
63
+ if ( isset( $_POST['_wpcf7_mail_sent'] ) && $_POST['_wpcf7_mail_sent']['ok'] )
64
+ $value = '';
65
+ else
66
+ $value = $_POST[$name];
67
+ } else {
68
+ $value = $values[0];
69
+ }
70
+
71
+ $html = '<input type="text" name="' . $name . '" value="' . esc_attr( $value ) . '"' . $atts . ' />';
72
+
73
+ $validation_error = '';
74
+ if ( is_a( $wpcf7_contact_form, 'WPCF7_ContactForm' ) )
75
+ $validation_error = $wpcf7_contact_form->validation_error( $name );
76
+
77
+ $html = '<span class="wpcf7-form-control-wrap ' . $name . '">' . $html . $validation_error . '</span>';
78
+
79
+ return $html;
80
+ }
81
+
82
+ wpcf7_add_shortcode( 'text', 'wpcf7_text_shortcode_handler', true );
83
+ wpcf7_add_shortcode( 'text*', 'wpcf7_text_shortcode_handler', true );
84
+ wpcf7_add_shortcode( 'email', 'wpcf7_text_shortcode_handler', true );
85
+ wpcf7_add_shortcode( 'email*', 'wpcf7_text_shortcode_handler', true );
86
+
87
+
88
+ /* Validation filter */
89
+
90
+ function wpcf7_text_validation_filter( $result, $tag ) {
91
+ global $wpcf7_contact_form;
92
+
93
+ $type = $tag['type'];
94
+ $name = $tag['name'];
95
+
96
+ $_POST[$name] = trim( strtr( (string) $_POST[$name], "\n", " " ) );
97
+
98
+ if ( 'text*' == $type ) {
99
+ if ( '' == $_POST[$name] ) {
100
+ $result['valid'] = false;
101
+ $result['reason'][$name] = $wpcf7_contact_form->message( 'invalid_required' );
102
+ }
103
+ }
104
+
105
+ if ( 'email' == $type || 'email*' == $type ) {
106
+ if ( 'email*' == $type && '' == $_POST[$name] ) {
107
+ $result['valid'] = false;
108
+ $result['reason'][$name] = $wpcf7_contact_form->message( 'invalid_required' );
109
+ } elseif ( '' != $_POST[$name] && ! is_email( $_POST[$name] ) ) {
110
+ $result['valid'] = false;
111
+ $result['reason'][$name] = $wpcf7_contact_form->message( 'invalid_email' );
112
+ }
113
+ }
114
+
115
+ return $result;
116
+ }
117
+
118
+ add_filter( 'wpcf7_validate_text', 'wpcf7_text_validation_filter', 10, 2 );
119
+ add_filter( 'wpcf7_validate_text*', 'wpcf7_text_validation_filter', 10, 2 );
120
+ add_filter( 'wpcf7_validate_email', 'wpcf7_text_validation_filter', 10, 2 );
121
+ add_filter( 'wpcf7_validate_email*', 'wpcf7_text_validation_filter', 10, 2 );
122
+
123
+ ?>
modules/textarea.php ADDED
@@ -0,0 +1,112 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ ** A base module for [textarea] and [textarea*]
4
+ **/
5
+
6
+ /* Shortcode handler */
7
+
8
+ function wpcf7_textarea_shortcode_handler( $tag ) {
9
+ global $wpcf7_contact_form;
10
+
11
+ if ( ! is_array( $tag ) )
12
+ return '';
13
+
14
+ $type = $tag['type'];
15
+ $name = $tag['name'];
16
+ $options = (array) $tag['options'];
17
+ $values = (array) $tag['values'];
18
+ $content = $tag['content'];
19
+
20
+ if ( empty( $name ) )
21
+ return '';
22
+
23
+ $atts = '';
24
+ $id_att = '';
25
+ $class_att = '';
26
+ $cols_att = '';
27
+ $rows_att = '';
28
+
29
+ if ( 'textarea*' == $type )
30
+ $class_att .= ' wpcf7-validates-as-required';
31
+
32
+ foreach ( $options as $option ) {
33
+ if ( preg_match( '%^id:([-0-9a-zA-Z_]+)$%', $option, $matches ) ) {
34
+ $id_att = $matches[1];
35
+
36
+ } elseif ( preg_match( '%^class:([-0-9a-zA-Z_]+)$%', $option, $matches ) ) {
37
+ $class_att .= ' ' . $matches[1];
38
+
39
+ } elseif ( preg_match( '%^([0-9]*)[x/]([0-9]*)$%', $option, $matches ) ) {
40
+ $cols_att = (int) $matches[1];
41
+ $rows_att = (int) $matches[2];
42
+ }
43
+ }
44
+
45
+ if ( $id_att )
46
+ $atts .= ' id="' . trim( $id_att ) . '"';
47
+
48
+ if ( $class_att )
49
+ $atts .= ' class="' . trim( $class_att ) . '"';
50
+
51
+ if ( $cols_att )
52
+ $atts .= ' cols="' . $cols_att . '"';
53
+ else
54
+ $atts .= ' cols="40"'; // default size
55
+
56
+ if ( $rows_att )
57
+ $atts .= ' rows="' . $rows_att . '"';
58
+ else
59
+ $atts .= ' rows="10"'; // default size
60
+
61
+ // Value
62
+ if ( is_a( $wpcf7_contact_form, 'WPCF7_ContactForm' ) && $wpcf7_contact_form->is_posted() ) {
63
+ if ( isset( $_POST['_wpcf7_mail_sent'] ) && $_POST['_wpcf7_mail_sent']['ok'] )
64
+ $value = '';
65
+ else
66
+ $value = $_POST[$name];
67
+ } else {
68
+ $value = $values[0];
69
+
70
+ if ( ! empty( $content ) )
71
+ $value = $content;
72
+ }
73
+
74
+ $html = '<textarea name="' . $name . '"' . $atts . '>' . esc_html( $value ) . '</textarea>';
75
+
76
+ $validation_error = '';
77
+ if ( is_a( $wpcf7_contact_form, 'WPCF7_ContactForm' ) )
78
+ $validation_error = $wpcf7_contact_form->validation_error( $name );
79
+
80
+ $html = '<span class="wpcf7-form-control-wrap ' . $name . '">' . $html . $validation_error . '</span>';
81
+
82
+ return $html;
83
+ }
84
+
85
+ wpcf7_add_shortcode( 'textarea', 'wpcf7_textarea_shortcode_handler', true );
86
+ wpcf7_add_shortcode( 'textarea*', 'wpcf7_textarea_shortcode_handler', true );
87
+
88
+
89
+ /* Validation filter */
90
+
91
+ function wpcf7_textarea_validation_filter( $result, $tag ) {
92
+ global $wpcf7_contact_form;
93
+
94
+ $type = $tag['type'];
95
+ $name = $tag['name'];
96
+
97
+ $_POST[$name] = (string) $_POST[$name];
98
+
99
+ if ( 'textarea*' == $type ) {
100
+ if ( '' == $_POST[$name] ) {
101
+ $result['valid'] = false;
102
+ $result['reason'][$name] = $wpcf7_contact_form->message( 'invalid_required' );
103
+ }
104
+ }
105
+
106
+ return $result;
107
+ }
108
+
109
+ add_filter( 'wpcf7_validate_textarea', 'wpcf7_textarea_validation_filter', 10, 2 );
110
+ add_filter( 'wpcf7_validate_textarea*', 'wpcf7_textarea_validation_filter', 10, 2 );
111
+
112
+ ?>
wp-contact-form-7.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: Contact Form 7
4
  Plugin URI: http://ideasilo.wordpress.com/2007/04/30/contact-form-7/
5
  Description: Just another contact form plugin. Simple but flexible.
6
  Author: Takayuki Miyoshi
7
- Version: 1.10.1
8
  Author URI: http://ideasilo.wordpress.com/
9
  */
10
 
@@ -25,19 +25,7 @@ Author URI: http://ideasilo.wordpress.com/
25
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26
  */
27
 
28
- define( 'WPCF7_VERSION', '1.10.1' );
29
-
30
- if ( ! defined( 'WP_CONTENT_DIR' ) )
31
- define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' );
32
-
33
- if ( ! defined( 'WP_CONTENT_URL' ) )
34
- define( 'WP_CONTENT_URL', get_option( 'siteurl' ) . '/wp-content' );
35
-
36
- if ( ! defined( 'WP_PLUGIN_DIR' ) )
37
- define( 'WP_PLUGIN_DIR', WP_CONTENT_DIR . '/plugins' );
38
-
39
- if ( ! defined( 'WP_PLUGIN_URL' ) )
40
- define( 'WP_PLUGIN_URL', WP_CONTENT_URL . '/plugins' );
41
 
42
  if ( ! defined( 'WPCF7_PLUGIN_DIR' ) )
43
  define( 'WPCF7_PLUGIN_DIR', WP_PLUGIN_DIR . '/' . plugin_basename( dirname( __FILE__ ) ) );
@@ -45,6 +33,9 @@ if ( ! defined( 'WPCF7_PLUGIN_DIR' ) )
45
  if ( ! defined( 'WPCF7_PLUGIN_URL' ) )
46
  define( 'WPCF7_PLUGIN_URL', WP_PLUGIN_URL . '/' . plugin_basename( dirname( __FILE__ ) ) );
47
 
 
 
 
48
  if ( ! defined( 'WPCF7_PLUGIN_BASENAME' ) )
49
  define( 'WPCF7_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
50
 
@@ -73,23 +64,21 @@ if ( ! defined( 'WPCF7_ADMIN_READ_WRITE_CAPABILITY' ) )
73
  function wpcf7_plugin_url( $path = '' ) {
74
  global $wp_version;
75
 
76
- if ( function_exists( 'plugins_url' ) ) {
 
 
 
77
 
78
- if ( version_compare( $wp_version, '2.8-beta', '<' ) ) { // Using WordPress 2.6 - 2.7.x
79
- $folder = dirname( plugin_basename( __FILE__ ) );
80
- if ( '.' != $folder )
81
- $path = path_join( ltrim( $folder, '/' ), $path );
82
 
83
- return plugins_url( $path );
84
- }
85
 
86
- return plugins_url( $path, __FILE__ );
87
- } else { // Older than WP 2.6
88
- $url = WPCF7_PLUGIN_URL;
89
- if ( ! empty( $path ) && is_string( $path ) && false === strpos( $path, '..' ) )
90
- $url .= '/' . ltrim( $path, '/' );
91
- return $url;
92
- }
93
  }
94
 
95
  // Pre-2.8 compatibility
@@ -111,122 +100,102 @@ if ( ! function_exists( 'esc_attr' ) ) {
111
  }
112
  }
113
 
114
- require_once WPCF7_PLUGIN_DIR . '/includes/classes.php';
 
 
 
 
 
 
115
  require_once WPCF7_PLUGIN_DIR . '/includes/functions.php';
116
  require_once WPCF7_PLUGIN_DIR . '/includes/formatting.php';
117
- require_once WPCF7_PLUGIN_DIR . '/includes/mail.php';
118
  require_once WPCF7_PLUGIN_DIR . '/includes/pipe.php';
119
- require_once WPCF7_PLUGIN_DIR . '/includes/akismet.php';
120
- require_once WPCF7_PLUGIN_DIR . '/includes/acceptance.php';
121
- require_once WPCF7_PLUGIN_DIR . '/includes/quiz.php';
122
- require_once WPCF7_PLUGIN_DIR . '/includes/captcha.php';
123
- require_once WPCF7_PLUGIN_DIR . '/includes/upload.php';
124
 
125
  if ( is_admin() )
126
  require_once WPCF7_PLUGIN_DIR . '/admin/admin.php';
127
 
128
- $wpcf7_contact_forms = null;
129
-
130
  function wpcf7_contact_forms() {
131
- global $wpcf7_contact_forms;
132
-
133
- if ( is_array( $wpcf7_contact_forms ) )
134
- return $wpcf7_contact_forms;
135
-
136
- $wpcf7 = get_option( 'wpcf7' );
137
- $wpcf7_contact_forms = $wpcf7['contact_forms'];
138
-
139
- if ( ! is_array( $wpcf7_contact_forms ) )
140
- $wpcf7_contact_forms = array();
141
-
142
- return $wpcf7_contact_forms;
143
- }
144
 
145
- function wpcf7_update_contact_forms( $contact_forms ) {
146
- $wpcf7 = get_option( 'wpcf7' );
147
- $wpcf7['contact_forms'] = $contact_forms;
148
 
149
- update_option( 'wpcf7', $wpcf7 );
150
  }
151
 
152
- $wpcf7_posted_data = null;
153
 
154
  $wpcf7_processing_within = null;
155
  $wpcf7_unit_count = null;
156
  $wpcf7_widget_count = null;
157
 
158
  function wpcf7_ajax_json_echo() {
 
 
159
  $echo = '';
160
 
161
  if ( isset( $_POST['_wpcf7'] ) ) {
162
  $id = (int) $_POST['_wpcf7'];
163
  $unit_tag = $_POST['_wpcf7_unit_tag'];
164
- $contact_forms = wpcf7_contact_forms();
165
-
166
- if ( $cf = wpcf7_contact_form( $contact_forms[$id] ) ) {
167
- $validation = $cf->validate();
168
 
169
- $handled_uploads = wpcf7_handle_uploads( $cf );
170
- if ( ! $handled_uploads['validation']['valid'] )
171
- $validation['valid'] = false;
172
 
173
- $validation['reason'] = array_merge( $validation['reason'], $handled_uploads['validation']['reason'] );
 
 
 
174
 
175
- $captchas = wpcf7_refill_captcha( $cf );
176
 
177
- if ( ! empty( $captchas ) ) {
178
- $captchas_js = array();
179
- foreach ( $captchas as $name => $cap ) {
180
- $captchas_js[] = '"' . $name . '": "' . $cap . '"';
 
 
181
  }
182
- $captcha = '{ ' . join( ', ', $captchas_js ) . ' }';
183
- } else {
184
- $captcha = 'null';
185
- }
186
 
187
- $quizzes = wpcf7_refill_quiz( $cf );
 
188
 
189
- if ( ! empty( $quizzes ) ) {
190
- $quizzes_js = array();
191
- foreach ( $quizzes as $name => $q ) {
192
- $quizzes_js[] = '"' . $name . '": [ "' . esc_js( $q[0] ) . '", "' . $q[1] . '" ]';
193
- }
194
- $quiz = '{ ' . join( ', ', $quizzes_js ) . ' }';
195
- } else {
196
- $quiz = 'null';
197
- }
198
 
199
- $on_sent_ok_settings = $cf->additional_setting( 'on_sent_ok', false );
200
- if ( ! empty( $on_sent_ok_settings ) ) {
201
- $on_sent_ok = '[ ' . implode( ', ', $on_sent_ok_settings ) . ' ]';
202
- } else {
203
- $on_sent_ok = 'null';
204
- }
205
 
206
- if ( ! $validation['valid'] ) { // Validation error occured
207
- $invalids = array();
208
- foreach ( $validation['reason'] as $name => $reason ) {
209
- $invalids[] = '{ into: "span.wpcf7-form-control-wrap.' . $name . '", message: "' . esc_js( $reason ) . '" }';
 
 
 
 
 
210
  }
211
- $invalids = '[' . join( ', ', $invalids ) . ']';
212
- $echo = '{ mailSent: 0, message: "' . esc_js( $cf->message( 'validation_error' ) ) . '", into: "#' . $unit_tag . '", invalids: ' . $invalids . ', captcha: ' . $captcha . ', quiz: ' . $quiz . ' }';
213
- } elseif ( ! wpcf7_acceptance( $cf ) ) { // Not accepted terms
214
- $echo = '{ mailSent: 0, message: "' . esc_js( $cf->message( 'accept_terms' ) ) . '", into: "#' . $unit_tag . '", captcha: ' . $captcha . ', quiz: ' . $quiz . ' }';
215
- } elseif ( wpcf7_akismet( $cf ) ) { // Spam!
216
- $echo = '{ mailSent: 0, message: "' . esc_js( $cf->message( 'akismet_says_spam' ) ) . '", into: "#' . $unit_tag . '", spam: 1, captcha: ' . $captcha . ', quiz: ' . $quiz . ' }';
217
- } elseif ( wpcf7_mail( $cf, $handled_uploads['files'] ) ) {
218
- $echo = '{ mailSent: 1, message: "' . esc_js( $cf->message( 'mail_sent_ok' ) ) . '", into: "#' . $unit_tag . '", captcha: ' . $captcha . ', quiz: ' . $quiz . ', onSentOk: ' . $on_sent_ok . ' }';
219
  } else {
220
- $echo = '{ mailSent: 0, message: "' . esc_js( $cf->message( 'mail_sent_ng' ) ) . '", into: "#' . $unit_tag . '", captcha: ' . $captcha . ', quiz: ' . $quiz . ' }';
221
  }
222
 
223
  // remove upload files
224
- foreach ( $handled_uploads['files'] as $name => $path ) {
225
  @unlink( $path );
226
  }
 
 
227
  }
228
  }
229
 
 
 
230
  if ( $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest' ) {
231
  @header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
232
  echo $echo;
@@ -237,37 +206,36 @@ function wpcf7_ajax_json_echo() {
237
  }
238
 
239
  function wpcf7_process_nonajax_submitting() {
 
 
240
  if ( ! isset($_POST['_wpcf7'] ) )
241
  return;
242
 
243
  $id = (int) $_POST['_wpcf7'];
244
- $contact_forms = wpcf7_contact_forms();
245
- if ( $cf = wpcf7_contact_form( $contact_forms[$id] ) ) {
246
- $validation = $cf->validate();
247
 
248
- $handled_uploads = wpcf7_handle_uploads( $cf );
249
-
250
- if ( ! $handled_uploads['validation']['valid'] )
251
- $validation['valid'] = false;
252
-
253
- $validation['reason'] = array_merge( $validation['reason'], $handled_uploads['validation']['reason'] );
254
 
255
  if ( ! $validation['valid'] ) {
256
  $_POST['_wpcf7_validation_errors'] = array( 'id' => $id, 'messages' => $validation['reason'] );
257
- } elseif ( ! wpcf7_acceptance( $cf ) ) { // Not accepted terms
258
- $_POST['_wpcf7_mail_sent'] = array( 'id' => $id, 'ok' => false, 'message' => $cf->message( 'accept_terms' ) );
259
- } elseif ( wpcf7_akismet( $cf ) ) { // Spam!
260
- $_POST['_wpcf7_mail_sent'] = array( 'id' => $id, 'ok' => false, 'message' => $cf->message( 'akismet_says_spam' ), 'spam' => true );
261
- } elseif ( wpcf7_mail( $cf, $handled_uploads['files'] ) ) {
262
- $_POST['_wpcf7_mail_sent'] = array( 'id' => $id, 'ok' => true, 'message' => $cf->message( 'mail_sent_ok' ) );
 
 
263
  } else {
264
- $_POST['_wpcf7_mail_sent'] = array( 'id' => $id, 'ok' => false, 'message' => $cf->message( 'mail_sent_ng' ) );
265
  }
266
 
267
  // remove upload files
268
- foreach ( $handled_uploads['files'] as $name => $path ) {
269
  @unlink( $path );
270
  }
 
 
271
  }
272
  }
273
 
@@ -300,7 +268,7 @@ function wpcf7_widget_text_filter_callback( $matches ) {
300
  }
301
 
302
  function wpcf7_contact_form_tag_func( $atts ) {
303
- global $wpcf7_unit_count, $wpcf7_processing_within;
304
 
305
  if ( is_string( $atts ) )
306
  $atts = explode( ' ', $atts, 2 );
@@ -309,19 +277,17 @@ function wpcf7_contact_form_tag_func( $atts ) {
309
 
310
  $id = (int) array_shift( $atts );
311
 
312
- $contact_forms = wpcf7_contact_forms();
313
-
314
- if ( ! ( $cf = wpcf7_contact_form( $contact_forms[$id] ) ) )
315
  return '[contact-form 404 "Not Found"]';
316
 
317
- $cf->id = $id;
318
-
319
  $wpcf7_unit_count += 1;
320
 
321
  $unit_tag = 'wpcf7-f' . $id . '-' . $wpcf7_processing_within . '-o' . $wpcf7_unit_count;
322
- $cf->unit_tag = $unit_tag;
 
 
323
 
324
- $form = $cf->form_html();
325
 
326
  return $form;
327
  }
@@ -341,6 +307,22 @@ function wpcf7_wp_head() {
341
  if ( WPCF7_LOAD_CSS )
342
  add_action( 'wp_head', 'wpcf7_wp_head' );
343
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
344
  function wpcf7_enqueue_scripts() {
345
  $in_footer = true;
346
  if ( 'header' === WPCF7_LOAD_JS )
@@ -353,69 +335,22 @@ function wpcf7_enqueue_scripts() {
353
  if ( ! is_admin() && WPCF7_LOAD_JS )
354
  add_action( 'init', 'wpcf7_enqueue_scripts' );
355
 
 
 
 
 
 
 
 
356
  function wpcf7_init_switch() {
357
  if ( 'POST' == $_SERVER['REQUEST_METHOD'] && 1 == (int) $_POST['_wpcf7_is_ajax_call'] ) {
358
  wpcf7_ajax_json_echo();
359
  exit();
360
  } elseif ( ! is_admin() ) {
361
  wpcf7_process_nonajax_submitting();
362
- wpcf7_cleanup_captcha_files();
363
- wpcf7_cleanup_upload_files();
364
  }
365
  }
366
 
367
  add_action( 'init', 'wpcf7_init_switch', 11 );
368
 
369
- function wpcf7_load_plugin_textdomain() { // l10n
370
- global $wp_version;
371
-
372
- if ( version_compare( $wp_version, '2.6', '<' ) ) // Using old WordPress
373
- load_plugin_textdomain( 'wpcf7', 'wp-content/plugins/contact-form-7/languages' );
374
- else
375
- load_plugin_textdomain( 'wpcf7', 'wp-content/plugins/contact-form-7/languages', 'contact-form-7/languages' );
376
- }
377
-
378
- add_action( 'init', 'wpcf7_load_plugin_textdomain' );
379
-
380
- function wpcf7_set_initial() {
381
- wpcf7_load_plugin_textdomain();
382
-
383
- $wpcf7 = get_option( 'wpcf7' );
384
- if ( ! is_array( $wpcf7 ) )
385
- $wpcf7 = array();
386
-
387
- $contact_forms = $wpcf7['contact_forms'];
388
- if ( ! is_array( $contact_forms ) )
389
- $contact_forms = array();
390
-
391
- if ( 0 == count( $contact_forms ) )
392
- $contact_forms[1] = wpcf7_default_pack( __( 'Contact form', 'wpcf7' ) . ' 1' );
393
-
394
- $wpcf7['contact_forms'] = $contact_forms;
395
- update_option( 'wpcf7', $wpcf7 );
396
- }
397
-
398
- add_action( 'activate_' . WPCF7_PLUGIN_BASENAME, 'wpcf7_set_initial' );
399
-
400
- function wpcf7_contact_form( $data ) {
401
- if ( ! $data )
402
- return false;
403
-
404
- $data = stripslashes_deep( $data );
405
-
406
- $contact_form = new WPCF7_ContactForm();
407
-
408
- $contact_form->title = $data['title'];
409
- $contact_form->form = $data['form'];
410
- $contact_form->mail = $data['mail'];
411
- $contact_form->mail_2 = $data['mail_2'];
412
- $contact_form->messages = $data['messages'];
413
- $contact_form->additional_settings = $data['additional_settings'];
414
- $contact_form->options = $data['options'];
415
-
416
- $contact_form->upgrade();
417
-
418
- return $contact_form;
419
- }
420
-
421
  ?>
4
  Plugin URI: http://ideasilo.wordpress.com/2007/04/30/contact-form-7/
5
  Description: Just another contact form plugin. Simple but flexible.
6
  Author: Takayuki Miyoshi
7
+ Version: 2.0-beta
8
  Author URI: http://ideasilo.wordpress.com/
9
  */
10
 
25
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26
  */
27
 
28
+ define( 'WPCF7_VERSION', '2.0-beta' );
 
 
 
 
 
 
 
 
 
 
 
 
29
 
30
  if ( ! defined( 'WPCF7_PLUGIN_DIR' ) )
31
  define( 'WPCF7_PLUGIN_DIR', WP_PLUGIN_DIR . '/' . plugin_basename( dirname( __FILE__ ) ) );
33
  if ( ! defined( 'WPCF7_PLUGIN_URL' ) )
34
  define( 'WPCF7_PLUGIN_URL', WP_PLUGIN_URL . '/' . plugin_basename( dirname( __FILE__ ) ) );
35
 
36
+ if ( ! defined( 'WPCF7_PLUGIN_MODULES_DIR' ) )
37
+ define( 'WPCF7_PLUGIN_MODULES_DIR', WPCF7_PLUGIN_DIR . '/modules' );
38
+
39
  if ( ! defined( 'WPCF7_PLUGIN_BASENAME' ) )
40
  define( 'WPCF7_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
41
 
64
  function wpcf7_plugin_url( $path = '' ) {
65
  global $wp_version;
66
 
67
+ if ( version_compare( $wp_version, '2.8', '<' ) ) { // Using WordPress 2.7
68
+ $folder = dirname( plugin_basename( __FILE__ ) );
69
+ if ( '.' != $folder )
70
+ $path = path_join( ltrim( $folder, '/' ), $path );
71
 
72
+ return plugins_url( $path );
73
+ }
 
 
74
 
75
+ return plugins_url( $path, __FILE__ );
76
+ }
77
 
78
+ function wpcf7_table_name() {
79
+ global $wpdb;
80
+
81
+ return $wpdb->prefix . "contact_form_7";
 
 
 
82
  }
83
 
84
  // Pre-2.8 compatibility
100
  }
101
  }
102
 
103
+ if ( ! function_exists( 'esc_sql' ) ) {
104
+ function esc_sql( $text ) {
105
+ global $wpdb;
106
+ return $wpdb->escape( $text );
107
+ }
108
+ }
109
+
110
  require_once WPCF7_PLUGIN_DIR . '/includes/functions.php';
111
  require_once WPCF7_PLUGIN_DIR . '/includes/formatting.php';
 
112
  require_once WPCF7_PLUGIN_DIR . '/includes/pipe.php';
113
+ require_once WPCF7_PLUGIN_DIR . '/includes/shortcodes.php';
114
+ require_once WPCF7_PLUGIN_DIR . '/includes/classes.php';
 
 
 
115
 
116
  if ( is_admin() )
117
  require_once WPCF7_PLUGIN_DIR . '/admin/admin.php';
118
 
 
 
119
  function wpcf7_contact_forms() {
120
+ global $wpdb;
 
 
 
 
 
 
 
 
 
 
 
 
121
 
122
+ $table_name = wpcf7_table_name();
 
 
123
 
124
+ return $wpdb->get_results( "SELECT cf7_unit_id as id, title FROM $table_name" );
125
  }
126
 
127
+ $wpcf7_contact_form = null;
128
 
129
  $wpcf7_processing_within = null;
130
  $wpcf7_unit_count = null;
131
  $wpcf7_widget_count = null;
132
 
133
  function wpcf7_ajax_json_echo() {
134
+ global $wpcf7_contact_form;
135
+
136
  $echo = '';
137
 
138
  if ( isset( $_POST['_wpcf7'] ) ) {
139
  $id = (int) $_POST['_wpcf7'];
140
  $unit_tag = $_POST['_wpcf7_unit_tag'];
 
 
 
 
141
 
142
+ if ( $wpcf7_contact_form = wpcf7_contact_form( $id ) ) {
143
+ $validation = $wpcf7_contact_form->validate();
 
144
 
145
+ $items = array(
146
+ 'mailSent' => false,
147
+ 'into' => '#' . $unit_tag,
148
+ 'captcha' => $captcha );
149
 
150
+ $items = apply_filters( 'wpcf7_ajax_json_echo', $items );
151
 
152
+ if ( ! $validation['valid'] ) { // Validation error occured
153
+ $invalids = array();
154
+ foreach ( $validation['reason'] as $name => $reason ) {
155
+ $invalids[] = array(
156
+ 'into' => 'span.wpcf7-form-control-wrap.' . $name,
157
+ 'message' => $reason );
158
  }
 
 
 
 
159
 
160
+ $items['message'] = $wpcf7_contact_form->message( 'validation_error' );
161
+ $items['invalids'] = $invalids;
162
 
163
+ } elseif ( ! $wpcf7_contact_form->accepted() ) { // Not accepted terms
164
+ $items['message'] = $wpcf7_contact_form->message( 'accept_terms' );
 
 
 
 
 
 
 
165
 
166
+ } elseif ( $wpcf7_contact_form->akismet() ) { // Spam!
167
+ $items['message'] = $wpcf7_contact_form->message( 'akismet_says_spam' );
168
+ $items['spam'] = true;
 
 
 
169
 
170
+ } elseif ( $wpcf7_contact_form->mail() ) {
171
+ $items['mailSent'] = true;
172
+ $items['message'] = $wpcf7_contact_form->message( 'mail_sent_ok' );
173
+
174
+ $on_sent_ok = $wpcf7_contact_form->additional_setting( 'on_sent_ok', false );
175
+ if ( ! empty( $on_sent_ok ) ) {
176
+ $on_sent_ok = array_map( 'wpcf7_strip_quote', $on_sent_ok );
177
+ } else {
178
+ $on_sent_ok = null;
179
  }
180
+ $items['onSentOk'] = $on_sent_ok;
181
+
182
+ do_action_ref_array( 'wpcf7_mail_sent', array( &$wpcf7_contact_form ) );
183
+
 
 
 
 
184
  } else {
185
+ $items['message'] = $wpcf7_contact_form->message( 'mail_sent_ng' );
186
  }
187
 
188
  // remove upload files
189
+ foreach ( (array) $wpcf7_contact_form->uploaded_files as $name => $path ) {
190
  @unlink( $path );
191
  }
192
+
193
+ $wpcf7_contact_form = null;
194
  }
195
  }
196
 
197
+ $echo = wpcf7_json( $items );
198
+
199
  if ( $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest' ) {
200
  @header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
201
  echo $echo;
206
  }
207
 
208
  function wpcf7_process_nonajax_submitting() {
209
+ global $wpcf7_contact_form;
210
+
211
  if ( ! isset($_POST['_wpcf7'] ) )
212
  return;
213
 
214
  $id = (int) $_POST['_wpcf7'];
 
 
 
215
 
216
+ if ( $wpcf7_contact_form = wpcf7_contact_form( $id ) ) {
217
+ $validation = $wpcf7_contact_form->validate();
 
 
 
 
218
 
219
  if ( ! $validation['valid'] ) {
220
  $_POST['_wpcf7_validation_errors'] = array( 'id' => $id, 'messages' => $validation['reason'] );
221
+ } elseif ( ! $wpcf7_contact_form->accepted() ) { // Not accepted terms
222
+ $_POST['_wpcf7_mail_sent'] = array( 'id' => $id, 'ok' => false, 'message' => $wpcf7_contact_form->message( 'accept_terms' ) );
223
+ } elseif ( $wpcf7_contact_form->akismet() ) { // Spam!
224
+ $_POST['_wpcf7_mail_sent'] = array( 'id' => $id, 'ok' => false, 'message' => $wpcf7_contact_form->message( 'akismet_says_spam' ), 'spam' => true );
225
+ } elseif ( $wpcf7_contact_form->mail() ) {
226
+ $_POST['_wpcf7_mail_sent'] = array( 'id' => $id, 'ok' => true, 'message' => $wpcf7_contact_form->message( 'mail_sent_ok' ) );
227
+
228
+ do_action_ref_array( 'wpcf7_mail_sent', array( &$wpcf7_contact_form ) );
229
  } else {
230
+ $_POST['_wpcf7_mail_sent'] = array( 'id' => $id, 'ok' => false, 'message' => $wpcf7_contact_form->message( 'mail_sent_ng' ) );
231
  }
232
 
233
  // remove upload files
234
+ foreach ( (array) $wpcf7_contact_form->uploaded_files as $name => $path ) {
235
  @unlink( $path );
236
  }
237
+
238
+ $wpcf7_contact_form = null;
239
  }
240
  }
241
 
268
  }
269
 
270
  function wpcf7_contact_form_tag_func( $atts ) {
271
+ global $wpcf7_contact_form, $wpcf7_unit_count, $wpcf7_processing_within;
272
 
273
  if ( is_string( $atts ) )
274
  $atts = explode( ' ', $atts, 2 );
277
 
278
  $id = (int) array_shift( $atts );
279
 
280
+ if ( ! ( $wpcf7_contact_form = wpcf7_contact_form( $id ) ) )
 
 
281
  return '[contact-form 404 "Not Found"]';
282
 
 
 
283
  $wpcf7_unit_count += 1;
284
 
285
  $unit_tag = 'wpcf7-f' . $id . '-' . $wpcf7_processing_within . '-o' . $wpcf7_unit_count;
286
+ $wpcf7_contact_form->unit_tag = $unit_tag;
287
+
288
+ $form = $wpcf7_contact_form->form_html();
289
 
290
+ $wpcf7_contact_form = null;
291
 
292
  return $form;
293
  }
307
  if ( WPCF7_LOAD_CSS )
308
  add_action( 'wp_head', 'wpcf7_wp_head' );
309
 
310
+ /* Loading modules */
311
+
312
+ function wpcf7_load_modules() {
313
+ $dir = WPCF7_PLUGIN_MODULES_DIR;
314
+
315
+ if ( ! ( is_dir( $dir ) && $dh = opendir( $dir ) ) )
316
+ return false;
317
+
318
+ while ( ( $module = readdir( $dh ) ) !== false ) {
319
+ if ( substr( $module, -4 ) == '.php' )
320
+ include_once $dir . '/' . $module;
321
+ }
322
+ }
323
+
324
+ add_action( 'init', 'wpcf7_load_modules' );
325
+
326
  function wpcf7_enqueue_scripts() {
327
  $in_footer = true;
328
  if ( 'header' === WPCF7_LOAD_JS )
335
  if ( ! is_admin() && WPCF7_LOAD_JS )
336
  add_action( 'init', 'wpcf7_enqueue_scripts' );
337
 
338
+ function wpcf7_load_plugin_textdomain() { // l10n
339
+ load_plugin_textdomain( 'wpcf7',
340
+ 'wp-content/plugins/contact-form-7/languages', 'contact-form-7/languages' );
341
+ }
342
+
343
+ add_action( 'init', 'wpcf7_load_plugin_textdomain' );
344
+
345
  function wpcf7_init_switch() {
346
  if ( 'POST' == $_SERVER['REQUEST_METHOD'] && 1 == (int) $_POST['_wpcf7_is_ajax_call'] ) {
347
  wpcf7_ajax_json_echo();
348
  exit();
349
  } elseif ( ! is_admin() ) {
350
  wpcf7_process_nonajax_submitting();
 
 
351
  }
352
  }
353
 
354
  add_action( 'init', 'wpcf7_init_switch', 11 );
355
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
356
  ?>