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 | 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 +30 -12
- core/early-access.php +351 -0
- js/input/_listener.js +0 -0
- js/input/_listener.min.js +0 -0
- js/input/acf.js +0 -942
- js/input/ajax.js +0 -325
- js/input/color-picker.js +0 -79
- js/input/date-picker.js +0 -134
- js/input/file.js +0 -410
- js/input/google-map.js +0 -566
- js/input/image.js +0 -447
- js/input/radio.js +0 -70
- js/input/relationship.js +0 -361
- js/input/tab.js +0 -280
- js/input/validation.js +0 -432
- js/input/wysiwyg.js +0 -556
- lang/acf-ro_RO.mo +0 -0
- lang/acf-ro_RO.po +1859 -0
- readme.txt +3 -3
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.
|
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 |
-
|
20 |
-
var $
|
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 |
-
'
|
48 |
-
|
49 |
-
|
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 Groups"
|
28 |
+
msgstr "Grupuri de 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 » Import and select WordPress"
|
296 |
+
msgstr "Navighează la Instrumente » 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 & Filters"
|
691 |
+
msgstr "Acţiuni &l 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 & HTML entered here will appear inline with the fields"
|
1255 |
+
msgstr ""
|
1256 |
+
"Textul & 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 <br /> tags"
|
1525 |
+
msgstr "Convertește linii noi în taguri <br />"
|
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.
|
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/
|
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/
|
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 ==
|