Advanced Custom Fields - Version 4.4.12

Version Description

  • Core: Added Early Access for ACF 5
  • Core: Fixed PHP7 warnings
  • Language: Added Romanian translation - thanks to Corneliu Crlan
Download this release

Release Info

Developer elliotcondon
Plugin Icon 128x128 Advanced Custom Fields
Version 4.4.12
Comparing to
See all releases

Code changes from version 4.4.11 to 4.4.12

acf.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Advanced Custom Fields
4
  Plugin URI: http://www.advancedcustomfields.com/
5
  Description: Customise WordPress with powerful, professional and intuitive fields
6
- Version: 4.4.11
7
  Author: Elliot Condon
8
  Author URI: http://www.elliotcondon.com/
9
  License: GPL
@@ -14,11 +14,15 @@ Domain Path: /lang
14
 
15
  if( !class_exists('acf') ):
16
 
17
- class acf
18
- {
19
- // vars
20
- var $settings;
21
-
 
 
 
 
22
 
23
  /*
24
  * Constructor
@@ -33,8 +37,8 @@ class acf
33
  * @return N/A
34
  */
35
 
36
- function __construct()
37
- {
38
  // helpers
39
  add_filter('acf/helpers/get_path', array($this, 'helpers_get_path'), 1, 1);
40
  add_filter('acf/helpers/get_dir', array($this, 'helpers_get_dir'), 1, 1);
@@ -42,11 +46,18 @@ class acf
42
 
43
  // vars
44
  $this->settings = array(
 
 
 
 
 
 
 
45
  'path' => apply_filters('acf/helpers/get_path', __FILE__),
46
  'dir' => apply_filters('acf/helpers/get_dir', __FILE__),
47
- 'hook' => basename( dirname( __FILE__ ) ) . '/' . basename( __FILE__ ),
48
- 'version' => '4.4.11',
49
- 'upgrade_version' => '3.4.1',
50
  'include_3rd_party' => false
51
  );
52
 
@@ -419,7 +430,7 @@ class acf
419
 
420
  include_once('core/fields/message.php');
421
  include_once('core/fields/tab.php');
422
-
423
  }
424
 
425
 
@@ -470,6 +481,13 @@ class acf
470
 
471
  function include_after_theme() {
472
 
 
 
 
 
 
 
 
473
  // bail early if user has defined LITE_MODE as true
474
  if( defined('ACF_LITE') && ACF_LITE )
475
  {
3
  Plugin Name: Advanced Custom Fields
4
  Plugin URI: http://www.advancedcustomfields.com/
5
  Description: Customise WordPress with powerful, professional and intuitive fields
6
+ Version: 4.4.12
7
  Author: Elliot Condon
8
  Author URI: http://www.elliotcondon.com/
9
  License: GPL
14
 
15
  if( !class_exists('acf') ):
16
 
17
+ class acf {
18
+
19
+ /** @var string The plugin version number */
20
+ var $version = '4.4.12';
21
+
22
+
23
+ /** @var array The plugin settings array */
24
+ var $settings = array();
25
+
26
 
27
  /*
28
  * Constructor
37
  * @return N/A
38
  */
39
 
40
+ function __construct() {
41
+
42
  // helpers
43
  add_filter('acf/helpers/get_path', array($this, 'helpers_get_path'), 1, 1);
44
  add_filter('acf/helpers/get_dir', array($this, 'helpers_get_dir'), 1, 1);
46
 
47
  // vars
48
  $this->settings = array(
49
+
50
+ // basic
51
+ 'name' => __('Advanced Custom Fields', 'acf'),
52
+ 'version' => $this->version,
53
+
54
+ // urls
55
+ 'file' => __FILE__,
56
  'path' => apply_filters('acf/helpers/get_path', __FILE__),
57
  'dir' => apply_filters('acf/helpers/get_dir', __FILE__),
58
+ 'basename' => plugin_basename( __FILE__ ),
59
+
60
+ // options
61
  'include_3rd_party' => false
62
  );
63
 
430
 
431
  include_once('core/fields/message.php');
432
  include_once('core/fields/tab.php');
433
+
434
  }
435
 
436
 
481
 
482
  function include_after_theme() {
483
 
484
+ // early access
485
+ if( defined('ACF_EARLY_ACCESS') ) {
486
+ include_once('core/early-access.php');
487
+ }
488
+
489
+
490
+
491
  // bail early if user has defined LITE_MODE as true
492
  if( defined('ACF_LITE') && ACF_LITE )
493
  {
core/early-access.php ADDED
@@ -0,0 +1,351 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
4
+
5
+ if( !class_exists('acf_early_access') ):
6
+
7
+ class acf_early_access {
8
+
9
+ /** @var string The plugin basename */
10
+ var $basename = 'advanced-custom-fields/acf.php';
11
+
12
+
13
+ /** @var string The early access value */
14
+ var $access = '';
15
+
16
+
17
+ /** @var boolean If the transient has been checked */
18
+ var $checked = false;
19
+
20
+
21
+ /**
22
+ * __construct
23
+ *
24
+ * This function will setup the class functionality
25
+ *
26
+ * @type function
27
+ * @date 12/9/17
28
+ * @since 1.0.0
29
+ *
30
+ * @param n/a
31
+ * @return n/a
32
+ */
33
+
34
+ function __construct() {
35
+
36
+ // bail early if no access
37
+ if( !ACF_EARLY_ACCESS ) return;
38
+
39
+
40
+ // vars
41
+ $this->access = (string) ACF_EARLY_ACCESS;
42
+ //$this->basename = apply_filters('acf/get_info', 'basename');
43
+
44
+
45
+ // modify plugins transient
46
+ add_filter( 'pre_set_site_transient_update_plugins', array($this, 'modify_plugins_transient'), 10, 1 );
47
+ add_filter( 'site_transient_update_plugins', array($this, 'check_plugins_transient'), 10, 1 );
48
+
49
+
50
+ // admin
51
+ if( is_admin() ) {
52
+
53
+ // modify plugin update message
54
+ add_action('in_plugin_update_message-' . $this->basename, array($this, 'modify_plugin_update_message'), 10, 2 );
55
+
56
+ }
57
+
58
+ }
59
+
60
+
61
+ /**
62
+ * request
63
+ *
64
+ * This function will make a request to an external server
65
+ *
66
+ * @type function
67
+ * @date 8/4/17
68
+ * @since 1.0.0
69
+ *
70
+ * @param $url (string)
71
+ * @param $body (array)
72
+ * @return (mixed)
73
+ */
74
+
75
+ function request( $url = '', $body = null ) {
76
+
77
+ // post
78
+ $raw_response = wp_remote_post($url, array(
79
+ 'timeout' => 10,
80
+ 'body' => $body
81
+ ));
82
+
83
+
84
+ // wp error
85
+ if( is_wp_error($raw_response) ) {
86
+
87
+ return $raw_response;
88
+
89
+ // http error
90
+ } elseif( wp_remote_retrieve_response_code($raw_response) != 200 ) {
91
+
92
+ return new WP_Error( 'server_error', wp_remote_retrieve_response_message($raw_response) );
93
+
94
+ }
95
+
96
+
97
+ // vars
98
+ $raw_body = wp_remote_retrieve_body($raw_response);
99
+
100
+
101
+ // attempt object
102
+ $obj = @unserialize( $raw_body );
103
+ if( $obj ) return $obj;
104
+
105
+
106
+ // attempt json
107
+ $json = json_decode( $raw_body, true );
108
+ if( $json ) return $json;
109
+
110
+
111
+ // return
112
+ return $json;
113
+
114
+ }
115
+
116
+
117
+ /**
118
+ * get_plugin_info
119
+ *
120
+ * This function will get plugin info and save as transient
121
+ *
122
+ * @type function
123
+ * @date 9/4/17
124
+ * @since 1.0.0
125
+ *
126
+ * @param n/a
127
+ * @return (array)
128
+ */
129
+
130
+ function get_plugin_info() {
131
+
132
+ // var
133
+ $transient_name = 'acf_early_access_info';
134
+
135
+
136
+ // delete transient (force-check is used to refresh)
137
+ if( !empty($_GET['force-check']) ) {
138
+
139
+ delete_transient($transient_name);
140
+
141
+ }
142
+
143
+
144
+ // try transient
145
+ $transient = get_transient($transient_name);
146
+ if( $transient !== false ) return $transient;
147
+
148
+
149
+ // connect
150
+ $response = $this->request('http://api.wordpress.org/plugins/info/1.0/advanced-custom-fields');
151
+
152
+
153
+ // ensure response is expected object
154
+ if( !is_wp_error($response) ) {
155
+
156
+ // store minimal data
157
+ $info = array(
158
+ 'version' => $response->version,
159
+ 'versions' => array_keys( $response->versions ),
160
+ 'tested' => $response->tested
161
+ );
162
+
163
+
164
+ // order versions (latest first)
165
+ $info['versions'] = array_reverse($info['versions']);
166
+
167
+
168
+ // update var
169
+ $response = $info;
170
+
171
+ }
172
+
173
+
174
+ // update transient
175
+ set_transient($transient_name, $response, HOUR_IN_SECONDS);
176
+
177
+
178
+ // return
179
+ return $response;
180
+
181
+ }
182
+
183
+
184
+ /**
185
+ * check_plugins_transient
186
+ *
187
+ * This function will check the 'update_plugins' transient and maybe modify it's value
188
+ *
189
+ * @date 19/9/17
190
+ * @since 5.6.3
191
+ *
192
+ * @param n/a
193
+ * @return n/a
194
+ */
195
+
196
+ function check_plugins_transient( $transient ) {
197
+
198
+ // bail ealry if has been checked
199
+ if( $this->checked ) return $transient;
200
+ $this->checked = true;
201
+
202
+
203
+ // vars
204
+ $basename = $this->basename;
205
+
206
+
207
+ // bail early if empty
208
+ if( !$transient || empty($transient->checked) ) return $transient;
209
+
210
+
211
+ // bail early if acf was not checked
212
+ // - rules out possible included file in theme / plugin
213
+ if( !isset($transient->checked[ $basename ]) ) return $transient;
214
+
215
+
216
+ // flush cache if no 'acf' update exists
217
+ // flush cache if 'acf' update does not contain early access info
218
+ // flush cache if 'acf' update contains different early access info
219
+ if( empty($transient->response[ $basename ]) ||
220
+ empty($transient->response[ $basename ]->early_access) ||
221
+ $transient->response[ $basename ]->early_access !== $this->access ) {
222
+ wp_clean_plugins_cache();
223
+ }
224
+
225
+
226
+ // return
227
+ return $transient;
228
+
229
+ }
230
+
231
+
232
+
233
+ /**
234
+ * modify_plugins_transient
235
+ *
236
+ * This function will modify the 'update_plugins' transient with custom data
237
+ *
238
+ * @type function
239
+ * @date 11/9/17
240
+ * @since 1.0.0
241
+ *
242
+ * @param $transient (object)
243
+ * @return $transient
244
+ */
245
+
246
+ function modify_plugins_transient( $transient ) {
247
+
248
+ // vars
249
+ $basename = $this->basename;
250
+
251
+
252
+ // bail early if empty
253
+ if( !$transient || empty($transient->checked) ) return $transient;
254
+
255
+
256
+ // bail early if acf was not checked
257
+ // - rules out possible included file in theme / plugin
258
+ if( !isset($transient->checked[ $basename ]) ) return $transient;
259
+
260
+
261
+ // bail early if already modified
262
+ if( !empty($transient->response[ $basename ]->early_access) ) return $transient;
263
+
264
+
265
+ // vars
266
+ $info = $this->get_plugin_info();
267
+ $old_version = $transient->checked[ $basename ];
268
+ $new_version = '';
269
+
270
+
271
+ // attempt to find latest tag
272
+ foreach( $info['versions'] as $version ) {
273
+
274
+ // ignore trunk
275
+ if( $version == 'trunk' ) continue;
276
+
277
+
278
+ // restirct versions that don't start with '5'
279
+ if( strpos($version, $this->access) !== 0 ) continue;
280
+
281
+
282
+ // ignore if $version is older than $old_version
283
+ if( version_compare($version, $old_version, '<=') ) continue;
284
+
285
+
286
+ // ignore if $version is older than $new_version
287
+ if( version_compare($version, $new_version, '<=') ) continue;
288
+
289
+
290
+ // this tag is a newer version!
291
+ $new_version = $version;
292
+
293
+ }
294
+
295
+
296
+ // bail ealry if no $new_version
297
+ if( !$new_version ) return $transient;
298
+
299
+
300
+ // response
301
+ $response = new stdClass();
302
+ $response->id = 'w.org/plugins/advanced-custom-fields';
303
+ $response->slug = 'advanced-custom-fields';
304
+ $response->plugin = $basename;
305
+ $response->new_version = $new_version;
306
+ $response->url = 'https://wordpress.org/plugins/advanced-custom-fields/';
307
+ $response->package = 'https://downloads.wordpress.org/plugin/advanced-custom-fields.'.$new_version.'.zip';
308
+ $response->tested = $info['tested'];
309
+ $response->early_access = $this->access;
310
+
311
+
312
+ // append
313
+ $transient->response[ $basename ] = $response;
314
+
315
+
316
+ // return
317
+ return $transient;
318
+
319
+ }
320
+
321
+
322
+ /*
323
+ * modify_plugin_update_message
324
+ *
325
+ * Displays an update message for plugin list screens.
326
+ *
327
+ * @type function
328
+ * @date 14/06/2016
329
+ * @since 5.3.8
330
+ *
331
+ * @param $message (string)
332
+ * @param $plugin_data (array)
333
+ * @param $r (object)
334
+ * @return $message
335
+ */
336
+
337
+ function modify_plugin_update_message( $plugin_data, $response ) {
338
+
339
+ // display message
340
+ echo ' <em>' . __('(Early access enabled)', 'acf') . '</em>';
341
+
342
+ }
343
+
344
+ }
345
+
346
+ // instantiate
347
+ new acf_early_access();
348
+
349
+ endif; // class_exists check
350
+
351
+ ?>
js/input/_listener.js DELETED
File without changes
js/input/_listener.min.js DELETED
File without changes
js/input/acf.js DELETED
@@ -1,942 +0,0 @@
1
- /*
2
- * input.js
3
- *
4
- * All javascript needed for ACF to work
5
- *
6
- * @type awesome
7
- * @date 1/08/13
8
- *
9
- * @param N/A
10
- * @return N/A
11
- */
12
-
13
- var acf = {
14
-
15
- // vars
16
- ajaxurl : '',
17
- admin_url : '',
18
- wp_version : '',
19
- post_id : 0,
20
- nonce : '',
21
- l10n : null,
22
- o : null,
23
-
24
- // helper functions
25
- helpers : {
26
- get_atts : null,
27
- version_compare : null,
28
- uniqid : null,
29
- sortable : null,
30
- add_message : null,
31
- is_clone_field : null,
32
- url_to_object : null
33
- },
34
-
35
-
36
- // modules
37
- validation : null,
38
- conditional_logic : null,
39
- media : null,
40
-
41
-
42
- // fields
43
- fields : {
44
- date_picker : null,
45
- color_picker : null,
46
- Image : null,
47
- file : null,
48
- wysiwyg : null,
49
- gallery : null,
50
- relationship : null
51
- }
52
- };
53
-
54
- (function($){
55
-
56
-
57
- /*
58
- * acf.helpers.isset
59
- *
60
- * description
61
- *
62
- * @type function
63
- * @date 20/07/13
64
- *
65
- * @param {mixed} arguments
66
- * @return {boolean}
67
- */
68
-
69
- acf.helpers.isset = function(){
70
-
71
- var a = arguments,
72
- l = a.length,
73
- c = null,
74
- undef;
75
-
76
- if (l === 0) {
77
- throw new Error('Empty isset');
78
- }
79
-
80
- c = a[0];
81
-
82
- for (i = 1; i < l; i++) {
83
-
84
- if (a[i] === undef || c[ a[i] ] === undef) {
85
- return false;
86
- }
87
-
88
- c = c[ a[i] ];
89
-
90
- }
91
-
92
- return true;
93
-
94
- };
95
-
96
-
97
- /*
98
- * acf.helpers.get_atts
99
- *
100
- * description
101
- *
102
- * @type function
103
- * @date 1/06/13
104
- *
105
- * @param {el} $el
106
- * @return {object} atts
107
- */
108
-
109
- acf.helpers.get_atts = function( $el ){
110
-
111
- var atts = {};
112
-
113
- $.each( $el[0].attributes, function( index, attr ) {
114
-
115
- if( attr.name.substr(0, 5) == 'data-' )
116
- {
117
- atts[ attr.name.replace('data-', '') ] = attr.value;
118
- }
119
- });
120
-
121
- return atts;
122
-
123
- };
124
-
125
-
126
- /**
127
- * Simply compares two string version values.
128
- *
129
- * Example:
130
- * versionCompare('1.1', '1.2') => -1
131
- * versionCompare('1.1', '1.1') => 0
132
- * versionCompare('1.2', '1.1') => 1
133
- * versionCompare('2.23.3', '2.22.3') => 1
134
- *
135
- * Returns:
136
- * -1 = left is LOWER than right
137
- * 0 = they are equal
138
- * 1 = left is GREATER = right is LOWER
139
- * And FALSE if one of input versions are not valid
140
- *
141
- * @function
142
- * @param {String} left Version #1
143
- * @param {String} right Version #2
144
- * @return {Integer|Boolean}
145
- * @author Alexey Bass (albass)
146
- * @since 2011-07-14
147
- */
148
-
149
- acf.helpers.version_compare = function(left, right)
150
- {
151
- if (typeof left + typeof right != 'stringstring')
152
- return false;
153
-
154
- var a = left.split('.')
155
- , b = right.split('.')
156
- , i = 0, len = Math.max(a.length, b.length);
157
-
158
- for (; i < len; i++) {
159
- if ((a[i] && !b[i] && parseInt(a[i]) > 0) || (parseInt(a[i]) > parseInt(b[i]))) {
160
- return 1;
161
- } else if ((b[i] && !a[i] && parseInt(b[i]) > 0) || (parseInt(a[i]) < parseInt(b[i]))) {
162
- return -1;
163
- }
164
- }
165
-
166
- return 0;
167
- };
168
-
169
-
170
- /*
171
- * Helper: uniqid
172
- *
173
- * @description:
174
- * @since: 3.5.8
175
- * @created: 17/01/13
176
- */
177
-
178
- acf.helpers.uniqid = function()
179
- {
180
- var newDate = new Date;
181
- return newDate.getTime();
182
- };
183
-
184
-
185
- /*
186
- * Helper: url_to_object
187
- *
188
- * @description:
189
- * @since: 4.0.0
190
- * @created: 17/01/13
191
- */
192
-
193
- acf.helpers.url_to_object = function( url ){
194
-
195
- // vars
196
- var obj = {},
197
- pairs = url.split('&');
198
-
199
-
200
- for( i in pairs )
201
- {
202
- var split = pairs[i].split('=');
203
- obj[decodeURIComponent(split[0])] = decodeURIComponent(split[1]);
204
- }
205
-
206
- return obj;
207
-
208
- };
209
-
210
-
211
- /*
212
- * Sortable Helper
213
- *
214
- * @description: keeps widths of td's inside a tr
215
- * @since 3.5.1
216
- * @created: 10/11/12
217
- */
218
-
219
- acf.helpers.sortable = function(e, ui)
220
- {
221
- ui.children().each(function(){
222
- $(this).width($(this).width());
223
- });
224
- return ui;
225
- };
226
-
227
-
228
- /*
229
- * is_clone_field
230
- *
231
- * @description:
232
- * @since: 3.5.8
233
- * @created: 17/01/13
234
- */
235
-
236
- acf.helpers.is_clone_field = function( input )
237
- {
238
- if( input.attr('name') && input.attr('name').indexOf('[acfcloneindex]') != -1 )
239
- {
240
- return true;
241
- }
242
-
243
- return false;
244
- };
245
-
246
-
247
- /*
248
- * acf.helpers.add_message
249
- *
250
- * @description:
251
- * @since: 3.2.7
252
- * @created: 10/07/2012
253
- */
254
-
255
- acf.helpers.add_message = function( message, div ){
256
-
257
- var message = $('<div class="acf-message-wrapper"><div class="message updated"><p>' + message + '</p></div></div>');
258
-
259
- div.prepend( message );
260
-
261
- setTimeout(function(){
262
-
263
- message.animate({
264
- opacity : 0
265
- }, 250, function(){
266
- message.remove();
267
- });
268
-
269
- }, 1500);
270
-
271
- };
272
-
273
-
274
- /*
275
- * Exists
276
- *
277
- * @description: returns true / false
278
- * @created: 1/03/2011
279
- */
280
-
281
- $.fn.exists = function()
282
- {
283
- return $(this).length>0;
284
- };
285
-
286
-
287
- /*
288
- * 3.5 Media
289
- *
290
- * @description:
291
- * @since: 3.5.7
292
- * @created: 16/01/13
293
- */
294
-
295
- acf.media = {
296
-
297
- div : null,
298
- frame : null,
299
- render_timout : null,
300
-
301
- clear_frame : function(){
302
-
303
- // validate
304
- if( !this.frame )
305
- {
306
- return;
307
- }
308
-
309
-
310
- // detach
311
- this.frame.detach();
312
- this.frame.dispose();
313
-
314
-
315
- // reset var
316
- this.frame = null;
317
-
318
- },
319
- type : function(){
320
-
321
- // default
322
- var type = 'thickbox';
323
-
324
-
325
- // if wp exists
326
- if( typeof wp !== 'undefined' )
327
- {
328
- type = 'backbone';
329
- }
330
-
331
-
332
- // return
333
- return type;
334
-
335
- },
336
- init : function(){
337
-
338
- // validate
339
- if( this.type() !== 'backbone' )
340
- {
341
- return false;
342
- }
343
-
344
-
345
- // validate prototype
346
- if( ! acf.helpers.isset(wp, 'media', 'view', 'AttachmentCompat', 'prototype') )
347
- {
348
- return false;
349
- }
350
-
351
-
352
- // vars
353
- var _prototype = wp.media.view.AttachmentCompat.prototype;
354
-
355
-
356
- // orig
357
- _prototype.orig_render = _prototype.render;
358
- _prototype.orig_dispose = _prototype.dispose;
359
-
360
-
361
- // update class
362
- _prototype.className = 'compat-item acf_postbox no_box';
363
-
364
-
365
- // modify render
366
- _prototype.render = function() {
367
-
368
- // reference
369
- var _this = this;
370
-
371
-
372
- // validate
373
- if( _this.ignore_render )
374
- {
375
- return this;
376
- }
377
-
378
-
379
- // run the old render function
380
- this.orig_render();
381
-
382
-
383
- // add button
384
- setTimeout(function(){
385
-
386
- // vars
387
- var $media_model = _this.$el.closest('.media-modal');
388
-
389
-
390
- // is this an edit only modal?
391
- if( $media_model.hasClass('acf-media-modal') )
392
- {
393
- return;
394
- }
395
-
396
-
397
- // does button already exist?
398
- if( $media_model.find('.media-frame-router .acf-expand-details').exists() )
399
- {
400
- return;
401
- }
402
-
403
-
404
- // create button
405
- var button = $([
406
- '<a href="#" class="acf-expand-details">',
407
- '<span class="icon"></span>',
408
- '<span class="is-closed">' + acf.l10n.core.expand_details + '</span>',
409
- '<span class="is-open">' + acf.l10n.core.collapse_details + '</span>',
410
- '</a>'
411
- ].join(''));
412
-
413
-
414
- // add events
415
- button.on('click', function( e ){
416
-
417
- e.preventDefault();
418
-
419
- if( $media_model.hasClass('acf-expanded') )
420
- {
421
- $media_model.removeClass('acf-expanded');
422
- }
423
- else
424
- {
425
- $media_model.addClass('acf-expanded');
426
- }
427
-
428
- });
429
-
430
-
431
- // append
432
- $media_model.find('.media-frame-router').append( button );
433
-
434
-
435
- }, 0);
436
-
437
-
438
- // setup fields
439
- // The clearTimout is needed to prevent many setup functions from running at the same time
440
- clearTimeout( acf.media.render_timout );
441
- acf.media.render_timout = setTimeout(function(){
442
-
443
- $(document).trigger( 'acf/setup_fields', [ _this.$el ] );
444
-
445
- }, 50);
446
-
447
-
448
- // return based on the origional render function
449
- return this;
450
- };
451
-
452
-
453
- // modify dispose
454
- _prototype.dispose = function() {
455
-
456
- // remove
457
- $(document).trigger('acf/remove_fields', [ this.$el ]);
458
-
459
-
460
- // run the old render function
461
- this.orig_dispose();
462
-
463
- };
464
-
465
-
466
- // override save
467
- _prototype.save = function( event ) {
468
-
469
- var data = {},
470
- names = {};
471
-
472
- if ( event )
473
- event.preventDefault();
474
-
475
-
476
- _.each( this.$el.serializeArray(), function( pair ) {
477
-
478
- // initiate name
479
- if( pair.name.slice(-2) === '[]' )
480
- {
481
- // remove []
482
- pair.name = pair.name.replace('[]', '');
483
-
484
-
485
- // initiate counter
486
- if( typeof names[ pair.name ] === 'undefined'){
487
-
488
- names[ pair.name ] = -1;
489
- //console.log( names[ pair.name ] );
490
-
491
- }
492
-
493
-
494
- names[ pair.name ]++
495
-
496
- pair.name += '[' + names[ pair.name ] +']';
497
-
498
-
499
- }
500
-
501
- data[ pair.name ] = pair.value;
502
- });
503
-
504
- this.ignore_render = true;
505
- this.model.saveCompat( data );
506
-
507
- };
508
- }
509
- };
510
-
511
-
512
- /*
513
- * Conditional Logic Calculate
514
- *
515
- * @description:
516
- * @since 3.5.1
517
- * @created: 15/10/12
518
- */
519
-
520
- acf.conditional_logic = {
521
-
522
- items : [],
523
-
524
- init : function(){
525
-
526
- // reference
527
- var _this = this;
528
-
529
-
530
- // events
531
- $(document).on('change', '.field input, .field textarea, .field select', function(){
532
-
533
- // preview hack
534
- if( $('#acf-has-changed').exists() )
535
- {
536
- $('#acf-has-changed').val(1);
537
- }
538
-
539
- _this.change( $(this) );
540
-
541
- });
542
-
543
-
544
- $(document).on('acf/setup_fields', function(e, el){
545
-
546
- //console.log('acf/setup_fields calling acf.conditional_logic.refresh()');
547
- _this.refresh( $(el) );
548
-
549
- });
550
-
551
- //console.log('acf.conditional_logic.init() calling acf.conditional_logic.refresh()');
552
- _this.refresh();
553
-
554
- },
555
- change : function( $el ){
556
-
557
- //console.log('change %o', $el);
558
- // reference
559
- var _this = this;
560
-
561
-
562
- // vars
563
- var $field = $el.closest('.field'),
564
- key = $field.attr('data-field_key');
565
-
566
-
567
- // loop through items and find rules where this field key is a trigger
568
- $.each(this.items, function( k, item ){
569
-
570
- $.each(item.rules, function( k2, rule ){
571
-
572
- // compare rule against the changed $field
573
- if( rule.field == key )
574
- {
575
- _this.refresh_field( item );
576
- }
577
-
578
- });
579
-
580
- });
581
-
582
- },
583
-
584
- refresh_field : function( item ){
585
-
586
- //console.log( 'refresh_field: %o ', item );
587
- // reference
588
- var _this = this;
589
-
590
-
591
- // vars
592
- var $targets = $('.field_key-' + item.field);
593
-
594
-
595
- // may be multiple targets (sub fields)
596
- $targets.each(function(){
597
-
598
- //console.log('target %o', $(this));
599
-
600
- // vars
601
- var show = true;
602
-
603
-
604
- // if 'any' was selected, start of as false and any match will result in show = true
605
- if( item.allorany == 'any' )
606
- {
607
- show = false;
608
- }
609
-
610
-
611
- // vars
612
- var $target = $(this),
613
- hide_all = true;
614
-
615
-
616
- // loop through rules
617
- $.each(item.rules, function( k2, rule ){
618
-
619
- // vars
620
- var $toggle = $('.field_key-' + rule.field);
621
-
622
-
623
- // are any of $toggle a sub field?
624
- if( $toggle.hasClass('sub_field') )
625
- {
626
- // toggle may be a sibling sub field.
627
- // if so ,show an empty td but keep the column
628
- $toggle = $target.siblings('.field_key-' + rule.field);
629
- hide_all = false;
630
-
631
-
632
- // if no toggle was found, we need to look at parent sub fields.
633
- // if so, hide the entire column
634
- if( ! $toggle.exists() )
635
- {
636
- // loop through all the parents that could contain sub fields
637
- $target.parents('tr').each(function(){
638
-
639
- // attempt to update $toggle to this parent sub field
640
- $toggle = $(this).find('.field_key-' + rule.field)
641
-
642
- // if the parent sub field actuallly exists, great! Stop the loop
643
- if( $toggle.exists() )
644
- {
645
- return false;
646
- }
647
-
648
- });
649
-
650
- hide_all = true;
651
- }
652
-
653
- }
654
-
655
-
656
- // if this sub field is within a flexible content layout, hide the entire column because
657
- // there will never be another row added to this table
658
- var parent = $target.parent('tr').parent().parent('table').parent('.layout');
659
- if( parent.exists() )
660
- {
661
- hide_all = true;
662
-
663
- if( $target.is('th') && $toggle.is('th') )
664
- {
665
- $toggle = $target.closest('.layout').find('td.field_key-' + rule.field);
666
- }
667
-
668
- }
669
-
670
- // if this sub field is within a repeater field which has a max row of 1, hide the entire column because
671
- // there will never be another row added to this table
672
- var parent = $target.parent('tr').parent().parent('table').parent('.repeater');
673
- if( parent.exists() && parent.attr('data-max_rows') == '1' )
674
- {
675
- hide_all = true;
676
-
677
- if( $target.is('th') && $toggle.is('th') )
678
- {
679
- $toggle = $target.closest('table').find('td.field_key-' + rule.field);
680
- }
681
-
682
- }
683
-
684
-
685
- var calculate = _this.calculate( rule, $toggle, $target );
686
-
687
- if( item.allorany == 'all' )
688
- {
689
- if( calculate == false )
690
- {
691
- show = false;
692
-
693
- // end loop
694
- return false;
695
- }
696
- }
697
- else
698
- {
699
- if( calculate == true )
700
- {
701
- show = true;
702
-
703
- // end loop
704
- return false;
705
- }
706
- }
707
-
708
- });
709
- // $.each(item.rules, function( k2, rule ){
710
-
711
-
712
- // clear classes
713
- $target.removeClass('acf-conditional_logic-hide acf-conditional_logic-show acf-show-blank');
714
-
715
-
716
- // hide / show field
717
- if( show )
718
- {
719
- // remove "disabled"
720
- $target.find('input, textarea, select').removeAttr('disabled');
721
-
722
- $target.addClass('acf-conditional_logic-show');
723
-
724
- // hook
725
- $(document).trigger('acf/conditional_logic/show', [ $target, item ]);
726
-
727
- }
728
- else
729
- {
730
- // add "disabled"
731
- $target.find('input, textarea, select').attr('disabled', 'disabled');
732
-
733
- $target.addClass('acf-conditional_logic-hide');
734
-
735
- if( !hide_all )
736
- {
737
- $target.addClass('acf-show-blank');
738
- }
739
-
740
- // hook
741
- $(document).trigger('acf/conditional_logic/hide', [ $target, item ]);
742
- }
743
-
744
-
745
- });
746
-
747
- },
748
-
749
- refresh : function( $el ){
750
-
751
- // defaults
752
- $el = $el || $('body');
753
-
754
-
755
- // reference
756
- var _this = this;
757
-
758
-
759
- // loop through items and find rules where this field key is a trigger
760
- $.each(this.items, function( k, item ){
761
-
762
- $.each(item.rules, function( k2, rule ){
763
-
764
- // is this field within the $el
765
- // this will increase performance by ignoring conditional logic outside of this newly appended element ($el)
766
- if( ! $el.find('.field[data-field_key="' + item.field + '"]').exists() )
767
- {
768
- return;
769
- }
770
-
771
- _this.refresh_field( item );
772
-
773
- });
774
-
775
- });
776
-
777
- },
778
-
779
- calculate : function( rule, $toggle, $target ){
780
-
781
- // vars
782
- var r = false;
783
-
784
-
785
- // compare values
786
- if( $toggle.hasClass('field_type-true_false') || $toggle.hasClass('field_type-checkbox') || $toggle.hasClass('field_type-radio') )
787
- {
788
- var exists = $toggle.find('input[value="' + rule.value + '"]:checked').exists();
789
-
790
-
791
- if( rule.operator == "==" )
792
- {
793
- if( exists )
794
- {
795
- r = true;
796
- }
797
- }
798
- else
799
- {
800
- if( ! exists )
801
- {
802
- r = true;
803
- }
804
- }
805
-
806
- }
807
- else
808
- {
809
- // get val and make sure it is an array
810
- var val = $toggle.find('input, textarea, select').last().val();
811
-
812
- if( ! $.isArray(val) )
813
- {
814
- val = [ val ];
815
- }
816
-
817
-
818
- if( rule.operator == "==" )
819
- {
820
- if( $.inArray(rule.value, val) > -1 )
821
- {
822
- r = true;
823
- }
824
- }
825
- else
826
- {
827
- if( $.inArray(rule.value, val) < 0 )
828
- {
829
- r = true;
830
- }
831
- }
832
-
833
- }
834
-
835
-
836
- // return
837
- return r;
838
-
839
- }
840
-
841
- };
842
-
843
-
844
-
845
-
846
-
847
- /*
848
- * Document Ready
849
- *
850
- * @description:
851
- * @since: 3.5.8
852
- * @created: 17/01/13
853
- */
854
-
855
- $(document).ready(function(){
856
-
857
-
858
- // conditional logic
859
- acf.conditional_logic.init();
860
-
861
-
862
- // fix for older options page add-on
863
- $('.acf_postbox > .inside > .options').each(function(){
864
-
865
- $(this).closest('.acf_postbox').addClass( $(this).attr('data-layout') );
866
-
867
- });
868
-
869
-
870
- // Remove 'field_123' from native custom field metabox
871
- $('#metakeyselect option[value^="field_"]').remove();
872
-
873
-
874
- });
875
-
876
-
877
- /*
878
- * window load
879
- *
880
- * @description:
881
- * @since: 3.5.5
882
- * @created: 22/12/12
883
- */
884
-
885
- $(window).on('load', function(){
886
-
887
- // init
888
- acf.media.init();
889
-
890
-
891
- setTimeout(function(){
892
-
893
- // Hack for CPT without a content editor
894
- try
895
- {
896
- // post_id may be string (user_1) and therefore, the uploaded image cannot be attached to the post
897
- if( $.isNumeric(acf.o.post_id) )
898
- {
899
- wp.media.view.settings.post.id = acf.o.post_id;
900
- }
901
-
902
- }
903
- catch(e)
904
- {
905
- // one of the objects was 'undefined'...
906
- }
907
-
908
-
909
- // setup fields
910
- $(document).trigger('acf/setup_fields', [ $('#poststuff') ]);
911
-
912
- }, 10);
913
-
914
- });
915
-
916
-
917
- /*
918
- * Gallery field Add-on Fix
919
- *
920
- * Gallery field v1.0.0 required some data in the acf object.
921
- * Now not required, but older versions of gallery field need this.
922
- *
923
- * @type object
924
- * @date 1/08/13
925
- *
926
- * @param N/A
927
- * @return N/A
928
- */
929
-
930
- acf.fields.gallery = {
931
- add : function(){},
932
- edit : function(){},
933
- update_count : function(){},
934
- hide_selected_items : function(){},
935
- text : {
936
- title_add : "Select Images"
937
- }
938
- };
939
-
940
-
941
-
942
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
js/input/ajax.js DELETED
@@ -1,325 +0,0 @@
1
- (function($){
2
-
3
-
4
- /*
5
- * acf.screen
6
- *
7
- * Data used by AJAX to hide / show field groups
8
- *
9
- * @type object
10
- * @date 1/03/2011
11
- *
12
- * @param N/A
13
- * @return N/A
14
- */
15
-
16
- acf.screen = {
17
- action : 'acf/location/match_field_groups_ajax',
18
- post_id : 0,
19
- page_template : 0,
20
- page_parent : 0,
21
- page_type : 0,
22
- post_category : 0,
23
- post_format : 0,
24
- taxonomy : 0,
25
- lang : 0,
26
- nonce : 0
27
- };
28
-
29
-
30
- /*
31
- * Document Ready
32
- *
33
- * Updates acf.screen with more data
34
- *
35
- * @type function
36
- * @date 1/03/2011
37
- *
38
- * @param N/A
39
- * @return N/A
40
- */
41
-
42
- $(document).ready(function(){
43
-
44
-
45
- // update post_id
46
- acf.screen.post_id = acf.o.post_id;
47
- acf.screen.nonce = acf.o.nonce;
48
-
49
-
50
- // MPML
51
- if( $('#icl-als-first').length > 0 )
52
- {
53
- var href = $('#icl-als-first').children('a').attr('href'),
54
- regex = new RegExp( "lang=([^&#]*)" ),
55
- results = regex.exec( href );
56
-
57
- // lang
58
- acf.screen.lang = results[1];
59
-
60
- }
61
-
62
- });
63
-
64
-
65
- /*
66
- * acf/update_field_groups
67
- *
68
- * finds the new id's for metaboxes and show's hides metaboxes
69
- *
70
- * @type event
71
- * @date 1/03/2011
72
- *
73
- * @param N/A
74
- * @return N/A
75
- */
76
-
77
- $(document).on('acf/update_field_groups', function(){
78
-
79
- // Only for a post.
80
- // This is an attempt to stop the action running on the options page add-on.
81
- if( ! acf.screen.post_id || ! $.isNumeric(acf.screen.post_id) )
82
- {
83
- return false;
84
- }
85
-
86
-
87
- $.ajax({
88
- url: ajaxurl,
89
- data: acf.screen,
90
- type: 'post',
91
- dataType: 'json',
92
- success: function(result){
93
-
94
- // validate
95
- if( !result )
96
- {
97
- return false;
98
- }
99
-
100
-
101
- // hide all metaboxes
102
- $('.acf_postbox').addClass('acf-hidden');
103
- $('.acf_postbox-toggle').addClass('acf-hidden');
104
-
105
-
106
- // dont bother loading style or html for inputs
107
- if( result.length == 0 )
108
- {
109
- return false;
110
- }
111
-
112
-
113
- // show the new postboxes
114
- $.each(result, function(k, v) {
115
-
116
-
117
- // vars
118
- var $el = $('#acf_' + v),
119
- $toggle = $('#adv-settings .acf_postbox-toggle[for="acf_' + v + '-hide"]');
120
-
121
-
122
- // classes
123
- $el.removeClass('acf-hidden hide-if-js');
124
- $toggle.removeClass('acf-hidden');
125
- $toggle.find('input[type="checkbox"]').attr('checked', 'checked');
126
-
127
-
128
- // load fields if needed
129
- $el.find('.acf-replace-with-fields').each(function(){
130
-
131
- var $replace = $(this);
132
-
133
- $.ajax({
134
- url : ajaxurl,
135
- data : {
136
- action : 'acf/post/render_fields',
137
- acf_id : v,
138
- post_id : acf.o.post_id,
139
- nonce : acf.o.nonce
140
- },
141
- type : 'post',
142
- dataType : 'html',
143
- success : function( html ){
144
-
145
- $replace.replaceWith( html );
146
-
147
- $(document).trigger('acf/setup_fields', $el);
148
-
149
- }
150
- });
151
-
152
- });
153
- });
154
-
155
-
156
- // load style
157
- $.ajax({
158
- url : ajaxurl,
159
- data : {
160
- action : 'acf/post/get_style',
161
- acf_id : result[0],
162
- nonce : acf.o.nonce
163
- },
164
- type : 'post',
165
- dataType : 'html',
166
- success : function( result ){
167
-
168
- $('#acf_style').html( result );
169
-
170
- }
171
- });
172
-
173
-
174
-
175
- }
176
- });
177
- });
178
-
179
-
180
- /*
181
- * Events
182
- *
183
- * Updates acf.screen with more data and triggers the update event
184
- *
185
- * @type function
186
- * @date 1/03/2011
187
- *
188
- * @param N/A
189
- * @return N/A
190
- */
191
-
192
- $(document).on('change', '#page_template', function(){
193
-
194
- acf.screen.page_template = $(this).val();
195
-
196
- $(document).trigger('acf/update_field_groups');
197
-
198
- });
199
-
200
-
201
- $(document).on('change', '#parent_id', function(){
202
-
203
- var val = $(this).val();
204
-
205
-
206
- // set page_type / page_parent
207
- if( val != "" )
208
- {
209
- acf.screen.page_type = 'child';
210
- acf.screen.page_parent = val;
211
- }
212
- else
213
- {
214
- acf.screen.page_type = 'parent';
215
- acf.screen.page_parent = 0;
216
- }
217
-
218
-
219
- $(document).trigger('acf/update_field_groups');
220
-
221
- });
222
-
223
-
224
- $(document).on('change', '#post-formats-select input[type="radio"]', function(){
225
-
226
- var val = $(this).val();
227
-
228
- if( val == '0' )
229
- {
230
- val = 'standard';
231
- }
232
-
233
- acf.screen.post_format = val;
234
-
235
- $(document).trigger('acf/update_field_groups');
236
-
237
- });
238
-
239
-
240
- function _sync_taxonomy_terms() {
241
-
242
- // vars
243
- var values = [];
244
-
245
-
246
- $('.categorychecklist input:checked, .acf-taxonomy-field input:checked, .acf-taxonomy-field option:selected').each(function(){
247
-
248
- // validate
249
- if( $(this).is(':hidden') || $(this).is(':disabled') )
250
- {
251
- return;
252
- }
253
-
254
-
255
- // validate media popup
256
- if( $(this).closest('.media-frame').exists() )
257
- {
258
- return;
259
- }
260
-
261
-
262
- // validate acf
263
- if( $(this).closest('.acf-taxonomy-field').exists() )
264
- {
265
- if( $(this).closest('.acf-taxonomy-field').attr('data-load_save') == '0' )
266
- {
267
- return;
268
- }
269
- }
270
-
271
-
272
- // append
273
- if( values.indexOf( $(this).val() ) === -1 )
274
- {
275
- values.push( $(this).val() );
276
- }
277
-
278
- });
279
-
280
-
281
- // update screen
282
- acf.screen.post_category = values;
283
- acf.screen.taxonomy = values;
284
-
285
-
286
- // trigger change
287
- $(document).trigger('acf/update_field_groups');
288
-
289
- }
290
-
291
-
292
- $(document).on('change', '.categorychecklist input, .acf-taxonomy-field input, .acf-taxonomy-field select', function(){
293
-
294
- // a taxonomy field may trigger this change event, however, the value selected is not
295
- // actually a term relatinoship, it is meta data
296
- if( $(this).closest('.acf-taxonomy-field').exists() )
297
- {
298
- if( $(this).closest('.acf-taxonomy-field').attr('data-save') == '0' )
299
- {
300
- return;
301
- }
302
- }
303
-
304
-
305
- // this may be triggered from editing an imgae in a popup. Popup does not support correct metaboxes so ignore this
306
- if( $(this).closest('.media-frame').exists() )
307
- {
308
- return;
309
- }
310
-
311
-
312
- // set timeout to fix issue with chrome which does not register the change has yet happened
313
- setTimeout(function(){
314
-
315
- _sync_taxonomy_terms();
316
-
317
- }, 1);
318
-
319
-
320
- });
321
-
322
-
323
-
324
-
325
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
js/input/color-picker.js DELETED
@@ -1,79 +0,0 @@
1
- (function($){
2
-
3
- /*
4
- * Color Picker
5
- *
6
- * jQuery functionality for this field type
7
- *
8
- * @type object
9
- * @date 20/07/13
10
- *
11
- * @param N/A
12
- * @return N/A
13
- */
14
-
15
- var _cp = acf.fields.color_picker = {
16
-
17
- $el : null,
18
- $input : null,
19
-
20
- set : function( o ){
21
-
22
- // merge in new option
23
- $.extend( this, o );
24
-
25
-
26
- // find input
27
- this.$input = this.$el.find('input[type="text"]');
28
-
29
-
30
- // return this for chaining
31
- return this;
32
-
33
- },
34
- init : function(){
35
-
36
- // vars (reference)
37
- var $input = this.$input;
38
-
39
-
40
- // is clone field?
41
- if( acf.helpers.is_clone_field($input) )
42
- {
43
- return;
44
- }
45
-
46
-
47
- this.$input.wpColorPicker();
48
-
49
-
50
-
51
- }
52
- };
53
-
54
-
55
- /*
56
- * acf/setup_fields
57
- *
58
- * run init function on all elements for this field
59
- *
60
- * @type event
61
- * @date 20/07/13
62
- *
63
- * @param {object} e event object
64
- * @param {object} el DOM object which may contain new ACF elements
65
- * @return N/A
66
- */
67
-
68
- $(document).on('acf/setup_fields', function(e, el){
69
-
70
- $(el).find('.acf-color_picker').each(function(){
71
-
72
- _cp.set({ $el : $(this) }).init();
73
-
74
- });
75
-
76
- });
77
-
78
-
79
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
js/input/date-picker.js DELETED
@@ -1,134 +0,0 @@
1
- (function($){
2
-
3
- /*
4
- * Date Picker
5
- *
6
- * static model for this field
7
- *
8
- * @type event
9
- * @date 1/06/13
10
- *
11
- */
12
-
13
- acf.fields.date_picker = {
14
-
15
- $el : null,
16
- $input : null,
17
- $hidden : null,
18
-
19
- o : {},
20
-
21
- set : function( o ){
22
-
23
- // merge in new option
24
- $.extend( this, o );
25
-
26
-
27
- // find input
28
- this.$input = this.$el.find('input[type="text"]');
29
- this.$hidden = this.$el.find('input[type="hidden"]');
30
-
31
-
32
- // get options
33
- this.o = acf.helpers.get_atts( this.$el );
34
-
35
-
36
- // return this for chaining
37
- return this;
38
-
39
- },
40
- init : function(){
41
-
42
- // is clone field?
43
- if( acf.helpers.is_clone_field(this.$hidden) )
44
- {
45
- return;
46
- }
47
-
48
-
49
- // get and set value from alt field
50
- this.$input.val( this.$hidden.val() );
51
-
52
-
53
- // create options
54
- var options = $.extend( {}, acf.l10n.date_picker, {
55
- dateFormat : this.o.save_format,
56
- altField : this.$hidden,
57
- altFormat : this.o.save_format,
58
- changeYear : true,
59
- yearRange : "-100:+100",
60
- changeMonth : true,
61
- showButtonPanel : true,
62
- firstDay : this.o.first_day
63
- });
64
-
65
-
66
- // add date picker
67
- this.$input.addClass('active').datepicker( options );
68
-
69
-
70
- // now change the format back to how it should be.
71
- this.$input.datepicker( "option", "dateFormat", this.o.display_format );
72
-
73
-
74
- // wrap the datepicker (only if it hasn't already been wrapped)
75
- if( $('body > #ui-datepicker-div').length > 0 )
76
- {
77
- $('#ui-datepicker-div').wrap('<div class="ui-acf" />');
78
- }
79
-
80
- },
81
- blur : function(){
82
-
83
- if( !this.$input.val() )
84
- {
85
- this.$hidden.val('');
86
- }
87
-
88
- }
89
-
90
- };
91
-
92
-
93
- /*
94
- * acf/setup_fields
95
- *
96
- * run init function on all elements for this field
97
- *
98
- * @type event
99
- * @date 20/07/13
100
- *
101
- * @param {object} e event object
102
- * @param {object} el DOM object which may contain new ACF elements
103
- * @return N/A
104
- */
105
-
106
- $(document).on('acf/setup_fields', function(e, el){
107
-
108
- $(el).find('.acf-date_picker').each(function(){
109
-
110
- acf.fields.date_picker.set({ $el : $(this) }).init();
111
-
112
- });
113
-
114
- });
115
-
116
-
117
- /*
118
- * Events
119
- *
120
- * jQuery events for this field
121
- *
122
- * @type event
123
- * @date 1/06/13
124
- *
125
- */
126
-
127
- $(document).on('blur', '.acf-date_picker input[type="text"]', function( e ){
128
-
129
- acf.fields.date_picker.set({ $el : $(this).parent() }).blur();
130
-
131
- });
132
-
133
-
134
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
js/input/file.js DELETED
@@ -1,410 +0,0 @@
1
- (function($){
2
-
3
- /*
4
- * File
5
- *
6
- * static model for this field
7
- *
8
- * @type event
9
- * @date 1/06/13
10
- *
11
- */
12
-
13
-
14
- // reference
15
- var _media = acf.media;
16
-
17
-
18
- acf.fields.file = {
19
-
20
- $el : null,
21
- $input : null,
22
-
23
- o : {},
24
-
25
- set : function( o ){
26
-
27
- // merge in new option
28
- $.extend( this, o );
29
-
30
-
31
- // find input
32
- this.$input = this.$el.find('input[type="hidden"]');
33
-
34
-
35
- // get options
36
- this.o = acf.helpers.get_atts( this.$el );
37
-
38
-
39
- // multiple?
40
- this.o.multiple = this.$el.closest('.repeater').exists() ? true : false;
41
-
42
-
43
- // wp library query
44
- this.o.query = {};
45
-
46
-
47
- // library
48
- if( this.o.library == 'uploadedTo' )
49
- {
50
- this.o.query.uploadedTo = acf.o.post_id;
51
- }
52
-
53
-
54
- // return this for chaining
55
- return this;
56
-
57
- },
58
- init : function(){
59
-
60
- // is clone field?
61
- if( acf.helpers.is_clone_field(this.$input) )
62
- {
63
- return;
64
- }
65
-
66
- },
67
- add : function( file ){
68
-
69
- // this function must reference a global div variable due to the pre WP 3.5 uploader
70
- // vars
71
- var div = _media.div;
72
-
73
-
74
- // set atts
75
- div.find('.acf-file-icon').attr( 'src', file.icon );
76
- div.find('.acf-file-title').text( file.title );
77
- div.find('.acf-file-name').text( file.name ).attr( 'href', file.url );
78
- div.find('.acf-file-size').text( file.size );
79
- div.find('.acf-file-value').val( file.id ).trigger('change');
80
-
81
-
82
- // set div class
83
- div.addClass('active');
84
-
85
-
86
- // validation
87
- div.closest('.field').removeClass('error');
88
-
89
- },
90
-
91
- new_frame: function( attributes ){
92
-
93
- // set global var
94
- _media.div = this.$el;
95
-
96
-
97
- // clear the frame
98
- _media.clear_frame();
99
-
100
-
101
- // vars
102
- attributes.states = [];
103
-
104
- // append states
105
- attributes.states.push(
106
- new wp.media.controller.Library({
107
- library : wp.media.query( this.o.query ),
108
- multiple : attributes.multiple,
109
- title : attributes.title,
110
- priority : 20,
111
- filterable : 'all'
112
- })
113
- );
114
-
115
-
116
- // edit image functionality (added in WP 3.9)
117
- if( acf.helpers.isset(wp, 'media', 'controller', 'EditImage') ) {
118
-
119
- attributes.states.push( new wp.media.controller.EditImage() );
120
-
121
- }
122
-
123
-
124
- // Create the media frame
125
- _media.frame = wp.media( attributes );
126
-
127
-
128
- // edit image view
129
- // source: media-views.js:2410 editImageContent()
130
- _media.frame.on('content:render:edit-image', function(){
131
-
132
- var image = this.state().get('image'),
133
- view = new wp.media.view.EditImage( { model: image, controller: this } ).render();
134
-
135
- this.content.set( view );
136
-
137
- // after creating the wrapper view, load the actual editor via an ajax call
138
- view.loadEditor();
139
-
140
- }, _media.frame);
141
-
142
-
143
- // update toolbar button
144
- _media.frame.on( 'toolbar:create:select', function( toolbar ) {
145
-
146
- toolbar.view = new wp.media.view.Toolbar.Select({
147
- text: attributes.button.text,
148
- controller: this
149
- });
150
-
151
- }, _media.frame );
152
-
153
-
154
- // return
155
- return _media.frame;
156
-
157
- },
158
-
159
- edit : function(){
160
-
161
- // vars
162
- var id = this.$input.val();
163
-
164
-
165
- // create frame
166
- this.new_frame({
167
- title : acf.l10n.file.edit,
168
- multiple : false,
169
- button : { text : acf.l10n.file.update }
170
- });
171
-
172
-
173
- // open
174
- _media.frame.on('open',function() {
175
-
176
- // set to browse
177
- if( _media.frame.content._mode != 'browse' )
178
- {
179
- _media.frame.content.mode('browse');
180
- }
181
-
182
-
183
- // add class
184
- _media.frame.$el.closest('.media-modal').addClass('acf-media-modal acf-expanded');
185
-
186
-
187
- // set selection
188
- var selection = _media.frame.state().get('selection'),
189
- attachment = wp.media.attachment( id );
190
-
191
-
192
- // to fetch or not to fetch
193
- if( $.isEmptyObject(attachment.changed) )
194
- {
195
- attachment.fetch();
196
- }
197
-
198
-
199
- selection.add( attachment );
200
-
201
- });
202
-
203
-
204
- // close
205
- _media.frame.on('close',function(){
206
-
207
- // remove class
208
- _media.frame.$el.closest('.media-modal').removeClass('acf-media-modal');
209
-
210
- });
211
-
212
-
213
- // Finally, open the modal
214
- acf.media.frame.open();
215
-
216
- },
217
- remove : function()
218
- {
219
-
220
- // set atts
221
- this.$el.find('.acf-file-icon').attr( 'src', '' );
222
- this.$el.find('.acf-file-title').text( '' );
223
- this.$el.find('.acf-file-name').text( '' ).attr( 'href', '' );
224
- this.$el.find('.acf-file-size').text( '' );
225
- this.$el.find('.acf-file-value').val( '' ).trigger('change');
226
-
227
-
228
- // remove class
229
- this.$el.removeClass('active');
230
-
231
- },
232
- popup : function()
233
- {
234
- // reference
235
- var t = this;
236
-
237
-
238
- // create frame
239
- this.new_frame({
240
- title : acf.l10n.file.select,
241
- multiple : t.o.multiple,
242
- button : { text : acf.l10n.file.select }
243
- });
244
-
245
-
246
- // customize model / view
247
- acf.media.frame.on('content:activate', function(){
248
-
249
- // vars
250
- var toolbar = null,
251
- filters = null;
252
-
253
-
254
- // populate above vars making sure to allow for failure
255
- try
256
- {
257
- toolbar = acf.media.frame.content.get().toolbar;
258
- filters = toolbar.get('filters');
259
- }
260
- catch(e)
261
- {
262
- // one of the objects was 'undefined'... perhaps the frame open is Upload Files
263
- //console.log( e );
264
- }
265
-
266
-
267
- // validate
268
- if( !filters )
269
- {
270
- return false;
271
- }
272
-
273
-
274
- // no need for 'uploaded' filter
275
- if( t.o.library == 'uploadedTo' )
276
- {
277
- filters.$el.find('option[value="uploaded"]').remove();
278
- filters.$el.after('<span>' + acf.l10n.file.uploadedTo + '</span>')
279
-
280
- $.each( filters.filters, function( k, v ){
281
-
282
- v.props.uploadedTo = acf.o.post_id;
283
-
284
- });
285
- }
286
-
287
- });
288
-
289
-
290
- // When an image is selected, run a callback.
291
- acf.media.frame.on( 'select', function() {
292
-
293
- // get selected images
294
- selection = _media.frame.state().get('selection');
295
-
296
- if( selection )
297
- {
298
- var i = 0;
299
-
300
- selection.each(function(attachment){
301
-
302
- // counter
303
- i++;
304
-
305
-
306
- // select / add another file field?
307
- if( i > 1 )
308
- {
309
- // vars
310
- var $td = _media.div.closest('td'),
311
- $tr = $td.closest('.row'),
312
- $repeater = $tr.closest('.repeater'),
313
- key = $td.attr('data-field_key'),
314
- selector = 'td .acf-file-uploader:first';
315
-
316
-
317
- // key only exists for repeater v1.0.1 +
318
- if( key )
319
- {
320
- selector = 'td[data-field_key="' + key + '"] .acf-file-uploader';
321
- }
322
-
323
-
324
- // add row?
325
- if( ! $tr.next('.row').exists() )
326
- {
327
- $repeater.find('.add-row-end').trigger('click');
328
-
329
- }
330
-
331
-
332
- // update current div
333
- _media.div = $tr.next('.row').find( selector );
334
-
335
- }
336
-
337
-
338
- // vars
339
- var file = {
340
- id : attachment.id,
341
- title : attachment.attributes.title,
342
- name : attachment.attributes.filename,
343
- url : attachment.attributes.url,
344
- icon : attachment.attributes.icon,
345
- size : attachment.attributes.filesize
346
- };
347
-
348
-
349
- // add file to field
350
- acf.fields.file.add( file );
351
-
352
-
353
- });
354
- // selection.each(function(attachment){
355
- }
356
- // if( selection )
357
-
358
- });
359
- // acf.media.frame.on( 'select', function() {
360
-
361
-
362
- // Finally, open the modal
363
- acf.media.frame.open();
364
-
365
-
366
- return false;
367
- }
368
-
369
- };
370
-
371
-
372
- /*
373
- * Events
374
- *
375
- * jQuery events for this field
376
- *
377
- * @type function
378
- * @date 1/03/2011
379
- *
380
- * @param N/A
381
- * @return N/A
382
- */
383
-
384
- $(document).on('click', '.acf-file-uploader .acf-button-edit', function( e ){
385
-
386
- e.preventDefault();
387
-
388
- acf.fields.file.set({ $el : $(this).closest('.acf-file-uploader') }).edit();
389
-
390
- });
391
-
392
- $(document).on('click', '.acf-file-uploader .acf-button-delete', function( e ){
393
-
394
- e.preventDefault();
395
-
396
- acf.fields.file.set({ $el : $(this).closest('.acf-file-uploader') }).remove();
397
-
398
- });
399
-
400
-
401
- $(document).on('click', '.acf-file-uploader .add-file', function( e ){
402
-
403
- e.preventDefault();
404
-
405
- acf.fields.file.set({ $el : $(this).closest('.acf-file-uploader') }).popup();
406
-
407
- });
408
-
409
-
410
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
js/input/google-map.js DELETED
@@ -1,566 +0,0 @@
1
- (function($){
2
-
3
- /*
4
- * Location
5
- *
6
- * static model for this field
7
- *
8
- * @type event
9
- * @date 1/06/13
10
- *
11
- */
12
-
13
- acf.fields.google_map = {
14
-
15
- $el : null,
16
- $input : null,
17
-
18
- o : {},
19
- api: {
20
- sensor: false,
21
- libraries: 'places'
22
- },
23
-
24
- ready : false,
25
- geocoder : false,
26
- map : false,
27
- maps : {},
28
-
29
- set : function( o ){
30
-
31
- // merge in new option
32
- $.extend( this, o );
33
-
34
-
35
- // find input
36
- this.$input = this.$el.find('.input-address');
37
-
38
-
39
- // get options
40
- this.o = acf.helpers.get_atts( this.$el );
41
-
42
-
43
- // get map
44
- if( this.maps[ this.o.id ] )
45
- {
46
- this.map = this.maps[ this.o.id ];
47
- }
48
-
49
-
50
- // return this for chaining
51
- return this;
52
-
53
- },
54
- init : function(){
55
-
56
- // geocode
57
- if( !this.geocoder )
58
- {
59
- this.geocoder = new google.maps.Geocoder();
60
- }
61
-
62
-
63
- // google maps is loaded and ready
64
- this.ready = true;
65
-
66
-
67
- // is clone field?
68
- if( acf.helpers.is_clone_field(this.$input) )
69
- {
70
- return;
71
- }
72
-
73
- this.render();
74
-
75
- },
76
- render : function(){
77
-
78
- // reference
79
- var _this = this,
80
- _$el = this.$el;
81
-
82
-
83
- // vars
84
- var args = {
85
- zoom : parseInt(this.o.zoom),
86
- center : new google.maps.LatLng(this.o.lat, this.o.lng),
87
- mapTypeId : google.maps.MapTypeId.ROADMAP
88
- };
89
-
90
- // create map
91
- this.map = new google.maps.Map( this.$el.find('.canvas')[0], args);
92
-
93
-
94
- // add search
95
- var autocomplete = new google.maps.places.Autocomplete( this.$el.find('.search')[0] );
96
- autocomplete.map = this.map;
97
- autocomplete.bindTo('bounds', this.map);
98
-
99
-
100
- // add dummy marker
101
- this.map.marker = new google.maps.Marker({
102
- draggable : true,
103
- raiseOnDrag : true,
104
- map : this.map,
105
- });
106
-
107
-
108
- // add references
109
- this.map.$el = this.$el;
110
-
111
-
112
- // value exists?
113
- var lat = this.$el.find('.input-lat').val(),
114
- lng = this.$el.find('.input-lng').val();
115
-
116
- if( lat && lng )
117
- {
118
- this.update( lat, lng ).center();
119
- }
120
-
121
-
122
- // events
123
- google.maps.event.addListener(autocomplete, 'place_changed', function( e ) {
124
-
125
- // reference
126
- var $el = this.map.$el;
127
-
128
-
129
- // manually update address
130
- var address = $el.find('.search').val();
131
- $el.find('.input-address').val( address );
132
- $el.find('.title h4').text( address );
133
-
134
-
135
- // vars
136
- var place = this.getPlace();
137
-
138
-
139
- // validate
140
- if( place.geometry )
141
- {
142
- var lat = place.geometry.location.lat(),
143
- lng = place.geometry.location.lng();
144
-
145
-
146
- _this.set({ $el : $el }).update( lat, lng ).center();
147
- }
148
- else
149
- {
150
- // client hit enter, manulaly get the place
151
- _this.geocoder.geocode({ 'address' : address }, function( results, status ){
152
-
153
- // validate
154
- if( status != google.maps.GeocoderStatus.OK )
155
- {
156
- console.log('Geocoder failed due to: ' + status);
157
- return;
158
- }
159
-
160
- if( !results[0] )
161
- {
162
- console.log('No results found');
163
- return;
164
- }
165
-
166
-
167
- // get place
168
- place = results[0];
169
-
170
- var lat = place.geometry.location.lat(),
171
- lng = place.geometry.location.lng();
172
-
173
-
174
- _this.set({ $el : $el }).update( lat, lng ).center();
175
-
176
- });
177
- }
178
-
179
- });
180
-
181
-
182
- google.maps.event.addListener( this.map.marker, 'dragend', function(){
183
-
184
- // reference
185
- var $el = this.map.$el;
186
-
187
-
188
- // vars
189
- var position = this.map.marker.getPosition(),
190
- lat = position.lat(),
191
- lng = position.lng();
192
-
193
- _this.set({ $el : $el }).update( lat, lng ).sync();
194
-
195
- });
196
-
197
-
198
- google.maps.event.addListener( this.map, 'click', function( e ) {
199
-
200
- // reference
201
- var $el = this.$el;
202
-
203
-
204
- // vars
205
- var lat = e.latLng.lat(),
206
- lng = e.latLng.lng();
207
-
208
-
209
- _this.set({ $el : $el }).update( lat, lng ).sync();
210
-
211
- });
212
-
213
-
214
-
215
- // add to maps
216
- this.maps[ this.o.id ] = this.map;
217
-
218
-
219
- },
220
-
221
- update : function( lat, lng ){
222
-
223
- // vars
224
- var latlng = new google.maps.LatLng( lat, lng );
225
-
226
-
227
- // update inputs
228
- this.$el.find('.input-lat').val( lat );
229
- this.$el.find('.input-lng').val( lng ).trigger('change');
230
-
231
-
232
- // update marker
233
- this.map.marker.setPosition( latlng );
234
-
235
-
236
- // show marker
237
- this.map.marker.setVisible( true );
238
-
239
-
240
- // update class
241
- this.$el.addClass('active');
242
-
243
-
244
- // validation
245
- this.$el.closest('.field').removeClass('error');
246
-
247
-
248
- // return for chaining
249
- return this;
250
- },
251
-
252
- center : function(){
253
-
254
- // vars
255
- var position = this.map.marker.getPosition(),
256
- lat = this.o.lat,
257
- lng = this.o.lng;
258
-
259
-
260
- // if marker exists, center on the marker
261
- if( position )
262
- {
263
- lat = position.lat();
264
- lng = position.lng();
265
- }
266
-
267
-
268
- var latlng = new google.maps.LatLng( lat, lng );
269
-
270
-
271
- // set center of map
272
- this.map.setCenter( latlng );
273
- },
274
-
275
- sync : function(){
276
-
277
- // reference
278
- var $el = this.$el;
279
-
280
-
281
- // vars
282
- var position = this.map.marker.getPosition(),
283
- latlng = new google.maps.LatLng( position.lat(), position.lng() );
284
-
285
-
286
- this.geocoder.geocode({ 'latLng' : latlng }, function( results, status ){
287
-
288
- // validate
289
- if( status != google.maps.GeocoderStatus.OK )
290
- {
291
- console.log('Geocoder failed due to: ' + status);
292
- return;
293
- }
294
-
295
- if( !results[0] )
296
- {
297
- console.log('No results found');
298
- return;
299
- }
300
-
301
-
302
- // get location
303
- var location = results[0];
304
-
305
-
306
- // update h4
307
- $el.find('.title h4').text( location.formatted_address );
308
-
309
-
310
- // update input
311
- $el.find('.input-address').val( location.formatted_address ).trigger('change');
312
-
313
- });
314
-
315
-
316
- // return for chaining
317
- return this;
318
- },
319
-
320
- locate : function(){
321
-
322
- // reference
323
- var _this = this,
324
- _$el = this.$el;
325
-
326
-
327
- // Try HTML5 geolocation
328
- if( ! navigator.geolocation )
329
- {
330
- alert( acf.l10n.google_map.browser_support );
331
- return this;
332
- }
333
-
334
-
335
- // show loading text
336
- _$el.find('.title h4').text(acf.l10n.google_map.locating + '...');
337
- _$el.addClass('active');
338
-
339
- navigator.geolocation.getCurrentPosition(function(position){
340
-
341
- // vars
342
- var lat = position.coords.latitude,
343
- lng = position.coords.longitude;
344
-
345
- _this.set({ $el : _$el }).update( lat, lng ).sync().center();
346
-
347
- });
348
-
349
-
350
- },
351
-
352
- clear : function(){
353
-
354
- // update class
355
- this.$el.removeClass('active');
356
-
357
-
358
- // clear search
359
- this.$el.find('.search').val('');
360
-
361
-
362
- // clear inputs
363
- this.$el.find('.input-address').val('');
364
- this.$el.find('.input-lat').val('');
365
- this.$el.find('.input-lng').val('');
366
-
367
-
368
- // hide marker
369
- this.map.marker.setVisible( false );
370
- },
371
-
372
- edit : function(){
373
-
374
- // update class
375
- this.$el.removeClass('active');
376
-
377
-
378
- // clear search
379
- var val = this.$el.find('.title h4').text();
380
-
381
-
382
- this.$el.find('.search').val( val ).focus();
383
-
384
- },
385
-
386
- refresh : function(){
387
-
388
- // trigger resize on div
389
- google.maps.event.trigger(this.map, 'resize');
390
-
391
- // center map
392
- this.center();
393
-
394
- }
395
-
396
- };
397
-
398
-
399
- /*
400
- * acf/setup_fields
401
- *
402
- * run init function on all elements for this field
403
- *
404
- * @type event
405
- * @date 20/07/13
406
- *
407
- * @param {object} e event object
408
- * @param {object} el DOM object which may contain new ACF elements
409
- * @return N/A
410
- */
411
-
412
- $(document).on('acf/setup_fields', function(e, el){
413
-
414
- // reference
415
- var self = acf.fields.google_map;
416
-
417
-
418
- // vars
419
- var $fields = $(el).find('.acf-google-map');
420
-
421
-
422
- // validate
423
- if( ! $fields.exists() ) return false;
424
-
425
-
426
- // no google
427
- if( !acf.helpers.isset(window, 'google', 'load') ) {
428
-
429
- // load API
430
- $.getScript('https://www.google.com/jsapi', function(){
431
-
432
- // load maps
433
- google.load('maps', '3', { other_params: $.param(self.api), callback: function(){
434
-
435
- $fields.each(function(){
436
-
437
- acf.fields.google_map.set({ $el : $(this) }).init();
438
-
439
- });
440
-
441
- }});
442
-
443
- });
444
-
445
- return false;
446
-
447
- }
448
-
449
-
450
- // no maps or places
451
- if( !acf.helpers.isset(window, 'google', 'maps', 'places') ) {
452
-
453
- google.load('maps', '3', { other_params: $.param(self.api), callback: function(){
454
-
455
- $fields.each(function(){
456
-
457
- acf.fields.google_map.set({ $el : $(this) }).init();
458
-
459
- });
460
-
461
- }});
462
-
463
- return false;
464
-
465
- }
466
-
467
-
468
- // google exists
469
- $fields.each(function(){
470
-
471
- acf.fields.google_map.set({ $el : $(this) }).init();
472
-
473
- });
474
-
475
-
476
- // return
477
- return true;
478
-
479
- });
480
-
481
-
482
- /*
483
- * Events
484
- *
485
- * jQuery events for this field
486
- *
487
- * @type function
488
- * @date 1/03/2011
489
- *
490
- * @param N/A
491
- * @return N/A
492
- */
493
-
494
- $(document).on('click', '.acf-google-map .acf-sprite-remove', function( e ){
495
-
496
- e.preventDefault();
497
-
498
- acf.fields.google_map.set({ $el : $(this).closest('.acf-google-map') }).clear();
499
-
500
- $(this).blur();
501
-
502
- });
503
-
504
-
505
- $(document).on('click', '.acf-google-map .acf-sprite-locate', function( e ){
506
-
507
- e.preventDefault();
508
-
509
- acf.fields.google_map.set({ $el : $(this).closest('.acf-google-map') }).locate();
510
-
511
- $(this).blur();
512
-
513
- });
514
-
515
- $(document).on('click', '.acf-google-map .title h4', function( e ){
516
-
517
- e.preventDefault();
518
-
519
- acf.fields.google_map.set({ $el : $(this).closest('.acf-google-map') }).edit();
520
-
521
- });
522
-
523
- $(document).on('keydown', '.acf-google-map .search', function( e ){
524
-
525
- // prevent form from submitting
526
- if( e.which == 13 )
527
- {
528
- return false;
529
- }
530
-
531
- });
532
-
533
- $(document).on('blur', '.acf-google-map .search', function( e ){
534
-
535
- // vars
536
- var $el = $(this).closest('.acf-google-map');
537
-
538
-
539
- // has a value?
540
- if( $el.find('.input-lat').val() )
541
- {
542
- $el.addClass('active');
543
- }
544
-
545
- });
546
-
547
- $(document).on('acf/fields/tab/show acf/conditional_logic/show', function( e, $field ){
548
-
549
- // validate
550
- if( ! acf.fields.google_map.ready )
551
- {
552
- return;
553
- }
554
-
555
-
556
- // validate
557
- if( $field.attr('data-field_type') == 'google_map' )
558
- {
559
- acf.fields.google_map.set({ $el : $field.find('.acf-google-map') }).refresh();
560
- }
561
-
562
- });
563
-
564
-
565
-
566
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
js/input/image.js DELETED
@@ -1,447 +0,0 @@
1
- (function($){
2
-
3
- /*
4
- * Image
5
- *
6
- * static model for this field
7
- *
8
- * @type event
9
- * @date 1/06/13
10
- *
11
- */
12
-
13
-
14
- // reference
15
- var _media = acf.media;
16
-
17
-
18
- acf.fields.image = {
19
-
20
- $el : null,
21
- $input : null,
22
-
23
- o : {},
24
-
25
- set : function( o ){
26
-
27
- // merge in new option
28
- $.extend( this, o );
29
-
30
-
31
- // find input
32
- this.$input = this.$el.find('input[type="hidden"]');
33
-
34
-
35
- // get options
36
- this.o = acf.helpers.get_atts( this.$el );
37
-
38
-
39
- // multiple?
40
- this.o.multiple = this.$el.closest('.repeater').exists() ? true : false;
41
-
42
-
43
- // wp library query
44
- this.o.query = {
45
- type : 'image'
46
- };
47
-
48
-
49
- // library
50
- if( this.o.library == 'uploadedTo' )
51
- {
52
- this.o.query.uploadedTo = acf.o.post_id;
53
- }
54
-
55
-
56
- // return this for chaining
57
- return this;
58
-
59
- },
60
- init : function(){
61
-
62
- // is clone field?
63
- if( acf.helpers.is_clone_field(this.$input) )
64
- {
65
- return;
66
- }
67
-
68
- },
69
- add : function( image ){
70
-
71
- // this function must reference a global div variable due to the pre WP 3.5 uploader
72
- // vars
73
- var div = _media.div;
74
-
75
-
76
- // set atts
77
- div.find('.acf-image-image').attr( 'src', image.url );
78
- div.find('.acf-image-value').val( image.id ).trigger('change');
79
-
80
-
81
- // set div class
82
- div.addClass('active');
83
-
84
-
85
- // validation
86
- div.closest('.field').removeClass('error');
87
-
88
- },
89
-
90
- new_frame: function( attributes ){
91
-
92
- // set global var
93
- _media.div = this.$el;
94
-
95
-
96
- // clear the frame
97
- _media.clear_frame();
98
-
99
-
100
- // vars
101
- attributes.states = [];
102
-
103
-
104
- // append states
105
- attributes.states.push(
106
- new wp.media.controller.Library({
107
- library : wp.media.query( this.o.query ),
108
- multiple : attributes.multiple,
109
- title : attributes.title,
110
- priority : 20,
111
- filterable : 'all'
112
- })
113
- );
114
-
115
-
116
- // edit image functionality (added in WP 3.9)
117
- if( acf.helpers.isset(wp, 'media', 'controller', 'EditImage') ) {
118
-
119
- attributes.states.push( new wp.media.controller.EditImage() );
120
-
121
- }
122
-
123
-
124
- // Create the media frame
125
- _media.frame = wp.media( attributes );
126
-
127
-
128
- // edit image view
129
- // source: media-views.js:2410 editImageContent()
130
- _media.frame.on('content:render:edit-image', function(){
131
-
132
- var image = this.state().get('image'),
133
- view = new wp.media.view.EditImage( { model: image, controller: this } ).render();
134
-
135
- this.content.set( view );
136
-
137
- // after creating the wrapper view, load the actual editor via an ajax call
138
- view.loadEditor();
139
-
140
- }, _media.frame);
141
-
142
-
143
- // update toolbar button
144
- _media.frame.on( 'toolbar:create:select', function( toolbar ) {
145
-
146
- toolbar.view = new wp.media.view.Toolbar.Select({
147
- text: attributes.button.text,
148
- controller: this
149
- });
150
-
151
- }, _media.frame );
152
-
153
-
154
- // return
155
- return _media.frame;
156
-
157
- },
158
-
159
- edit : function(){
160
-
161
- // vars
162
- var id = this.$input.val();
163
-
164
-
165
- // create frame
166
- this.new_frame({
167
- title : acf.l10n.image.edit,
168
- multiple : false,
169
- button : { text : acf.l10n.image.update }
170
- });
171
-
172
-
173
- // open
174
- _media.frame.on('open',function() {
175
-
176
- // set to browse
177
- if( _media.frame.content._mode != 'browse' )
178
- {
179
- _media.frame.content.mode('browse');
180
- }
181
-
182
-
183
- // add class
184
- _media.frame.$el.closest('.media-modal').addClass('acf-media-modal acf-expanded');
185
-
186
-
187
- // set selection
188
- var selection = _media.frame.state().get('selection'),
189
- attachment = wp.media.attachment( id );
190
-
191
-
192
- // to fetch or not to fetch
193
- if( $.isEmptyObject(attachment.changed) )
194
- {
195
- attachment.fetch();
196
- }
197
-
198
-
199
- selection.add( attachment );
200
-
201
- });
202
-
203
-
204
- // close
205
- _media.frame.on('close',function(){
206
-
207
- // remove class
208
- _media.frame.$el.closest('.media-modal').removeClass('acf-media-modal');
209
-
210
- });
211
-
212
-
213
- // Finally, open the modal
214
- _media.frame.open();
215
-
216
- },
217
- remove : function()
218
- {
219
-
220
- // set atts
221
- this.$el.find('.acf-image-image').attr( 'src', '' );
222
- this.$el.find('.acf-image-value').val( '' ).trigger('change');
223
-
224
-
225
- // remove class
226
- this.$el.removeClass('active');
227
-
228
- },
229
- popup : function()
230
- {
231
- // reference
232
- var t = this;
233
-
234
-
235
- // create frame
236
- this.new_frame({
237
- title : acf.l10n.image.select,
238
- multiple : t.o.multiple,
239
- button : { text : acf.l10n.image.select }
240
- });
241
-
242
-
243
- // customize model / view
244
- _media.frame.on('content:activate', function(){
245
-
246
- // vars
247
- var toolbar = null,
248
- filters = null;
249
-
250
-
251
- // populate above vars making sure to allow for failure
252
- try
253
- {
254
- toolbar = acf.media.frame.content.get().toolbar;
255
- filters = toolbar.get('filters');
256
- }
257
- catch(e)
258
- {
259
- // one of the objects was 'undefined'... perhaps the frame open is Upload Files
260
- //console.log( e );
261
- }
262
-
263
-
264
- // validate
265
- if( !filters )
266
- {
267
- return false;
268
- }
269
-
270
-
271
- // filter only images
272
- $.each( filters.filters, function( k, v ){
273
-
274
- v.props.type = 'image';
275
-
276
- });
277
-
278
-
279
- // no need for 'uploaded' filter
280
- if( t.o.library == 'uploadedTo' )
281
- {
282
- filters.$el.find('option[value="uploaded"]').remove();
283
- filters.$el.after('<span>' + acf.l10n.image.uploadedTo + '</span>')
284
-
285
- $.each( filters.filters, function( k, v ){
286
-
287
- v.props.uploadedTo = acf.o.post_id;
288
-
289
- });
290
- }
291
-
292
-
293
- // remove non image options from filter list
294
- filters.$el.find('option').each(function(){
295
-
296
- // vars
297
- var v = $(this).attr('value');
298
-
299
-
300
- // don't remove the 'uploadedTo' if the library option is 'all'
301
- if( v == 'uploaded' && t.o.library == 'all' )
302
- {
303
- return;
304
- }
305
-
306
- if( v.indexOf('image') === -1 )
307
- {
308
- $(this).remove();
309
- }
310
-
311
- });
312
-
313
-
314
- // set default filter
315
- filters.$el.val('image').trigger('change');
316
-
317
- });
318
-
319
-
320
- // When an image is selected, run a callback.
321
- acf.media.frame.on( 'select', function() {
322
-
323
- // get selected images
324
- selection = _media.frame.state().get('selection');
325
-
326
- if( selection )
327
- {
328
- var i = 0;
329
-
330
- selection.each(function(attachment){
331
-
332
- // counter
333
- i++;
334
-
335
-
336
- // select / add another image field?
337
- if( i > 1 )
338
- {
339
- // vars
340
- var $td = _media.div.closest('td'),
341
- $tr = $td.closest('.row'),
342
- $repeater = $tr.closest('.repeater'),
343
- key = $td.attr('data-field_key'),
344
- selector = 'td .acf-image-uploader:first';
345
-
346
-
347
- // key only exists for repeater v1.0.1 +
348
- if( key )
349
- {
350
- selector = 'td[data-field_key="' + key + '"] .acf-image-uploader';
351
- }
352
-
353
-
354
- // add row?
355
- if( ! $tr.next('.row').exists() )
356
- {
357
- $repeater.find('.add-row-end').trigger('click');
358
-
359
- }
360
-
361
-
362
- // update current div
363
- _media.div = $tr.next('.row').find( selector );
364
-
365
- }
366
-
367
-
368
- // vars
369
- var image = {
370
- id : attachment.id,
371
- url : attachment.attributes.url
372
- };
373
-
374
- // is preview size available?
375
- if( attachment.attributes.sizes && attachment.attributes.sizes[ t.o.preview_size ] )
376
- {
377
- image.url = attachment.attributes.sizes[ t.o.preview_size ].url;
378
- }
379
-
380
- // add image to field
381
- acf.fields.image.add( image );
382
-
383
-
384
- });
385
- // selection.each(function(attachment){
386
- }
387
- // if( selection )
388
-
389
- });
390
- // acf.media.frame.on( 'select', function() {
391
-
392
-
393
- // Finally, open the modal
394
- acf.media.frame.open();
395
-
396
-
397
- return false;
398
- },
399
-
400
- // temporary gallery fix
401
- text : {
402
- title_add : "Select Image",
403
- title_edit : "Edit Image"
404
- }
405
-
406
- };
407
-
408
-
409
- /*
410
- * Events
411
- *
412
- * jQuery events for this field
413
- *
414
- * @type function
415
- * @date 1/03/2011
416
- *
417
- * @param N/A
418
- * @return N/A
419
- */
420
-
421
- $(document).on('click', '.acf-image-uploader .acf-button-edit', function( e ){
422
-
423
- e.preventDefault();
424
-
425
- acf.fields.image.set({ $el : $(this).closest('.acf-image-uploader') }).edit();
426
-
427
- });
428
-
429
- $(document).on('click', '.acf-image-uploader .acf-button-delete', function( e ){
430
-
431
- e.preventDefault();
432
-
433
- acf.fields.image.set({ $el : $(this).closest('.acf-image-uploader') }).remove();
434
-
435
- });
436
-
437
-
438
- $(document).on('click', '.acf-image-uploader .add-image', function( e ){
439
-
440
- e.preventDefault();
441
-
442
- acf.fields.image.set({ $el : $(this).closest('.acf-image-uploader') }).popup();
443
-
444
- });
445
-
446
-
447
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
js/input/radio.js DELETED
@@ -1,70 +0,0 @@
1
- (function($){
2
-
3
- /*
4
- * Radio
5
- *
6
- * static model and events for this field
7
- *
8
- * @type event
9
- * @date 1/06/13
10
- *
11
- */
12
-
13
- acf.fields.radio = {
14
-
15
- $el : null,
16
- $input : null,
17
- $other : null,
18
- farbtastic : null,
19
-
20
- set : function( o ){
21
-
22
- // merge in new option
23
- $.extend( this, o );
24
-
25
-
26
- // find input
27
- this.$input = this.$el.find('input[type="radio"]:checked');
28
- this.$other = this.$el.find('input[type="text"]');
29
-
30
-
31
- // return this for chaining
32
- return this;
33
-
34
- },
35
- change : function(){
36
-
37
- if( this.$input.val() == 'other' )
38
- {
39
- this.$other.attr('name', this.$input.attr('name'));
40
- this.$other.show();
41
- }
42
- else
43
- {
44
- this.$other.attr('name', '');
45
- this.$other.hide();
46
- }
47
- }
48
- };
49
-
50
-
51
- /*
52
- * Events
53
- *
54
- * jQuery events for this field
55
- *
56
- * @type function
57
- * @date 1/03/2011
58
- *
59
- * @param N/A
60
- * @return N/A
61
- */
62
-
63
- $(document).on('change', '.acf-radio-list input[type="radio"]', function( e ){
64
-
65
- acf.fields.radio.set({ $el : $(this).closest('.acf-radio-list') }).change();
66
-
67
- });
68
-
69
-
70
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
js/input/relationship.js DELETED
@@ -1,361 +0,0 @@
1
- (function($){
2
-
3
- /*
4
- * Relationship
5
- *
6
- * static model for this field
7
- *
8
- * @type event
9
- * @date 1/06/13
10
- *
11
- */
12
-
13
- acf.fields.relationship = {
14
-
15
- $el : null,
16
- $input : null,
17
- $left : null,
18
- $right : null,
19
-
20
- o : {},
21
-
22
- timeout : null,
23
-
24
- set : function( o ){
25
-
26
- // merge in new option
27
- $.extend( this, o );
28
-
29
-
30
- // find elements
31
- this.$input = this.$el.children('input[type="hidden"]');
32
- this.$left = this.$el.find('.relationship_left'),
33
- this.$right = this.$el.find('.relationship_right');
34
-
35
-
36
- // get options
37
- this.o = acf.helpers.get_atts( this.$el );
38
-
39
-
40
- // return this for chaining
41
- return this;
42
-
43
- },
44
- init : function(){
45
-
46
- // reference
47
- var _this = this;
48
-
49
-
50
- // is clone field?
51
- if( acf.helpers.is_clone_field(this.$input) )
52
- {
53
- return;
54
- }
55
-
56
-
57
- // set height of right column
58
- this.$right.find('.relationship_list').height( this.$left.height() -2 );
59
-
60
-
61
- // right sortable
62
- this.$right.find('.relationship_list').sortable({
63
- axis : 'y',
64
- items : '> li',
65
- forceHelperSize : true,
66
- forcePlaceholderSize : true,
67
- scroll : true,
68
- update : function(){
69
-
70
- _this.$input.trigger('change');
71
-
72
- }
73
- });
74
-
75
-
76
- // load more
77
- var $el = this.$el;
78
-
79
- this.$left.find('.relationship_list').scrollTop( 0 ).on('scroll', function(e){
80
-
81
- // validate
82
- if( $el.hasClass('loading') || $el.hasClass('no-results') )
83
- {
84
- return;
85
- }
86
-
87
-
88
- // Scrolled to bottom
89
- if( $(this).scrollTop() + $(this).innerHeight() >= $(this).get(0).scrollHeight )
90
- {
91
- var paged = parseInt( $el.attr('data-paged') );
92
-
93
- // update paged
94
- $el.attr('data-paged', (paged + 1) );
95
-
96
- // fetch
97
- _this.set({ $el : $el }).fetch();
98
- }
99
-
100
- });
101
-
102
-
103
- // ajax fetch values for left side
104
- this.fetch();
105
-
106
- },
107
- fetch : function(){
108
-
109
- // reference
110
- var _this = this,
111
- $el = this.$el;
112
-
113
-
114
- // add loading class, stops scroll loading
115
- $el.addClass('loading');
116
-
117
-
118
- // get results
119
- $.ajax({
120
- url : acf.o.ajaxurl,
121
- type : 'post',
122
- dataType : 'json',
123
- data : $.extend({
124
- action : 'acf/fields/relationship/query_posts',
125
- post_id : acf.o.post_id,
126
- nonce : acf.o.nonce
127
- }, this.o ),
128
- success : function( json ){
129
-
130
-
131
- // render
132
- _this.set({ $el : $el }).render( json );
133
-
134
- }
135
- });
136
-
137
- },
138
- render : function( json ){
139
-
140
- // reference
141
- var _this = this;
142
-
143
-
144
- // update classes
145
- this.$el.removeClass('no-results').removeClass('loading');
146
-
147
-
148
- // new search?
149
- if( this.o.paged == 1 )
150
- {
151
- this.$el.find('.relationship_left li:not(.load-more)').remove();
152
- }
153
-
154
-
155
- // no results?
156
- if( ! json || ! json.html )
157
- {
158
- this.$el.addClass('no-results');
159
- return;
160
- }
161
-
162
-
163
- // append new results
164
- this.$el.find('.relationship_left .load-more').before( json.html );
165
-
166
-
167
- // next page?
168
- if( ! json.next_page_exists )
169
- {
170
- this.$el.addClass('no-results');
171
- }
172
-
173
-
174
- // apply .hide to left li's
175
- this.$left.find('a').each(function(){
176
-
177
- var id = $(this).attr('data-post_id');
178
-
179
- if( _this.$right.find('a[data-post_id="' + id + '"]').exists() )
180
- {
181
- $(this).parent().addClass('hide');
182
- }
183
-
184
- });
185
-
186
- },
187
- add : function( $a ){
188
-
189
- // vars
190
- var id = $a.attr('data-post_id'),
191
- title = $a.html();
192
-
193
-
194
- // max posts
195
- if( this.$right.find('a').length >= this.o.max )
196
- {
197
- alert( acf.l10n.relationship.max.replace('{max}', this.o.max) );
198
- return false;
199
- }
200
-
201
-
202
- // can be added?
203
- if( $a.parent().hasClass('hide') )
204
- {
205
- return false;
206
- }
207
-
208
-
209
- // hide
210
- $a.parent().addClass('hide');
211
-
212
-
213
- // template
214
- var html = [
215
- '<li>',
216
- '<a href="#" data-post_id="' + $a.attr('data-post_id') + '">',
217
- $a.html() + '<span class="acf-button-remove"></span>',
218
- '</a>',
219
- '<input type="hidden" name="' + this.$input.attr('name') + '[]" value="' + $a.attr('data-post_id') + '" />',
220
- '</li>'].join('');
221
-
222
-
223
- // add new li
224
- this.$right.find('.relationship_list').append( html )
225
-
226
-
227
- // trigger change on new_li
228
- this.$input.trigger('change');
229
-
230
-
231
- // validation
232
- this.$el.closest('.field').removeClass('error');
233
-
234
-
235
- },
236
- remove : function( $a ){
237
-
238
- // remove
239
- $a.parent().remove();
240
-
241
-
242
- // show
243
- this.$left.find('a[data-post_id="' + $a.attr('data-post_id') + '"]').parent('li').removeClass('hide');
244
-
245
-
246
- // trigger change on new_li
247
- this.$input.trigger('change');
248
-
249
- }
250
-
251
- };
252
-
253
-
254
- /*
255
- * acf/setup_fields
256
- *
257
- * run init function on all elements for this field
258
- *
259
- * @type event
260
- * @date 20/07/13
261
- *
262
- * @param {object} e event object
263
- * @param {object} el DOM object which may contain new ACF elements
264
- * @return N/A
265
- */
266
-
267
- $(document).on('acf/setup_fields', function(e, el){
268
-
269
- $(el).find('.acf_relationship').each(function(){
270
-
271
- acf.fields.relationship.set({ $el : $(this) }).init();
272
-
273
- });
274
-
275
- });
276
-
277
-
278
- /*
279
- * Events
280
- *
281
- * jQuery events for this field
282
- *
283
- * @type function
284
- * @date 1/03/2011
285
- *
286
- * @param N/A
287
- * @return N/A
288
- */
289
-
290
- $(document).on('change', '.acf_relationship .select-post_type', function(e){
291
-
292
- // vars
293
- var val = $(this).val(),
294
- $el = $(this).closest('.acf_relationship');
295
-
296
-
297
- // update attr
298
- $el.attr('data-post_type', val);
299
- $el.attr('data-paged', 1);
300
-
301
-
302
- // fetch
303
- acf.fields.relationship.set({ $el : $el }).fetch();
304
-
305
- });
306
-
307
-
308
- $(document).on('click', '.acf_relationship .relationship_left .relationship_list a', function( e ){
309
-
310
- e.preventDefault();
311
-
312
- acf.fields.relationship.set({ $el : $(this).closest('.acf_relationship') }).add( $(this) );
313
-
314
- $(this).blur();
315
-
316
- });
317
-
318
- $(document).on('click', '.acf_relationship .relationship_right .relationship_list a', function( e ){
319
-
320
- e.preventDefault();
321
-
322
- acf.fields.relationship.set({ $el : $(this).closest('.acf_relationship') }).remove( $(this) );
323
-
324
- $(this).blur();
325
-
326
- });
327
-
328
- $(document).on('keyup', '.acf_relationship input.relationship_search', function( e ){
329
-
330
- // vars
331
- var val = $(this).val(),
332
- $el = $(this).closest('.acf_relationship');
333
-
334
-
335
- // update attr
336
- $el.attr('data-s', val);
337
- $el.attr('data-paged', 1);
338
-
339
-
340
- // fetch
341
- clearTimeout( acf.fields.relationship.timeout );
342
- acf.fields.relationship.timeout = setTimeout(function(){
343
-
344
- acf.fields.relationship.set({ $el : $el }).fetch();
345
-
346
- }, 500);
347
-
348
- });
349
-
350
- $(document).on('keypress', '.acf_relationship input.relationship_search', function( e ){
351
-
352
- // don't submit form
353
- if( e.which == 13 )
354
- {
355
- e.preventDefault();
356
- }
357
-
358
- });
359
-
360
-
361
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
js/input/tab.js DELETED
@@ -1,280 +0,0 @@
1
- (function($){
2
-
3
- acf.fields.tab = {
4
-
5
- add_group : function( $wrap ){
6
-
7
- // vars
8
- var html = '';
9
-
10
-
11
- // generate html
12
- if( $wrap.is('tbody') )
13
- {
14
- html = '<tr class="acf-tab-wrap"><td colspan="2"><ul class="hl clearfix acf-tab-group"></ul></td></tr>';
15
- }
16
- else
17
- {
18
- html = '<div class="acf-tab-wrap"><ul class="hl clearfix acf-tab-group"></ul></div>';
19
- }
20
-
21
-
22
- // append html
23
- $wrap.children('.field_type-tab:first').before( html );
24
-
25
- },
26
-
27
- add_tab : function( $tab ){
28
-
29
- // vars
30
- var $field = $tab.closest('.field'),
31
- $wrap = $field.parent(),
32
-
33
- key = $field.attr('data-field_key'),
34
- label = $tab.text();
35
-
36
-
37
- // create tab group if it doesnt exist
38
- if( ! $wrap.children('.acf-tab-wrap').exists() )
39
- {
40
- this.add_group( $wrap );
41
- }
42
-
43
- // add tab
44
- $wrap.children('.acf-tab-wrap').find('.acf-tab-group').append('<li><a class="acf-tab-button" href="#" data-key="' + key + '">' + label + '</a></li>');
45
-
46
- },
47
-
48
- toggle : function( $a ){
49
-
50
- // reference
51
- var _this = this;
52
-
53
-
54
- //console.log( 'toggle %o ', $a);
55
- // vars
56
- var $wrap = $a.closest('.acf-tab-wrap').parent(),
57
- key = $a.attr('data-key');
58
-
59
-
60
- // classes
61
- $a.parent('li').addClass('active').siblings('li').removeClass('active');
62
-
63
-
64
- // hide / show
65
- $wrap.children('.field_type-tab').each(function(){
66
-
67
-
68
- // vars
69
- var $tab = $(this);
70
-
71
-
72
- if( $tab.attr('data-field_key') == key )
73
- {
74
- _this.show_tab_fields( $(this) );
75
- }
76
- else
77
- {
78
- _this.hide_tab_fields( $(this) );
79
- }
80
-
81
-
82
- });
83
-
84
- },
85
-
86
- show_tab_fields : function( $field ) {
87
-
88
- //console.log('show tab fields %o', $field);
89
- $field.nextUntil('.field_type-tab').each(function(){
90
-
91
- $(this).removeClass('acf-tab_group-hide').addClass('acf-tab_group-show');
92
- $(document).trigger('acf/fields/tab/show', [ $(this) ]);
93
-
94
- });
95
- },
96
-
97
- hide_tab_fields : function( $field ) {
98
-
99
- $field.nextUntil('.field_type-tab').each(function(){
100
-
101
- $(this).removeClass('acf-tab_group-show').addClass('acf-tab_group-hide');
102
- $(document).trigger('acf/fields/tab/hide', [ $(this) ]);
103
-
104
- });
105
- },
106
-
107
- refresh : function( $el ){
108
-
109
- // reference
110
- var _this = this;
111
-
112
-
113
- // trigger
114
- $el.find('.acf-tab-group').each(function(){
115
-
116
- $(this).find('.acf-tab-button:first').each(function(){
117
-
118
- _this.toggle( $(this) );
119
-
120
- });
121
-
122
- });
123
-
124
- }
125
-
126
- };
127
-
128
-
129
- /*
130
- * acf/setup_fields
131
- *
132
- * run init function on all elements for this field
133
- *
134
- * @type event
135
- * @date 20/07/13
136
- *
137
- * @param {object} e event object
138
- * @param {object} el DOM object which may contain new ACF elements
139
- * @return N/A
140
- */
141
-
142
- $(document).on('acf/setup_fields', function(e, el){
143
-
144
- // add tabs
145
- $(el).find('.acf-tab').each(function(){
146
-
147
- acf.fields.tab.add_tab( $(this) );
148
-
149
- });
150
-
151
-
152
- // activate first tab
153
- acf.fields.tab.refresh( $(el) );
154
-
155
-
156
- // NOTE: this code is defined BEFORE the acf.conditional_logic action. This is becuase the 'acf/setup_fields' listener is defined INSIDE the conditional_logic.init() function which is run on doc.ready
157
-
158
- // trigger conditional logic
159
- // this code ( acf/setup_fields ) is run after the main acf.conditional_logic.init();
160
- //console.log('acf/setup_fields (after tab refresh) calling acf.conditional_logic.refresh()');
161
- //acf.conditional_logic.refresh();
162
-
163
- });
164
-
165
-
166
-
167
-
168
- /*
169
- * Events
170
- *
171
- * jQuery events for this field
172
- *
173
- * @type function
174
- * @date 1/03/2011
175
- *
176
- * @param N/A
177
- * @return N/A
178
- */
179
-
180
- $(document).on('click', '.acf-tab-button', function( e ){
181
-
182
- e.preventDefault();
183
-
184
- acf.fields.tab.toggle( $(this) );
185
-
186
- $(this).trigger('blur');
187
-
188
- });
189
-
190
-
191
- $(document).on('acf/conditional_logic/hide', function( e, $target, item ){
192
-
193
- // validate
194
- if( $target.attr('data-field_type') != 'tab' )
195
- {
196
- return;
197
- }
198
-
199
- //console.log('conditional_logic/hide tab %o', $target);
200
-
201
-
202
- // vars
203
- var $tab = $target.siblings('.acf-tab-wrap').find('a[data-key="' + $target.attr('data-field_key') + '"]');
204
-
205
-
206
- // if tab is already hidden, then ignore the following functiolnality
207
- if( $tab.is(':hidden') )
208
- {
209
- return;
210
- }
211
-
212
-
213
- // visibility
214
- $tab.parent().hide();
215
-
216
-
217
- // if
218
- if( $tab.parent().siblings(':visible').exists() )
219
- {
220
- // if the $target to be hidden is a tab button, lets toggle a sibling tab button
221
- $tab.parent().siblings(':visible').first().children('a').trigger('click');
222
- }
223
- else
224
- {
225
- // no onther tabs
226
- acf.fields.tab.hide_tab_fields( $target );
227
- }
228
-
229
- });
230
-
231
-
232
- $(document).on('acf/conditional_logic/show', function( e, $target, item ){
233
-
234
- // validate
235
- if( $target.attr('data-field_type') != 'tab' )
236
- {
237
- return;
238
- }
239
-
240
-
241
- //console.log('conditional_logic/show tab %o', $target);
242
-
243
-
244
- // vars
245
- var $tab = $target.siblings('.acf-tab-wrap').find('a[data-key="' + $target.attr('data-field_key') + '"]');
246
-
247
-
248
- // if tab is already visible, then ignore the following functiolnality
249
- if( $tab.is(':visible') )
250
- {
251
- return;
252
- }
253
-
254
-
255
- // visibility
256
- $tab.parent().show();
257
-
258
-
259
- // if this is the active tab
260
- if( $tab.parent().hasClass('active') )
261
- {
262
- $tab.trigger('click');
263
- return;
264
- }
265
-
266
-
267
- // if the sibling active tab is actually hidden by conditional logic, take ownership of tabs
268
- if( $tab.parent().siblings('.active').is(':hidden') )
269
- {
270
- // show this tab group
271
- $tab.trigger('click');
272
- return;
273
- }
274
-
275
-
276
- });
277
-
278
-
279
-
280
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
js/input/validation.js DELETED
@@ -1,432 +0,0 @@
1
- (function($){
2
-
3
-
4
- /*
5
- * Validation
6
- *
7
- * JS model
8
- *
9
- * @type object
10
- * @date 1/06/13
11
- *
12
- */
13
-
14
- acf.validation = {
15
-
16
- status : true,
17
- disabled : false,
18
-
19
- run : function(){
20
-
21
- // reference
22
- var _this = this;
23
-
24
-
25
- // reset
26
- _this.status = true;
27
-
28
-
29
- // loop through all fields
30
- $('.field.required, .form-field.required').each(function(){
31
-
32
- // run validation
33
- _this.validate( $(this) );
34
-
35
-
36
- });
37
- // end loop through all fields
38
- },
39
-
40
- /*
41
- * show_spinner
42
- *
43
- * This function will show a spinner element. Logic changed in WP 4.2
44
- *
45
- * @type function
46
- * @date 3/05/2015
47
- * @since 5.2.3
48
- *
49
- * @param $spinner (jQuery)
50
- * @return n/a
51
- */
52
-
53
- show_spinner: function( $spinner ){
54
-
55
- // bail early if no spinner
56
- if( !$spinner.exists() ) {
57
-
58
- return;
59
-
60
- }
61
-
62
-
63
- // vars
64
- var wp_version = acf.o.wp_version;
65
-
66
-
67
- // show
68
- if( parseFloat(wp_version) >= 4.2 ) {
69
-
70
- $spinner.addClass('is-active');
71
-
72
- } else {
73
-
74
- $spinner.css('display', 'inline-block');
75
-
76
- }
77
-
78
- },
79
-
80
-
81
- /*
82
- * hide_spinner
83
- *
84
- * This function will hide a spinner element. Logic changed in WP 4.2
85
- *
86
- * @type function
87
- * @date 3/05/2015
88
- * @since 5.2.3
89
- *
90
- * @param $spinner (jQuery)
91
- * @return n/a
92
- */
93
-
94
- hide_spinner: function( $spinner ){
95
-
96
- // bail early if no spinner
97
- if( !$spinner.exists() ) {
98
-
99
- return;
100
-
101
- }
102
-
103
-
104
- // vars
105
- var wp_version = acf.o.wp_version;
106
-
107
-
108
- // hide
109
- if( parseFloat(wp_version) >= 4.2 ) {
110
-
111
- $spinner.removeClass('is-active');
112
-
113
- } else {
114
-
115
- $spinner.css('display', 'none');
116
-
117
- }
118
-
119
- },
120
-
121
- validate : function( div ){
122
-
123
- // var
124
- var ignore = false,
125
- $tab = null;
126
-
127
-
128
- // set validation data
129
- div.data('validation', true);
130
-
131
-
132
- // not visible
133
- if( div.is(':hidden') )
134
- {
135
- // ignore validation
136
- ignore = true;
137
-
138
-
139
- // if this field is hidden by a tab group, allow validation
140
- if( div.hasClass('acf-tab_group-hide') )
141
- {
142
- ignore = false;
143
-
144
-
145
- // vars
146
- var $tab_field = div.prevAll('.field_type-tab:first'),
147
- $tab_group = div.prevAll('.acf-tab-wrap:first');
148
-
149
-
150
- // if the tab itself is hidden, bypass validation
151
- if( $tab_field.hasClass('acf-conditional_logic-hide') )
152
- {
153
- ignore = true;
154
- }
155
- else
156
- {
157
- // activate this tab as it holds hidden required field!
158
- $tab = $tab_group.find('.acf-tab-button[data-key="' + $tab_field.attr('data-field_key') + '"]');
159
- }
160
- }
161
- }
162
-
163
-
164
- // if is hidden by conditional logic, ignore
165
- if( div.hasClass('acf-conditional_logic-hide') )
166
- {
167
- ignore = true;
168
- }
169
-
170
-
171
- // if field group is hidden, igrnoe
172
- if( div.closest('.postbox.acf-hidden').exists() ) {
173
-
174
- ignore = true;
175
-
176
- }
177
-
178
-
179
- if( ignore )
180
- {
181
- return;
182
- }
183
-
184
-
185
-
186
- // text / textarea
187
- if( div.find('input[type="text"], input[type="email"], input[type="number"], input[type="hidden"], textarea').val() == "" )
188
- {
189
- div.data('validation', false);
190
- }
191
-
192
-
193
- // wysiwyg
194
- if( div.find('.acf_wysiwyg').exists() && typeof(tinyMCE) == "object")
195
- {
196
- div.data('validation', true);
197
-
198
- var id = div.find('.wp-editor-area').attr('id'),
199
- editor = tinyMCE.get( id );
200
-
201
-
202
- if( editor && !editor.getContent() )
203
- {
204
- div.data('validation', false);
205
- }
206
- }
207
-
208
-
209
- // select
210
- if( div.find('select').exists() )
211
- {
212
- div.data('validation', true);
213
-
214
- if( div.find('select').val() == "null" || ! div.find('select').val() )
215
- {
216
- div.data('validation', false);
217
- }
218
- }
219
-
220
-
221
- // radio
222
- if( div.find('input[type="radio"]').exists() )
223
- {
224
- div.data('validation', false);
225
-
226
- if( div.find('input[type="radio"]:checked').exists() )
227
- {
228
- div.data('validation', true);
229
- }
230
- }
231
-
232
-
233
- // checkbox
234
- if( div.find('input[type="checkbox"]').exists() )
235
- {
236
- div.data('validation', false);
237
-
238
- if( div.find('input[type="checkbox"]:checked').exists() )
239
- {
240
- div.data('validation', true);
241
- }
242
- }
243
-
244
-
245
- // relationship
246
- if( div.find('.acf_relationship').exists() )
247
- {
248
- div.data('validation', false);
249
-
250
- if( div.find('.acf_relationship .relationship_right input').exists() )
251
- {
252
- div.data('validation', true);
253
- }
254
- }
255
-
256
-
257
- // repeater
258
- if( div.find('.repeater').exists() )
259
- {
260
- div.data('validation', false);
261
-
262
- if( div.find('.repeater tr.row').exists() )
263
- {
264
- div.data('validation', true);
265
- }
266
- }
267
-
268
-
269
- // gallery
270
- if( div.find('.acf-gallery').exists() )
271
- {
272
- div.data('validation', false);
273
-
274
- if( div.find('.acf-gallery .thumbnail').exists())
275
- {
276
- div.data('validation', true);
277
- }
278
- }
279
-
280
-
281
- // hook for custom validation
282
- $(document).trigger('acf/validate_field', [ div ] );
283
-
284
-
285
- // set validation
286
- if( ! div.data('validation') )
287
- {
288
- // show error
289
- this.status = false;
290
- div.closest('.field').addClass('error');
291
-
292
-
293
- // custom validation message
294
- if( div.data('validation_message') )
295
- {
296
- var $label = div.find('p.label:first'),
297
- $message = null;
298
-
299
-
300
- // remove old message
301
- $label.children('.acf-error-message').remove();
302
-
303
-
304
- $label.append( '<span class="acf-error-message"><i class="bit"></i>' + div.data('validation_message') + '</span>' );
305
- }
306
-
307
-
308
- // display field (curently hidden due to another tab being active)
309
- if( $tab )
310
- {
311
- $tab.trigger('click');
312
- }
313
-
314
- }
315
- }
316
-
317
- };
318
-
319
-
320
- /*
321
- * Events
322
- *
323
- * Remove error class on focus
324
- *
325
- * @type function
326
- * @date 1/03/2011
327
- *
328
- * @param N/A
329
- * @return N/A
330
- */
331
-
332
- $(document).on('focus click', '.field.required input, .field.required textarea, .field.required select', function( e ){
333
-
334
- $(this).closest('.field').removeClass('error');
335
-
336
- });
337
-
338
-
339
- /*
340
- $(document).on('blur change', '.field.required input, .field.required textarea, .field.required select', function( e ){
341
-
342
- acf.validation.validate( $(this).closest('.field') );
343
-
344
- });
345
- */
346
-
347
-
348
- /*
349
- * Save Post
350
- *
351
- * If user is saving a draft, allow them to bypass the validation
352
- *
353
- * @type function
354
- * @date 1/03/2011
355
- *
356
- * @param N/A
357
- * @return N/A
358
- */
359
-
360
- $(document).on('click', '#save-post', function(){
361
-
362
- acf.validation.disabled = true;
363
-
364
- });
365
-
366
-
367
- /*
368
- * Submit Post
369
- *
370
- * Run validation and return true|false accordingly
371
- *
372
- * @type function
373
- * @date 1/03/2011
374
- *
375
- * @param N/A
376
- * @return N/A
377
- */
378
-
379
- $(document).on('submit', '#post', function(){
380
-
381
- // If disabled, bail early on the validation check
382
- if( acf.validation.disabled )
383
- {
384
- return true;
385
- }
386
-
387
-
388
- // do validation
389
- acf.validation.run();
390
-
391
-
392
- if( ! acf.validation.status ) {
393
-
394
- // vars
395
- var $form = $(this);
396
-
397
-
398
- // show message
399
- $form.siblings('#message').remove();
400
- $form.before('<div id="message" class="error"><p>' + acf.l10n.validation.error + '</p></div>');
401
-
402
-
403
- // hide ajax stuff on submit button
404
- if( $('#submitdiv').exists() ) {
405
-
406
- // remove disabled classes
407
- $('#submitdiv').find('.disabled').removeClass('disabled');
408
- $('#submitdiv').find('.button-disabled').removeClass('button-disabled');
409
- $('#submitdiv').find('.button-primary-disabled').removeClass('button-primary-disabled');
410
-
411
-
412
- // remove spinner
413
- acf.validation.hide_spinner( $('#submitdiv .spinner') );
414
-
415
- }
416
-
417
- return false;
418
- }
419
-
420
-
421
- // remove hidden postboxes
422
- // + this will stop them from being posted to save
423
- $('.acf_postbox.acf-hidden').remove();
424
-
425
-
426
- // submit the form
427
- return true;
428
-
429
- });
430
-
431
-
432
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
js/input/wysiwyg.js DELETED
@@ -1,556 +0,0 @@
1
- (function($){
2
-
3
- /*
4
- * WYSIWYG
5
- *
6
- * jQuery functionality for this field type
7
- *
8
- * @type object
9
- * @date 20/07/13
10
- *
11
- * @param N/A
12
- * @return N/A
13
- */
14
-
15
- var _wysiwyg = acf.fields.wysiwyg = {
16
-
17
- $el: null,
18
- $textarea: null,
19
-
20
- o: {},
21
-
22
- set: function( o ){
23
-
24
- // merge in new option
25
- $.extend( this, o );
26
-
27
-
28
- // find textarea
29
- this.$textarea = this.$el.find('textarea');
30
-
31
-
32
- // get options
33
- this.o = acf.helpers.get_atts( this.$el );
34
- this.o.id = this.$textarea.attr('id');
35
-
36
-
37
- // return this for chaining
38
- return this;
39
-
40
- },
41
-
42
- has_tinymce : function(){
43
-
44
- var r = false;
45
-
46
- if( typeof(tinyMCE) == "object" )
47
- {
48
- r = true;
49
- }
50
-
51
- return r;
52
-
53
- },
54
-
55
- get_toolbar : function(){
56
-
57
- // safely get toolbar
58
- if( acf.helpers.isset( this, 'toolbars', this.o.toolbar ) ) {
59
-
60
- return this.toolbars[ this.o.toolbar ];
61
-
62
- }
63
-
64
-
65
- // return
66
- return false;
67
-
68
- },
69
-
70
- init : function(){
71
-
72
- // is clone field?
73
- if( acf.helpers.is_clone_field( this.$textarea ) )
74
- {
75
- return;
76
- }
77
-
78
-
79
- // vars
80
- var id = this.o.id,
81
- toolbar = this.get_toolbar(),
82
- command = 'mceAddControl',
83
- setting = 'theme_advanced_buttons{i}';
84
-
85
-
86
- // backup
87
- var _settings = $.extend( {}, tinyMCE.settings );
88
-
89
-
90
- // v4 settings
91
- if( tinymce.majorVersion == 4 ) {
92
-
93
- command = 'mceAddEditor';
94
- setting = 'toolbar{i}';
95
-
96
- }
97
-
98
-
99
- // add toolbars
100
- if( toolbar ) {
101
-
102
- for( var i = 1; i < 5; i++ ) {
103
-
104
- // vars
105
- var v = '';
106
-
107
-
108
- // load toolbar
109
- if( acf.helpers.isset( toolbar, 'theme_advanced_buttons' + i ) ) {
110
-
111
- v = toolbar['theme_advanced_buttons' + i];
112
-
113
- }
114
-
115
-
116
- // update setting
117
- tinyMCE.settings[ setting.replace('{i}', i) ] = v;
118
-
119
- }
120
-
121
- }
122
-
123
-
124
- // add editor
125
- tinyMCE.execCommand( command, false, id);
126
-
127
-
128
- // events - load
129
- $(document).trigger('acf/wysiwyg/load', id);
130
-
131
-
132
- // add events (click, focus, blur) for inserting image into correct editor
133
- setTimeout(function(){
134
-
135
- _wysiwyg.add_events( id );
136
-
137
- }, 100);
138
-
139
-
140
- // restore tinyMCE.settings
141
- tinyMCE.settings = _settings;
142
-
143
-
144
- // set active editor to null
145
- wpActiveEditor = null;
146
-
147
- },
148
-
149
- add_events: function( id ){
150
-
151
- // vars
152
- var editor = tinyMCE.get( id );
153
-
154
-
155
- // validate
156
- if( !editor ) return;
157
-
158
-
159
- // vars
160
- var $container = $('#wp-' + id + '-wrap'),
161
- $body = $( editor.getBody() );
162
-
163
-
164
- // events
165
- $container.on('click', function(){
166
-
167
- $(document).trigger('acf/wysiwyg/click', id);
168
-
169
- });
170
-
171
- $body.on('focus', function(){
172
-
173
- $(document).trigger('acf/wysiwyg/focus', id);
174
-
175
- });
176
-
177
- $body.on('blur', function(){
178
-
179
- $(document).trigger('acf/wysiwyg/blur', id);
180
-
181
- });
182
-
183
-
184
- },
185
- destroy : function(){
186
-
187
- // vars
188
- var id = this.o.id,
189
- command = 'mceRemoveControl';
190
-
191
-
192
- // Remove tinymcy functionality.
193
- // Due to the media popup destroying and creating the field within such a short amount of time,
194
- // a JS error will be thrown when launching the edit window twice in a row.
195
- try {
196
-
197
- // vars
198
- var editor = tinyMCE.get( id );
199
-
200
-
201
- // validate
202
- if( !editor ) {
203
-
204
- return;
205
-
206
- }
207
-
208
-
209
- // v4 settings
210
- if( tinymce.majorVersion == 4 ) {
211
-
212
- command = 'mceRemoveEditor';
213
-
214
- }
215
-
216
-
217
- // store value
218
- var val = editor.getContent();
219
-
220
-
221
- // remove editor
222
- tinyMCE.execCommand(command, false, id);
223
-
224
-
225
- // set value
226
- this.$textarea.val( val );
227
-
228
-
229
- } catch(e) {
230
-
231
- //console.log( e );
232
-
233
- }
234
-
235
-
236
- // set active editor to null
237
- wpActiveEditor = null;
238
-
239
- }
240
-
241
- };
242
-
243
-
244
- /*
245
- * acf/setup_fields
246
- *
247
- * run init function on all elements for this field
248
- *
249
- * @type event
250
- * @date 20/07/13
251
- *
252
- * @param {object} e event object
253
- * @param {object} el DOM object which may contain new ACF elements
254
- * @return N/A
255
- */
256
-
257
- $(document).on('acf/setup_fields', function(e, el){
258
-
259
- // validate
260
- if( ! _wysiwyg.has_tinymce() )
261
- {
262
- return;
263
- }
264
-
265
-
266
- // Destory all WYSIWYG fields
267
- // This hack will fix a problem when the WP popup is created and hidden, then the ACF popup (image/file field) is opened
268
- $(el).find('.acf_wysiwyg').each(function(){
269
-
270
- _wysiwyg.set({ $el : $(this) }).destroy();
271
-
272
- });
273
-
274
-
275
- // Add WYSIWYG fields
276
- setTimeout(function(){
277
-
278
- $(el).find('.acf_wysiwyg').each(function(){
279
-
280
- _wysiwyg.set({ $el : $(this) }).init();
281
-
282
- });
283
-
284
- }, 0);
285
-
286
- });
287
-
288
-
289
- /*
290
- * acf/remove_fields
291
- *
292
- * This action is called when the $el is being removed from the DOM
293
- *
294
- * @type event
295
- * @date 20/07/13
296
- *
297
- * @param {object} e event object
298
- * @param {object} $el jQuery element being removed
299
- * @return N/A
300
- */
301
-
302
- $(document).on('acf/remove_fields', function(e, $el){
303
-
304
- // validate
305
- if( ! _wysiwyg.has_tinymce() )
306
- {
307
- return;
308
- }
309
-
310
-
311
- $el.find('.acf_wysiwyg').each(function(){
312
-
313
- _wysiwyg.set({ $el : $(this) }).destroy();
314
-
315
- });
316
-
317
- });
318
-
319
-
320
- /*
321
- * acf/wysiwyg/click
322
- *
323
- * this event is run when a user clicks on a WYSIWYG field
324
- *
325
- * @type event
326
- * @date 17/01/13
327
- *
328
- * @param {object} e event object
329
- * @param {int} id WYSIWYG ID
330
- * @return N/A
331
- */
332
-
333
- $(document).on('acf/wysiwyg/click', function(e, id){
334
-
335
- wpActiveEditor = id;
336
-
337
- container = $('#wp-' + id + '-wrap').closest('.field').removeClass('error');
338
-
339
- });
340
-
341
-
342
- /*
343
- * acf/wysiwyg/focus
344
- *
345
- * this event is run when a user focuses on a WYSIWYG field body
346
- *
347
- * @type event
348
- * @date 17/01/13
349
- *
350
- * @param {object} e event object
351
- * @param {int} id WYSIWYG ID
352
- * @return N/A
353
- */
354
-
355
- $(document).on('acf/wysiwyg/focus', function(e, id){
356
-
357
- wpActiveEditor = id;
358
-
359
- container = $('#wp-' + id + '-wrap').closest('.field').removeClass('error');
360
-
361
- });
362
-
363
-
364
- /*
365
- * acf/wysiwyg/blur
366
- *
367
- * this event is run when a user loses focus on a WYSIWYG field body
368
- *
369
- * @type event
370
- * @date 17/01/13
371
- *
372
- * @param {object} e event object
373
- * @param {int} id WYSIWYG ID
374
- * @return N/A
375
- */
376
-
377
- $(document).on('acf/wysiwyg/blur', function(e, id){
378
-
379
- wpActiveEditor = null;
380
-
381
- // update the hidden textarea
382
- // - This fixes a but when adding a taxonomy term as the form is not posted and the hidden tetarea is never populated!
383
- var editor = tinyMCE.get( id );
384
-
385
-
386
- // validate
387
- if( !editor )
388
- {
389
- return;
390
- }
391
-
392
-
393
- var el = editor.getElement();
394
-
395
-
396
- // save to textarea
397
- editor.save();
398
-
399
-
400
- // trigger change on textarea
401
- $( el ).trigger('change');
402
-
403
- });
404
-
405
-
406
- /*
407
- * acf/sortable_start
408
- *
409
- * this event is run when a element is being drag / dropped
410
- *
411
- * @type event
412
- * @date 10/11/12
413
- *
414
- * @param {object} e event object
415
- * @param {object} el DOM object which may contain new ACF elements
416
- * @return N/A
417
- */
418
-
419
- $(document).on('acf/sortable_start', function(e, el) {
420
-
421
- // validate
422
- if( ! _wysiwyg.has_tinymce() )
423
- {
424
- return;
425
- }
426
-
427
-
428
- $(el).find('.acf_wysiwyg').each(function(){
429
-
430
- _wysiwyg.set({ $el : $(this) }).destroy();
431
-
432
- });
433
-
434
- });
435
-
436
-
437
- /*
438
- * acf/sortable_stop
439
- *
440
- * this event is run when a element has finnished being drag / dropped
441
- *
442
- * @type event
443
- * @date 10/11/12
444
- *
445
- * @param {object} e event object
446
- * @param {object} el DOM object which may contain new ACF elements
447
- * @return N/A
448
- */
449
-
450
- $(document).on('acf/sortable_stop', function(e, el) {
451
-
452
- // validate
453
- if( ! _wysiwyg.has_tinymce() )
454
- {
455
- return;
456
- }
457
-
458
-
459
- $(el).find('.acf_wysiwyg').each(function(){
460
-
461
- _wysiwyg.set({ $el : $(this) }).init();
462
-
463
- });
464
-
465
- });
466
-
467
-
468
- /*
469
- * window load
470
- *
471
- * @description:
472
- * @since: 3.5.5
473
- * @created: 22/12/12
474
- */
475
-
476
- $(window).on('load', function(){
477
-
478
- // validate
479
- if( ! _wysiwyg.has_tinymce() )
480
- {
481
- return;
482
- }
483
-
484
-
485
- // vars
486
- var wp_content = $('#wp-content-wrap').exists(),
487
- wp_acf_settings = $('#wp-acf_settings-wrap').exists()
488
- mode = 'tmce';
489
-
490
-
491
- // has_editor
492
- if( wp_acf_settings )
493
- {
494
- // html_mode
495
- if( $('#wp-acf_settings-wrap').hasClass('html-active') )
496
- {
497
- mode = 'html';
498
- }
499
- }
500
-
501
-
502
- setTimeout(function(){
503
-
504
- // trigger click on hidden wysiwyg (to get in HTML mode)
505
- if( wp_acf_settings && mode == 'html' )
506
- {
507
- $('#acf_settings-tmce').trigger('click');
508
- }
509
-
510
- }, 1);
511
-
512
-
513
- setTimeout(function(){
514
-
515
- // trigger html mode for people who want to stay in HTML mode
516
- if( wp_acf_settings && mode == 'html' )
517
- {
518
- $('#acf_settings-html').trigger('click');
519
- }
520
-
521
- // Add events to content editor
522
- if( wp_content )
523
- {
524
- _wysiwyg.add_events('content');
525
- }
526
-
527
-
528
- }, 11);
529
-
530
-
531
- });
532
-
533
-
534
- /*
535
- * Full screen
536
- *
537
- * @description: this hack will hide the 'image upload' button in the wysiwyg full screen mode if the field has disabled image uploads!
538
- * @since: 3.6
539
- * @created: 26/02/13
540
- */
541
-
542
- $(document).on('click', '.acf_wysiwyg a.mce_fullscreen', function(){
543
-
544
- // vars
545
- var wysiwyg = $(this).closest('.acf_wysiwyg'),
546
- upload = wysiwyg.attr('data-upload');
547
-
548
- if( upload == 'no' )
549
- {
550
- $('#mce_fullscreen_container td.mceToolbar .mce_add_media').remove();
551
- }
552
-
553
- });
554
-
555
-
556
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
lang/acf-ro_RO.mo ADDED
Binary file
lang/acf-ro_RO.po ADDED
@@ -0,0 +1,1859 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2014
2
+ # This file is distributed under the same license as the package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: Advanced Custom Fields\n"
6
+ "Report-Msgid-Bugs-To: http://wordpress.org/tag/advanced-custom-fields\n"
7
+ "POT-Creation-Date: 2016-04-06 12:20+0100\n"
8
+ "PO-Revision-Date: 2017-09-19 22:34+0300\n"
9
+ "Language-Team: \n"
10
+ "MIME-Version: 1.0\n"
11
+ "Content-Type: text/plain; charset=UTF-8\n"
12
+ "Content-Transfer-Encoding: 8bit\n"
13
+ "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?"
14
+ "2:1));\n"
15
+ "X-Generator: Poedit 2.0.3\n"
16
+ "X-Poedit-Basepath: ..\n"
17
+ "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
18
+ "_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;"
19
+ "esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
20
+ "X-Poedit-WPHeader: acf.php\n"
21
+ "X-Poedit-SourceCharset: UTF-8\n"
22
+ "Last-Translator: Corneliu Cîrlan <corneliu@corneliucirlan.com>\n"
23
+ "Language: ro_RO\n"
24
+ "X-Poedit-SearchPath-0: .\n"
25
+
26
+ #: acf.php:490
27
+ msgid "Field&nbsp;Groups"
28
+ msgstr "Grupuri&nbsp;de&nbsp;câmpuri"
29
+
30
+ #. Plugin Name of the plugin/theme
31
+ #: acf.php:491 core/controllers/field_groups.php:213
32
+ msgid "Advanced Custom Fields"
33
+ msgstr "Câmpuri Personalizate Avansate"
34
+
35
+ #: acf.php:492
36
+ msgid "Add New"
37
+ msgstr "Adaugă Nou"
38
+
39
+ #: acf.php:493
40
+ msgid "Add New Field Group"
41
+ msgstr "Adaugă Grup Nou de Câmpuri"
42
+
43
+ #: acf.php:494
44
+ msgid "Edit Field Group"
45
+ msgstr "Editează Grup de Câmpuri"
46
+
47
+ #: acf.php:495
48
+ msgid "New Field Group"
49
+ msgstr "Grup Nou de Câmpuri"
50
+
51
+ #: acf.php:496
52
+ msgid "View Field Group"
53
+ msgstr "Vizualizează Grupul de Câmpuri"
54
+
55
+ #: acf.php:497
56
+ msgid "Search Field Groups"
57
+ msgstr "Caută Grupuri de Câmpuri"
58
+
59
+ #: acf.php:498
60
+ msgid "No Field Groups found"
61
+ msgstr "Nici un Grup de Câmpuri găsit"
62
+
63
+ #: acf.php:499
64
+ msgid "No Field Groups found in Trash"
65
+ msgstr "Nici un Grup de Câmpuri găsit în coșul de gunoi"
66
+
67
+ #: acf.php:584 core/views/meta_box_options.php:99
68
+ msgid "Custom Fields"
69
+ msgstr "Câmpuri Personalizate"
70
+
71
+ #: acf.php:602 acf.php:605
72
+ msgid "Field group updated."
73
+ msgstr "Grup de Câmpuri actualizat"
74
+
75
+ #: acf.php:603
76
+ msgid "Custom field updated."
77
+ msgstr "Câmp Personalizat actualizat."
78
+
79
+ #: acf.php:604
80
+ msgid "Custom field deleted."
81
+ msgstr "Câmp Personalizat șters."
82
+
83
+ #. translators: %s: date and time of the revision
84
+ #: acf.php:607
85
+ #, php-format
86
+ msgid "Field group restored to revision from %s"
87
+ msgstr "Grup de Câmpuri restaurat la revizuire din %s"
88
+
89
+ #: acf.php:608
90
+ msgid "Field group published."
91
+ msgstr "Grup de Câmpuri publicat."
92
+
93
+ #: acf.php:609
94
+ msgid "Field group saved."
95
+ msgstr "Grup de Câmpuri salvat."
96
+
97
+ #: acf.php:610
98
+ msgid "Field group submitted."
99
+ msgstr "Grup de Câmpuri depus."
100
+
101
+ #: acf.php:611
102
+ msgid "Field group scheduled for."
103
+ msgstr "Grup de Câmpuri programat pentru."
104
+
105
+ #: acf.php:612
106
+ msgid "Field group draft updated."
107
+ msgstr "Schiţă Grup de Câmpuri actualizată."
108
+
109
+ #: acf.php:747
110
+ msgid "Thumbnail"
111
+ msgstr "Pictogramă"
112
+
113
+ #: acf.php:748
114
+ msgid "Medium"
115
+ msgstr "Mediu"
116
+
117
+ #: acf.php:749
118
+ msgid "Large"
119
+ msgstr "Mare"
120
+
121
+ #: acf.php:750
122
+ msgid "Full"
123
+ msgstr "Intreg"
124
+
125
+ #: core/actions/export.php:26 core/views/meta_box_fields.php:58
126
+ msgid "Error"
127
+ msgstr "Eroare"
128
+
129
+ #: core/actions/export.php:33
130
+ msgid "No ACF groups selected"
131
+ msgstr "Nici un Grup de Câmpuri selectat"
132
+
133
+ #: core/api.php:1171
134
+ msgid "Update"
135
+ msgstr "Actualizează"
136
+
137
+ #: core/api.php:1172
138
+ msgid "Post updated"
139
+ msgstr "Post actualizat"
140
+
141
+ #: core/controllers/addons.php:42 core/controllers/field_groups.php:306
142
+ msgid "Add-ons"
143
+ msgstr "Add-on-uri"
144
+
145
+ #: core/controllers/addons.php:130 core/controllers/field_groups.php:428
146
+ msgid "Repeater Field"
147
+ msgstr "Câmp repetitiv"
148
+
149
+ #: core/controllers/addons.php:131
150
+ msgid "Create infinite rows of repeatable data with this versatile interface!"
151
+ msgstr ""
152
+ "Creează rânduri infinite de date repetate cu această interfață versatilă!"
153
+
154
+ #: core/controllers/addons.php:137 core/controllers/field_groups.php:436
155
+ msgid "Gallery Field"
156
+ msgstr "Câmp galerie"
157
+
158
+ #: core/controllers/addons.php:138
159
+ msgid "Create image galleries in a simple and intuitive interface!"
160
+ msgstr "Creează galerii de imagini într-o interfață simplă și intuitivă!"
161
+
162
+ #: core/controllers/addons.php:144 core/controllers/field_groups.php:444
163
+ msgid "Options Page"
164
+ msgstr "Pagina de Opțiuni"
165
+
166
+ #: core/controllers/addons.php:145
167
+ msgid "Create global data to use throughout your website!"
168
+ msgstr "Creează date globale pe care să le utilizezi pe site-ul web!"
169
+
170
+ #: core/controllers/addons.php:151
171
+ msgid "Flexible Content Field"
172
+ msgstr "Câmp cu conținut flexibil "
173
+
174
+ #: core/controllers/addons.php:152
175
+ msgid "Create unique designs with a flexible content layout manager!"
176
+ msgstr "Creează un design unic cu un manager de aspect de conținut flexibil!"
177
+
178
+ #: core/controllers/addons.php:161
179
+ msgid "Gravity Forms Field"
180
+ msgstr "Câmp formular Gravity"
181
+
182
+ #: core/controllers/addons.php:162
183
+ msgid "Creates a select field populated with Gravity Forms!"
184
+ msgstr "Creează un câmp selectat cu Formule Gravity!"
185
+
186
+ #: core/controllers/addons.php:168
187
+ msgid "Date & Time Picker"
188
+ msgstr "Selector Data & Ora"
189
+
190
+ #: core/controllers/addons.php:169
191
+ msgid "jQuery date & time picker"
192
+ msgstr "Selector Data & Ora jQuery"
193
+
194
+ #: core/controllers/addons.php:175
195
+ msgid "Google Map Extended"
196
+ msgstr "Harta Google Extinsă"
197
+
198
+ #: core/controllers/addons.php:176
199
+ msgid "Find addresses and coordinates of a desired location"
200
+ msgstr "Găsește adresele și coordonatele unei locații dorite"
201
+
202
+ #: core/controllers/addons.php:182
203
+ msgid "Contact Form 7 Field"
204
+ msgstr "Câmp Contact Form 7"
205
+
206
+ #: core/controllers/addons.php:183
207
+ msgid "Assign one or more contact form 7 forms to a post"
208
+ msgstr "Alocați unul sau mai multe formulare Contact Form 7 la o postare"
209
+
210
+ #: core/controllers/addons.php:193
211
+ msgid "Advanced Custom Fields Add-Ons"
212
+ msgstr "Add-on-uri pentru Câmpuri Personalizate Avansate"
213
+
214
+ #: core/controllers/addons.php:196
215
+ msgid ""
216
+ "The following Add-ons are available to increase the functionality of the "
217
+ "Advanced Custom Fields plugin."
218
+ msgstr ""
219
+ "Următoarele add-on-uri sunt disponibile pentru a crește funcționalitatea "
220
+ "modulului Câmpuri Personalizate Avansate."
221
+
222
+ #: core/controllers/addons.php:197
223
+ msgid ""
224
+ "Each Add-on can be installed as a separate plugin (receives updates) or "
225
+ "included in your theme (does not receive updates)."
226
+ msgstr ""
227
+ "Fiecare add-on poate fi instalat ca modul separat (primește actualizări) sau "
228
+ "inclus in temă (nu primește actualizări)"
229
+
230
+ #: core/controllers/addons.php:219 core/controllers/addons.php:240
231
+ msgid "Installed"
232
+ msgstr "Instalat"
233
+
234
+ #: core/controllers/addons.php:221
235
+ msgid "Purchase & Install"
236
+ msgstr "Cumpără și instalează"
237
+
238
+ #: core/controllers/addons.php:242 core/controllers/field_groups.php:421
239
+ #: core/controllers/field_groups.php:430 core/controllers/field_groups.php:438
240
+ #: core/controllers/field_groups.php:446 core/controllers/field_groups.php:454
241
+ msgid "Download"
242
+ msgstr "Descarcă"
243
+
244
+ #: core/controllers/export.php:50 core/controllers/export.php:159
245
+ msgid "Export"
246
+ msgstr "Exportă"
247
+
248
+ #: core/controllers/export.php:216
249
+ msgid "Export Field Groups"
250
+ msgstr "Exportă Grupuri de Câmpuri"
251
+
252
+ #: core/controllers/export.php:221
253
+ msgid "Field Groups"
254
+ msgstr "Grupuri de Câmpuri "
255
+
256
+ #: core/controllers/export.php:222
257
+ msgid "Select the field groups to be exported"
258
+ msgstr "Selectează Grupurile de Câmpuri de exportat"
259
+
260
+ #: core/controllers/export.php:239 core/controllers/export.php:252
261
+ msgid "Export to XML"
262
+ msgstr "Exportă în XML"
263
+
264
+ #: core/controllers/export.php:242 core/controllers/export.php:267
265
+ msgid "Export to PHP"
266
+ msgstr "Exportă în PHP"
267
+
268
+ #: core/controllers/export.php:253
269
+ msgid ""
270
+ "ACF will create a .xml export file which is compatible with the native WP "
271
+ "import plugin."
272
+ msgstr ""
273
+ "ACF va crea un fișier de export .xml compatibil cu pluginul de import WP "
274
+ "nativ."
275
+
276
+ #: core/controllers/export.php:254
277
+ msgid ""
278
+ "Imported field groups <b>will</b> appear in the list of editable field "
279
+ "groups. This is useful for migrating fields groups between Wp websites."
280
+ msgstr ""
281
+ "Grupurile de câmpuri importate <b> vor </ b> fi afișate în lista grupurilor "
282
+ "de câmpuri editabile. Acest lucru este util pentru migrarea grupurilor de "
283
+ "câmpuri între site-urile WP."
284
+
285
+ #: core/controllers/export.php:256
286
+ msgid "Select field group(s) from the list and click \"Export XML\""
287
+ msgstr ""
288
+ "Selectează grupurile de câmpuri din listă și fă clic pe \"Exportă XML\""
289
+
290
+ #: core/controllers/export.php:257
291
+ msgid "Save the .xml file when prompted"
292
+ msgstr "Salvează fişierul XML la solicitare"
293
+
294
+ #: core/controllers/export.php:258
295
+ msgid "Navigate to Tools &raquo; Import and select WordPress"
296
+ msgstr "Navighează la Instrumente &raquo; Importă și selectează WordPress"
297
+
298
+ #: core/controllers/export.php:259
299
+ msgid "Install WP import plugin if prompted"
300
+ msgstr "Instalează modulul de import WP dacă se solicită"
301
+
302
+ #: core/controllers/export.php:260
303
+ msgid "Upload and import your exported .xml file"
304
+ msgstr "Incarcă şi importă fişierul.xml exportat"
305
+
306
+ #: core/controllers/export.php:261
307
+ msgid "Select your user and ignore Import Attachments"
308
+ msgstr "Selectează utilizatorul şi ignoră Importă Ataşamente"
309
+
310
+ #: core/controllers/export.php:262
311
+ msgid "That's it! Happy WordPressing"
312
+ msgstr "Asta e tot! WordPressing fericit"
313
+
314
+ #: core/controllers/export.php:268
315
+ msgid "ACF will create the PHP code to include in your theme."
316
+ msgstr "ACF va creea codul PHP de inclus în temă"
317
+
318
+ #: core/controllers/export.php:269 core/controllers/export.php:310
319
+ msgid ""
320
+ "Registered field groups <b>will not</b> appear in the list of editable field "
321
+ "groups. This is useful for including fields in themes."
322
+ msgstr ""
323
+ "Grupurile de câmpuri înregistrate <b> nu vor </ b> fi afișate în lista "
324
+ "grupurilor de câmp editabile. Acest lucru este util pentru includerea "
325
+ "câmpurilor în teme."
326
+
327
+ #: core/controllers/export.php:270 core/controllers/export.php:311
328
+ msgid ""
329
+ "Please note that if you export and register field groups within the same WP, "
330
+ "you will see duplicate fields on your edit screens. To fix this, please move "
331
+ "the original field group to the trash or remove the code from your functions."
332
+ "php file."
333
+ msgstr ""
334
+ "Reține că dacă exporți și înregistrezi grupuri de câmpuri în cadrul "
335
+ "aceluiași WP, vei vedea câmpuri duplicate în ecranele de editare. Pentru a "
336
+ "remedia acest lucru, te rog să muți grupul original de câmp în coșul de "
337
+ "gunoi sau să elimini codul din fișierul functions.php."
338
+
339
+ #: core/controllers/export.php:272
340
+ msgid "Select field group(s) from the list and click \"Create PHP\""
341
+ msgstr "Selectează grupuri de câmpuri din listă și fă clic pe \"Creează PHP\""
342
+
343
+ #: core/controllers/export.php:273 core/controllers/export.php:302
344
+ msgid "Copy the PHP code generated"
345
+ msgstr "Copiază codul PHP generat"
346
+
347
+ #: core/controllers/export.php:274 core/controllers/export.php:303
348
+ msgid "Paste into your functions.php file"
349
+ msgstr "Lipeşte în fişierul functions.php"
350
+
351
+ #: core/controllers/export.php:275 core/controllers/export.php:304
352
+ msgid "To activate any Add-ons, edit and use the code in the first few lines."
353
+ msgstr ""
354
+ "Pentru a active vreun add-on, editează şi foloseşte codul în primele linii "
355
+ "de cod."
356
+
357
+ #: core/controllers/export.php:295
358
+ msgid "Export Field Groups to PHP"
359
+ msgstr "Exportă Grupuri de Câmpuri în PHP"
360
+
361
+ #: core/controllers/export.php:300 core/fields/tab.php:65
362
+ msgid "Instructions"
363
+ msgstr "Instrucțiuni"
364
+
365
+ #: core/controllers/export.php:309
366
+ msgid "Notes"
367
+ msgstr "Note"
368
+
369
+ #: core/controllers/export.php:316
370
+ msgid "Include in theme"
371
+ msgstr "Include în temă"
372
+
373
+ #: core/controllers/export.php:317
374
+ msgid ""
375
+ "The Advanced Custom Fields plugin can be included within a theme. To do so, "
376
+ "move the ACF plugin inside your theme and add the following code to your "
377
+ "functions.php file:"
378
+ msgstr ""
379
+ "Modulul Câmpuri Personalizate Avansate poate fi inclus într-o temă. Pentru a "
380
+ "face acest lucru, mută modulul ACF în interiorul temei și adăugă următorul "
381
+ "cod în fișierul functions.php:"
382
+
383
+ #: core/controllers/export.php:323
384
+ msgid ""
385
+ "To remove all visual interfaces from the ACF plugin, you can use a constant "
386
+ "to enable lite mode. Add the following code to your functions.php file "
387
+ "<b>before</b> the include_once code:"
388
+ msgstr ""
389
+ "Pentru a elimina toate interfețele vizuale din modulul ACF, poți utiliza o "
390
+ "constantă pentru a activa modul Lite. Adaugă următorul cod în fișierul "
391
+ "functions.php <b> înainte de </ b> codul include_once:"
392
+
393
+ #: core/controllers/export.php:331
394
+ msgid "Back to export"
395
+ msgstr "Înapoi la export"
396
+
397
+ #: core/controllers/export.php:400
398
+ msgid "No field groups were selected"
399
+ msgstr "Nici un grup de câmpuri selectat"
400
+
401
+ #: core/controllers/field_group.php:359
402
+ msgid "Move to trash. Are you sure?"
403
+ msgstr "Mută în coşul de gunoi. Eşti sigur?"
404
+
405
+ #: core/controllers/field_group.php:360
406
+ msgid "checked"
407
+ msgstr "bifat"
408
+
409
+ #: core/controllers/field_group.php:361
410
+ msgid "No toggle fields available"
411
+ msgstr "Nu există câmpuri de comutare disponibile"
412
+
413
+ #: core/controllers/field_group.php:362
414
+ msgid "Field group title is required"
415
+ msgstr "Este necesar titlul grupului de câmpuri"
416
+
417
+ #: core/controllers/field_group.php:363
418
+ msgid "copy"
419
+ msgstr "copiază"
420
+
421
+ #: core/controllers/field_group.php:364 core/views/meta_box_location.php:62
422
+ #: core/views/meta_box_location.php:159
423
+ msgid "or"
424
+ msgstr "sau"
425
+
426
+ #: core/controllers/field_group.php:365 core/controllers/field_group.php:397
427
+ #: core/controllers/field_group.php:459 core/controllers/field_groups.php:148
428
+ msgid "Fields"
429
+ msgstr "Câmpuri"
430
+
431
+ #: core/controllers/field_group.php:366
432
+ msgid "Parent fields"
433
+ msgstr "Câmpuri Părinte "
434
+
435
+ #: core/controllers/field_group.php:367
436
+ msgid "Sibling fields"
437
+ msgstr "Câmpuri surori"
438
+
439
+ #: core/controllers/field_group.php:368
440
+ msgid "Hide / Show All"
441
+ msgstr "Ascunde / Arată tot"
442
+
443
+ #: core/controllers/field_group.php:398
444
+ msgid "Location"
445
+ msgstr "Locație"
446
+
447
+ #: core/controllers/field_group.php:399
448
+ msgid "Options"
449
+ msgstr "Opțiuni"
450
+
451
+ #: core/controllers/field_group.php:461
452
+ msgid "Show Field Key:"
453
+ msgstr "Arată cheie câmp"
454
+
455
+ #: core/controllers/field_group.php:462 core/fields/page_link.php:138
456
+ #: core/fields/page_link.php:159 core/fields/post_object.php:340
457
+ #: core/fields/post_object.php:361 core/fields/select.php:224
458
+ #: core/fields/select.php:243 core/fields/taxonomy.php:499
459
+ #: core/fields/user.php:332 core/fields/wysiwyg.php:344
460
+ #: core/views/meta_box_fields.php:195 core/views/meta_box_fields.php:218
461
+ msgid "No"
462
+ msgstr "Nu"
463
+
464
+ #: core/controllers/field_group.php:463 core/fields/page_link.php:137
465
+ #: core/fields/page_link.php:158 core/fields/post_object.php:339
466
+ #: core/fields/post_object.php:360 core/fields/select.php:223
467
+ #: core/fields/select.php:242 core/fields/taxonomy.php:498
468
+ #: core/fields/user.php:331 core/fields/wysiwyg.php:343
469
+ #: core/views/meta_box_fields.php:194 core/views/meta_box_fields.php:217
470
+ msgid "Yes"
471
+ msgstr "Da"
472
+
473
+ #: core/controllers/field_group.php:635
474
+ msgid "Front Page"
475
+ msgstr "Prima pagină"
476
+
477
+ #: core/controllers/field_group.php:636
478
+ msgid "Posts Page"
479
+ msgstr "Pagină postări"
480
+
481
+ #: core/controllers/field_group.php:637
482
+ msgid "Top Level Page (parent of 0)"
483
+ msgstr "Pagină de nivel superior (părinte de 0)"
484
+
485
+ #: core/controllers/field_group.php:638
486
+ msgid "Parent Page (has children)"
487
+ msgstr "Pagină Părinte (are copii)"
488
+
489
+ #: core/controllers/field_group.php:639
490
+ msgid "Child Page (has parent)"
491
+ msgstr "Pagină Copil (are părinte)"
492
+
493
+ #: core/controllers/field_group.php:647
494
+ msgid "Default Template"
495
+ msgstr "Tipar standard"
496
+
497
+ #: core/controllers/field_group.php:729
498
+ msgid "Published"
499
+ msgstr "Publicat"
500
+
501
+ #: core/controllers/field_group.php:730
502
+ msgid "Pending Review"
503
+ msgstr "Revizuire în Așteptare"
504
+
505
+ #: core/controllers/field_group.php:731
506
+ msgid "Draft"
507
+ msgstr "Chiornă"
508
+
509
+ #: core/controllers/field_group.php:732
510
+ msgid "Future"
511
+ msgstr "Viitor"
512
+
513
+ #: core/controllers/field_group.php:733
514
+ msgid "Private"
515
+ msgstr "Privat"
516
+
517
+ #: core/controllers/field_group.php:734
518
+ msgid "Revision"
519
+ msgstr "Revizie"
520
+
521
+ #: core/controllers/field_group.php:735
522
+ msgid "Trash"
523
+ msgstr "Gunoi"
524
+
525
+ #: core/controllers/field_group.php:748
526
+ msgid "Super Admin"
527
+ msgstr "Super Admin"
528
+
529
+ #: core/controllers/field_group.php:763 core/controllers/field_group.php:784
530
+ #: core/controllers/field_group.php:791 core/fields/file.php:186
531
+ #: core/fields/image.php:177 core/fields/page_link.php:109
532
+ #: core/fields/post_object.php:286 core/fields/post_object.php:310
533
+ #: core/fields/relationship.php:588 core/fields/relationship.php:612
534
+ #: core/fields/user.php:276
535
+ msgid "All"
536
+ msgstr "Tot"
537
+
538
+ #: core/controllers/field_groups.php:147
539
+ msgid "Title"
540
+ msgstr "Titlu"
541
+
542
+ #: core/controllers/field_groups.php:215 core/controllers/field_groups.php:252
543
+ msgid "Changelog"
544
+ msgstr "Log de schimbări"
545
+
546
+ #: core/controllers/field_groups.php:216
547
+ #, php-format
548
+ msgid "See what's new in %1$sversion %2$s%3$s"
549
+ msgstr "Vezi ce e nou în %1$sversiunea %2$s%3$s"
550
+
551
+ #: core/controllers/field_groups.php:218
552
+ msgid "Resources"
553
+ msgstr "Resurse"
554
+
555
+ #: core/controllers/field_groups.php:220
556
+ msgid "Getting Started"
557
+ msgstr "Noțiuni de bază"
558
+
559
+ #: core/controllers/field_groups.php:221
560
+ msgid "Field Types"
561
+ msgstr "Tipuri de câmpuri"
562
+
563
+ #: core/controllers/field_groups.php:222
564
+ msgid "Functions"
565
+ msgstr "Funcții"
566
+
567
+ #: core/controllers/field_groups.php:223
568
+ msgid "Actions"
569
+ msgstr "Acţiuni"
570
+
571
+ #: core/controllers/field_groups.php:224 core/fields/relationship.php:631
572
+ msgid "Filters"
573
+ msgstr "Filtre"
574
+
575
+ #: core/controllers/field_groups.php:225
576
+ msgid "'How to' guides"
577
+ msgstr "Ghiduri \"cum să\""
578
+
579
+ #: core/controllers/field_groups.php:226
580
+ msgid "Tutorials"
581
+ msgstr "Tutoriale"
582
+
583
+ #: core/controllers/field_groups.php:231
584
+ msgid "Created by"
585
+ msgstr "Creat de"
586
+
587
+ #: core/controllers/field_groups.php:243
588
+ msgid "Welcome to Advanced Custom Fields"
589
+ msgstr "Bine ai venit la Câmpuri Personalizate Avansate"
590
+
591
+ #: core/controllers/field_groups.php:244
592
+ msgid "Thank you for updating to the latest version!"
593
+ msgstr "Mulțumesc pentru actualizarea la ultima versiune!"
594
+
595
+ #: core/controllers/field_groups.php:244
596
+ #, php-format
597
+ msgid ""
598
+ "ACF %s is more polished and enjoyable than ever before. We hope you like it."
599
+ msgstr ""
600
+ "ACF%s este mai lustruit și mai plăcut decât oricând. Sperăm că vă place."
601
+
602
+ #: core/controllers/field_groups.php:251
603
+ msgid "What’s New"
604
+ msgstr "Ce e nou"
605
+
606
+ #: core/controllers/field_groups.php:254
607
+ msgid "Download Add-ons"
608
+ msgstr "Descarcă add-on-uri"
609
+
610
+ #: core/controllers/field_groups.php:308
611
+ msgid "Activation codes have grown into plugins!"
612
+ msgstr "Coduri de activare au crescut în module!"
613
+
614
+ #: core/controllers/field_groups.php:309
615
+ msgid ""
616
+ "Add-ons are now activated by downloading and installing individual plugins. "
617
+ "Although these plugins will not be hosted on the wordpress.org repository, "
618
+ "each Add-on will continue to receive updates in the usual way."
619
+ msgstr ""
620
+ "Add-on-urile sunt acum activate prin descărcarea și instalarea modulelor "
621
+ "individuale. Deși aceste module nu vor fi găzduite pe repozitoriul wordpress."
622
+ "org, fiecare add-on va continua să primească actualizări în mod obișnuit."
623
+
624
+ #: core/controllers/field_groups.php:315
625
+ msgid "All previous Add-ons have been successfully installed"
626
+ msgstr "Toate add-on-urile anterioare au fost instalate cu succes"
627
+
628
+ #: core/controllers/field_groups.php:319
629
+ msgid "This website uses premium Add-ons which need to be downloaded"
630
+ msgstr "Acest site web utilizează add-on-uri premium care trebuie descărcate"
631
+
632
+ #: core/controllers/field_groups.php:319
633
+ msgid "Download your activated Add-ons"
634
+ msgstr "Descarcă add-on-urile activate"
635
+
636
+ #: core/controllers/field_groups.php:324
637
+ msgid ""
638
+ "This website does not use premium Add-ons and will not be affected by this "
639
+ "change."
640
+ msgstr ""
641
+ "Acest site web nu folosește add-on-uri premium și nu va fi afectat de "
642
+ "această modificare."
643
+
644
+ #: core/controllers/field_groups.php:334
645
+ msgid "Easier Development"
646
+ msgstr "Dezvoltare mai ușoară"
647
+
648
+ #: core/controllers/field_groups.php:336
649
+ msgid "New Field Types"
650
+ msgstr "Tipuri noi de câmpuri"
651
+
652
+ #: core/controllers/field_groups.php:338
653
+ msgid "Taxonomy Field"
654
+ msgstr "Câmp taxonomie"
655
+
656
+ #: core/controllers/field_groups.php:339
657
+ msgid "User Field"
658
+ msgstr "Câmp utilizator"
659
+
660
+ #: core/controllers/field_groups.php:340
661
+ msgid "Email Field"
662
+ msgstr "Câmp email"
663
+
664
+ #: core/controllers/field_groups.php:341
665
+ msgid "Password Field"
666
+ msgstr "Câmp parolă"
667
+
668
+ #: core/controllers/field_groups.php:343
669
+ msgid "Custom Field Types"
670
+ msgstr "Tipuri de câmpuri personalizate"
671
+
672
+ #: core/controllers/field_groups.php:344
673
+ msgid ""
674
+ "Creating your own field type has never been easier! Unfortunately, version 3 "
675
+ "field types are not compatible with version 4."
676
+ msgstr ""
677
+ "Crearea propriului tip de câmp nu a fost niciodată mai ușoară! Din păcate, "
678
+ "tipurile de câmpuri din versiunea 3 nu sunt compatibile cu versiunea 4."
679
+
680
+ #: core/controllers/field_groups.php:345
681
+ #, php-format
682
+ msgid ""
683
+ "Migrating your field types is easy, please %sfollow this tutorial%s to learn "
684
+ "more."
685
+ msgstr ""
686
+ "Migrarea tipurilor de câmp este ușoară, te rog să %surmărești acest tutorial"
687
+ "%s pentru a afla mai multe."
688
+
689
+ #: core/controllers/field_groups.php:347
690
+ msgid "Actions &amp; Filters"
691
+ msgstr "Acţiuni &ampl Filtre"
692
+
693
+ #: core/controllers/field_groups.php:348
694
+ #, php-format
695
+ msgid ""
696
+ "All actions & filters have received a major facelift to make customizing ACF "
697
+ "even easier! Please %sread this guide%s to find the updated naming "
698
+ "convention."
699
+ msgstr ""
700
+ "Toate acțiunile și filtrele au primit o modificare majoră pentru a face "
701
+ "personalizarea ACF chiar mai ușoară! Te rog %scitește acest ghid%s pentru a "
702
+ "găsi convenția actualizată de numire."
703
+
704
+ #: core/controllers/field_groups.php:350
705
+ msgid "Preview draft is now working!"
706
+ msgstr "Previzualizarea schiției nu funcțiionează"
707
+
708
+ #: core/controllers/field_groups.php:351
709
+ msgid "This bug has been squashed along with many other little critters!"
710
+ msgstr "Acest bug a fost zdrobit împreună cu multe alte creature mici!"
711
+
712
+ #: core/controllers/field_groups.php:351
713
+ msgid "See the full changelog"
714
+ msgstr "Vezi toate schimbările"
715
+
716
+ #: core/controllers/field_groups.php:355
717
+ msgid "Important"
718
+ msgstr "Important"
719
+
720
+ #: core/controllers/field_groups.php:357
721
+ msgid "Database Changes"
722
+ msgstr "Modificări la bazele de date"
723
+
724
+ #: core/controllers/field_groups.php:358
725
+ msgid ""
726
+ "Absolutely <strong>no</strong> changes have been made to the database "
727
+ "between versions 3 and 4. This means you can roll back to version 3 without "
728
+ "any issues."
729
+ msgstr ""
730
+ "S-a făcut absolut <strong> nici o </ strong> modificări în baza de date "
731
+ "între versiunile 3 și 4. Aceasta înseamnă că puteți reveni la versiunea 3 "
732
+ "fără probleme."
733
+
734
+ #: core/controllers/field_groups.php:360
735
+ msgid "Potential Issues"
736
+ msgstr "Probleme potențiale"
737
+
738
+ #: core/controllers/field_groups.php:361
739
+ #, php-format
740
+ msgid ""
741
+ "Due to the sizable changes surrounding Add-ons, field types and action/"
742
+ "filters, your website may not operate correctly. It is important that you "
743
+ "read the full %sMigrating from v3 to v4%s guide to view the full list of "
744
+ "changes."
745
+ msgstr ""
746
+ "Datorită modificărilor considerabile din jurul add-on-urilor, tipurilor de "
747
+ "câmp și a acțiunilor / filtrelor, este posibil ca site-ul web să nu "
748
+ "funcționeze corect. Este important să citesti întregul ghid %sMigrând din v3 "
749
+ "la v4%s pentru a vedea lista completă a modificărilor."
750
+
751
+ #: core/controllers/field_groups.php:364
752
+ msgid "Really Important!"
753
+ msgstr "Foarte Important!"
754
+
755
+ #: core/controllers/field_groups.php:364
756
+ #, php-format
757
+ msgid ""
758
+ "If you updated the ACF plugin without prior knowledge of such changes, "
759
+ "please roll back to the latest %sversion 3%s of this plugin."
760
+ msgstr ""
761
+ "Dacă ai actualizat modulul ACF fără cunoașterea prealabilă a acestor "
762
+ "modificări, revino la cea mai recenta %sversiune 3%s din acest modul."
763
+
764
+ #: core/controllers/field_groups.php:369
765
+ msgid "Thank You"
766
+ msgstr "Mulțumesc"
767
+
768
+ #: core/controllers/field_groups.php:370
769
+ msgid ""
770
+ "A <strong>BIG</strong> thank you to everyone who has helped test the version "
771
+ "4 beta and for all the support I have received."
772
+ msgstr ""
773
+ "Un <strong> MARE </strong> mulțumesc tuturor celor care au ajutat la "
774
+ "testarea versiunii 4 beta și pentru tot sprijinul pe care l-am primit."
775
+
776
+ #: core/controllers/field_groups.php:371
777
+ msgid "Without you all, this release would not have been possible!"
778
+ msgstr "Fără voi, această versiune nu ar fi fost posibilă!"
779
+
780
+ #: core/controllers/field_groups.php:375
781
+ msgid "Changelog for"
782
+ msgstr "Modificări pentru"
783
+
784
+ #: core/controllers/field_groups.php:392
785
+ msgid "Learn more"
786
+ msgstr "Află mai multe"
787
+
788
+ #: core/controllers/field_groups.php:398
789
+ msgid "Overview"
790
+ msgstr "Prezentare generală"
791
+
792
+ #: core/controllers/field_groups.php:400
793
+ msgid ""
794
+ "Previously, all Add-ons were unlocked via an activation code (purchased from "
795
+ "the ACF Add-ons store). New to v4, all Add-ons act as separate plugins which "
796
+ "need to be individually downloaded, installed and updated."
797
+ msgstr ""
798
+ "Anterior, toate add-on-urile au fost deblocate printr-un cod de activare "
799
+ "(achiziționat de la magazinul de add-on-uri ACF). Nou pentru v4, toate add-"
800
+ "on-urile funcționează ca module separate, care trebuie să fie descărcate "
801
+ "individual, instalate și actualizate."
802
+
803
+ #: core/controllers/field_groups.php:402
804
+ msgid ""
805
+ "This page will assist you in downloading and installing each available Add-"
806
+ "on."
807
+ msgstr ""
808
+ "Această pagină te va ajuta să descărci și să instalezi fiecare add-on "
809
+ "disponibil."
810
+
811
+ #: core/controllers/field_groups.php:404
812
+ msgid "Available Add-ons"
813
+ msgstr "Add-on-uri disponibile"
814
+
815
+ #: core/controllers/field_groups.php:406
816
+ msgid "The following Add-ons have been detected as activated on this website."
817
+ msgstr ""
818
+ "Următoarele add-on-uri au fost detectate ca activate pe acest site web."
819
+
820
+ #: core/controllers/field_groups.php:419 core/fields/file.php:109
821
+ msgid "Name"
822
+ msgstr "Nume"
823
+
824
+ #: core/controllers/field_groups.php:420
825
+ msgid "Activation Code"
826
+ msgstr "Cod de activare"
827
+
828
+ #: core/controllers/field_groups.php:452
829
+ msgid "Flexible Content"
830
+ msgstr "Conținut flexibil"
831
+
832
+ #: core/controllers/field_groups.php:462
833
+ msgid "Installation"
834
+ msgstr "Instalare"
835
+
836
+ #: core/controllers/field_groups.php:464
837
+ msgid "For each Add-on available, please perform the following:"
838
+ msgstr "Pentru fiecare add-on disponibil, te rog să efectuezi următoarele:"
839
+
840
+ #: core/controllers/field_groups.php:466
841
+ msgid "Download the Add-on plugin (.zip file) to your desktop"
842
+ msgstr "Descarcă modulul Add-on (fișier .zip) pe desktop"
843
+
844
+ #: core/controllers/field_groups.php:467
845
+ #, php-format
846
+ msgid "Navigate to %sPlugins > Add New > Upload%s"
847
+ msgstr "Navighează la %sModule > Adaugă modul > Încărcare modul%s"
848
+
849
+ #: core/controllers/field_groups.php:468
850
+ msgid "Use the uploader to browse, select and install your Add-on (.zip file)"
851
+ msgstr ""
852
+ "Utilizați aplicația de încărcare pentru a răsfoi, selecta și instala Add-on-"
853
+ "ul (fișier .zip)"
854
+
855
+ #: core/controllers/field_groups.php:469
856
+ msgid ""
857
+ "Once the plugin has been uploaded and installed, click the 'Activate Plugin' "
858
+ "link"
859
+ msgstr ""
860
+ "Odată ce modulul a fost încărcat și instalat, fă clic pe link-ul \"Activează"
861
+ "\""
862
+
863
+ #: core/controllers/field_groups.php:470
864
+ msgid "The Add-on is now installed and activated!"
865
+ msgstr "Add-on-ul este acum instalat și activat!"
866
+
867
+ #: core/controllers/field_groups.php:484
868
+ msgid "Awesome. Let's get to work"
869
+ msgstr "Minunat. Să trecem la treabă"
870
+
871
+ #: core/controllers/input.php:63
872
+ msgid "Expand Details"
873
+ msgstr "Extinde delatiile"
874
+
875
+ #: core/controllers/input.php:64
876
+ msgid "Collapse Details"
877
+ msgstr "Restrânge detaliile"
878
+
879
+ #: core/controllers/input.php:67
880
+ msgid "Validation Failed. One or more fields below are required."
881
+ msgstr ""
882
+ "Validarea a esuat. Sunt necesare unul sau mai multe câmpuri de mai jos."
883
+
884
+ #: core/controllers/upgrade.php:77
885
+ msgid "Upgrade"
886
+ msgstr "Actualizare"
887
+
888
+ #: core/controllers/upgrade.php:599
889
+ msgid "Modifying field group options 'show on page'"
890
+ msgstr "Modificarea opțiunilor grupului de câmp \"afișare pe pagină\""
891
+
892
+ #: core/controllers/upgrade.php:653
893
+ msgid "Modifying field option 'taxonomy'"
894
+ msgstr "Modificarea opțiunii de câmp \"taxonomie\""
895
+
896
+ #: core/controllers/upgrade.php:750
897
+ msgid "Moving user custom fields from wp_options to wp_usermeta"
898
+ msgstr ""
899
+ "Mutarea câmpurilor personalizate ale utilizatorilor de la wp_options la "
900
+ "wp_usermeta"
901
+
902
+ #: core/fields/_base.php:124 core/views/meta_box_location.php:74
903
+ msgid "Basic"
904
+ msgstr "De Bază"
905
+
906
+ #: core/fields/checkbox.php:19 core/fields/taxonomy.php:475
907
+ msgid "Checkbox"
908
+ msgstr "Caseta de bifat"
909
+
910
+ #: core/fields/checkbox.php:20 core/fields/radio.php:19
911
+ #: core/fields/select.php:19 core/fields/true_false.php:20
912
+ msgid "Choice"
913
+ msgstr "Alegere"
914
+
915
+ #: core/fields/checkbox.php:146 core/fields/radio.php:147
916
+ #: core/fields/select.php:177
917
+ msgid "Choices"
918
+ msgstr "Alegeri"
919
+
920
+ #: core/fields/checkbox.php:147 core/fields/select.php:178
921
+ msgid "Enter each choice on a new line."
922
+ msgstr "Introdu fiecare alegere pe o linie nouă."
923
+
924
+ #: core/fields/checkbox.php:148 core/fields/select.php:179
925
+ msgid "For more control, you may specify both a value and label like this:"
926
+ msgstr ""
927
+ "Pentru mai mult control, poți specifica atât o valoare, cât și o etichetă, "
928
+ "astfel:"
929
+
930
+ #: core/fields/checkbox.php:149 core/fields/radio.php:153
931
+ #: core/fields/select.php:180
932
+ msgid "red : Red"
933
+ msgstr "roșu : Roșu"
934
+
935
+ #: core/fields/checkbox.php:149 core/fields/radio.php:154
936
+ #: core/fields/select.php:180
937
+ msgid "blue : Blue"
938
+ msgstr "albastru : Albastru"
939
+
940
+ #: core/fields/checkbox.php:166 core/fields/color_picker.php:89
941
+ #: core/fields/email.php:106 core/fields/number.php:116
942
+ #: core/fields/radio.php:196 core/fields/select.php:197
943
+ #: core/fields/text.php:116 core/fields/textarea.php:103
944
+ #: core/fields/true_false.php:94 core/fields/wysiwyg.php:286
945
+ msgid "Default Value"
946
+ msgstr "Valoare implicită"
947
+
948
+ #: core/fields/checkbox.php:167 core/fields/select.php:198
949
+ msgid "Enter each default value on a new line"
950
+ msgstr "Introdu fiecare valoare implicită pe o linie nouă"
951
+
952
+ #: core/fields/checkbox.php:183 core/fields/message.php:20
953
+ #: core/fields/radio.php:212 core/fields/tab.php:20
954
+ msgid "Layout"
955
+ msgstr "Amplasare"
956
+
957
+ #: core/fields/checkbox.php:194 core/fields/radio.php:223
958
+ msgid "Vertical"
959
+ msgstr "Vertical"
960
+
961
+ #: core/fields/checkbox.php:195 core/fields/radio.php:224
962
+ msgid "Horizontal"
963
+ msgstr "Orizontal"
964
+
965
+ #: core/fields/color_picker.php:19
966
+ msgid "Color Picker"
967
+ msgstr "Selector de culoare"
968
+
969
+ #: core/fields/color_picker.php:20 core/fields/date_picker/date_picker.php:20
970
+ #: core/fields/google-map.php:19
971
+ msgid "jQuery"
972
+ msgstr "jQuery"
973
+
974
+ #: core/fields/date_picker/date_picker.php:19
975
+ msgid "Date Picker"
976
+ msgstr "Selector de dată"
977
+
978
+ #: core/fields/date_picker/date_picker.php:55
979
+ msgid "Done"
980
+ msgstr "Terminat"
981
+
982
+ #: core/fields/date_picker/date_picker.php:56
983
+ msgid "Today"
984
+ msgstr "Astăzi"
985
+
986
+ #: core/fields/date_picker/date_picker.php:59
987
+ msgid "Show a different month"
988
+ msgstr "Arată o lună diferită"
989
+
990
+ #: core/fields/date_picker/date_picker.php:126
991
+ msgid "Save format"
992
+ msgstr "Salvează formatul"
993
+
994
+ #: core/fields/date_picker/date_picker.php:127
995
+ msgid ""
996
+ "This format will determine the value saved to the database and returned via "
997
+ "the API"
998
+ msgstr ""
999
+ "Acest format va determina valoarea salvată în baza de date și va fi "
1000
+ "returnată prin API"
1001
+
1002
+ #: core/fields/date_picker/date_picker.php:128
1003
+ msgid "\"yymmdd\" is the most versatile save format. Read more about"
1004
+ msgstr ""
1005
+ "\"yymmdd\" este cel mai versatil format de salvare. Citiți mai multe despre"
1006
+
1007
+ #: core/fields/date_picker/date_picker.php:128
1008
+ #: core/fields/date_picker/date_picker.php:144
1009
+ msgid "jQuery date formats"
1010
+ msgstr "Format dată jQuery"
1011
+
1012
+ #: core/fields/date_picker/date_picker.php:142
1013
+ msgid "Display format"
1014
+ msgstr "Format afișare"
1015
+
1016
+ #: core/fields/date_picker/date_picker.php:143
1017
+ msgid "This format will be seen by the user when entering a value"
1018
+ msgstr ""
1019
+ "Acest format va fi văzut de către utilizator la introducerea unei valori"
1020
+
1021
+ #: core/fields/date_picker/date_picker.php:144
1022
+ msgid ""
1023
+ "\"dd/mm/yy\" or \"mm/dd/yy\" are the most used display formats. Read more "
1024
+ "about"
1025
+ msgstr ""
1026
+ "\"dd/mm/yy\" sau \"mm/dd/yy\" sunt cele mai utilizate formate de afișare. "
1027
+ "Citiți mai multe despre"
1028
+
1029
+ #: core/fields/date_picker/date_picker.php:158
1030
+ msgid "Week Starts On"
1031
+ msgstr "Săptămâna începe"
1032
+
1033
+ #: core/fields/dummy.php:19
1034
+ msgid "Dummy"
1035
+ msgstr "Fictiv"
1036
+
1037
+ #: core/fields/email.php:19
1038
+ msgid "Email"
1039
+ msgstr "Email"
1040
+
1041
+ #: core/fields/email.php:107 core/fields/number.php:117
1042
+ #: core/fields/text.php:117 core/fields/textarea.php:104
1043
+ #: core/fields/wysiwyg.php:287
1044
+ msgid "Appears when creating a new post"
1045
+ msgstr "Apare atunci când creezi o postare nouă"
1046
+
1047
+ #: core/fields/email.php:123 core/fields/number.php:133
1048
+ #: core/fields/password.php:105 core/fields/text.php:131
1049
+ #: core/fields/textarea.php:118
1050
+ msgid "Placeholder Text"
1051
+ msgstr "Text Substitut"
1052
+
1053
+ #: core/fields/email.php:124 core/fields/number.php:134
1054
+ #: core/fields/password.php:106 core/fields/text.php:132
1055
+ #: core/fields/textarea.php:119
1056
+ msgid "Appears within the input"
1057
+ msgstr "Apare în intrare"
1058
+
1059
+ #: core/fields/email.php:138 core/fields/number.php:148
1060
+ #: core/fields/password.php:120 core/fields/text.php:146
1061
+ msgid "Prepend"
1062
+ msgstr "Adăugat inainte"
1063
+
1064
+ #: core/fields/email.php:139 core/fields/number.php:149
1065
+ #: core/fields/password.php:121 core/fields/text.php:147
1066
+ msgid "Appears before the input"
1067
+ msgstr "Apare înainte de intrare"
1068
+
1069
+ #: core/fields/email.php:153 core/fields/number.php:163
1070
+ #: core/fields/password.php:135 core/fields/text.php:161
1071
+ msgid "Append"
1072
+ msgstr "Adăugat după"
1073
+
1074
+ #: core/fields/email.php:154 core/fields/number.php:164
1075
+ #: core/fields/password.php:136 core/fields/text.php:162
1076
+ msgid "Appears after the input"
1077
+ msgstr "Apare după intrare"
1078
+
1079
+ #: core/fields/file.php:19
1080
+ msgid "File"
1081
+ msgstr "Fişier"
1082
+
1083
+ #: core/fields/file.php:20 core/fields/image.php:20 core/fields/wysiwyg.php:20
1084
+ msgid "Content"
1085
+ msgstr "Conţinut"
1086
+
1087
+ #: core/fields/file.php:26
1088
+ msgid "Select File"
1089
+ msgstr "Selectează Fișier"
1090
+
1091
+ #: core/fields/file.php:27
1092
+ msgid "Edit File"
1093
+ msgstr "Editează fișierul"
1094
+
1095
+ #: core/fields/file.php:28
1096
+ msgid "Update File"
1097
+ msgstr "Actualizează fișierul"
1098
+
1099
+ #: core/fields/file.php:29 core/fields/image.php:30
1100
+ msgid "Uploaded to this post"
1101
+ msgstr "Încărcat la această postare"
1102
+
1103
+ #: core/fields/file.php:113
1104
+ msgid "Size"
1105
+ msgstr "Mărimea"
1106
+
1107
+ #: core/fields/file.php:123
1108
+ msgid "No File Selected"
1109
+ msgstr "Nici un fișier selectat"
1110
+
1111
+ #: core/fields/file.php:123
1112
+ msgid "Add File"
1113
+ msgstr "Adaugă fișier"
1114
+
1115
+ #: core/fields/file.php:153 core/fields/image.php:125
1116
+ #: core/fields/taxonomy.php:523
1117
+ msgid "Return Value"
1118
+ msgstr "Valoarea de returnare"
1119
+
1120
+ #: core/fields/file.php:164
1121
+ msgid "File Object"
1122
+ msgstr "Obiectul fișier"
1123
+
1124
+ #: core/fields/file.php:165
1125
+ msgid "File URL"
1126
+ msgstr "URL Obiectul fișier"
1127
+
1128
+ #: core/fields/file.php:166
1129
+ msgid "File ID"
1130
+ msgstr "URL fișier"
1131
+
1132
+ #: core/fields/file.php:175 core/fields/image.php:165
1133
+ msgid "Library"
1134
+ msgstr "Bibliotecă"
1135
+
1136
+ #: core/fields/file.php:187 core/fields/image.php:178
1137
+ msgid "Uploaded to post"
1138
+ msgstr "Încărcat la post"
1139
+
1140
+ #: core/fields/google-map.php:18
1141
+ msgid "Google Map"
1142
+ msgstr "Harta Google"
1143
+
1144
+ #: core/fields/google-map.php:33
1145
+ msgid "Locating"
1146
+ msgstr "Localizarea"
1147
+
1148
+ #: core/fields/google-map.php:34
1149
+ msgid "Sorry, this browser does not support geolocation"
1150
+ msgstr "Ne pare rău, acest browser nu acceptă localizarea geografică"
1151
+
1152
+ #: core/fields/google-map.php:120
1153
+ msgid "Clear location"
1154
+ msgstr "Șterge locația"
1155
+
1156
+ #: core/fields/google-map.php:125
1157
+ msgid "Find current location"
1158
+ msgstr "Găsește locația curentă"
1159
+
1160
+ #: core/fields/google-map.php:126
1161
+ msgid "Search for address..."
1162
+ msgstr "Caută adresa ..."
1163
+
1164
+ #: core/fields/google-map.php:162
1165
+ msgid "Center"
1166
+ msgstr "Centru"
1167
+
1168
+ #: core/fields/google-map.php:163
1169
+ msgid "Center the initial map"
1170
+ msgstr "Centrarea hărții inițiale"
1171
+
1172
+ #: core/fields/google-map.php:199
1173
+ msgid "Zoom"
1174
+ msgstr "Zoom"
1175
+
1176
+ #: core/fields/google-map.php:200
1177
+ msgid "Set the initial zoom level"
1178
+ msgstr "Setează nivelul de zoom inițial"
1179
+
1180
+ #: core/fields/google-map.php:217
1181
+ msgid "Height"
1182
+ msgstr "Înălţime"
1183
+
1184
+ #: core/fields/google-map.php:218
1185
+ msgid "Customise the map height"
1186
+ msgstr "Personalizează înălțimea hărții"
1187
+
1188
+ #: core/fields/image.php:19
1189
+ msgid "Image"
1190
+ msgstr "Imagine"
1191
+
1192
+ #: core/fields/image.php:27
1193
+ msgid "Select Image"
1194
+ msgstr "Setează Imagine"
1195
+
1196
+ #: core/fields/image.php:28
1197
+ msgid "Edit Image"
1198
+ msgstr "Editează imaginea"
1199
+
1200
+ #: core/fields/image.php:29
1201
+ msgid "Update Image"
1202
+ msgstr "Actualizează imaginea"
1203
+
1204
+ #: core/fields/image.php:90
1205
+ msgid "Remove"
1206
+ msgstr "Elimină"
1207
+
1208
+ #: core/fields/image.php:91 core/views/meta_box_fields.php:108
1209
+ msgid "Edit"
1210
+ msgstr "Editează"
1211
+
1212
+ #: core/fields/image.php:97
1213
+ msgid "No image selected"
1214
+ msgstr "Nu a fost selectată nici o imagine"
1215
+
1216
+ #: core/fields/image.php:97
1217
+ msgid "Add Image"
1218
+ msgstr "Adaugă imagine"
1219
+
1220
+ #: core/fields/image.php:126 core/fields/relationship.php:563
1221
+ msgid "Specify the returned value on front end"
1222
+ msgstr "Specifică valoarea returnată pe față"
1223
+
1224
+ #: core/fields/image.php:136
1225
+ msgid "Image Object"
1226
+ msgstr "Obiect Imagine"
1227
+
1228
+ #: core/fields/image.php:137
1229
+ msgid "Image URL"
1230
+ msgstr "URL Imagine"
1231
+
1232
+ #: core/fields/image.php:138
1233
+ msgid "Image ID"
1234
+ msgstr "ID Imagine"
1235
+
1236
+ #: core/fields/image.php:146
1237
+ msgid "Preview Size"
1238
+ msgstr "Dimensiunea previzualizării"
1239
+
1240
+ #: core/fields/image.php:147
1241
+ msgid "Shown when entering data"
1242
+ msgstr "Se afișează la introducerea datelor"
1243
+
1244
+ #: core/fields/image.php:166
1245
+ msgid "Limit the media library choice"
1246
+ msgstr "Limitează alegerea bibliotecii media"
1247
+
1248
+ #: core/fields/message.php:19 core/fields/message.php:70
1249
+ #: core/fields/true_false.php:79
1250
+ msgid "Message"
1251
+ msgstr "Mesaj"
1252
+
1253
+ #: core/fields/message.php:71
1254
+ msgid "Text &amp; HTML entered here will appear inline with the fields"
1255
+ msgstr ""
1256
+ "Textul &amp; codul HTML introduse aici vor apărea în linie cu câmpurile"
1257
+
1258
+ #: core/fields/message.php:72
1259
+ msgid "Please note that all text will first be passed through the wp function "
1260
+ msgstr ""
1261
+ "Reține că tot textul va fi trecut mai întâi prin intermediul funcției wp"
1262
+
1263
+ #: core/fields/number.php:19
1264
+ msgid "Number"
1265
+ msgstr "Număr"
1266
+
1267
+ #: core/fields/number.php:178
1268
+ msgid "Minimum Value"
1269
+ msgstr "Valoarea minimă"
1270
+
1271
+ #: core/fields/number.php:194
1272
+ msgid "Maximum Value"
1273
+ msgstr "Valoare maximă"
1274
+
1275
+ #: core/fields/number.php:210
1276
+ msgid "Step Size"
1277
+ msgstr "Dimensiunea pasului"
1278
+
1279
+ #: core/fields/page_link.php:18
1280
+ msgid "Page Link"
1281
+ msgstr "Link de pagină"
1282
+
1283
+ #: core/fields/page_link.php:19 core/fields/post_object.php:19
1284
+ #: core/fields/relationship.php:19 core/fields/taxonomy.php:19
1285
+ #: core/fields/user.php:19
1286
+ msgid "Relational"
1287
+ msgstr "Relațional"
1288
+
1289
+ #: core/fields/page_link.php:103 core/fields/post_object.php:280
1290
+ #: core/fields/relationship.php:582 core/fields/relationship.php:661
1291
+ #: core/views/meta_box_location.php:75
1292
+ msgid "Post Type"
1293
+ msgstr "Tip post"
1294
+
1295
+ #: core/fields/page_link.php:127 core/fields/post_object.php:329
1296
+ #: core/fields/select.php:214 core/fields/taxonomy.php:489
1297
+ #: core/fields/user.php:322
1298
+ msgid "Allow Null?"
1299
+ msgstr "Permite Null?"
1300
+
1301
+ #: core/fields/page_link.php:148 core/fields/post_object.php:350
1302
+ #: core/fields/select.php:233
1303
+ msgid "Select multiple values?"
1304
+ msgstr "Selectează mai multe valori?"
1305
+
1306
+ #: core/fields/password.php:19
1307
+ msgid "Password"
1308
+ msgstr "Parola"
1309
+
1310
+ #: core/fields/post_object.php:18
1311
+ msgid "Post Object"
1312
+ msgstr "Obiect Post"
1313
+
1314
+ #: core/fields/post_object.php:194 core/fields/relationship.php:170
1315
+ msgid "(no title)"
1316
+ msgstr "(fără titlu)"
1317
+
1318
+ #: core/fields/post_object.php:304 core/fields/relationship.php:606
1319
+ msgid "Filter from Taxonomy"
1320
+ msgstr "Filtrează din taxonomie"
1321
+
1322
+ #: core/fields/radio.php:18
1323
+ msgid "Radio Button"
1324
+ msgstr "Buton de radio"
1325
+
1326
+ #: core/fields/radio.php:105 core/views/meta_box_location.php:91
1327
+ msgid "Other"
1328
+ msgstr "Altele"
1329
+
1330
+ #: core/fields/radio.php:148
1331
+ msgid "Enter your choices one per line"
1332
+ msgstr "Introduce alegerile una pe rând"
1333
+
1334
+ #: core/fields/radio.php:150
1335
+ msgid "Red"
1336
+ msgstr "Roșu"
1337
+
1338
+ #: core/fields/radio.php:151
1339
+ msgid "Blue"
1340
+ msgstr "Albastru"
1341
+
1342
+ #: core/fields/radio.php:175
1343
+ msgid "Add 'other' choice to allow for custom values"
1344
+ msgstr "Adaugă o altă opțiune pentru a permite valori personalizate"
1345
+
1346
+ #: core/fields/radio.php:187
1347
+ msgid "Save 'other' values to the field's choices"
1348
+ msgstr "Salvează valorile \"altele\" la opțiunile câmpului"
1349
+
1350
+ #: core/fields/relationship.php:18
1351
+ msgid "Relationship"
1352
+ msgstr "Relaţie"
1353
+
1354
+ #: core/fields/relationship.php:29
1355
+ msgid "Maximum values reached ( {max} values )"
1356
+ msgstr "Valorile maxime atinse ({max} valori)"
1357
+
1358
+ #: core/fields/relationship.php:457
1359
+ msgid "Search..."
1360
+ msgstr "Căutare..."
1361
+
1362
+ #: core/fields/relationship.php:468
1363
+ msgid "Filter by post type"
1364
+ msgstr "Filtrează după tipul postării"
1365
+
1366
+ #: core/fields/relationship.php:562
1367
+ msgid "Return Format"
1368
+ msgstr "Format Returnat"
1369
+
1370
+ #: core/fields/relationship.php:573
1371
+ msgid "Post Objects"
1372
+ msgstr "Obiecte post"
1373
+
1374
+ #: core/fields/relationship.php:574
1375
+ msgid "Post IDs"
1376
+ msgstr "ID-uri post"
1377
+
1378
+ #: core/fields/relationship.php:640
1379
+ msgid "Search"
1380
+ msgstr "Căutare"
1381
+
1382
+ #: core/fields/relationship.php:641
1383
+ msgid "Post Type Select"
1384
+ msgstr "Tip post Select"
1385
+
1386
+ #: core/fields/relationship.php:649
1387
+ msgid "Elements"
1388
+ msgstr "element"
1389
+
1390
+ #: core/fields/relationship.php:650
1391
+ msgid "Selected elements will be displayed in each result"
1392
+ msgstr "Elementele selectate vor fi afișate în fiecare rezultat"
1393
+
1394
+ #: core/fields/relationship.php:659 core/views/meta_box_options.php:106
1395
+ msgid "Featured Image"
1396
+ msgstr "Imagine recomandată"
1397
+
1398
+ #: core/fields/relationship.php:660
1399
+ msgid "Post Title"
1400
+ msgstr "Titlu post"
1401
+
1402
+ #: core/fields/relationship.php:672
1403
+ msgid "Maximum posts"
1404
+ msgstr "Postări maxime"
1405
+
1406
+ #: core/fields/select.php:18 core/fields/select.php:109
1407
+ #: core/fields/taxonomy.php:480 core/fields/user.php:313
1408
+ msgid "Select"
1409
+ msgstr "Select"
1410
+
1411
+ #: core/fields/tab.php:19
1412
+ msgid "Tab"
1413
+ msgstr "Tab"
1414
+
1415
+ #: core/fields/tab.php:68
1416
+ msgid ""
1417
+ "Use \"Tab Fields\" to better organize your edit screen by grouping your "
1418
+ "fields together under separate tab headings."
1419
+ msgstr ""
1420
+ "Utilizează \"Câmpuri Tab\" pentru a organiza mai bine ecranul de editare, "
1421
+ "grupându-vă câmpurile împreună sub titluri separate de file."
1422
+
1423
+ #: core/fields/tab.php:69
1424
+ msgid ""
1425
+ "All the fields following this \"tab field\" (or until another \"tab field\" "
1426
+ "is defined) will be grouped together."
1427
+ msgstr ""
1428
+ "Toate câmpurile care urmează acestui \"câmp tab\" (sau până când este "
1429
+ "definit un alt \"câmp tab\") vor fi grupate împreună."
1430
+
1431
+ #: core/fields/tab.php:70
1432
+ msgid "Use multiple tabs to divide your fields into sections."
1433
+ msgstr "Utilizează mai multe file pentru a împărți câmpurile în secțiuni."
1434
+
1435
+ #: core/fields/taxonomy.php:18 core/fields/taxonomy.php:430
1436
+ msgid "Taxonomy"
1437
+ msgstr "Taxonomie"
1438
+
1439
+ #: core/fields/taxonomy.php:374 core/fields/taxonomy.php:383
1440
+ msgid "None"
1441
+ msgstr "Nici unul"
1442
+
1443
+ #: core/fields/taxonomy.php:464 core/fields/user.php:298
1444
+ #: core/views/meta_box_fields.php:77 core/views/meta_box_fields.php:158
1445
+ msgid "Field Type"
1446
+ msgstr "Tip de câmp"
1447
+
1448
+ #: core/fields/taxonomy.php:474 core/fields/user.php:307
1449
+ msgid "Multiple Values"
1450
+ msgstr "Valori multiple"
1451
+
1452
+ #: core/fields/taxonomy.php:476 core/fields/user.php:309
1453
+ msgid "Multi Select"
1454
+ msgstr "Selectare multiplă"
1455
+
1456
+ #: core/fields/taxonomy.php:478 core/fields/user.php:311
1457
+ msgid "Single Value"
1458
+ msgstr "Valoare unică"
1459
+
1460
+ #: core/fields/taxonomy.php:479
1461
+ msgid "Radio Buttons"
1462
+ msgstr "Butoane radio"
1463
+
1464
+ #: core/fields/taxonomy.php:508
1465
+ msgid "Load & Save Terms to Post"
1466
+ msgstr "Încarcă și salvează termeni pentru a posta"
1467
+
1468
+ #: core/fields/taxonomy.php:516
1469
+ msgid ""
1470
+ "Load value based on the post's terms and update the post's terms on save"
1471
+ msgstr ""
1472
+ "Încarcă valoarea în funcție de termenii postării și actualizați termenii "
1473
+ "postării la salvare"
1474
+
1475
+ #: core/fields/taxonomy.php:533
1476
+ msgid "Term Object"
1477
+ msgstr "Obiect termen"
1478
+
1479
+ #: core/fields/taxonomy.php:534
1480
+ msgid "Term ID"
1481
+ msgstr "ID Termen"
1482
+
1483
+ #: core/fields/text.php:19
1484
+ msgid "Text"
1485
+ msgstr "Text"
1486
+
1487
+ #: core/fields/text.php:176 core/fields/textarea.php:164
1488
+ msgid "Formatting"
1489
+ msgstr "Formatare"
1490
+
1491
+ #: core/fields/text.php:177 core/fields/textarea.php:165
1492
+ msgid "Affects value on front end"
1493
+ msgstr "Afectează valoarea la capătul frontal"
1494
+
1495
+ #: core/fields/text.php:186 core/fields/textarea.php:174
1496
+ msgid "No formatting"
1497
+ msgstr "Nici o formatare"
1498
+
1499
+ #: core/fields/text.php:187 core/fields/textarea.php:176
1500
+ msgid "Convert HTML into tags"
1501
+ msgstr "Conversia HTML în etichete"
1502
+
1503
+ #: core/fields/text.php:195 core/fields/textarea.php:133
1504
+ msgid "Character Limit"
1505
+ msgstr "Limita de caractere"
1506
+
1507
+ #: core/fields/text.php:196 core/fields/textarea.php:134
1508
+ msgid "Leave blank for no limit"
1509
+ msgstr "Lasă necompletat pentru nici o limită"
1510
+
1511
+ #: core/fields/textarea.php:19
1512
+ msgid "Text Area"
1513
+ msgstr "Zonă de text"
1514
+
1515
+ #: core/fields/textarea.php:148
1516
+ msgid "Rows"
1517
+ msgstr "Rânduri"
1518
+
1519
+ #: core/fields/textarea.php:149
1520
+ msgid "Sets the textarea height"
1521
+ msgstr "Setează înălțimea textarea"
1522
+
1523
+ #: core/fields/textarea.php:175
1524
+ msgid "Convert new lines into &lt;br /&gt; tags"
1525
+ msgstr "Convertește linii noi în taguri &lt;br /&gt;"
1526
+
1527
+ #: core/fields/true_false.php:19
1528
+ msgid "True / False"
1529
+ msgstr "Adevărat / Fals"
1530
+
1531
+ #: core/fields/true_false.php:80
1532
+ msgid "eg. Show extra content"
1533
+ msgstr "ex. Afișează conținut suplimentar"
1534
+
1535
+ #: core/fields/user.php:18 core/views/meta_box_location.php:94
1536
+ msgid "User"
1537
+ msgstr "Utilizator"
1538
+
1539
+ #: core/fields/user.php:271
1540
+ msgid "Filter by role"
1541
+ msgstr "Filtrează după rol"
1542
+
1543
+ #: core/fields/wysiwyg.php:19
1544
+ msgid "Wysiwyg Editor"
1545
+ msgstr "Editor WYSIWYG"
1546
+
1547
+ #: core/fields/wysiwyg.php:301
1548
+ msgid "Toolbar"
1549
+ msgstr "Bara de instrumente"
1550
+
1551
+ #: core/fields/wysiwyg.php:333
1552
+ msgid "Show Media Upload Buttons?"
1553
+ msgstr "Afișezi butoanele de încărcare media?"
1554
+
1555
+ #: core/views/meta_box_fields.php:24
1556
+ msgid "New Field"
1557
+ msgstr "Câmp nou"
1558
+
1559
+ #: core/views/meta_box_fields.php:58
1560
+ msgid "Field type does not exist"
1561
+ msgstr "Nu există tipul câmpului"
1562
+
1563
+ #: core/views/meta_box_fields.php:74
1564
+ msgid "Field Order"
1565
+ msgstr "Ordine Câmpuri"
1566
+
1567
+ #: core/views/meta_box_fields.php:75 core/views/meta_box_fields.php:126
1568
+ msgid "Field Label"
1569
+ msgstr "Etichetă câmp"
1570
+
1571
+ #: core/views/meta_box_fields.php:76 core/views/meta_box_fields.php:142
1572
+ msgid "Field Name"
1573
+ msgstr "Numele câmpului"
1574
+
1575
+ #: core/views/meta_box_fields.php:78
1576
+ msgid "Field Key"
1577
+ msgstr "Cheie câmp"
1578
+
1579
+ #: core/views/meta_box_fields.php:90
1580
+ msgid ""
1581
+ "No fields. Click the <strong>+ Add Field</strong> button to create your "
1582
+ "first field."
1583
+ msgstr ""
1584
+ "Nu există câmpuri. Fă clic pe butonul <strong> + Adaugă câmp </strong> "
1585
+ "pentru a crea primul câmp."
1586
+
1587
+ #: core/views/meta_box_fields.php:105 core/views/meta_box_fields.php:108
1588
+ msgid "Edit this Field"
1589
+ msgstr "Modifică acest câmp"
1590
+
1591
+ #: core/views/meta_box_fields.php:109
1592
+ msgid "Duplicate this Field"
1593
+ msgstr "Duplichează acest câmp"
1594
+
1595
+ #: core/views/meta_box_fields.php:109
1596
+ msgid "Duplicate"
1597
+ msgstr "Duplichează"
1598
+
1599
+ #: core/views/meta_box_fields.php:110
1600
+ msgid "Delete this Field"
1601
+ msgstr "Șterge acest câmp"
1602
+
1603
+ #: core/views/meta_box_fields.php:110
1604
+ msgid "Delete"
1605
+ msgstr "Șterge"
1606
+
1607
+ #: core/views/meta_box_fields.php:127
1608
+ msgid "This is the name which will appear on the EDIT page"
1609
+ msgstr "Acesta este numele care va apărea pe pagina Editează"
1610
+
1611
+ #: core/views/meta_box_fields.php:143
1612
+ msgid "Single word, no spaces. Underscores and dashes allowed"
1613
+ msgstr "Un singur cuvânt, fără spații. Subliniere și liniuțe permisă"
1614
+
1615
+ #: core/views/meta_box_fields.php:172
1616
+ msgid "Field Instructions"
1617
+ msgstr "Instrucțiuni Câmp"
1618
+
1619
+ #: core/views/meta_box_fields.php:173
1620
+ msgid "Instructions for authors. Shown when submitting data"
1621
+ msgstr "Instrucțiuni pentru autori. Se afișează la trimiterea datelor"
1622
+
1623
+ #: core/views/meta_box_fields.php:186
1624
+ msgid "Required?"
1625
+ msgstr "Necesar?"
1626
+
1627
+ #: core/views/meta_box_fields.php:209
1628
+ msgid "Conditional Logic"
1629
+ msgstr "Condiționalitate logică"
1630
+
1631
+ #: core/views/meta_box_fields.php:260 core/views/meta_box_location.php:117
1632
+ msgid "is equal to"
1633
+ msgstr "e egal cu"
1634
+
1635
+ #: core/views/meta_box_fields.php:261 core/views/meta_box_location.php:118
1636
+ msgid "is not equal to"
1637
+ msgstr "nu e egal cu"
1638
+
1639
+ #: core/views/meta_box_fields.php:279
1640
+ msgid "Show this field when"
1641
+ msgstr "Afișează acest câmp când"
1642
+
1643
+ #: core/views/meta_box_fields.php:285
1644
+ msgid "all"
1645
+ msgstr "toate"
1646
+
1647
+ #: core/views/meta_box_fields.php:286
1648
+ msgid "any"
1649
+ msgstr "orice"
1650
+
1651
+ #: core/views/meta_box_fields.php:289
1652
+ msgid "these rules are met"
1653
+ msgstr "aceste reguli sunt îndeplinite"
1654
+
1655
+ #: core/views/meta_box_fields.php:303
1656
+ msgid "Close Field"
1657
+ msgstr "Închide câmpul"
1658
+
1659
+ #: core/views/meta_box_fields.php:316
1660
+ msgid "Drag and drop to reorder"
1661
+ msgstr "Trage și plasează pentru a reordona"
1662
+
1663
+ #: core/views/meta_box_fields.php:317
1664
+ msgid "+ Add Field"
1665
+ msgstr "+ Adaugă câmp"
1666
+
1667
+ #: core/views/meta_box_location.php:48
1668
+ msgid "Rules"
1669
+ msgstr "Reguli"
1670
+
1671
+ #: core/views/meta_box_location.php:49
1672
+ msgid ""
1673
+ "Create a set of rules to determine which edit screens will use these "
1674
+ "advanced custom fields"
1675
+ msgstr ""
1676
+ "Creează un set de reguli pentru a determina ce ecrane de editare vor utiliza "
1677
+ "aceste câmpuri personalizate avansate"
1678
+
1679
+ #: core/views/meta_box_location.php:60
1680
+ msgid "Show this field group if"
1681
+ msgstr "Afișează acest grup de câmpuri dacă"
1682
+
1683
+ #: core/views/meta_box_location.php:76
1684
+ msgid "Logged in User Type"
1685
+ msgstr "Tip de Utilizator Conectat"
1686
+
1687
+ #: core/views/meta_box_location.php:78 core/views/meta_box_location.php:79
1688
+ msgid "Post"
1689
+ msgstr "Post"
1690
+
1691
+ #: core/views/meta_box_location.php:80
1692
+ msgid "Post Category"
1693
+ msgstr "Categorie Post"
1694
+
1695
+ #: core/views/meta_box_location.php:81
1696
+ msgid "Post Format"
1697
+ msgstr "Format Post"
1698
+
1699
+ #: core/views/meta_box_location.php:82
1700
+ msgid "Post Status"
1701
+ msgstr "Status Post"
1702
+
1703
+ #: core/views/meta_box_location.php:83
1704
+ msgid "Post Taxonomy"
1705
+ msgstr "Taxonomie Post"
1706
+
1707
+ #: core/views/meta_box_location.php:85 core/views/meta_box_location.php:86
1708
+ msgid "Page"
1709
+ msgstr "Pagină"
1710
+
1711
+ #: core/views/meta_box_location.php:87
1712
+ msgid "Page Type"
1713
+ msgstr "Tip Pagină"
1714
+
1715
+ #: core/views/meta_box_location.php:88
1716
+ msgid "Page Parent"
1717
+ msgstr "Pagină Părinte"
1718
+
1719
+ #: core/views/meta_box_location.php:89
1720
+ msgid "Page Template"
1721
+ msgstr "Tipar Pagină"
1722
+
1723
+ #: core/views/meta_box_location.php:92
1724
+ msgid "Attachment"
1725
+ msgstr "Atașament"
1726
+
1727
+ #: core/views/meta_box_location.php:93
1728
+ msgid "Taxonomy Term"
1729
+ msgstr "Termen Taxonomie"
1730
+
1731
+ #: core/views/meta_box_location.php:146
1732
+ msgid "and"
1733
+ msgstr "și"
1734
+
1735
+ #: core/views/meta_box_location.php:161
1736
+ msgid "Add rule group"
1737
+ msgstr "Adaugă grup de reguli"
1738
+
1739
+ #: core/views/meta_box_options.php:25
1740
+ msgid "Order No."
1741
+ msgstr "Ordine Nr."
1742
+
1743
+ #: core/views/meta_box_options.php:26
1744
+ msgid "Field groups are created in order <br />from lowest to highest"
1745
+ msgstr ""
1746
+ "Grupurile de câmpuri sunt create în ordine <br />de la cel mai mic la cel "
1747
+ "mai înalt"
1748
+
1749
+ #: core/views/meta_box_options.php:42
1750
+ msgid "Position"
1751
+ msgstr "Poziţie"
1752
+
1753
+ #: core/views/meta_box_options.php:52
1754
+ msgid "High (after title)"
1755
+ msgstr "Mare (după titlu)"
1756
+
1757
+ #: core/views/meta_box_options.php:53
1758
+ msgid "Normal (after content)"
1759
+ msgstr "Normal (după conținut)"
1760
+
1761
+ #: core/views/meta_box_options.php:54
1762
+ msgid "Side"
1763
+ msgstr "Latură"
1764
+
1765
+ #: core/views/meta_box_options.php:64
1766
+ msgid "Style"
1767
+ msgstr "Stil"
1768
+
1769
+ #: core/views/meta_box_options.php:74
1770
+ msgid "Seamless (no metabox)"
1771
+ msgstr "Fără sudură (fără metabox)"
1772
+
1773
+ #: core/views/meta_box_options.php:75
1774
+ msgid "Standard (WP metabox)"
1775
+ msgstr "Standard (metabox WP)"
1776
+
1777
+ #: core/views/meta_box_options.php:84
1778
+ msgid "Hide on screen"
1779
+ msgstr "Ascunde pe ecran"
1780
+
1781
+ #: core/views/meta_box_options.php:85
1782
+ msgid "<b>Select</b> items to <b>hide</b> them from the edit screen"
1783
+ msgstr ""
1784
+ "<b>Selectează</b> elementele pentru a le <b>ascunde</b> din ecranul de "
1785
+ "editare"
1786
+
1787
+ #: core/views/meta_box_options.php:86
1788
+ msgid ""
1789
+ "If multiple field groups appear on an edit screen, the first field group's "
1790
+ "options will be used. (the one with the lowest order number)"
1791
+ msgstr ""
1792
+ "Dacă pe un ecran de editare apar mai multe grupuri de câmpuri, vor fi "
1793
+ "utilizate opțiunile primului grup de câmp. (cel cu cel mai mic număr de "
1794
+ "ordine)"
1795
+
1796
+ #: core/views/meta_box_options.php:96
1797
+ msgid "Permalink"
1798
+ msgstr "Legături permanente"
1799
+
1800
+ #: core/views/meta_box_options.php:97
1801
+ msgid "Content Editor"
1802
+ msgstr "Editor de conținut"
1803
+
1804
+ #: core/views/meta_box_options.php:98
1805
+ msgid "Excerpt"
1806
+ msgstr "Extras"
1807
+
1808
+ #: core/views/meta_box_options.php:100
1809
+ msgid "Discussion"
1810
+ msgstr "Discuţie"
1811
+
1812
+ #: core/views/meta_box_options.php:101
1813
+ msgid "Comments"
1814
+ msgstr "Comentarii"
1815
+
1816
+ #: core/views/meta_box_options.php:102
1817
+ msgid "Revisions"
1818
+ msgstr "Revizuiri"
1819
+
1820
+ #: core/views/meta_box_options.php:103
1821
+ msgid "Slug"
1822
+ msgstr "Slug"
1823
+
1824
+ #: core/views/meta_box_options.php:104
1825
+ msgid "Author"
1826
+ msgstr "Autor"
1827
+
1828
+ #: core/views/meta_box_options.php:105
1829
+ msgid "Format"
1830
+ msgstr "Format"
1831
+
1832
+ #: core/views/meta_box_options.php:107
1833
+ msgid "Categories"
1834
+ msgstr "Categorii"
1835
+
1836
+ #: core/views/meta_box_options.php:108
1837
+ msgid "Tags"
1838
+ msgstr "Taguri"
1839
+
1840
+ #: core/views/meta_box_options.php:109
1841
+ msgid "Send Trackbacks"
1842
+ msgstr "Trimite trackback-uri"
1843
+
1844
+ #. Plugin URI of the plugin/theme
1845
+ msgid "http://www.advancedcustomfields.com/"
1846
+ msgstr "http://www.advancedcustomfields.com/"
1847
+
1848
+ #. Description of the plugin/theme
1849
+ msgid "Customise WordPress with powerful, professional and intuitive fields"
1850
+ msgstr ""
1851
+ "Personalizați WordPress cu câmpuri puternice, profesionale și intuitive"
1852
+
1853
+ #. Author of the plugin/theme
1854
+ msgid "Elliot Condon"
1855
+ msgstr "Elliot Condon"
1856
+
1857
+ #. Author URI of the plugin/theme
1858
+ msgid "http://www.elliotcondon.com/"
1859
+ msgstr "http://www.elliotcondon.com/"
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: elliotcondon
3
  Tags: acf, advanced, custom, field, fields, form, repeater, content
4
  Requires at least: 3.6.0
5
  Tested up to: 4.9.9
6
- Stable tag: 4.4.11
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -36,10 +36,10 @@ To help provide the most seamless update possible, we have included a simple **E
36
  * [Website](https://www.advancedcustomfields.com)
37
  * [Documentation](https://www.advancedcustomfields.com/resources/)
38
  * [Support](https://support.advancedcustomfields.com)
39
- * [ACF PRO](https://www.advancedcustomfields.com/resources/pro/)
40
 
41
  = PRO =
42
- The Advanced Custom Fields plugin is also available in a professional version which includes more fields, more functionality, and more flexibility! [Learn more](https://www.advancedcustomfields.com/resources/pro/)
43
 
44
 
45
  == Installation ==
3
  Tags: acf, advanced, custom, field, fields, form, repeater, content
4
  Requires at least: 3.6.0
5
  Tested up to: 4.9.9
6
+ Stable tag: 4.4.12
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
36
  * [Website](https://www.advancedcustomfields.com)
37
  * [Documentation](https://www.advancedcustomfields.com/resources/)
38
  * [Support](https://support.advancedcustomfields.com)
39
+ * [ACF PRO](https://www.advancedcustomfields.com/pro/)
40
 
41
  = PRO =
42
+ The Advanced Custom Fields plugin is also available in a professional version which includes more fields, more functionality, and more flexibility! [Learn more](https://www.advancedcustomfields.com/pro/)
43
 
44
 
45
  == Installation ==