Advanced Custom Fields - Version 2.0.5

Version Description

  • New Feature: Import / Export
  • Bug Fixed: Wysiwyg javascript conflicts
  • Bug Fixed: Wysiwyg popups conflicting with the date picker field
  • New style for the date picker field
Download this release

Release Info

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

Code changes from version 2.0.4 to 2.0.5

Files changed (34) hide show
  1. acf.php +192 -4
  2. core/admin_head.php +50 -83
  3. core/fields/checkbox.php +1 -1
  4. core/fields/date_picker/images/ui-bg_flat_55_5bc6f5_40x100.png +0 -0
  5. core/fields/date_picker/images/ui-bg_flat_55_fbec88_40x100.png +0 -0
  6. core/fields/date_picker/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  7. core/fields/date_picker/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  8. core/fields/date_picker/images/ui-bg_glass_75_d0e5f5_1x400.png +0 -0
  9. core/fields/date_picker/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  10. core/fields/date_picker/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  11. core/fields/date_picker/images/ui-bg_glass_85_dfeffc_1x400.png +0 -0
  12. core/fields/date_picker/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png +0 -0
  13. core/fields/date_picker/images/ui-bg_highlight-soft_0_444444_1x100.png +0 -0
  14. core/fields/date_picker/images/ui-bg_inset-hard_100_f5f8f9_1x100.png +0 -0
  15. core/fields/date_picker/images/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
  16. core/fields/date_picker/images/ui-icons_217bc0_256x240.png +0 -0
  17. core/fields/date_picker/images/{ui-icons_f9bd01_256x240.png → ui-icons_222222_256x240.png} +0 -0
  18. core/fields/date_picker/images/{ui-icons_469bdd_256x240.png → ui-icons_454545_256x240.png} +0 -0
  19. core/fields/date_picker/images/{ui-icons_6da8d5_256x240.png → ui-icons_888888_256x240.png} +0 -0
  20. core/fields/date_picker/images/ui-icons_d8e7f3_256x240.png +0 -0
  21. core/fields/date_picker/jquery.ui.datepicker.js +115 -74
  22. core/fields/date_picker/style.date_picker.css +267 -272
  23. core/fields/repeater.php +1 -1
  24. core/fields/select.php +1 -1
  25. core/import.php +234 -0
  26. core/screen_extra.php +2 -86
  27. core/screen_extra_activate.php +85 -0
  28. core/screen_extra_export.php +54 -0
  29. css/style.fields.css +3 -0
  30. css/style.screen_extra.css +8 -0
  31. js/functions.input.js +4 -2
  32. js/functions.screen_extra.js +1 -1
  33. lang/advanced-custom-fields.pot +201 -200
  34. readme.txt +8 -2
acf.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Advanced Custom Fields
4
  Plugin URI: http://plugins.elliotcondon.com/advanced-custom-fields/
5
  Description: Completely Customise your edit pages with an assortment of field types: Wysiwyg, Repeater, text, textarea, image, file, select, checkbox post type, page link and more! Hide unwanted metaboxes and assign to any edit page!
6
- Version: 2.0.4
7
  Author: Elliot Condon
8
  Author URI: http://www.elliotcondon.com/
9
  License: GPL
@@ -16,10 +16,8 @@ Copyright: Elliot Condon
16
 
17
  include('core/options_page.php');
18
 
19
-
20
  $acf = new Acf();
21
 
22
-
23
  include('core/api.php');
24
 
25
 
@@ -44,7 +42,7 @@ class Acf
44
  $this->dir = plugins_url('',__FILE__);
45
  $this->siteurl = get_bloginfo('url');
46
  $this->wpadminurl = admin_url();
47
- $this->version = '2.0.4';
48
  $this->activated_fields = $this->get_activated_fields();
49
  $this->options_page = new Acf_options_page($this);
50
 
@@ -59,6 +57,8 @@ class Acf
59
 
60
  // add actions
61
  add_action('init', array($this, '_init'));
 
 
62
  add_action('admin_head', array($this,'_admin_head'));
63
  add_action('admin_menu', array($this,'_admin_menu'));
64
  add_action('save_post', array($this, '_save_post'));
@@ -105,6 +105,7 @@ class Acf
105
  {
106
  // create acf post type
107
  $this->_acf_post_type();
 
108
  }
109
 
110
  function _admin_print_scripts()
@@ -165,18 +166,21 @@ class Acf
165
  if ($flag != 0) return $post_id;
166
  $flag = 1;
167
 
 
168
  // set post ID if is a revision
169
  if(wp_is_post_revision($post_id))
170
  {
171
  $post_id = wp_is_post_revision($post_id);
172
  }
173
 
 
174
  // delete _acf custom fields if needed
175
  if(isset($_POST['fields_meta_box']) || isset($_POST['location_meta_box']) || isset($_POST['input_meta_box']))
176
  {
177
  $this->delete_acf_custom_fields($post_id);
178
  }
179
 
 
180
  // include meta box save files
181
  include('core/fields_save.php');
182
  include('core/location_save.php');
@@ -1033,5 +1037,189 @@ class Acf
1033
  }
1034
 
1035
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1036
  }
1037
 
3
  Plugin Name: Advanced Custom Fields
4
  Plugin URI: http://plugins.elliotcondon.com/advanced-custom-fields/
5
  Description: Completely Customise your edit pages with an assortment of field types: Wysiwyg, Repeater, text, textarea, image, file, select, checkbox post type, page link and more! Hide unwanted metaboxes and assign to any edit page!
6
+ Version: 2.0.5
7
  Author: Elliot Condon
8
  Author URI: http://www.elliotcondon.com/
9
  License: GPL
16
 
17
  include('core/options_page.php');
18
 
 
19
  $acf = new Acf();
20
 
 
21
  include('core/api.php');
22
 
23
 
42
  $this->dir = plugins_url('',__FILE__);
43
  $this->siteurl = get_bloginfo('url');
44
  $this->wpadminurl = admin_url();
45
+ $this->version = '2.0.5';
46
  $this->activated_fields = $this->get_activated_fields();
47
  $this->options_page = new Acf_options_page($this);
48
 
57
 
58
  // add actions
59
  add_action('init', array($this, '_init'));
60
+ add_action('init', array($this, 'import'));
61
+ add_action('init', array($this, 'export'));
62
  add_action('admin_head', array($this,'_admin_head'));
63
  add_action('admin_menu', array($this,'_admin_menu'));
64
  add_action('save_post', array($this, '_save_post'));
105
  {
106
  // create acf post type
107
  $this->_acf_post_type();
108
+
109
  }
110
 
111
  function _admin_print_scripts()
166
  if ($flag != 0) return $post_id;
167
  $flag = 1;
168
 
169
+
170
  // set post ID if is a revision
171
  if(wp_is_post_revision($post_id))
172
  {
173
  $post_id = wp_is_post_revision($post_id);
174
  }
175
 
176
+
177
  // delete _acf custom fields if needed
178
  if(isset($_POST['fields_meta_box']) || isset($_POST['location_meta_box']) || isset($_POST['input_meta_box']))
179
  {
180
  $this->delete_acf_custom_fields($post_id);
181
  }
182
 
183
+
184
  // include meta box save files
185
  include('core/fields_save.php');
186
  include('core/location_save.php');
1037
  }
1038
 
1039
 
1040
+
1041
+ /*----------------------------------------------------------------------
1042
+ *
1043
+ * export
1044
+ *
1045
+ *---------------------------------------------------------------------*/
1046
+
1047
+ function export()
1048
+ {
1049
+ if(!isset($_POST['acf_export']))
1050
+ {
1051
+ return;
1052
+ }
1053
+
1054
+
1055
+ // get the acfs to save
1056
+ $acfs = isset($_POST['acf_objects']) ? $_POST['acf_objects'] : null;
1057
+
1058
+
1059
+ // quick function for writing an array
1060
+ function echo_value_xml($value)
1061
+ {
1062
+ if(!is_array($value))
1063
+ {
1064
+ echo $value;
1065
+ }
1066
+ else
1067
+ {
1068
+ echo '<array>';
1069
+ foreach($value as $k => $v)
1070
+ {
1071
+ echo '<piece key="'.$k.'">'.$v.'</piece>';
1072
+ }
1073
+ echo '</array>';
1074
+ }
1075
+ }
1076
+
1077
+ // save as file
1078
+ header( 'Content-Description: File Transfer' );
1079
+ header( 'Content-Disposition: attachment; filename=advanced-custom-fields.xml' );
1080
+ header( 'Content-Type: text/xml; charset=' . get_option( 'blog_charset' ), true );
1081
+
1082
+
1083
+
1084
+ // display document in browser as plain text
1085
+ //header("Content-Type: text/plain");
1086
+ echo '<?xml version="1.0"?> ';
1087
+ ?>
1088
+
1089
+ <?php if($acfs): ?>
1090
+ <posts>
1091
+ <?php
1092
+ foreach($acfs as $acf):
1093
+ $post = get_post($acf);
1094
+ $fields = $this->get_fields($post->ID);
1095
+ $location = $this->get_acf_location($post->ID);
1096
+ $options = $this->get_acf_options($post->ID);
1097
+
1098
+ ?>
1099
+ <post>
1100
+ <title><?php echo apply_filters( 'the_title_rss', $post->post_title ); ?></title>
1101
+ <post_status><?php echo $post->post_status; ?></post_status>
1102
+ <post_parent><?php echo $post->post_parent; ?></post_parent>
1103
+ <menu_order><?php echo $post->menu_order; ?></menu_order>
1104
+ <fields>
1105
+ <?php if($fields):
1106
+ foreach($fields as $field): ?>
1107
+ <field>
1108
+ <label><?php echo $field->label; ?></label>
1109
+ <name><?php echo $field->name; ?></name>
1110
+ <type><?php echo $field->type; ?></type>
1111
+ <options>
1112
+ <?php if($field->options):
1113
+ foreach($field->options as $k => $option):
1114
+ if($k == 'sub_fields'): ?>
1115
+ <<?php echo $k; ?>>
1116
+ <?php foreach($field->options['sub_fields'] as $sub_field): ?>
1117
+ <field>
1118
+ <label><?php echo $sub_field->label; ?></label>
1119
+ <name><?php echo $sub_field->name; ?></name>
1120
+ <type><?php echo $sub_field->type; ?></type>
1121
+ <options>
1122
+ <?php if($sub_field->options):
1123
+ foreach($sub_field->options as $k2 => $option2): ?>
1124
+ <<?php echo $k2; ?>><?php echo_value_xml($option2); ?></<?php echo $k2; ?>>
1125
+ <?php endforeach;
1126
+ endif; ?>
1127
+ </options>
1128
+ </field>
1129
+ <?php endforeach; ?>
1130
+ </<?php echo $k; ?>>
1131
+ <?php else: ?>
1132
+ <<?php echo $k; ?>><?php echo_value_xml($option); ?></<?php echo $k; ?>>
1133
+ <?php endif;
1134
+ endforeach;
1135
+ endif; ?>
1136
+ </options>
1137
+ <instructions><?php echo $field->instructions ?></instructions>
1138
+ <save_as_cf><?php echo $field->save_as_cf; ?></save_as_cf>
1139
+ </field>
1140
+ <?php endforeach;
1141
+ endif; ?>
1142
+ </fields>
1143
+ <location>
1144
+ <?php if($location->rules):
1145
+ foreach($location->rules as $k => $rule): ?>
1146
+ <rule>
1147
+ <param><?php echo $rule->param; ?></param>
1148
+ <operator><?php echo $rule->operator; ?></operator>
1149
+ <value><?php echo $rule->value; ?></value>
1150
+ </rule>
1151
+ <?php endforeach;
1152
+ endif; ?>
1153
+ <allorany><?php echo $location->allorany; ?></allorany>
1154
+ </location>
1155
+ <options>
1156
+ <show_on_page><?php echo_value_xml($options->show_on_page); ?></show_on_page>
1157
+ <field_group_layout><?php echo $options->field_group_layout; ?></field_group_layout>
1158
+ </options>
1159
+ </post>
1160
+ <?php endforeach; ?>
1161
+ </posts>
1162
+ <?php
1163
+ endif;
1164
+
1165
+ die;
1166
+ }
1167
+
1168
+
1169
+
1170
+ /*----------------------------------------------------------------------
1171
+ *
1172
+ * import
1173
+ *
1174
+ *---------------------------------------------------------------------*/
1175
+
1176
+ function import()
1177
+ {
1178
+ // Checkpoint: Did someone submit the form
1179
+ if(isset($_POST['acf_import']))
1180
+ {
1181
+ include('core/import.php');
1182
+ }
1183
+ }
1184
+
1185
+
1186
+ /*----------------------------------------------------------------------
1187
+ *
1188
+ * Admin Error
1189
+ *
1190
+ *---------------------------------------------------------------------*/
1191
+
1192
+ function admin_error($message = "")
1193
+ {
1194
+ global $acf_mesage;
1195
+ $acf_mesage = $message;
1196
+
1197
+ function my_admin_notice()
1198
+ {
1199
+ global $acf_mesage;
1200
+ echo '<div class="error fade" id="message"><p>'.$acf_mesage.'</p></div>';
1201
+ }
1202
+ add_action('admin_notices', 'my_admin_notice');
1203
+ }
1204
+
1205
+
1206
+ /*----------------------------------------------------------------------
1207
+ *
1208
+ * Admin Message
1209
+ *
1210
+ *---------------------------------------------------------------------*/
1211
+
1212
+ function admin_message($message = "")
1213
+ {
1214
+ global $acf_mesage;
1215
+ $acf_mesage = $message;
1216
+
1217
+ function my_admin_notice()
1218
+ {
1219
+ global $acf_mesage;
1220
+ echo '<div class="updated fade" id="message"><p>'.$acf_mesage.'</p></div>';
1221
+ }
1222
+ add_action('admin_notices', 'my_admin_notice');
1223
+ }
1224
  }
1225
 
core/admin_head.php CHANGED
@@ -3,20 +3,27 @@
3
  global $post;
4
 
5
 
6
- // deactivate field
 
 
 
 
 
 
7
  if(isset($_POST['acf_field_deactivate']))
8
  {
9
- // a field was deactivated
10
  $field = $_POST['acf_field_deactivate'];
11
  $option = 'acf_'.$field.'_ac';
12
  delete_option($option);
13
 
 
14
  // update activated fields
15
  $this->activated_fields = $this->get_activated_fields();
16
  $this->fields = $this->_get_field_types();
17
 
18
- global $acf_message_field;
19
 
 
20
  $acf_message_field = "";
21
  if($field == "repeater")
22
  {
@@ -27,31 +34,40 @@ if(isset($_POST['acf_field_deactivate']))
27
  $acf_message_field = "Options Page";
28
  }
29
 
30
- function my_admin_notice(){
31
- global $acf_message_field;
32
- echo '<div class="updated below-h2" id="message"><p>'.$acf_message_field.' deactivated</p></div>';
33
- }
34
- add_action('admin_notices', 'my_admin_notice');
35
-
36
  }
37
 
38
 
39
- // activate field
40
- if(isset($_POST['acf_field_activate']))
 
 
 
 
 
 
41
  {
42
- // a field was deactivated
43
  $field = $_POST['acf_field_activate'];
44
  $ac = $_POST['acf_ac'];
45
 
 
 
46
  $option = 'acf_'.$field.'_ac';
47
  update_option($option, $ac);
48
 
 
49
  // update activated fields
50
  $old_count = count($this->activated_fields);
51
  $this->activated_fields = $this->get_activated_fields();
52
  $this->fields = $this->_get_field_types();
53
  $new_count = count($this->activated_fields);
54
 
 
 
55
  global $acf_message_field;
56
  $acf_message_field = "";
57
  if($field == "repeater")
@@ -63,28 +79,15 @@ if(isset($_POST['acf_field_activate']))
63
  $acf_message_field = "Options Page";
64
  }
65
 
 
 
66
  if($new_count == $old_count)
67
  {
68
- function my_admin_notice(){
69
- echo '<div class="updated below-h2" id="message"><p>Activation code unrecognized</p></div>';
70
- }
71
- add_action('admin_notices', 'my_admin_notice');
72
-
73
  }
74
  else
75
  {
76
- function my_admin_notice(){
77
- global $acf_message_field;
78
- echo '<div class="updated below-h2" id="message"><p>'.$acf_message_field.' activated</p></div>';
79
- }
80
- add_action('admin_notices', 'my_admin_notice',$m);
81
-
82
-
83
- // re make the optiosn page object
84
- if($field == "options_page")
85
- {
86
-
87
- }
88
  }
89
 
90
 
@@ -92,6 +95,13 @@ if(isset($_POST['acf_field_activate']))
92
  }
93
 
94
 
 
 
 
 
 
 
 
95
  if(!array_key_exists('options_page', $this->activated_fields))
96
  {
97
  ?>
@@ -104,7 +114,6 @@ if(!array_key_exists('options_page', $this->activated_fields))
104
  }
105
 
106
 
107
-
108
  // get current page
109
  $currentFile = $_SERVER["SCRIPT_NAME"];
110
  $parts = Explode('/', $currentFile);
@@ -115,10 +124,6 @@ $currentFile = $parts[count($parts) - 1];
115
  if($currentFile == 'post.php' || $currentFile == 'post-new.php')
116
  {
117
 
118
- // create tyn mce instance for wysiwyg
119
- wp_tiny_mce();
120
-
121
-
122
  if(get_post_type($post) == 'acf')
123
  {
124
 
@@ -193,54 +198,6 @@ if($currentFile == 'post.php' || $currentFile == 'post-new.php')
193
  }
194
  }
195
  }
196
-
197
- //$options = $this->get_acf_options($acf->ID);
198
- /*
199
-
200
- // post type
201
- if(in_array(get_post_type($post), $location->post_types)) {$add_box = true; }
202
-
203
-
204
- // page title
205
- if(in_array($post->post_title, $location->page_titles)) {$add_box = true; }
206
-
207
-
208
- // page slug
209
- if(in_array($post->post_name, $location->page_slugs)) {$add_box = true; }
210
-
211
-
212
- // post id
213
- if(in_array($post->ID, $location->post_ids)) {$add_box = true; }
214
-
215
-
216
- // page template
217
- if(in_array(get_post_meta($post->ID,'_wp_page_template',true), $location->page_templates)) {$add_box = true; }
218
-
219
-
220
- // page parents
221
- if(in_array($post->post_parent, $location->page_parents)) {$add_box = true; }
222
-
223
- // category names
224
- $cats = get_the_category();
225
- if($cats)
226
- {
227
- foreach($cats as $cat)
228
- {
229
- if(in_array($cat->name, $location->category_names)) {$add_box = true; }
230
- }
231
- }
232
-
233
-
234
-
235
- // current user role
236
- global $current_user;
237
- get_currentuserinfo();
238
- if(!empty($options->user_roles))
239
- {
240
- if(!in_array($current_user->user_level, $options->user_roles)) {$add_box = false; }
241
- }
242
-
243
- */
244
 
245
  if($add_box == true)
246
  {
@@ -251,16 +208,26 @@ if($currentFile == 'post.php' || $currentFile == 'post-new.php')
251
 
252
  if(!empty($add_acf))
253
  {
 
 
 
 
 
 
 
 
 
254
  // add these acf's to the page
255
  echo '<link rel="stylesheet" type="text/css" href="'.$this->dir.'/css/style.global.css" />';
256
  echo '<link rel="stylesheet" type="text/css" href="'.$this->dir.'/css/style.input.css" />';
257
  echo '<script type="text/javascript" src="'.$this->dir.'/js/functions.input.js" ></script>';
258
 
 
259
  // date picker!
260
  echo '<link rel="stylesheet" type="text/css" href="'.$this->dir.'/core/fields/date_picker/style.date_picker.css" />';
261
  echo '<script type="text/javascript" src="'.$this->dir.'/core/fields/date_picker/jquery.ui.datepicker.js" ></script>';
262
 
263
- add_meta_box('acf_input', 'ACF Fields', array($this, '_input_meta_box'), get_post_type($post), 'normal', 'high', array('acfs' => $add_acf));
264
  }
265
 
266
  }// end if
3
  global $post;
4
 
5
 
6
+
7
+ /*----------------------------------------------------------------------
8
+ *
9
+ * deactivate_field
10
+ *
11
+ *---------------------------------------------------------------------*/
12
+
13
  if(isset($_POST['acf_field_deactivate']))
14
  {
15
+ // delete field
16
  $field = $_POST['acf_field_deactivate'];
17
  $option = 'acf_'.$field.'_ac';
18
  delete_option($option);
19
 
20
+
21
  // update activated fields
22
  $this->activated_fields = $this->get_activated_fields();
23
  $this->fields = $this->_get_field_types();
24
 
 
25
 
26
+ //set message
27
  $acf_message_field = "";
28
  if($field == "repeater")
29
  {
34
  $acf_message_field = "Options Page";
35
  }
36
 
37
+
38
+ // show message on page
39
+ $this->admin_message($acf_message_field.' deactivated');
40
+
 
 
41
  }
42
 
43
 
44
+
45
+ /*----------------------------------------------------------------------
46
+ *
47
+ * activate_field
48
+ *
49
+ *---------------------------------------------------------------------*/
50
+
51
+ if(isset($_POST['acf_field_activate']) && isset($_POST['acf_ac']))
52
  {
53
+
54
  $field = $_POST['acf_field_activate'];
55
  $ac = $_POST['acf_ac'];
56
 
57
+
58
+ // update option
59
  $option = 'acf_'.$field.'_ac';
60
  update_option($option, $ac);
61
 
62
+
63
  // update activated fields
64
  $old_count = count($this->activated_fields);
65
  $this->activated_fields = $this->get_activated_fields();
66
  $this->fields = $this->_get_field_types();
67
  $new_count = count($this->activated_fields);
68
 
69
+
70
+ // set message
71
  global $acf_message_field;
72
  $acf_message_field = "";
73
  if($field == "repeater")
79
  $acf_message_field = "Options Page";
80
  }
81
 
82
+
83
+ // show message
84
  if($new_count == $old_count)
85
  {
86
+ $this->admin_message('Activation code unrecognized');
 
 
 
 
87
  }
88
  else
89
  {
90
+ $this->admin_message($acf_message_field.' activated');
 
 
 
 
 
 
 
 
 
 
 
91
  }
92
 
93
 
95
  }
96
 
97
 
98
+
99
+ /*----------------------------------------------------------------------
100
+ *
101
+ * Options
102
+ *
103
+ *---------------------------------------------------------------------*/
104
+
105
  if(!array_key_exists('options_page', $this->activated_fields))
106
  {
107
  ?>
114
  }
115
 
116
 
 
117
  // get current page
118
  $currentFile = $_SERVER["SCRIPT_NAME"];
119
  $parts = Explode('/', $currentFile);
124
  if($currentFile == 'post.php' || $currentFile == 'post-new.php')
125
  {
126
 
 
 
 
 
127
  if(get_post_type($post) == 'acf')
128
  {
129
 
198
  }
199
  }
200
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
201
 
202
  if($add_box == true)
203
  {
208
 
209
  if(!empty($add_acf))
210
  {
211
+
212
+ // create tyn mce instance for wysiwyg
213
+ $post_type = get_post_type($post);
214
+ if(!post_type_supports($post_type, 'editor'))
215
+ {
216
+ wp_tiny_mce();
217
+ }
218
+
219
+
220
  // add these acf's to the page
221
  echo '<link rel="stylesheet" type="text/css" href="'.$this->dir.'/css/style.global.css" />';
222
  echo '<link rel="stylesheet" type="text/css" href="'.$this->dir.'/css/style.input.css" />';
223
  echo '<script type="text/javascript" src="'.$this->dir.'/js/functions.input.js" ></script>';
224
 
225
+
226
  // date picker!
227
  echo '<link rel="stylesheet" type="text/css" href="'.$this->dir.'/core/fields/date_picker/style.date_picker.css" />';
228
  echo '<script type="text/javascript" src="'.$this->dir.'/core/fields/date_picker/jquery.ui.datepicker.js" ></script>';
229
 
230
+ add_meta_box('acf_input', 'ACF Fields', array($this, '_input_meta_box'), $post_type, 'normal', 'high', array('acfs' => $add_acf));
231
  }
232
 
233
  }// end if
core/fields/checkbox.php CHANGED
@@ -104,7 +104,7 @@ class acf_Checkbox
104
  function format_options($options)
105
  {
106
  // if no choices, dont do anything
107
- if($options['choices'] == '')
108
  {
109
  return $options;
110
  }
104
  function format_options($options)
105
  {
106
  // if no choices, dont do anything
107
+ if(!$options['choices'] || is_array($options['choices']))
108
  {
109
  return $options;
110
  }
core/fields/date_picker/images/ui-bg_flat_55_5bc6f5_40x100.png ADDED
Binary file
core/fields/date_picker/images/ui-bg_flat_55_fbec88_40x100.png DELETED
Binary file
core/fields/date_picker/images/ui-bg_flat_75_ffffff_40x100.png ADDED
Binary file
core/fields/date_picker/images/ui-bg_glass_65_ffffff_1x400.png ADDED
Binary file
core/fields/date_picker/images/ui-bg_glass_75_d0e5f5_1x400.png DELETED
Binary file
core/fields/date_picker/images/ui-bg_glass_75_dadada_1x400.png ADDED
Binary file
core/fields/date_picker/images/ui-bg_glass_75_e6e6e6_1x400.png ADDED
Binary file
core/fields/date_picker/images/ui-bg_glass_85_dfeffc_1x400.png DELETED
Binary file
core/fields/date_picker/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png DELETED
Binary file
core/fields/date_picker/images/ui-bg_highlight-soft_0_444444_1x100.png ADDED
Binary file
core/fields/date_picker/images/ui-bg_inset-hard_100_f5f8f9_1x100.png DELETED
Binary file
core/fields/date_picker/images/ui-bg_inset-hard_100_fcfdfd_1x100.png DELETED
Binary file
core/fields/date_picker/images/ui-icons_217bc0_256x240.png DELETED
Binary file
core/fields/date_picker/images/{ui-icons_f9bd01_256x240.png → ui-icons_222222_256x240.png} RENAMED
Binary file
core/fields/date_picker/images/{ui-icons_469bdd_256x240.png → ui-icons_454545_256x240.png} RENAMED
Binary file
core/fields/date_picker/images/{ui-icons_6da8d5_256x240.png → ui-icons_888888_256x240.png} RENAMED
Binary file
core/fields/date_picker/images/ui-icons_d8e7f3_256x240.png DELETED
Binary file
core/fields/date_picker/jquery.ui.datepicker.js CHANGED
@@ -1,5 +1,5 @@
1
  /*
2
- * jQuery UI Datepicker 1.8.11
3
  *
4
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
5
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -12,10 +12,11 @@
12
  */
13
  (function( $, undefined ) {
14
 
15
- $.extend($.ui, { datepicker: { version: "1.8.11" } });
16
 
17
  var PROP_NAME = 'datepicker';
18
  var dpuuid = new Date().getTime();
 
19
 
20
  /* Date picker manager.
21
  Use the singleton instance of this class, $.datepicker, to interact with the date picker.
@@ -107,12 +108,15 @@ function Datepicker() {
107
  autoSize: false // True to size the input for the date format, false to leave as is
108
  };
109
  $.extend(this._defaults, this.regional['']);
110
- this.dpDiv = $('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>');
111
  }
112
 
113
  $.extend(Datepicker.prototype, {
114
  /* Class name added to elements to indicate already configured with a date picker. */
115
  markerClassName: 'hasDatepicker',
 
 
 
116
 
117
  /* Debug logging (if enabled). */
118
  log: function () {
@@ -173,7 +177,7 @@ $.extend(Datepicker.prototype, {
173
  drawMonth: 0, drawYear: 0, // month being drawn
174
  inline: inline, // is datepicker inline or not
175
  dpDiv: (!inline ? this.dpDiv : // presentation div
176
- $('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))};
177
  },
178
 
179
  /* Attach the date picker to an input field. */
@@ -363,6 +367,8 @@ $.extend(Datepicker.prototype, {
363
  else if (nodeName == 'div' || nodeName == 'span') {
364
  var inline = $target.children('.' + this._inlineClass);
365
  inline.children().removeClass('ui-state-disabled');
 
 
366
  }
367
  this._disabledInputs = $.map(this._disabledInputs,
368
  function(value) { return (value == target ? null : value); }); // delete entry
@@ -386,6 +392,8 @@ $.extend(Datepicker.prototype, {
386
  else if (nodeName == 'div' || nodeName == 'span') {
387
  var inline = $target.children('.' + this._inlineClass);
388
  inline.children().addClass('ui-state-disabled');
 
 
389
  }
390
  this._disabledInputs = $.map(this._disabledInputs,
391
  function(value) { return (value == target ? null : value); }); // delete entry
@@ -454,7 +462,8 @@ $.extend(Datepicker.prototype, {
454
  inst.settings.maxDate = this._formatDate(inst, maxDate);
455
  this._attachments($(target), inst);
456
  this._autoSize(inst);
457
- this._setDateDatepicker(target, date);
 
458
  this._updateDatepicker(inst);
459
  }
460
  },
@@ -608,6 +617,9 @@ $.extend(Datepicker.prototype, {
608
  return;
609
  var inst = $.datepicker._getInst(input);
610
  if ($.datepicker._curInst && $.datepicker._curInst != inst) {
 
 
 
611
  $.datepicker._curInst.dpDiv.stop(true, true);
612
  }
613
  var beforeShow = $.datepicker._get(inst, 'beforeShow');
@@ -647,7 +659,6 @@ $.extend(Datepicker.prototype, {
647
  var showAnim = $.datepicker._get(inst, 'showAnim');
648
  var duration = $.datepicker._get(inst, 'duration');
649
  var postProcess = function() {
650
- $.datepicker._datepickerShowing = true;
651
  var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only
652
  if( !! cover.length ){
653
  var borders = $.datepicker._getBorders(inst.dpDiv);
@@ -656,6 +667,7 @@ $.extend(Datepicker.prototype, {
656
  }
657
  };
658
  inst.dpDiv.zIndex($(input).zIndex()+1);
 
659
  if ($.effects && $.effects[showAnim])
660
  inst.dpDiv.show(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);
661
  else
@@ -671,37 +683,21 @@ $.extend(Datepicker.prototype, {
671
  /* Generate the date picker content. */
672
  _updateDatepicker: function(inst) {
673
  var self = this;
 
674
  var borders = $.datepicker._getBorders(inst.dpDiv);
 
675
  inst.dpDiv.empty().append(this._generateHTML(inst));
676
  var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only
677
  if( !!cover.length ){ //avoid call to outerXXXX() when not in IE6
678
  cover.css({left: -borders[0], top: -borders[1], width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()})
679
  }
680
- inst.dpDiv.find('button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a')
681
- .bind('mouseout', function(){
682
- $(this).removeClass('ui-state-hover');
683
- if(this.className.indexOf('ui-datepicker-prev') != -1) $(this).removeClass('ui-datepicker-prev-hover');
684
- if(this.className.indexOf('ui-datepicker-next') != -1) $(this).removeClass('ui-datepicker-next-hover');
685
- })
686
- .bind('mouseover', function(){
687
- if (!self._isDisabledDatepicker( inst.inline ? inst.dpDiv.parent()[0] : inst.input[0])) {
688
- $(this).parents('.ui-datepicker-calendar').find('a').removeClass('ui-state-hover');
689
- $(this).addClass('ui-state-hover');
690
- if(this.className.indexOf('ui-datepicker-prev') != -1) $(this).addClass('ui-datepicker-prev-hover');
691
- if(this.className.indexOf('ui-datepicker-next') != -1) $(this).addClass('ui-datepicker-next-hover');
692
- }
693
- })
694
- .end()
695
- .find('.' + this._dayOverClass + ' a')
696
- .trigger('mouseover')
697
- .end();
698
  var numMonths = this._getNumberOfMonths(inst);
699
  var cols = numMonths[1];
700
  var width = 17;
 
701
  if (cols > 1)
702
  inst.dpDiv.addClass('ui-datepicker-multi-' + cols).css('width', (width * cols) + 'em');
703
- else
704
- inst.dpDiv.removeClass('ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4').width('');
705
  inst.dpDiv[(numMonths[0] != 1 || numMonths[1] != 1 ? 'add' : 'remove') +
706
  'Class']('ui-datepicker-multi');
707
  inst.dpDiv[(this._get(inst, 'isRTL') ? 'add' : 'remove') +
@@ -716,7 +712,7 @@ $.extend(Datepicker.prototype, {
716
  var origyearshtml = inst.yearshtml;
717
  setTimeout(function(){
718
  //assure that inst.yearshtml didn't change.
719
- if( origyearshtml === inst.yearshtml ){
720
  inst.dpDiv.find('select.ui-datepicker-year:first').replaceWith(inst.yearshtml);
721
  }
722
  origyearshtml = inst.yearshtml = null;
@@ -768,6 +764,14 @@ $.extend(Datepicker.prototype, {
768
  return [position.left, position.top];
769
  },
770
 
 
 
 
 
 
 
 
 
771
  /* Hide the date picker from view.
772
  @param input element - the input field attached to the date picker */
773
  _hideDatepicker: function(input) {
@@ -788,10 +792,7 @@ $.extend(Datepicker.prototype, {
788
  (showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))]((showAnim ? duration : null), postProcess);
789
  if (!showAnim)
790
  postProcess();
791
- var onClose = this._get(inst, 'onClose');
792
- if (onClose)
793
- onClose.apply((inst.input ? inst.input[0] : null),
794
- [(inst.input ? inst.input.val() : ''), inst]); // trigger custom callback
795
  this._datepickerShowing = false;
796
  this._lastInput = null;
797
  if (this._inDialog) {
@@ -1007,14 +1008,24 @@ $.extend(Datepicker.prototype, {
1007
  };
1008
  // Extract a name from the string value and convert to an index
1009
  var getName = function(match, shortNames, longNames) {
1010
- var names = (lookAhead(match) ? longNames : shortNames);
1011
- for (var i = 0; i < names.length; i++) {
1012
- if (value.substr(iValue, names[i].length).toLowerCase() == names[i].toLowerCase()) {
1013
- iValue += names[i].length;
1014
- return i + 1;
 
 
 
 
 
 
 
1015
  }
1016
- }
1017
- throw 'Unknown name at position ' + iValue;
 
 
 
1018
  };
1019
  // Confirm that a literal character matches the string value
1020
  var checkLiteral = function() {
@@ -1071,6 +1082,9 @@ $.extend(Datepicker.prototype, {
1071
  checkLiteral();
1072
  }
1073
  }
 
 
 
1074
  if (year == -1)
1075
  year = new Date().getFullYear();
1076
  else if (year < 100)
@@ -1089,7 +1103,7 @@ $.extend(Datepicker.prototype, {
1089
  }
1090
  var date = this._daylightSavingAdjust(new Date(year, month - 1, day));
1091
  if (date.getFullYear() != year || date.getMonth() + 1 != month || date.getDate() != day)
1092
- throw 'Invalid date'; // E.g. 31/02/*
1093
  return date;
1094
  },
1095
 
@@ -1182,7 +1196,7 @@ $.extend(Datepicker.prototype, {
1182
  break;
1183
  case 'o':
1184
  output += formatNumber('o',
1185
- (date.getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000, 3);
1186
  break;
1187
  case 'm':
1188
  output += formatNumber('m', date.getMonth() + 1, 2);
@@ -1457,6 +1471,7 @@ $.extend(Datepicker.prototype, {
1457
  var html = '';
1458
  for (var row = 0; row < numMonths[0]; row++) {
1459
  var group = '';
 
1460
  for (var col = 0; col < numMonths[1]; col++) {
1461
  var selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay));
1462
  var cornerClass = ' ui-corner-all';
@@ -1491,7 +1506,9 @@ $.extend(Datepicker.prototype, {
1491
  if (drawYear == inst.selectedYear && drawMonth == inst.selectedMonth)
1492
  inst.selectedDay = Math.min(inst.selectedDay, daysInMonth);
1493
  var leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7;
1494
- var numRows = (isMultiMonth ? 6 : Math.ceil((leadDays + daysInMonth) / 7)); // calculate the number of rows to generate
 
 
1495
  var printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays));
1496
  for (var dRow = 0; dRow < numRows; dRow++) { // create date picker rows
1497
  calender += '<tr>';
@@ -1575,40 +1592,37 @@ $.extend(Datepicker.prototype, {
1575
  if (!showMonthAfterYear)
1576
  html += monthHtml + (secondary || !(changeMonth && changeYear) ? '&#xa0;' : '');
1577
  // year selection
1578
- inst.yearshtml = '';
1579
- if (secondary || !changeYear)
1580
- html += '<span class="ui-datepicker-year">' + drawYear + '</span>';
1581
- else {
1582
- // determine range of years to display
1583
- var years = this._get(inst, 'yearRange').split(':');
1584
- var thisYear = new Date().getFullYear();
1585
- var determineYear = function(value) {
1586
- var year = (value.match(/c[+-].*/) ? drawYear + parseInt(value.substring(1), 10) :
1587
- (value.match(/[+-].*/) ? thisYear + parseInt(value, 10) :
1588
- parseInt(value, 10)));
1589
- return (isNaN(year) ? thisYear : year);
1590
- };
1591
- var year = determineYear(years[0]);
1592
- var endYear = Math.max(year, determineYear(years[1] || ''));
1593
- year = (minDate ? Math.max(year, minDate.getFullYear()) : year);
1594
- endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear);
1595
- inst.yearshtml += '<select class="ui-datepicker-year" ' +
1596
- 'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'Y\');" ' +
1597
- 'onclick="DP_jQuery_' + dpuuid + '.datepicker._clickMonthYear(\'#' + inst.id + '\');"' +
1598
- '>';
1599
- for (; year <= endYear; year++) {
1600
- inst.yearshtml += '<option value="' + year + '"' +
1601
- (year == drawYear ? ' selected="selected"' : '') +
1602
- '>' + year + '</option>';
1603
- }
1604
- inst.yearshtml += '</select>';
1605
- //when showing there is no need for later update
1606
- if( ! $.browser.mozilla ){
1607
  html += inst.yearshtml;
1608
  inst.yearshtml = null;
1609
- } else {
1610
- // will be replaced later with inst.yearshtml
1611
- html += '<select class="ui-datepicker-year"><option value="' + drawYear + '" selected="selected">' + drawYear + '</option></select>';
1612
  }
1613
  }
1614
  html += this._get(inst, 'yearSuffix');
@@ -1713,6 +1727,33 @@ $.extend(Datepicker.prototype, {
1713
  }
1714
  });
1715
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1716
  /* jQuery extend now ignores nulls! */
1717
  function extendRemove(target, props) {
1718
  $.extend(target, props);
@@ -1764,7 +1805,7 @@ $.fn.datepicker = function(options){
1764
  $.datepicker = new Datepicker(); // singleton instance
1765
  $.datepicker.initialized = false;
1766
  $.datepicker.uuid = new Date().getTime();
1767
- $.datepicker.version = "1.8.11";
1768
 
1769
  // Workaround for #4055
1770
  // Add another global to avoid noConflict issues with inline event handlers
1
  /*
2
+ * jQuery UI Datepicker 1.8.14
3
  *
4
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
5
  * Dual licensed under the MIT or GPL Version 2 licenses.
12
  */
13
  (function( $, undefined ) {
14
 
15
+ $.extend($.ui, { datepicker: { version: "1.8.14" } });
16
 
17
  var PROP_NAME = 'datepicker';
18
  var dpuuid = new Date().getTime();
19
+ var instActive;
20
 
21
  /* Date picker manager.
22
  Use the singleton instance of this class, $.datepicker, to interact with the date picker.
108
  autoSize: false // True to size the input for the date format, false to leave as is
109
  };
110
  $.extend(this._defaults, this.regional['']);
111
+ this.dpDiv = bindHover($('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'));
112
  }
113
 
114
  $.extend(Datepicker.prototype, {
115
  /* Class name added to elements to indicate already configured with a date picker. */
116
  markerClassName: 'hasDatepicker',
117
+
118
+ //Keep track of the maximum number of rows displayed (see #7043)
119
+ maxRows: 4,
120
 
121
  /* Debug logging (if enabled). */
122
  log: function () {
177
  drawMonth: 0, drawYear: 0, // month being drawn
178
  inline: inline, // is datepicker inline or not
179
  dpDiv: (!inline ? this.dpDiv : // presentation div
180
+ bindHover($('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')))};
181
  },
182
 
183
  /* Attach the date picker to an input field. */
367
  else if (nodeName == 'div' || nodeName == 'span') {
368
  var inline = $target.children('.' + this._inlineClass);
369
  inline.children().removeClass('ui-state-disabled');
370
+ inline.find("select.ui-datepicker-month, select.ui-datepicker-year").
371
+ removeAttr("disabled");
372
  }
373
  this._disabledInputs = $.map(this._disabledInputs,
374
  function(value) { return (value == target ? null : value); }); // delete entry
392
  else if (nodeName == 'div' || nodeName == 'span') {
393
  var inline = $target.children('.' + this._inlineClass);
394
  inline.children().addClass('ui-state-disabled');
395
+ inline.find("select.ui-datepicker-month, select.ui-datepicker-year").
396
+ attr("disabled", "disabled");
397
  }
398
  this._disabledInputs = $.map(this._disabledInputs,
399
  function(value) { return (value == target ? null : value); }); // delete entry
462
  inst.settings.maxDate = this._formatDate(inst, maxDate);
463
  this._attachments($(target), inst);
464
  this._autoSize(inst);
465
+ this._setDate(inst, date);
466
+ this._updateAlternate(inst);
467
  this._updateDatepicker(inst);
468
  }
469
  },
617
  return;
618
  var inst = $.datepicker._getInst(input);
619
  if ($.datepicker._curInst && $.datepicker._curInst != inst) {
620
+ if ( $.datepicker._datepickerShowing ) {
621
+ $.datepicker._triggerOnClose($.datepicker._curInst);
622
+ }
623
  $.datepicker._curInst.dpDiv.stop(true, true);
624
  }
625
  var beforeShow = $.datepicker._get(inst, 'beforeShow');
659
  var showAnim = $.datepicker._get(inst, 'showAnim');
660
  var duration = $.datepicker._get(inst, 'duration');
661
  var postProcess = function() {
 
662
  var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only
663
  if( !! cover.length ){
664
  var borders = $.datepicker._getBorders(inst.dpDiv);
667
  }
668
  };
669
  inst.dpDiv.zIndex($(input).zIndex()+1);
670
+ $.datepicker._datepickerShowing = true;
671
  if ($.effects && $.effects[showAnim])
672
  inst.dpDiv.show(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);
673
  else
683
  /* Generate the date picker content. */
684
  _updateDatepicker: function(inst) {
685
  var self = this;
686
+ self.maxRows = 4; //Reset the max number of rows being displayed (see #7043)
687
  var borders = $.datepicker._getBorders(inst.dpDiv);
688
+ instActive = inst; // for delegate hover events
689
  inst.dpDiv.empty().append(this._generateHTML(inst));
690
  var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only
691
  if( !!cover.length ){ //avoid call to outerXXXX() when not in IE6
692
  cover.css({left: -borders[0], top: -borders[1], width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()})
693
  }
694
+ inst.dpDiv.find('.' + this._dayOverClass + ' a').mouseover();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
695
  var numMonths = this._getNumberOfMonths(inst);
696
  var cols = numMonths[1];
697
  var width = 17;
698
+ inst.dpDiv.removeClass('ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4').width('');
699
  if (cols > 1)
700
  inst.dpDiv.addClass('ui-datepicker-multi-' + cols).css('width', (width * cols) + 'em');
 
 
701
  inst.dpDiv[(numMonths[0] != 1 || numMonths[1] != 1 ? 'add' : 'remove') +
702
  'Class']('ui-datepicker-multi');
703
  inst.dpDiv[(this._get(inst, 'isRTL') ? 'add' : 'remove') +
712
  var origyearshtml = inst.yearshtml;
713
  setTimeout(function(){
714
  //assure that inst.yearshtml didn't change.
715
+ if( origyearshtml === inst.yearshtml && inst.yearshtml ){
716
  inst.dpDiv.find('select.ui-datepicker-year:first').replaceWith(inst.yearshtml);
717
  }
718
  origyearshtml = inst.yearshtml = null;
764
  return [position.left, position.top];
765
  },
766
 
767
+ /* Trigger custom callback of onClose. */
768
+ _triggerOnClose: function(inst) {
769
+ var onClose = this._get(inst, 'onClose');
770
+ if (onClose)
771
+ onClose.apply((inst.input ? inst.input[0] : null),
772
+ [(inst.input ? inst.input.val() : ''), inst]);
773
+ },
774
+
775
  /* Hide the date picker from view.
776
  @param input element - the input field attached to the date picker */
777
  _hideDatepicker: function(input) {
792
  (showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))]((showAnim ? duration : null), postProcess);
793
  if (!showAnim)
794
  postProcess();
795
+ $.datepicker._triggerOnClose(inst);
 
 
 
796
  this._datepickerShowing = false;
797
  this._lastInput = null;
798
  if (this._inDialog) {
1008
  };
1009
  // Extract a name from the string value and convert to an index
1010
  var getName = function(match, shortNames, longNames) {
1011
+ var names = $.map(lookAhead(match) ? longNames : shortNames, function (v, k) {
1012
+ return [ [k, v] ];
1013
+ }).sort(function (a, b) {
1014
+ return -(a[1].length - b[1].length);
1015
+ });
1016
+ var index = -1;
1017
+ $.each(names, function (i, pair) {
1018
+ var name = pair[1];
1019
+ if (value.substr(iValue, name.length).toLowerCase() == name.toLowerCase()) {
1020
+ index = pair[0];
1021
+ iValue += name.length;
1022
+ return false;
1023
  }
1024
+ });
1025
+ if (index != -1)
1026
+ return index + 1;
1027
+ else
1028
+ throw 'Unknown name at position ' + iValue;
1029
  };
1030
  // Confirm that a literal character matches the string value
1031
  var checkLiteral = function() {
1082
  checkLiteral();
1083
  }
1084
  }
1085
+ if (iValue < value.length){
1086
+ throw "Extra/unparsed characters found in date: " + value.substring(iValue);
1087
+ }
1088
  if (year == -1)
1089
  year = new Date().getFullYear();
1090
  else if (year < 100)
1103
  }
1104
  var date = this._daylightSavingAdjust(new Date(year, month - 1, day));
1105
  if (date.getFullYear() != year || date.getMonth() + 1 != month || date.getDate() != day)
1106
+ throw 'Invalid date'; // E.g. 31/02/00
1107
  return date;
1108
  },
1109
 
1196
  break;
1197
  case 'o':
1198
  output += formatNumber('o',
1199
+ Math.round((new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000), 3);
1200
  break;
1201
  case 'm':
1202
  output += formatNumber('m', date.getMonth() + 1, 2);
1471
  var html = '';
1472
  for (var row = 0; row < numMonths[0]; row++) {
1473
  var group = '';
1474
+ this.maxRows = 4;
1475
  for (var col = 0; col < numMonths[1]; col++) {
1476
  var selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay));
1477
  var cornerClass = ' ui-corner-all';
1506
  if (drawYear == inst.selectedYear && drawMonth == inst.selectedMonth)
1507
  inst.selectedDay = Math.min(inst.selectedDay, daysInMonth);
1508
  var leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7;
1509
+ var curRows = Math.ceil((leadDays + daysInMonth) / 7); // calculate the number of rows to generate
1510
+ var numRows = (isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows); //If multiple months, use the higher number of rows (see #7043)
1511
+ this.maxRows = numRows;
1512
  var printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays));
1513
  for (var dRow = 0; dRow < numRows; dRow++) { // create date picker rows
1514
  calender += '<tr>';
1592
  if (!showMonthAfterYear)
1593
  html += monthHtml + (secondary || !(changeMonth && changeYear) ? '&#xa0;' : '');
1594
  // year selection
1595
+ if ( !inst.yearshtml ) {
1596
+ inst.yearshtml = '';
1597
+ if (secondary || !changeYear)
1598
+ html += '<span class="ui-datepicker-year">' + drawYear + '</span>';
1599
+ else {
1600
+ // determine range of years to display
1601
+ var years = this._get(inst, 'yearRange').split(':');
1602
+ var thisYear = new Date().getFullYear();
1603
+ var determineYear = function(value) {
1604
+ var year = (value.match(/c[+-].*/) ? drawYear + parseInt(value.substring(1), 10) :
1605
+ (value.match(/[+-].*/) ? thisYear + parseInt(value, 10) :
1606
+ parseInt(value, 10)));
1607
+ return (isNaN(year) ? thisYear : year);
1608
+ };
1609
+ var year = determineYear(years[0]);
1610
+ var endYear = Math.max(year, determineYear(years[1] || ''));
1611
+ year = (minDate ? Math.max(year, minDate.getFullYear()) : year);
1612
+ endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear);
1613
+ inst.yearshtml += '<select class="ui-datepicker-year" ' +
1614
+ 'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'Y\');" ' +
1615
+ 'onclick="DP_jQuery_' + dpuuid + '.datepicker._clickMonthYear(\'#' + inst.id + '\');"' +
1616
+ '>';
1617
+ for (; year <= endYear; year++) {
1618
+ inst.yearshtml += '<option value="' + year + '"' +
1619
+ (year == drawYear ? ' selected="selected"' : '') +
1620
+ '>' + year + '</option>';
1621
+ }
1622
+ inst.yearshtml += '</select>';
1623
+
1624
  html += inst.yearshtml;
1625
  inst.yearshtml = null;
 
 
 
1626
  }
1627
  }
1628
  html += this._get(inst, 'yearSuffix');
1727
  }
1728
  });
1729
 
1730
+ /*
1731
+ * Bind hover events for datepicker elements.
1732
+ * Done via delegate so the binding only occurs once in the lifetime of the parent div.
1733
+ * Global instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.
1734
+ */
1735
+ function bindHover(dpDiv) {
1736
+ var selector = 'button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a';
1737
+ return dpDiv.bind('mouseout', function(event) {
1738
+ var elem = $( event.target ).closest( selector );
1739
+ if ( !elem.length ) {
1740
+ return;
1741
+ }
1742
+ elem.removeClass( "ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover" );
1743
+ })
1744
+ .bind('mouseover', function(event) {
1745
+ var elem = $( event.target ).closest( selector );
1746
+ if ($.datepicker._isDisabledDatepicker( instActive.inline ? dpDiv.parent()[0] : instActive.input[0]) ||
1747
+ !elem.length ) {
1748
+ return;
1749
+ }
1750
+ elem.parents('.ui-datepicker-calendar').find('a').removeClass('ui-state-hover');
1751
+ elem.addClass('ui-state-hover');
1752
+ if (elem.hasClass('ui-datepicker-prev')) elem.addClass('ui-datepicker-prev-hover');
1753
+ if (elem.hasClass('ui-datepicker-next')) elem.addClass('ui-datepicker-next-hover');
1754
+ });
1755
+ }
1756
+
1757
  /* jQuery extend now ignores nulls! */
1758
  function extendRemove(target, props) {
1759
  $.extend(target, props);
1805
  $.datepicker = new Datepicker(); // singleton instance
1806
  $.datepicker.initialized = false;
1807
  $.datepicker.uuid = new Date().getTime();
1808
+ $.datepicker.version = "1.8.14";
1809
 
1810
  // Workaround for #4055
1811
  // Add another global to avoid noConflict issues with inline event handlers
core/fields/date_picker/style.date_picker.css CHANGED
@@ -1,5 +1,5 @@
1
  /*
2
- * jQuery UI CSS Framework 1.8.11
3
  *
4
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
5
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -10,39 +10,39 @@
10
 
11
  /* Layout helpers
12
  ----------------------------------*/
13
- .ui-helper-hidden { display: none; }
14
- .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
15
- .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
16
- .ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
17
- .ui-helper-clearfix { display: inline-block; }
18
  /* required comment for clearfix to work in Opera \*/
19
  * html .ui-helper-clearfix { height:1%; }
20
- .ui-helper-clearfix { display:block; }
21
  /* end clearfix */
22
- .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
23
 
24
 
25
  /* Interaction Cues
26
  ----------------------------------*/
27
- .ui-state-disabled { cursor: default !important; }
28
 
29
 
30
  /* Icons
31
  ----------------------------------*/
32
 
33
  /* states and images */
34
- .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
35
 
36
 
37
  /* Misc visuals
38
  ----------------------------------*/
39
 
40
  /* Overlays */
41
- .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
42
 
43
 
44
  /*
45
- * jQuery UI CSS Framework 1.8.11
46
  *
47
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
48
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -50,250 +50,245 @@
50
  *
51
  * http://docs.jquery.com/UI/Theming/API
52
  *
53
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Lucida%20Grande,%20Lucida%20Sans,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=5px&bgColorHeader=5c9ccc&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=55&borderColorHeader=4297d7&fcHeader=ffffff&iconColorHeader=d8e7f3&bgColorContent=fcfdfd&bgTextureContent=06_inset_hard.png&bgImgOpacityContent=100&borderColorContent=a6c9e2&fcContent=222222&iconColorContent=469bdd&bgColorDefault=dfeffc&bgTextureDefault=02_glass.png&bgImgOpacityDefault=85&borderColorDefault=c5dbec&fcDefault=2e6e9e&iconColorDefault=6da8d5&bgColorHover=d0e5f5&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=79b7e7&fcHover=1d5987&iconColorHover=217bc0&bgColorActive=f5f8f9&bgTextureActive=06_inset_hard.png&bgImgOpacityActive=100&borderColorActive=79b7e7&fcActive=e17009&iconColorActive=f9bd01&bgColorHighlight=fbec88&bgTextureHighlight=01_flat.png&bgImgOpacityHighlight=55&borderColorHighlight=fad42e&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
54
  */
55
 
56
 
57
  /* Component containers
58
  ----------------------------------*/
59
- .ui-widget { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1.1em; }
60
- .ui-widget .ui-widget { font-size: 1em; }
61
- .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1em; }
62
- .ui-widget-content { border: 1px solid #a6c9e2; background: #fcfdfd url(images/ui-bg_inset-hard_100_fcfdfd_1x100.png) 50% bottom repeat-x; color: #222222; }
63
- .ui-widget-content a { color: #222222; }
64
- .ui-widget-header { border: 1px solid #4297d7; background: #5c9ccc url(images/ui-bg_gloss-wave_55_5c9ccc_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
65
- .ui-widget-header a { color: #ffffff; }
66
 
67
  /* Interaction states
68
  ----------------------------------*/
69
- .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #c5dbec; background: #dfeffc url(images/ui-bg_glass_85_dfeffc_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #2e6e9e; }
70
- .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #2e6e9e; text-decoration: none; }
71
- .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #79b7e7; background: #d0e5f5 url(images/ui-bg_glass_75_d0e5f5_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1d5987; }
72
- .ui-state-hover a, .ui-state-hover a:hover { color: #1d5987; text-decoration: none; }
73
- .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #79b7e7; background: #f5f8f9 url(images/ui-bg_inset-hard_100_f5f8f9_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #e17009; }
74
- .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #e17009; text-decoration: none; }
75
- .ui-widget :active { outline: none; }
76
 
77
  /* Interaction Cues
78
  ----------------------------------*/
79
- .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fad42e; background: #fbec88 url(images/ui-bg_flat_55_fbec88_40x100.png) 50% 50% repeat-x; color: #363636; }
80
- .ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
81
- .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
82
- .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
83
- .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
84
- .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
85
- .ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
86
- .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
87
 
88
  /* Icons
89
  ----------------------------------*/
90
 
91
  /* states and images */
92
- .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_469bdd_256x240.png); }
93
- .ui-widget-content .ui-icon {background-image: url(images/ui-icons_469bdd_256x240.png); }
94
- .ui-widget-header .ui-icon {background-image: url(images/ui-icons_d8e7f3_256x240.png); }
95
- .ui-state-default .ui-icon { background-image: url(images/ui-icons_6da8d5_256x240.png); }
96
- .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_217bc0_256x240.png); }
97
- .ui-state-active .ui-icon {background-image: url(images/ui-icons_f9bd01_256x240.png); }
98
- .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
99
- .ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
100
 
101
  /* positioning */
102
- .ui-icon-carat-1-n { background-position: 0 0; }
103
- .ui-icon-carat-1-ne { background-position: -16px 0; }
104
- .ui-icon-carat-1-e { background-position: -32px 0; }
105
- .ui-icon-carat-1-se { background-position: -48px 0; }
106
- .ui-icon-carat-1-s { background-position: -64px 0; }
107
- .ui-icon-carat-1-sw { background-position: -80px 0; }
108
- .ui-icon-carat-1-w { background-position: -96px 0; }
109
- .ui-icon-carat-1-nw { background-position: -112px 0; }
110
- .ui-icon-carat-2-n-s { background-position: -128px 0; }
111
- .ui-icon-carat-2-e-w { background-position: -144px 0; }
112
- .ui-icon-triangle-1-n { background-position: 0 -16px; }
113
- .ui-icon-triangle-1-ne { background-position: -16px -16px; }
114
- .ui-icon-triangle-1-e { background-position: -32px -16px; }
115
- .ui-icon-triangle-1-se { background-position: -48px -16px; }
116
- .ui-icon-triangle-1-s { background-position: -64px -16px; }
117
- .ui-icon-triangle-1-sw { background-position: -80px -16px; }
118
- .ui-icon-triangle-1-w { background-position: -96px -16px; }
119
- .ui-icon-triangle-1-nw { background-position: -112px -16px; }
120
- .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
121
- .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
122
- .ui-icon-arrow-1-n { background-position: 0 -32px; }
123
- .ui-icon-arrow-1-ne { background-position: -16px -32px; }
124
- .ui-icon-arrow-1-e { background-position: -32px -32px; }
125
- .ui-icon-arrow-1-se { background-position: -48px -32px; }
126
- .ui-icon-arrow-1-s { background-position: -64px -32px; }
127
- .ui-icon-arrow-1-sw { background-position: -80px -32px; }
128
- .ui-icon-arrow-1-w { background-position: -96px -32px; }
129
- .ui-icon-arrow-1-nw { background-position: -112px -32px; }
130
- .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
131
- .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
132
- .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
133
- .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
134
- .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
135
- .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
136
- .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
137
- .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
138
- .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
139
- .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
140
- .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
141
- .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
142
- .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
143
- .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
144
- .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
145
- .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
146
- .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
147
- .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
148
- .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
149
- .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
150
- .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
151
- .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
152
- .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
153
- .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
154
- .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
155
- .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
156
- .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
157
- .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
158
- .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
159
- .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
160
- .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
161
- .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
162
- .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
163
- .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
164
- .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
165
- .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
166
- .ui-icon-arrow-4 { background-position: 0 -80px; }
167
- .ui-icon-arrow-4-diag { background-position: -16px -80px; }
168
- .ui-icon-extlink { background-position: -32px -80px; }
169
- .ui-icon-newwin { background-position: -48px -80px; }
170
- .ui-icon-refresh { background-position: -64px -80px; }
171
- .ui-icon-shuffle { background-position: -80px -80px; }
172
- .ui-icon-transfer-e-w { background-position: -96px -80px; }
173
- .ui-icon-transferthick-e-w { background-position: -112px -80px; }
174
- .ui-icon-folder-collapsed { background-position: 0 -96px; }
175
- .ui-icon-folder-open { background-position: -16px -96px; }
176
- .ui-icon-document { background-position: -32px -96px; }
177
- .ui-icon-document-b { background-position: -48px -96px; }
178
- .ui-icon-note { background-position: -64px -96px; }
179
- .ui-icon-mail-closed { background-position: -80px -96px; }
180
- .ui-icon-mail-open { background-position: -96px -96px; }
181
- .ui-icon-suitcase { background-position: -112px -96px; }
182
- .ui-icon-comment { background-position: -128px -96px; }
183
- .ui-icon-person { background-position: -144px -96px; }
184
- .ui-icon-print { background-position: -160px -96px; }
185
- .ui-icon-trash { background-position: -176px -96px; }
186
- .ui-icon-locked { background-position: -192px -96px; }
187
- .ui-icon-unlocked { background-position: -208px -96px; }
188
- .ui-icon-bookmark { background-position: -224px -96px; }
189
- .ui-icon-tag { background-position: -240px -96px; }
190
- .ui-icon-home { background-position: 0 -112px; }
191
- .ui-icon-flag { background-position: -16px -112px; }
192
- .ui-icon-calendar { background-position: -32px -112px; }
193
- .ui-icon-cart { background-position: -48px -112px; }
194
- .ui-icon-pencil { background-position: -64px -112px; }
195
- .ui-icon-clock { background-position: -80px -112px; }
196
- .ui-icon-disk { background-position: -96px -112px; }
197
- .ui-icon-calculator { background-position: -112px -112px; }
198
- .ui-icon-zoomin { background-position: -128px -112px; }
199
- .ui-icon-zoomout { background-position: -144px -112px; }
200
- .ui-icon-search { background-position: -160px -112px; }
201
- .ui-icon-wrench { background-position: -176px -112px; }
202
- .ui-icon-gear { background-position: -192px -112px; }
203
- .ui-icon-heart { background-position: -208px -112px; }
204
- .ui-icon-star { background-position: -224px -112px; }
205
- .ui-icon-link { background-position: -240px -112px; }
206
- .ui-icon-cancel { background-position: 0 -128px; }
207
- .ui-icon-plus { background-position: -16px -128px; }
208
- .ui-icon-plusthick { background-position: -32px -128px; }
209
- .ui-icon-minus { background-position: -48px -128px; }
210
- .ui-icon-minusthick { background-position: -64px -128px; }
211
- .ui-icon-close { background-position: -80px -128px; }
212
- .ui-icon-closethick { background-position: -96px -128px; }
213
- .ui-icon-key { background-position: -112px -128px; }
214
- .ui-icon-lightbulb { background-position: -128px -128px; }
215
- .ui-icon-scissors { background-position: -144px -128px; }
216
- .ui-icon-clipboard { background-position: -160px -128px; }
217
- .ui-icon-copy { background-position: -176px -128px; }
218
- .ui-icon-contact { background-position: -192px -128px; }
219
- .ui-icon-image { background-position: -208px -128px; }
220
- .ui-icon-video { background-position: -224px -128px; }
221
- .ui-icon-script { background-position: -240px -128px; }
222
- .ui-icon-alert { background-position: 0 -144px; }
223
- .ui-icon-info { background-position: -16px -144px; }
224
- .ui-icon-notice { background-position: -32px -144px; }
225
- .ui-icon-help { background-position: -48px -144px; }
226
- .ui-icon-check { background-position: -64px -144px; }
227
- .ui-icon-bullet { background-position: -80px -144px; }
228
- .ui-icon-radio-off { background-position: -96px -144px; }
229
- .ui-icon-radio-on { background-position: -112px -144px; }
230
- .ui-icon-pin-w { background-position: -128px -144px; }
231
- .ui-icon-pin-s { background-position: -144px -144px; }
232
- .ui-icon-play { background-position: 0 -160px; }
233
- .ui-icon-pause { background-position: -16px -160px; }
234
- .ui-icon-seek-next { background-position: -32px -160px; }
235
- .ui-icon-seek-prev { background-position: -48px -160px; }
236
- .ui-icon-seek-end { background-position: -64px -160px; }
237
- .ui-icon-seek-start { background-position: -80px -160px; }
238
  /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
239
- .ui-icon-seek-first { background-position: -80px -160px; }
240
- .ui-icon-stop { background-position: -96px -160px; }
241
- .ui-icon-eject { background-position: -112px -160px; }
242
- .ui-icon-volume-off { background-position: -128px -160px; }
243
- .ui-icon-volume-on { background-position: -144px -160px; }
244
- .ui-icon-power { background-position: 0 -176px; }
245
- .ui-icon-signal-diag { background-position: -16px -176px; }
246
- .ui-icon-signal { background-position: -32px -176px; }
247
- .ui-icon-battery-0 { background-position: -48px -176px; }
248
- .ui-icon-battery-1 { background-position: -64px -176px; }
249
- .ui-icon-battery-2 { background-position: -80px -176px; }
250
- .ui-icon-battery-3 { background-position: -96px -176px; }
251
- .ui-icon-circle-plus { background-position: 0 -192px; }
252
- .ui-icon-circle-minus { background-position: -16px -192px; }
253
- .ui-icon-circle-close { background-position: -32px -192px; }
254
- .ui-icon-circle-triangle-e { background-position: -48px -192px; }
255
- .ui-icon-circle-triangle-s { background-position: -64px -192px; }
256
- .ui-icon-circle-triangle-w { background-position: -80px -192px; }
257
- .ui-icon-circle-triangle-n { background-position: -96px -192px; }
258
- .ui-icon-circle-arrow-e { background-position: -112px -192px; }
259
- .ui-icon-circle-arrow-s { background-position: -128px -192px; }
260
- .ui-icon-circle-arrow-w { background-position: -144px -192px; }
261
- .ui-icon-circle-arrow-n { background-position: -160px -192px; }
262
- .ui-icon-circle-zoomin { background-position: -176px -192px; }
263
- .ui-icon-circle-zoomout { background-position: -192px -192px; }
264
- .ui-icon-circle-check { background-position: -208px -192px; }
265
- .ui-icon-circlesmall-plus { background-position: 0 -208px; }
266
- .ui-icon-circlesmall-minus { background-position: -16px -208px; }
267
- .ui-icon-circlesmall-close { background-position: -32px -208px; }
268
- .ui-icon-squaresmall-plus { background-position: -48px -208px; }
269
- .ui-icon-squaresmall-minus { background-position: -64px -208px; }
270
- .ui-icon-squaresmall-close { background-position: -80px -208px; }
271
- .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
272
- .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
273
- .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
274
- .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
275
- .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
276
- .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
277
 
278
 
279
  /* Misc visuals
280
  ----------------------------------*/
281
 
282
  /* Corner radius */
283
- .ui-corner-tl { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; border-top-left-radius: 5px; }
284
- .ui-corner-tr { -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; border-top-right-radius: 5px; }
285
- .ui-corner-bl { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; }
286
- .ui-corner-br { -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; }
287
- .ui-corner-top { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; border-top-left-radius: 5px; -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; border-top-right-radius: 5px; }
288
- .ui-corner-bottom { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; }
289
- .ui-corner-right { -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; border-top-right-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; }
290
- .ui-corner-left { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; border-top-left-radius: 5px; -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; }
291
- .ui-corner-all { -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }
292
 
293
  /* Overlays */
294
- .ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
295
- .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
296
- * jQuery UI Datepicker 1.8.11
297
  *
298
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
299
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -301,55 +296,55 @@
301
  *
302
  * http://docs.jquery.com/UI/Datepicker#theming
303
  */
304
- .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
305
- .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
306
- .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
307
- .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
308
- .ui-datepicker .ui-datepicker-prev { left:2px; }
309
- .ui-datepicker .ui-datepicker-next { right:2px; }
310
- .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
311
- .ui-datepicker .ui-datepicker-next-hover { right:1px; }
312
- .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
313
- .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
314
- .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
315
- .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
316
- .ui-datepicker select.ui-datepicker-month,
317
- .ui-datepicker select.ui-datepicker-year { width: 49%;}
318
- .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
319
- .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
320
- .ui-datepicker td { border: 0; padding: 1px; }
321
- .ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
322
- .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
323
- .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
324
- .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
325
 
326
  /* with multiple calendars */
327
- .ui-datepicker.ui-datepicker-multi { width:auto; }
328
- .ui-datepicker-multi .ui-datepicker-group { float:left; }
329
- .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
330
- .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
331
- .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
332
- .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
333
- .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
334
- .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
335
- .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
336
- .ui-datepicker-row-break { clear:both; width:100%; }
337
 
338
  /* RTL support */
339
- .ui-datepicker-rtl { direction: rtl; }
340
- .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
341
- .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
342
- .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
343
- .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
344
- .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
345
- .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
346
- .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
347
- .ui-datepicker-rtl .ui-datepicker-group { float:right; }
348
- .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
349
- .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
350
 
351
  /* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
352
- .ui-datepicker-cover {
353
  display: none; /*sorry for IE5*/
354
  display/**/: block; /*sorry for IE5*/
355
  position: absolute; /*must have*/
1
  /*
2
+ * jQuery UI CSS Framework 1.8.14
3
  *
4
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
5
  * Dual licensed under the MIT or GPL Version 2 licenses.
10
 
11
  /* Layout helpers
12
  ----------------------------------*/
13
+ .acf_datepicker .ui-helper-hidden { display: none; }
14
+ .acf_datepicker .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
15
+ .acf_datepicker .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
16
+ .acf_datepicker .ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
17
+ .acf_datepicker .ui-helper-clearfix { display: inline-block; }
18
  /* required comment for clearfix to work in Opera \*/
19
  * html .ui-helper-clearfix { height:1%; }
20
+ .acf_datepicker .ui-helper-clearfix { display:block; }
21
  /* end clearfix */
22
+ .acf_datepicker .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
23
 
24
 
25
  /* Interaction Cues
26
  ----------------------------------*/
27
+ .acf_datepicker .ui-state-disabled { cursor: default !important; }
28
 
29
 
30
  /* Icons
31
  ----------------------------------*/
32
 
33
  /* states and images */
34
+ .acf_datepicker .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
35
 
36
 
37
  /* Misc visuals
38
  ----------------------------------*/
39
 
40
  /* Overlays */
41
+ .acf_datepicker .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
42
 
43
 
44
  /*
45
+ * jQuery UI CSS Framework 1.8.14
46
  *
47
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
48
  * Dual licensed under the MIT or GPL Version 2 licenses.
50
  *
51
  * http://docs.jquery.com/UI/Theming/API
52
  *
53
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=444444&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=0&borderColorHeader=000000&fcHeader=e5e5e5&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=5bc6f5&bgTextureHighlight=01_flat.png&bgImgOpacityHighlight=55&borderColorHighlight=1cb1f2&fcHighlight=ffffff&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
54
  */
55
 
56
 
57
  /* Component containers
58
  ----------------------------------*/
59
+ .acf_datepicker .ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; }
60
+ .acf_datepicker .ui-widget .ui-widget { font-size: 1em; }
61
+ .acf_datepicker .ui-widget input, .acf_datepicker .ui-widget select, .acf_datepicker .ui-widget textarea, .acf_datepicker .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; }
62
+ .acf_datepicker .ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
63
+ .acf_datepicker .ui-widget-content a { color: #222222; }
64
+ .acf_datepicker .ui-widget-header { border: 1px solid #000000; background: #444444 url(images/ui-bg_highlight-soft_0_444444_1x100.png) 50% 50% repeat-x; color: #e5e5e5; font-weight: bold; }
65
+ .acf_datepicker .ui-widget-header a { color: #e5e5e5; }
66
 
67
  /* Interaction states
68
  ----------------------------------*/
69
+ .acf_datepicker .ui-state-default, .acf_datepicker .ui-widget-content .ui-state-default, .acf_datepicker .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; }
70
+ .acf_datepicker .ui-state-default a, .acf_datepicker .ui-state-default a:link, .acf_datepicker .ui-state-default a:visited { color: #555555; text-decoration: none; }
71
+ .acf_datepicker .ui-state-hover, .acf_datepicker .ui-widget-content .ui-state-hover, .acf_datepicker .ui-widget-header .ui-state-hover, .acf_datepicker .ui-state-focus, .acf_datepicker .ui-widget-content .ui-state-focus, .acf_datepicker .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
72
+ .acf_datepicker .ui-state-hover a, .acf_datepicker .ui-state-hover a:hover { color: #212121; text-decoration: none; }
73
+ .acf_datepicker .ui-state-active, .acf_datepicker .ui-widget-content .ui-state-active, .acf_datepicker .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
74
+ .acf_datepicker .ui-state-active a, .acf_datepicker .ui-state-active a:link, .acf_datepicker .ui-state-active a:visited { color: #212121; text-decoration: none; }
75
+ .acf_datepicker .ui-widget :active { outline: none; }
76
 
77
  /* Interaction Cues
78
  ----------------------------------*/
79
+ .acf_datepicker .ui-state-highlight, .acf_datepicker .ui-widget-content .ui-state-highlight, .acf_datepicker .ui-widget-header .ui-state-highlight {border: 1px solid #1cb1f2; background: #5bc6f5 url(images/ui-bg_flat_55_5bc6f5_40x100.png) 50% 50% repeat-x; color: #ffffff; }
80
+ .acf_datepicker .ui-state-highlight a, .acf_datepicker .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #ffffff; }
81
+ .acf_datepicker .ui-state-error, .acf_datepicker .ui-widget-content .ui-state-error, .acf_datepicker .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
82
+ .acf_datepicker .ui-state-error a, .acf_datepicker .ui-widget-content .ui-state-error a, .acf_datepicker .ui-widget-header .ui-state-error a { color: #cd0a0a; }
83
+ .acf_datepicker .ui-state-error-text, .acf_datepicker .ui-widget-content .ui-state-error-text, .acf_datepicker .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
84
+ .acf_datepicker .ui-priority-primary, .acf_datepicker .ui-widget-content .ui-priority-primary, .acf_datepicker .ui-widget-header .ui-priority-primary { font-weight: bold; }
85
+ .acf_datepicker .ui-priority-secondary, .acf_datepicker .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
86
+ .acf_datepicker .ui-state-disabled, .acf_datepicker .ui-widget-content .ui-state-disabled, .acf_datepicker .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
87
 
88
  /* Icons
89
  ----------------------------------*/
90
 
91
  /* states and images */
92
+ .acf_datepicker .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
93
+ .acf_datepicker .ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
94
+ .acf_datepicker .ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
95
+ .acf_datepicker .ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); }
96
+ .acf_datepicker .ui-state-hover .ui-icon, .acf_datepicker .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
97
+ .acf_datepicker .ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
98
+ .acf_datepicker .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
99
+ .acf_datepicker .ui-state-error .ui-icon, .acf_datepicker .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
100
 
101
  /* positioning */
102
+ .acf_datepicker .ui-icon-carat-1-n { background-position: 0 0; }
103
+ .acf_datepicker .ui-icon-carat-1-ne { background-position: -16px 0; }
104
+ .acf_datepicker .ui-icon-carat-1-e { background-position: -32px 0; }
105
+ .acf_datepicker .ui-icon-carat-1-se { background-position: -48px 0; }
106
+ .acf_datepicker .ui-icon-carat-1-s { background-position: -64px 0; }
107
+ .acf_datepicker .ui-icon-carat-1-sw { background-position: -80px 0; }
108
+ .acf_datepicker .ui-icon-carat-1-w { background-position: -96px 0; }
109
+ .acf_datepicker .ui-icon-carat-1-nw { background-position: -112px 0; }
110
+ .acf_datepicker .ui-icon-carat-2-n-s { background-position: -128px 0; }
111
+ .acf_datepicker .ui-icon-carat-2-e-w { background-position: -144px 0; }
112
+ .acf_datepicker .ui-icon-triangle-1-n { background-position: 0 -16px; }
113
+ .acf_datepicker .ui-icon-triangle-1-ne { background-position: -16px -16px; }
114
+ .acf_datepicker .ui-icon-triangle-1-e { background-position: -32px -16px; }
115
+ .acf_datepicker .ui-icon-triangle-1-se { background-position: -48px -16px; }
116
+ .acf_datepicker .ui-icon-triangle-1-s { background-position: -64px -16px; }
117
+ .acf_datepicker .ui-icon-triangle-1-sw { background-position: -80px -16px; }
118
+ .acf_datepicker .ui-icon-triangle-1-w { background-position: -96px -16px; }
119
+ .acf_datepicker .ui-icon-triangle-1-nw { background-position: -112px -16px; }
120
+ .acf_datepicker .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
121
+ .acf_datepicker .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
122
+ .acf_datepicker .ui-icon-arrow-1-n { background-position: 0 -32px; }
123
+ .acf_datepicker .ui-icon-arrow-1-ne { background-position: -16px -32px; }
124
+ .acf_datepicker .ui-icon-arrow-1-e { background-position: -32px -32px; }
125
+ .acf_datepicker .ui-icon-arrow-1-se { background-position: -48px -32px; }
126
+ .acf_datepicker .ui-icon-arrow-1-s { background-position: -64px -32px; }
127
+ .acf_datepicker .ui-icon-arrow-1-sw { background-position: -80px -32px; }
128
+ .acf_datepicker .ui-icon-arrow-1-w { background-position: -96px -32px; }
129
+ .acf_datepicker .ui-icon-arrow-1-nw { background-position: -112px -32px; }
130
+ .acf_datepicker .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
131
+ .acf_datepicker .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
132
+ .acf_datepicker .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
133
+ .acf_datepicker .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
134
+ .acf_datepicker .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
135
+ .acf_datepicker .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
136
+ .acf_datepicker .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
137
+ .acf_datepicker .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
138
+ .acf_datepicker .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
139
+ .acf_datepicker .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
140
+ .acf_datepicker .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
141
+ .acf_datepicker .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
142
+ .acf_datepicker .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
143
+ .acf_datepicker .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
144
+ .acf_datepicker .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
145
+ .acf_datepicker .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
146
+ .acf_datepicker .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
147
+ .acf_datepicker .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
148
+ .acf_datepicker .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
149
+ .acf_datepicker .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
150
+ .acf_datepicker .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
151
+ .acf_datepicker .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
152
+ .acf_datepicker .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
153
+ .acf_datepicker .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
154
+ .acf_datepicker .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
155
+ .acf_datepicker .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
156
+ .acf_datepicker .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
157
+ .acf_datepicker .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
158
+ .acf_datepicker .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
159
+ .acf_datepicker .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
160
+ .acf_datepicker .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
161
+ .acf_datepicker .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
162
+ .acf_datepicker .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
163
+ .acf_datepicker .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
164
+ .acf_datepicker .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
165
+ .acf_datepicker .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
166
+ .acf_datepicker .ui-icon-arrow-4 { background-position: 0 -80px; }
167
+ .acf_datepicker .ui-icon-arrow-4-diag { background-position: -16px -80px; }
168
+ .acf_datepicker .ui-icon-extlink { background-position: -32px -80px; }
169
+ .acf_datepicker .ui-icon-newwin { background-position: -48px -80px; }
170
+ .acf_datepicker .ui-icon-refresh { background-position: -64px -80px; }
171
+ .acf_datepicker .ui-icon-shuffle { background-position: -80px -80px; }
172
+ .acf_datepicker .ui-icon-transfer-e-w { background-position: -96px -80px; }
173
+ .acf_datepicker .ui-icon-transferthick-e-w { background-position: -112px -80px; }
174
+ .acf_datepicker .ui-icon-folder-collapsed { background-position: 0 -96px; }
175
+ .acf_datepicker .ui-icon-folder-open { background-position: -16px -96px; }
176
+ .acf_datepicker .ui-icon-document { background-position: -32px -96px; }
177
+ .acf_datepicker .ui-icon-document-b { background-position: -48px -96px; }
178
+ .acf_datepicker .ui-icon-note { background-position: -64px -96px; }
179
+ .acf_datepicker .ui-icon-mail-closed { background-position: -80px -96px; }
180
+ .acf_datepicker .ui-icon-mail-open { background-position: -96px -96px; }
181
+ .acf_datepicker .ui-icon-suitcase { background-position: -112px -96px; }
182
+ .acf_datepicker .ui-icon-comment { background-position: -128px -96px; }
183
+ .acf_datepicker .ui-icon-person { background-position: -144px -96px; }
184
+ .acf_datepicker .ui-icon-print { background-position: -160px -96px; }
185
+ .acf_datepicker .ui-icon-trash { background-position: -176px -96px; }
186
+ .acf_datepicker .ui-icon-locked { background-position: -192px -96px; }
187
+ .acf_datepicker .ui-icon-unlocked { background-position: -208px -96px; }
188
+ .acf_datepicker .ui-icon-bookmark { background-position: -224px -96px; }
189
+ .acf_datepicker .ui-icon-tag { background-position: -240px -96px; }
190
+ .acf_datepicker .ui-icon-home { background-position: 0 -112px; }
191
+ .acf_datepicker .ui-icon-flag { background-position: -16px -112px; }
192
+ .acf_datepicker .ui-icon-calendar { background-position: -32px -112px; }
193
+ .acf_datepicker .ui-icon-cart { background-position: -48px -112px; }
194
+ .acf_datepicker .ui-icon-pencil { background-position: -64px -112px; }
195
+ .acf_datepicker .ui-icon-clock { background-position: -80px -112px; }
196
+ .acf_datepicker .ui-icon-disk { background-position: -96px -112px; }
197
+ .acf_datepicker .ui-icon-calculator { background-position: -112px -112px; }
198
+ .acf_datepicker .ui-icon-zoomin { background-position: -128px -112px; }
199
+ .acf_datepicker .ui-icon-zoomout { background-position: -144px -112px; }
200
+ .acf_datepicker .ui-icon-search { background-position: -160px -112px; }
201
+ .acf_datepicker .ui-icon-wrench { background-position: -176px -112px; }
202
+ .acf_datepicker .ui-icon-gear { background-position: -192px -112px; }
203
+ .acf_datepicker .ui-icon-heart { background-position: -208px -112px; }
204
+ .acf_datepicker .ui-icon-star { background-position: -224px -112px; }
205
+ .acf_datepicker .ui-icon-link { background-position: -240px -112px; }
206
+ .acf_datepicker .ui-icon-cancel { background-position: 0 -128px; }
207
+ .acf_datepicker .ui-icon-plus { background-position: -16px -128px; }
208
+ .acf_datepicker .ui-icon-plusthick { background-position: -32px -128px; }
209
+ .acf_datepicker .ui-icon-minus { background-position: -48px -128px; }
210
+ .acf_datepicker .ui-icon-minusthick { background-position: -64px -128px; }
211
+ .acf_datepicker .ui-icon-close { background-position: -80px -128px; }
212
+ .acf_datepicker .ui-icon-closethick { background-position: -96px -128px; }
213
+ .acf_datepicker .ui-icon-key { background-position: -112px -128px; }
214
+ .acf_datepicker .ui-icon-lightbulb { background-position: -128px -128px; }
215
+ .acf_datepicker .ui-icon-scissors { background-position: -144px -128px; }
216
+ .acf_datepicker .ui-icon-clipboard { background-position: -160px -128px; }
217
+ .acf_datepicker .ui-icon-copy { background-position: -176px -128px; }
218
+ .acf_datepicker .ui-icon-contact { background-position: -192px -128px; }
219
+ .acf_datepicker .ui-icon-image { background-position: -208px -128px; }
220
+ .acf_datepicker .ui-icon-video { background-position: -224px -128px; }
221
+ .acf_datepicker .ui-icon-script { background-position: -240px -128px; }
222
+ .acf_datepicker .ui-icon-alert { background-position: 0 -144px; }
223
+ .acf_datepicker .ui-icon-info { background-position: -16px -144px; }
224
+ .acf_datepicker .ui-icon-notice { background-position: -32px -144px; }
225
+ .acf_datepicker .ui-icon-help { background-position: -48px -144px; }
226
+ .acf_datepicker .ui-icon-check { background-position: -64px -144px; }
227
+ .acf_datepicker .ui-icon-bullet { background-position: -80px -144px; }
228
+ .acf_datepicker .ui-icon-radio-off { background-position: -96px -144px; }
229
+ .acf_datepicker .ui-icon-radio-on { background-position: -112px -144px; }
230
+ .acf_datepicker .ui-icon-pin-w { background-position: -128px -144px; }
231
+ .acf_datepicker .ui-icon-pin-s { background-position: -144px -144px; }
232
+ .acf_datepicker .ui-icon-play { background-position: 0 -160px; }
233
+ .acf_datepicker .ui-icon-pause { background-position: -16px -160px; }
234
+ .acf_datepicker .ui-icon-seek-next { background-position: -32px -160px; }
235
+ .acf_datepicker .ui-icon-seek-prev { background-position: -48px -160px; }
236
+ .acf_datepicker .ui-icon-seek-end { background-position: -64px -160px; }
237
+ .acf_datepicker .ui-icon-seek-start { background-position: -80px -160px; }
238
  /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
239
+ .acf_datepicker .ui-icon-seek-first { background-position: -80px -160px; }
240
+ .acf_datepicker .ui-icon-stop { background-position: -96px -160px; }
241
+ .acf_datepicker .ui-icon-eject { background-position: -112px -160px; }
242
+ .acf_datepicker .ui-icon-volume-off { background-position: -128px -160px; }
243
+ .acf_datepicker .ui-icon-volume-on { background-position: -144px -160px; }
244
+ .acf_datepicker .ui-icon-power { background-position: 0 -176px; }
245
+ .acf_datepicker .ui-icon-signal-diag { background-position: -16px -176px; }
246
+ .acf_datepicker .ui-icon-signal { background-position: -32px -176px; }
247
+ .acf_datepicker .ui-icon-battery-0 { background-position: -48px -176px; }
248
+ .acf_datepicker .ui-icon-battery-1 { background-position: -64px -176px; }
249
+ .acf_datepicker .ui-icon-battery-2 { background-position: -80px -176px; }
250
+ .acf_datepicker .ui-icon-battery-3 { background-position: -96px -176px; }
251
+ .acf_datepicker .ui-icon-circle-plus { background-position: 0 -192px; }
252
+ .acf_datepicker .ui-icon-circle-minus { background-position: -16px -192px; }
253
+ .acf_datepicker .ui-icon-circle-close { background-position: -32px -192px; }
254
+ .acf_datepicker .ui-icon-circle-triangle-e { background-position: -48px -192px; }
255
+ .acf_datepicker .ui-icon-circle-triangle-s { background-position: -64px -192px; }
256
+ .acf_datepicker .ui-icon-circle-triangle-w { background-position: -80px -192px; }
257
+ .acf_datepicker .ui-icon-circle-triangle-n { background-position: -96px -192px; }
258
+ .acf_datepicker .ui-icon-circle-arrow-e { background-position: -112px -192px; }
259
+ .acf_datepicker .ui-icon-circle-arrow-s { background-position: -128px -192px; }
260
+ .acf_datepicker .ui-icon-circle-arrow-w { background-position: -144px -192px; }
261
+ .acf_datepicker .ui-icon-circle-arrow-n { background-position: -160px -192px; }
262
+ .acf_datepicker .ui-icon-circle-zoomin { background-position: -176px -192px; }
263
+ .acf_datepicker .ui-icon-circle-zoomout { background-position: -192px -192px; }
264
+ .acf_datepicker .ui-icon-circle-check { background-position: -208px -192px; }
265
+ .acf_datepicker .ui-icon-circlesmall-plus { background-position: 0 -208px; }
266
+ .acf_datepicker .ui-icon-circlesmall-minus { background-position: -16px -208px; }
267
+ .acf_datepicker .ui-icon-circlesmall-close { background-position: -32px -208px; }
268
+ .acf_datepicker .ui-icon-squaresmall-plus { background-position: -48px -208px; }
269
+ .acf_datepicker .ui-icon-squaresmall-minus { background-position: -64px -208px; }
270
+ .acf_datepicker .ui-icon-squaresmall-close { background-position: -80px -208px; }
271
+ .acf_datepicker .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
272
+ .acf_datepicker .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
273
+ .acf_datepicker .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
274
+ .acf_datepicker .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
275
+ .acf_datepicker .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
276
+ .acf_datepicker .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
277
 
278
 
279
  /* Misc visuals
280
  ----------------------------------*/
281
 
282
  /* Corner radius */
283
+ .acf_datepicker .ui-corner-all, .acf_datepicker .ui-corner-top, .acf_datepicker .ui-corner-left, .acf_datepicker .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
284
+ .acf_datepicker .ui-corner-all, .acf_datepicker .ui-corner-top, .acf_datepicker .ui-corner-right, .acf_datepicker .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
285
+ .acf_datepicker .ui-corner-all, .acf_datepicker .ui-corner-bottom, .acf_datepicker .ui-corner-left, .acf_datepicker .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
286
+ .acf_datepicker .ui-corner-all, .acf_datepicker .ui-corner-bottom, .acf_datepicker .ui-corner-right, .acf_datepicker .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
 
 
 
 
 
287
 
288
  /* Overlays */
289
+ .acf_datepicker .ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
290
+ .acf_datepicker .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
291
+ * jQuery UI Datepicker 1.8.14
292
  *
293
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
294
  * Dual licensed under the MIT or GPL Version 2 licenses.
296
  *
297
  * http://docs.jquery.com/UI/Datepicker#theming
298
  */
299
+ .acf_datepicker .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
300
+ .acf_datepicker .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
301
+ .acf_datepicker .ui-datepicker .ui-datepicker-prev, .acf_datepicker .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
302
+ .acf_datepicker .ui-datepicker .ui-datepicker-prev-hover, .acf_datepicker .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
303
+ .acf_datepicker .ui-datepicker .ui-datepicker-prev { left:2px; }
304
+ .acf_datepicker .ui-datepicker .ui-datepicker-next { right:2px; }
305
+ .acf_datepicker .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
306
+ .acf_datepicker .ui-datepicker .ui-datepicker-next-hover { right:1px; }
307
+ .acf_datepicker .ui-datepicker .ui-datepicker-prev span, .acf_datepicker .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
308
+ .acf_datepicker .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
309
+ .acf_datepicker .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
310
+ .acf_datepicker .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
311
+ .acf_datepicker .ui-datepicker select.ui-datepicker-month,
312
+ .acf_datepicker .ui-datepicker select.ui-datepicker-year { width: 49%;}
313
+ .acf_datepicker .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
314
+ .acf_datepicker .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
315
+ .acf_datepicker .ui-datepicker td { border: 0; padding: 1px; }
316
+ .acf_datepicker .ui-datepicker td span, .acf_datepicker .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
317
+ .acf_datepicker .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
318
+ .acf_datepicker .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
319
+ .acf_datepicker .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
320
 
321
  /* with multiple calendars */
322
+ .acf_datepicker .ui-datepicker.ui-datepicker-multi { width:auto; }
323
+ .acf_datepicker .ui-datepicker-multi .ui-datepicker-group { float:left; }
324
+ .acf_datepicker .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
325
+ .acf_datepicker .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
326
+ .acf_datepicker .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
327
+ .acf_datepicker .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
328
+ .acf_datepicker .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
329
+ .acf_datepicker .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
330
+ .acf_datepicker .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
331
+ .acf_datepicker .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
332
 
333
  /* RTL support */
334
+ .acf_datepicker .ui-datepicker-rtl { direction: rtl; }
335
+ .acf_datepicker .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
336
+ .acf_datepicker .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
337
+ .acf_datepicker .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
338
+ .acf_datepicker .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
339
+ .acf_datepicker .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
340
+ .acf_datepicker .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
341
+ .acf_datepicker .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
342
+ .acf_datepicker .ui-datepicker-rtl .ui-datepicker-group { float:right; }
343
+ .acf_datepicker .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
344
+ .acf_datepicker .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
345
 
346
  /* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
347
+ .acf_datepicker .ui-datepicker-cover {
348
  display: none; /*sorry for IE5*/
349
  display/**/: block; /*sorry for IE5*/
350
  position: absolute; /*must have*/
core/fields/repeater.php CHANGED
@@ -46,7 +46,7 @@ class acf_Repeater
46
  <?php endif; ?>
47
 
48
  <?php foreach($sub_fields as $sub_field):?>
49
- <th class="<?php echo $sub_field->name; ?>"><span><?php echo $sub_field->label; ?></span></th>
50
  <?php endforeach; ?>
51
 
52
  <?php if($row_limit > 1): ?>
46
  <?php endif; ?>
47
 
48
  <?php foreach($sub_fields as $sub_field):?>
49
+ <th class="<?php echo $sub_field->name; ?>" style="width:<?php echo 100/count($sub_fields); ?>%;"><span><?php echo $sub_field->label; ?></span></th>
50
  <?php endforeach; ?>
51
 
52
  <?php if($row_limit > 1): ?>
core/fields/select.php CHANGED
@@ -134,7 +134,7 @@ class acf_Select
134
  function format_options($options)
135
  {
136
  // if no choices, dont do anything
137
- if($options['choices'] == '')
138
  {
139
  return $options;
140
  }
134
  function format_options($options)
135
  {
136
  // if no choices, dont do anything
137
+ if(!$options['choices'] || is_array($options['choices']))
138
  {
139
  return $options;
140
  }
core/import.php ADDED
@@ -0,0 +1,234 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*----------------------------------------------------------------------
4
+ *
5
+ * import
6
+ *
7
+ *---------------------------------------------------------------------*/
8
+
9
+ require_once( ABSPATH . 'wp-admin/includes/import.php');
10
+ require_once( ABSPATH . 'wp-admin/includes/file.php');
11
+
12
+
13
+
14
+
15
+ // Checkpoint: Upload directory errors
16
+ $upload_dir = wp_upload_dir();
17
+ if (!empty($upload_dir['error']))
18
+ {
19
+ $this->admin_error($upload_dir['error']);
20
+ return;
21
+ }
22
+
23
+
24
+ // get file
25
+ $file = wp_import_handle_upload();
26
+
27
+
28
+ // Checkpoint: File Error
29
+ if(isset($file['error']))
30
+ {
31
+ $this->admin_error($file['error']);
32
+ return;
33
+ }
34
+
35
+ // Checkpoint: File Type
36
+ $pos = strpos($file['file'], '.xml');
37
+ if($pos === false)
38
+ {
39
+ $this->admin_error('File uploaded is not a valid ACF export .xml file');
40
+ return;
41
+ }
42
+
43
+
44
+ // Start Importing!
45
+ $posts = simplexml_load_file($file['file']);
46
+
47
+
48
+ // Checkpoint: Import File must not be empty
49
+ if(!$posts)
50
+ {
51
+ $this->admin_error("Error: File is empty");
52
+ return;
53
+ }
54
+
55
+
56
+ foreach($posts as $post)
57
+ {
58
+ $new_post = array(
59
+ 'post_type' => 'acf',
60
+ 'post_title' => $post->title,
61
+ 'post_status' => $post->post_status,
62
+ 'post_author' => get_current_user_id(),
63
+ 'menu_order' => $post->menu_order,
64
+ 'post_parent' => $post->post_parent,
65
+ );
66
+
67
+ $post_id = wp_insert_post( $new_post, false );
68
+
69
+ $_POST = array(
70
+ 'fields_meta_box' => 'true',
71
+ 'location_meta_box' => 'true',
72
+ 'options_meta_box' => 'true',
73
+ 'ei_noncename' => wp_create_nonce('ei-n'),
74
+ );
75
+
76
+ if($post_id != 0)
77
+ {
78
+
79
+ if($post->fields[0]->children())
80
+ {
81
+ $i = -1;
82
+
83
+ foreach($post->fields[0]->children() as $field)
84
+ {
85
+ $i++;
86
+
87
+ $post_field = array(
88
+ 'label' => the_xml_value($field->label),
89
+ 'name' => the_xml_value($field->name),
90
+ 'type' => the_xml_value($field->type),
91
+ 'options' => array(),
92
+ 'instructions' => the_xml_value($field->instructions),
93
+ 'save_as_cf' => the_xml_value($field->save_as_cf),
94
+ );
95
+
96
+ if($field->options[0]->children())
97
+ {
98
+ foreach($field->options[0]->children() as $k => $v)
99
+ {
100
+ if($k == 'sub_fields')
101
+ {
102
+ $sub_fields = array();
103
+ $j = -1;
104
+
105
+ foreach($v->children() as $sub_field)
106
+ {
107
+ $j++;
108
+
109
+ $post_sub_field = array(
110
+ 'label' => the_xml_value($sub_field->label),
111
+ 'name' => the_xml_value($sub_field->name),
112
+ 'type' => the_xml_value($sub_field->type),
113
+ 'options' => array(),
114
+ );
115
+
116
+ if($sub_field->options[0]->children())
117
+ {
118
+ foreach($sub_field->options[0]->children() as $k2 => $v2)
119
+ {
120
+ $post_sub_field['options'][$k2] = the_xml_value($v2);
121
+ }
122
+ }
123
+
124
+ $sub_fields[$j] = $post_sub_field;
125
+ }
126
+ // foreach($v->children() as $sub_field)
127
+
128
+ $post_field[$k] = $sub_fields;
129
+ }
130
+ else
131
+ {
132
+ $post_field['options'][$k] = the_xml_value($v);
133
+ }
134
+ }
135
+ // foreach($field->options[0]->children() as $k => $v)
136
+
137
+ }
138
+ // if($field->options[0]->children())
139
+
140
+ $_POST['acf']['fields'][$i] = $post_field;
141
+
142
+ }
143
+ // foreach($post->fields[0]->children() as $field)
144
+
145
+
146
+
147
+ }
148
+ // if($post->fields[0]->children())
149
+
150
+
151
+ // add location
152
+ if($post->location[0]->children())
153
+ {
154
+ $i = -1;
155
+
156
+ foreach($post->location[0]->rule as $rule)
157
+ {
158
+ $i++;
159
+
160
+ $_POST['acf']['location']['rules'][$i] = array(
161
+ 'param' => the_xml_value($rule->param),
162
+ 'operator' => the_xml_value($rule->operator),
163
+ 'value' => the_xml_value($rule->value),
164
+ );
165
+
166
+
167
+ }
168
+
169
+ $_POST['acf']['location']['allorany'] = the_xml_value($post->location[0]->allorany);
170
+ }
171
+
172
+ // ad options
173
+ if($post->options[0]->children())
174
+ {
175
+
176
+ foreach($post->options[0]->children() as $k => $v)
177
+ {
178
+
179
+ $_POST['acf']['options'][$k] = the_xml_value($v);
180
+ }
181
+
182
+ }
183
+
184
+ $this->_save_post($post_id);
185
+ }
186
+ // if($post_id != 0)
187
+
188
+ unset($_POST);
189
+
190
+ }
191
+ // foreach($posts as $post)
192
+
193
+
194
+ if(count($posts) == 1)
195
+ {
196
+ $this->admin_message('Imported 1 Advanced Custom Field Groups');
197
+ }
198
+ else
199
+ {
200
+ $this->admin_message('Imported '.count($posts).' Advanced Custom Field Groups');
201
+ }
202
+
203
+
204
+
205
+
206
+
207
+ function the_xml_value($value)
208
+ {
209
+ if(isset($value->array[0]))
210
+ {
211
+ $array = array();
212
+ foreach($value->array[0]->children() as $v)
213
+ {
214
+ $att = $v->attributes();
215
+ if(isset($att['key']))
216
+ {
217
+ $key = (string) $att['key'];
218
+ $array[$key] = (string) $v;
219
+ }
220
+ else
221
+ {
222
+ $array[] = (string) $v;
223
+ }
224
+
225
+ }
226
+ return $array;
227
+ }
228
+ else
229
+ {
230
+ return (string) $value;
231
+ }
232
+ }
233
+
234
+ ?>
core/screen_extra.php CHANGED
@@ -1,89 +1,5 @@
1
- <div id="screen-meta-activate-acf-wrap" class="screen-meta-wrap hidden acf">
2
- <div class="screen-meta-content">
3
-
4
- <h5><?php _e("Unlock Special Fields.",'acf'); ?></h5>
5
- <p><?php _e("Special Fields can be unlocked by purchasing an activation code. Each activation code can be used on multiple sites.",'acf'); ?> <a href="http://plugins.elliotcondon.com/shop/"><?php _e("Visit the Plugin Store",'acf'); ?></a></p>
6
- <table class="acf_activate widefat">
7
- <thead>
8
- <tr>
9
- <th><?php _e("Field Type",'acf'); ?></th>
10
- <th><?php _e("Status",'acf'); ?></th>
11
- <th><?php _e("Activation Code",'acf'); ?></th>
12
- </tr>
13
- </thead>
14
- <tbody>
15
- <?php
16
- /*--------------------------------------------------------------------------------------
17
- *
18
- * Repeater Field
19
- *
20
- *-------------------------------------------------------------------------------------*/
21
- ?>
22
- <tr>
23
- <td><?php _e("Repeater",'acf'); ?></td>
24
- <td><?php if(array_key_exists('repeater', $this->activated_fields)){
25
- _e("Active",'acf');
26
- }
27
- else
28
- {
29
- _e("Inactive",'acf');
30
- } ?></td>
31
- <td>
32
- <form action="" method="post">
33
- <?php if(array_key_exists('repeater', $this->activated_fields)){
34
- echo '<span class="activation_code">XXXX-XXXX-XXXX-'.substr($this->activated_fields['repeater'],-4) .'</span>';
35
- echo '<input type="hidden" name="acf_field_deactivate" value="repeater" />';
36
- echo '<input type="submit" class="button" value="Deactivate" />';
37
- }
38
- else
39
- {
40
- echo '<input type="text" name="acf_ac" value="" />';
41
- echo '<input type="hidden" name="acf_field_activate" value="repeater" />';
42
- echo '<input type="submit" class="button" value="Activate" />';
43
- } ?>
44
- </form>
45
- </td>
46
- </tr>
47
- <?php
48
- /*--------------------------------------------------------------------------------------
49
- *
50
- * Options Page
51
- *
52
- *-------------------------------------------------------------------------------------*/
53
- ?>
54
- <tr>
55
- <td><?php _e("Options Page",'acf'); ?></td>
56
- <td><?php if(array_key_exists('options_page', $this->activated_fields)){
57
- _e("Active",'acf');
58
- }
59
- else
60
- {
61
- _e("Inactive",'acf');
62
- } ?></td>
63
- <td>
64
- <form action="" method="post">
65
- <?php if(array_key_exists('options_page', $this->activated_fields)){
66
- echo '<span class="activation_code">XXXX-XXXX-XXXX-'.substr($this->activated_fields['options_page'],-4) .'</span>';
67
- echo '<input type="hidden" name="acf_field_deactivate" value="options_page" />';
68
- echo '<input type="submit" class="button" value="Deactivate" />';
69
- }
70
- else
71
- {
72
- echo '<input type="text" name="acf_ac" value="" />';
73
- echo '<input type="hidden" name="acf_field_activate" value="options_page" />';
74
- echo '<input type="submit" class="button" value="Activate" />';
75
- } ?>
76
- </form>
77
- </td>
78
- </tr>
79
- </tbody>
80
- </table>
81
- </div>
82
- </div>
83
- <div id="screen-meta-activate-acf-link-wrap" class="hide-if-no-js screen-meta-toggle acf">
84
- <a href="#screen-meta-activate-acf" id="screen-meta-activate-acf-link" class="show-settings"><?php _e("Unlock Fields",'acf'); ?></a>
85
- </div>
86
-
87
 
88
  <?php
89
  // get current page
1
+ <?php include('screen_extra_activate.php'); ?>
2
+ <?php include('screen_extra_export.php'); ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
 
4
  <?php
5
  // get current page
core/screen_extra_activate.php ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div id="screen-meta-activate-acf-wrap" class="screen-meta-wrap hidden acf">
2
+ <div class="screen-meta-content">
3
+
4
+ <h5><?php _e("Unlock Special Fields.",'acf'); ?></h5>
5
+ <p><?php _e("Special Fields can be unlocked by purchasing an activation code. Each activation code can be used on multiple sites.",'acf'); ?> <a href="http://plugins.elliotcondon.com/shop/"><?php _e("Visit the Plugin Store",'acf'); ?></a></p>
6
+ <table class="acf_activate widefat">
7
+ <thead>
8
+ <tr>
9
+ <th><?php _e("Field Type",'acf'); ?></th>
10
+ <th><?php _e("Status",'acf'); ?></th>
11
+ <th><?php _e("Activation Code",'acf'); ?></th>
12
+ </tr>
13
+ </thead>
14
+ <tbody>
15
+ <?php
16
+ /*--------------------------------------------------------------------------------------
17
+ *
18
+ * Repeater Field
19
+ *
20
+ *-------------------------------------------------------------------------------------*/
21
+ ?>
22
+ <tr>
23
+ <td><?php _e("Repeater",'acf'); ?></td>
24
+ <td><?php if(array_key_exists('repeater', $this->activated_fields)){
25
+ _e("Active",'acf');
26
+ }
27
+ else
28
+ {
29
+ _e("Inactive",'acf');
30
+ } ?></td>
31
+ <td>
32
+ <form action="" method="post">
33
+ <?php if(array_key_exists('repeater', $this->activated_fields)){
34
+ echo '<span class="activation_code">XXXX-XXXX-XXXX-'.substr($this->activated_fields['repeater'],-4) .'</span>';
35
+ echo '<input type="hidden" name="acf_field_deactivate" value="repeater" />';
36
+ echo '<input type="submit" class="button" value="Deactivate" />';
37
+ }
38
+ else
39
+ {
40
+ echo '<input type="text" name="acf_ac" value="" />';
41
+ echo '<input type="hidden" name="acf_field_activate" value="repeater" />';
42
+ echo '<input type="submit" class="button" value="Activate" />';
43
+ } ?>
44
+ </form>
45
+ </td>
46
+ </tr>
47
+ <?php
48
+ /*--------------------------------------------------------------------------------------
49
+ *
50
+ * Options Page
51
+ *
52
+ *-------------------------------------------------------------------------------------*/
53
+ ?>
54
+ <tr>
55
+ <td><?php _e("Options Page",'acf'); ?></td>
56
+ <td><?php if(array_key_exists('options_page', $this->activated_fields)){
57
+ _e("Active",'acf');
58
+ }
59
+ else
60
+ {
61
+ _e("Inactive",'acf');
62
+ } ?></td>
63
+ <td>
64
+ <form action="" method="post">
65
+ <?php if(array_key_exists('options_page', $this->activated_fields)){
66
+ echo '<span class="activation_code">XXXX-XXXX-XXXX-'.substr($this->activated_fields['options_page'],-4) .'</span>';
67
+ echo '<input type="hidden" name="acf_field_deactivate" value="options_page" />';
68
+ echo '<input type="submit" class="button" value="Deactivate" />';
69
+ }
70
+ else
71
+ {
72
+ echo '<input type="text" name="acf_ac" value="" />';
73
+ echo '<input type="hidden" name="acf_field_activate" value="options_page" />';
74
+ echo '<input type="submit" class="button" value="Activate" />';
75
+ } ?>
76
+ </form>
77
+ </td>
78
+ </tr>
79
+ </tbody>
80
+ </table>
81
+ </div>
82
+ </div>
83
+ <div id="screen-meta-activate-acf-link-wrap" class="hide-if-no-js screen-meta-toggle acf">
84
+ <a href="#screen-meta-activate-acf" id="screen-meta-activate-acf-link" class="show-settings"><?php _e("Unlock Fields",'acf'); ?></a>
85
+ </div>
core/screen_extra_export.php ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div id="screen-meta-export-acf-wrap" class="screen-meta-wrap hidden acf">
2
+ <div class="screen-meta-content">
3
+ <form enctype="multipart/form-data" method="post" >
4
+ <h5><?php _e("Import",'acf'); ?></h5>
5
+
6
+ <p><?php _e("Have an ACF export file? Import it here.",'acf'); ?></p>
7
+
8
+ <input type="file" id="file" name="import" />
9
+ <input type="submit" class="button" name="acf_import" value="Import" />
10
+
11
+
12
+ <p><br /></p>
13
+ <h5><?php _e("Export",'acf'); ?></h5>
14
+ <p><?php _e("Want to create an ACF export file? Just select the desired ACF's and hit Export",'acf'); ?></p>
15
+
16
+ <?php
17
+
18
+ $acfs = get_pages(array(
19
+ 'numberposts' => -1,
20
+ 'post_type' => 'acf',
21
+ 'sort_column' => 'menu_order',
22
+ ));
23
+
24
+ // blank array to hold acfs
25
+ $acf_objects = array();
26
+
27
+ if($acfs)
28
+ {
29
+ foreach($acfs as $acf)
30
+ {
31
+ $acf_objects[$acf->ID] = $acf->post_title;
32
+ }
33
+ }
34
+
35
+ $temp_field = new stdClass();
36
+
37
+ $temp_field->type = 'select';
38
+ $temp_field->input_name = 'acf_objects';
39
+ $temp_field->input_class = '';
40
+ $temp_field->value = '';
41
+ $temp_field->options = array('choices' => $acf_objects, 'multiple' => 1);
42
+
43
+ $this->create_field($temp_field);
44
+
45
+ ?>
46
+ <input type="submit" name="acf_export" value="Export" />
47
+
48
+ </form>
49
+
50
+ </div>
51
+ </div>
52
+ <div id="screen-meta-export-acf-link-wrap" class="hide-if-no-js screen-meta-toggle acf">
53
+ <a href="#screen-meta-export-acf" id="screen-meta-export-acf-link" class="show-settings"><?php _e("Import / Export",'acf'); ?></a>
54
+ </div>
css/style.fields.css CHANGED
@@ -268,6 +268,9 @@ table.acf_input tr td .acf tr td {
268
  ---------------------------------------------------------------------------------------------*/
269
  .field_form_mask {
270
  display: none;
 
 
 
271
  }
272
 
273
  .field_form {
268
  ---------------------------------------------------------------------------------------------*/
269
  .field_form_mask {
270
  display: none;
271
+ width: 100%;
272
+ position: relative;
273
+ overflow: hidden;
274
  }
275
 
276
  .field_form {
css/style.screen_extra.css CHANGED
@@ -130,4 +130,12 @@ table.acf_activate tr td:last-child {
130
  table.acf_activate input[type="submit"] {
131
  margin-left: 5px;
132
  margin-right: 5px;
 
 
 
 
 
 
 
 
133
  }
130
  table.acf_activate input[type="submit"] {
131
  margin-left: 5px;
132
  margin-right: 5px;
133
+ }
134
+
135
+
136
+ /*--------------------------------------------------------------------------------------------
137
+ Import / Export
138
+ --------------------------------------------------------------------------------------------*/
139
+ #wpcontent select[multiple="multiple"] {
140
+ height: auto;
141
  }
js/functions.input.js CHANGED
@@ -40,6 +40,8 @@
40
  $(this).datepicker({
41
  dateFormat: format
42
  });
 
 
43
  };
44
 
45
 
@@ -57,7 +59,7 @@
57
 
58
 
59
  // show the thickbox
60
- tb_show('Add Image to field', 'media-upload.php?post_id='+post_id+'&type=image&acf_type=image&TB_iframe=1');
61
 
62
 
63
  return false;
@@ -89,7 +91,7 @@
89
 
90
 
91
  // show the thickbox
92
- tb_show('Add File to field', 'media-upload.php?post_id='+post_id+'&type=file&acf_type=file&TB_iframe=1');
93
 
94
 
95
  return false;
40
  $(this).datepicker({
41
  dateFormat: format
42
  });
43
+
44
+ $('#ui-datepicker-div').wrap('<div class="acf_datepicker" />');
45
  };
46
 
47
 
59
 
60
 
61
  // show the thickbox
62
+ tb_show('Add Image to field', 'media-upload.php?type=image&acf_type=image&TB_iframe=1');
63
 
64
 
65
  return false;
91
 
92
 
93
  // show the thickbox
94
+ tb_show('Add File to field', 'media-upload.php?type=file&acf_type=file&TB_iframe=1');
95
 
96
 
97
  return false;
js/functions.screen_extra.js CHANGED
@@ -19,7 +19,7 @@
19
  $('#screen-meta-links').before($(this));
20
  });
21
 
22
- $('#screen-meta-links a#screen-meta-activate-acf-link').unbind('click').click(function() {
23
 
24
  var a = $(this);
25
  var div = a.parent();
19
  $('#screen-meta-links').before($(this));
20
  });
21
 
22
+ $('#screen-meta-links a.show-settings').unbind('click').click(function() {
23
 
24
  var a = $(this);
25
  var div = a.parent();
lang/advanced-custom-fields.pot CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: \n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/advanced-custom-fields\n"
7
- "POT-Creation-Date: 2011-06-04 05:22:03+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -12,128 +12,174 @@ msgstr ""
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
 
15
- #: acf.php:187
16
- msgid "Adv Custom Fields"
17
  msgstr ""
18
 
19
- #: acf.php:191 core/acf_post_type.php:4
20
- msgid "Advanced&nbsp;Custom&nbsp;Fields"
21
  msgstr ""
22
 
23
- #: acf.php:282 acf.php:300
24
- msgid "Error: Field Type does not exist!"
 
 
 
 
 
 
 
 
 
 
25
  msgstr ""
26
 
27
- #: core/fields_meta_box.php:36 core/fields/repeater.php:140
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  msgid "Field Order"
29
  msgstr ""
30
 
31
- #: core/fields_meta_box.php:37 core/fields_meta_box.php:87
32
- #: core/fields/repeater.php:141
33
  msgid "Field Label"
34
  msgstr ""
35
 
36
- #: core/fields_meta_box.php:38 core/fields_meta_box.php:107
37
- #: core/fields/repeater.php:142
38
  msgid "Field Name"
39
  msgstr ""
40
 
41
- #: core/fields_meta_box.php:39 core/fields_meta_box.php:126
42
- #: core/fields/repeater.php:143
43
  msgid "Field Type"
44
  msgstr ""
45
 
46
- #: core/fields_meta_box.php:46
47
- msgid "No fields. Click the \"+ Add Field button\" to create your first field."
48
  msgstr ""
49
 
50
- #: core/fields_meta_box.php:62
51
- msgid "Edit"
52
  msgstr ""
53
 
54
- #: core/fields_meta_box.php:63
55
- msgid "Delete"
56
  msgstr ""
57
 
58
- #: core/fields_meta_box.php:88
59
- msgid "This is the name which will appear on the EDIT page"
60
  msgstr ""
61
 
62
- #: core/fields_meta_box.php:108
63
- msgid "Single word, no spaces. Underscores and dashes allowed"
64
  msgstr ""
65
 
66
- #: core/fields_meta_box.php:143
67
- msgid "Field Instructions"
68
  msgstr ""
69
 
70
- #: core/fields_meta_box.php:144
71
- msgid "Instructions for authors. Shown when submitting data"
72
  msgstr ""
73
 
74
- #: core/fields_meta_box.php:161
75
- msgid "Is field searchable?"
76
  msgstr ""
77
 
78
- #: core/fields_meta_box.php:170
79
- msgid "Save this field's value as a standard WordPress Custom Field"
80
  msgstr ""
81
 
82
- #: core/fields_meta_box.php:205
83
- msgid "+ Add Field"
84
  msgstr ""
85
 
86
- #: core/options_meta_box.php:18
87
- msgid "Show on page"
88
  msgstr ""
89
 
90
- #: core/options_meta_box.php:43
91
- msgid ""
92
- "Select the metaboxes you wish to keep on your edit screen.<br />\n"
93
- "\t\t\tTip: This is useful to customise the edit screen"
94
  msgstr ""
95
 
96
- #: core/options_meta_box.php:49
97
- msgid "Show only for specific users"
98
  msgstr ""
99
 
100
- #: core/options_meta_box.php:71
 
 
 
 
 
 
 
 
101
  msgid ""
102
- "Select user types to give them access to this ACF<br />\n"
103
- "\t\t\tTip: If no user types are selected, all user's will have access to "
104
- "this ACF"
 
 
 
 
 
 
105
  msgstr ""
106
 
107
- #: core/screen_extra.php:63
108
- msgid "Advanced Custom Fields v"
109
  msgstr ""
110
 
111
- #: core/screen_extra.php:64
112
- msgid "see what's new"
113
  msgstr ""
114
 
115
- #: core/screen_extra.php:75
116
- msgid "User Guide + Code Examples"
117
  msgstr ""
118
 
119
- #: core/screen_extra.php:75
120
- msgid "Visit the Plugin Website"
121
  msgstr ""
122
 
123
- #: core/screen_extra.php:85
124
- msgid "Need Help?"
125
  msgstr ""
126
 
127
- #: core/screen_extra.php:85
128
- msgid "Visit the Support Forum"
129
  msgstr ""
130
 
131
- #: core/screen_extra.php:98
132
- msgid "Help fund future development"
133
  msgstr ""
134
 
135
- #: core/screen_extra.php:111
136
- msgid "Created by"
 
 
 
 
 
 
 
 
137
  msgstr ""
138
 
139
  #: core/acf_post_type.php:5
@@ -172,231 +218,186 @@ msgstr ""
172
  msgid "No Advanced Custom Field Groups found in Trash"
173
  msgstr ""
174
 
175
- #: core/location_meta_box.php:16
176
- msgid "Enter values in the fields below to add this ACF to an edit screen"
177
  msgstr ""
178
 
179
- #: core/location_meta_box.php:18
180
- msgid "The values you enter bellow will be used to match against edit screens"
181
  msgstr ""
182
 
183
- #: core/location_meta_box.php:19
184
- msgid ""
185
- "If <strong>any</strong> of the values match the edit screen, this ACF will "
186
- "be used"
187
  msgstr ""
188
 
189
- #: core/location_meta_box.php:20
190
- msgid "Blank fields will be ignored"
191
  msgstr ""
192
 
193
- #: core/location_meta_box.php:21
194
- msgid ""
195
- "Use the override to remove all previous ACF's form an edit screen. This is "
196
- "useful for creating an ACF for all normal pages, and then creating a custom "
197
- "ACF for a home page (page title = 'Home'). Please note that the home page "
198
- "ACF needs a higher page order to remove ACF's before it"
199
  msgstr ""
200
 
201
- #: core/location_meta_box.php:32
202
- msgid "Post Type's"
203
  msgstr ""
204
 
205
- #: core/location_meta_box.php:33
206
  msgid ""
207
- "Selecting a post type here will add this ACF to <strong>all</strong> edit "
208
- "screens of that post type."
209
  msgstr ""
210
 
211
- #: core/location_meta_box.php:67
212
- msgid "Page Title's"
213
  msgstr ""
214
 
215
- #: core/location_meta_box.php:68
216
- msgid "eg. Home, About Us"
217
  msgstr ""
218
 
219
- #: core/location_meta_box.php:88
220
- msgid "Page Slug's"
221
  msgstr ""
222
 
223
- #: core/location_meta_box.php:89
224
- msgid "eg. home, about-us"
225
  msgstr ""
226
 
227
- #: core/location_meta_box.php:109
228
- msgid "Post ID's"
229
  msgstr ""
230
 
231
- #: core/location_meta_box.php:110 core/location_meta_box.php:152
232
- msgid "eg. 1, 2, 3"
233
  msgstr ""
234
 
235
- #: core/location_meta_box.php:130
236
- msgid "Page Template's"
237
  msgstr ""
238
 
239
- #: core/location_meta_box.php:131
240
- msgid "eg. home_page.php"
241
- msgstr ""
242
-
243
- #: core/location_meta_box.php:151
244
- msgid "Page Parent ID's"
245
  msgstr ""
246
 
247
- #: core/location_meta_box.php:172
248
- msgid "Category Names's"
249
  msgstr ""
250
 
251
- #: core/location_meta_box.php:173
252
- msgid "eg. News, Media, Uncategoriazed"
253
  msgstr ""
254
 
255
- #: core/location_meta_box.php:193
256
- msgid "Overrides"
257
  msgstr ""
258
 
259
- #: core/location_meta_box.php:194
260
  msgid ""
261
- "Tick this box to remove all other ACF's (from the edit screen where this ACF "
262
- "appears)"
263
  msgstr ""
264
 
265
- #: core/fields/post_object.php:12
266
- msgid "Post Object"
267
- msgstr ""
268
-
269
- #: core/fields/post_object.php:48 core/fields/page_link.php:57
270
- msgid "Select Option"
271
  msgstr ""
272
 
273
- #: core/fields/post_object.php:132 core/fields/page_link.php:144
274
- msgid "Post Type"
275
  msgstr ""
276
 
277
- #: core/fields/post_object.php:133 core/fields/page_link.php:145
278
  msgid ""
279
- "Filter posts by selecting a post type<br />\n"
280
- "\t\t\t\tTip: deselect all post types to show all post type's posts"
281
  msgstr ""
282
 
283
- #: core/fields/post_object.php:165
284
- msgid "Select multiple posts?"
285
  msgstr ""
286
 
287
- #: core/fields/date_picker/date_picker.php:12
288
- msgid "Date Picker"
289
  msgstr ""
290
 
291
- #: core/fields/date_picker/date_picker.php:32
292
- msgid "Date format"
293
  msgstr ""
294
 
295
- #: core/fields/date_picker/date_picker.php:33
296
- msgid "eg. dd/mm/yy. read more about"
297
  msgstr ""
298
 
299
- #: core/fields/text.php:11
300
- msgid "Text"
301
- msgstr ""
302
-
303
- #: core/fields/image.php:11
304
- msgid "Image"
305
- msgstr ""
306
-
307
- #: core/fields/image.php:82
308
- msgid "Select Image"
309
- msgstr ""
310
-
311
- #: core/fields/image.php:173
312
- msgid "No image selected"
313
- msgstr ""
314
-
315
- #: core/fields/image.php:173
316
- msgid "Add Image"
317
  msgstr ""
318
 
319
- #: core/fields/select.php:12
320
- msgid "Select"
321
- msgstr ""
322
-
323
- #: core/fields/select.php:89 core/fields/checkbox.php:74
324
- msgid "Choices"
325
- msgstr ""
326
-
327
- #: core/fields/select.php:90 core/fields/checkbox.php:75
328
- msgid ""
329
- "Enter your choices one per line<br />\n"
330
- "\t\t\t\t<br />\n"
331
- "\t\t\t\tRed<br />\n"
332
- "\t\t\t\tBlue<br />\n"
333
- "\t\t\t\t<br />\n"
334
- "\t\t\t\tor<br />\n"
335
- "\t\t\t\t<br />\n"
336
- "\t\t\t\tred : Red<br />\n"
337
- "\t\t\t\tblue : Blue"
338
  msgstr ""
339
 
340
- #: core/fields/select.php:107 core/fields/page_link.php:178
341
- msgid "Select multiple values?"
342
  msgstr ""
343
 
344
- #: core/fields/true_false.php:11
345
- msgid "True / False"
346
  msgstr ""
347
 
348
- #: core/fields/true_false.php:64
349
- msgid "Message"
350
  msgstr ""
351
 
352
- #: core/fields/true_false.php:65
353
- msgid "eg. Show extra content"
354
  msgstr ""
355
 
356
- #: core/fields/wysiwyg.php:11
357
- msgid "Wysiwyg Editor"
358
  msgstr ""
359
 
360
- #: core/fields/page_link.php:12
361
- msgid "Page Link"
362
  msgstr ""
363
 
364
- #: core/fields/repeater.php:13
365
- msgid "Repeater"
366
  msgstr ""
367
 
368
- #: core/fields/repeater.php:133
369
- msgid "Repeater Fields"
370
  msgstr ""
371
 
372
- #: core/fields/repeater.php:272
373
- msgid "Row Limit"
374
  msgstr ""
375
 
376
- #: core/fields/checkbox.php:11
377
- msgid "Checkbox"
378
  msgstr ""
379
 
380
- #: core/fields/textarea.php:11
381
- msgid "Text Area"
382
  msgstr ""
383
 
384
- #: core/fields/file.php:11
385
- msgid "File"
 
 
386
  msgstr ""
387
 
388
- #: core/fields/file.php:83
389
- msgid "Select File"
390
  msgstr ""
391
 
392
- #: core/fields/file.php:151
393
- msgid "Remove File"
394
  msgstr ""
395
 
396
- #: core/fields/file.php:153
397
- msgid "No File selected"
398
  msgstr ""
399
 
400
- #: core/fields/file.php:153
401
- msgid "Add File"
402
  msgstr ""
4
  msgstr ""
5
  "Project-Id-Version: \n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/advanced-custom-fields\n"
7
+ "POT-Creation-Date: 2011-07-16 04:46:14+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
 
15
+ #: core/fields/wysiwyg.php:11
16
+ msgid "Wysiwyg Editor"
17
  msgstr ""
18
 
19
+ #: core/fields/post_object.php:12
20
+ msgid "Post Object"
21
  msgstr ""
22
 
23
+ #: core/fields/post_object.php:48
24
+ msgid "Select Option"
25
+ msgstr ""
26
+
27
+ #: core/fields/post_object.php:132 core/fields/page_link.php:144
28
+ msgid "Post Type"
29
+ msgstr ""
30
+
31
+ #: core/fields/post_object.php:133 core/fields/page_link.php:145
32
+ msgid ""
33
+ "Filter posts by selecting a post type<br />\n"
34
+ "\t\t\t\tTip: deselect all post types to show all post type's posts"
35
  msgstr ""
36
 
37
+ #: core/fields/post_object.php:164
38
+ msgid "Select multiple posts?"
39
+ msgstr ""
40
+
41
+ #: core/fields/textarea.php:11
42
+ msgid "Text Area"
43
+ msgstr ""
44
+
45
+ #: core/fields/repeater.php:13 core/screen_extra.php:23
46
+ msgid "Repeater"
47
+ msgstr ""
48
+
49
+ #: core/fields/repeater.php:165
50
+ msgid "Repeater Fields"
51
+ msgstr ""
52
+
53
+ #: core/fields/repeater.php:172 core/fields_meta_box.php:36
54
  msgid "Field Order"
55
  msgstr ""
56
 
57
+ #: core/fields/repeater.php:173 core/fields_meta_box.php:37
58
+ #: core/fields_meta_box.php:87
59
  msgid "Field Label"
60
  msgstr ""
61
 
62
+ #: core/fields/repeater.php:174 core/fields_meta_box.php:38
63
+ #: core/fields_meta_box.php:106
64
  msgid "Field Name"
65
  msgstr ""
66
 
67
+ #: core/fields/repeater.php:175 core/screen_extra.php:9
68
+ #: core/fields_meta_box.php:39 core/fields_meta_box.php:124
69
  msgid "Field Type"
70
  msgstr ""
71
 
72
+ #: core/fields/repeater.php:301
73
+ msgid "Row Limit"
74
  msgstr ""
75
 
76
+ #: core/fields/repeater.php:310
77
+ msgid "Layout"
78
  msgstr ""
79
 
80
+ #: core/fields/true_false.php:11
81
+ msgid "True / False"
82
  msgstr ""
83
 
84
+ #: core/fields/true_false.php:64
85
+ msgid "Message"
86
  msgstr ""
87
 
88
+ #: core/fields/true_false.php:65
89
+ msgid "eg. Show extra content"
90
  msgstr ""
91
 
92
+ #: core/fields/file.php:12
93
+ msgid "File"
94
  msgstr ""
95
 
96
+ #: core/fields/file.php:36 core/fields/image.php:36
97
+ msgid "Save Format"
98
  msgstr ""
99
 
100
+ #: core/fields/file.php:103
101
+ msgid "Select File"
102
  msgstr ""
103
 
104
+ #: core/fields/file.php:189 core/fields/file.php:193
105
+ msgid "Remove File"
106
  msgstr ""
107
 
108
+ #: core/fields/file.php:197
109
+ msgid "No File selected"
110
  msgstr ""
111
 
112
+ #: core/fields/file.php:197
113
+ msgid "Add File"
114
  msgstr ""
115
 
116
+ #: core/fields/page_link.php:12
117
+ msgid "Page Link"
 
 
118
  msgstr ""
119
 
120
+ #: core/fields/page_link.php:177 core/fields/select.php:107
121
+ msgid "Select multiple values?"
122
  msgstr ""
123
 
124
+ #: core/fields/select.php:12
125
+ msgid "Select"
126
+ msgstr ""
127
+
128
+ #: core/fields/select.php:89 core/fields/checkbox.php:74
129
+ msgid "Choices"
130
+ msgstr ""
131
+
132
+ #: core/fields/select.php:90 core/fields/checkbox.php:75
133
  msgid ""
134
+ "Enter your choices one per line<br />\n"
135
+ "\t\t\t\t<br />\n"
136
+ "\t\t\t\tRed<br />\n"
137
+ "\t\t\t\tBlue<br />\n"
138
+ "\t\t\t\t<br />\n"
139
+ "\t\t\t\tor<br />\n"
140
+ "\t\t\t\t<br />\n"
141
+ "\t\t\t\tred : Red<br />\n"
142
+ "\t\t\t\tblue : Blue"
143
  msgstr ""
144
 
145
+ #: core/fields/checkbox.php:11
146
+ msgid "Checkbox"
147
  msgstr ""
148
 
149
+ #: core/fields/text.php:11
150
+ msgid "Text"
151
  msgstr ""
152
 
153
+ #: core/fields/image.php:12
154
+ msgid "Image"
155
  msgstr ""
156
 
157
+ #: core/fields/image.php:103
158
+ msgid "Select Image"
159
  msgstr ""
160
 
161
+ #: core/fields/image.php:219
162
+ msgid "No image selected"
163
  msgstr ""
164
 
165
+ #: core/fields/image.php:219
166
+ msgid "Add Image"
167
  msgstr ""
168
 
169
+ #: core/fields/date_picker/date_picker.php:12
170
+ msgid "Date Picker"
171
  msgstr ""
172
 
173
+ #: core/fields/date_picker/date_picker.php:32
174
+ msgid "Date format"
175
+ msgstr ""
176
+
177
+ #: core/fields/date_picker/date_picker.php:33
178
+ msgid "eg. dd/mm/yy. read more about"
179
+ msgstr ""
180
+
181
+ #: core/acf_post_type.php:4 acf.php:215
182
+ msgid "Advanced&nbsp;Custom&nbsp;Fields"
183
  msgstr ""
184
 
185
  #: core/acf_post_type.php:5
218
  msgid "No Advanced Custom Field Groups found in Trash"
219
  msgstr ""
220
 
221
+ #: core/options_page.php:39 core/options_page.php:40
222
+ msgid "Options"
223
  msgstr ""
224
 
225
+ #: core/options_page.php:226
226
+ msgid "Settings saved"
227
  msgstr ""
228
 
229
+ #: core/options_page.php:237
230
+ msgid "Save"
 
 
231
  msgstr ""
232
 
233
+ #: core/options_page.php:327
234
+ msgid "No Options"
235
  msgstr ""
236
 
237
+ #: core/options_page.php:331
238
+ msgid "Sorry, it seems there are no fields for this options page."
 
 
 
 
239
  msgstr ""
240
 
241
+ #: core/screen_extra.php:4
242
+ msgid "Unlock Special Fields."
243
  msgstr ""
244
 
245
+ #: core/screen_extra.php:5
246
  msgid ""
247
+ "Special Fields can be unlocked by purchasing an activation code. Each "
248
+ "activation code can be used on multiple sites."
249
  msgstr ""
250
 
251
+ #: core/screen_extra.php:5
252
+ msgid "Visit the Plugin Store"
253
  msgstr ""
254
 
255
+ #: core/screen_extra.php:10
256
+ msgid "Status"
257
  msgstr ""
258
 
259
+ #: core/screen_extra.php:11
260
+ msgid "Activation Code"
261
  msgstr ""
262
 
263
+ #: core/screen_extra.php:25 core/screen_extra.php:57
264
+ msgid "Active"
265
  msgstr ""
266
 
267
+ #: core/screen_extra.php:29 core/screen_extra.php:61
268
+ msgid "Inactive"
269
  msgstr ""
270
 
271
+ #: core/screen_extra.php:55
272
+ msgid "Options Page"
273
  msgstr ""
274
 
275
+ #: core/screen_extra.php:84
276
+ msgid "Unlock Fields"
277
  msgstr ""
278
 
279
+ #: core/screen_extra.php:102
280
+ msgid "Advanced Custom Fields v"
 
 
 
 
281
  msgstr ""
282
 
283
+ #: core/screen_extra.php:105
284
+ msgid "Changelog"
285
  msgstr ""
286
 
287
+ #: core/screen_extra.php:106
288
+ msgid "See what's new in"
289
  msgstr ""
290
 
291
+ #: core/screen_extra.php:109
292
+ msgid "Resources"
293
  msgstr ""
294
 
295
+ #: core/screen_extra.php:110
296
  msgid ""
297
+ "Watch tutorials, read documentation, learn the API code and find some tips "
298
+ "&amp; tricks for your next web project."
299
  msgstr ""
300
 
301
+ #: core/screen_extra.php:111
302
+ msgid "View the plugins website"
 
 
 
 
303
  msgstr ""
304
 
305
+ #: core/screen_extra.php:114
306
+ msgid "Support"
307
  msgstr ""
308
 
309
+ #: core/screen_extra.php:115
310
  msgid ""
311
+ "Join the growing community over at the support forum to share ideas, report "
312
+ "bugs and keep up to date with ACF"
313
  msgstr ""
314
 
315
+ #: core/screen_extra.php:116
316
+ msgid "View the Support Forum"
317
  msgstr ""
318
 
319
+ #: core/screen_extra.php:119
320
+ msgid "Developed by"
321
  msgstr ""
322
 
323
+ #: core/screen_extra.php:120
324
+ msgid "Vote for ACF"
325
  msgstr ""
326
 
327
+ #: core/screen_extra.php:120
328
+ msgid "Twitter"
329
  msgstr ""
330
 
331
+ #: core/screen_extra.php:120
332
+ msgid "Blog"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
333
  msgstr ""
334
 
335
+ #: core/fields_meta_box.php:46
336
+ msgid "No fields. Click the \"+ Add Field button\" to create your first field."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
337
  msgstr ""
338
 
339
+ #: core/fields_meta_box.php:62
340
+ msgid "Edit"
341
  msgstr ""
342
 
343
+ #: core/fields_meta_box.php:63
344
+ msgid "Delete"
345
  msgstr ""
346
 
347
+ #: core/fields_meta_box.php:88
348
+ msgid "This is the name which will appear on the EDIT page"
349
  msgstr ""
350
 
351
+ #: core/fields_meta_box.php:107
352
+ msgid "Single word, no spaces. Underscores and dashes allowed"
353
  msgstr ""
354
 
355
+ #: core/fields_meta_box.php:140
356
+ msgid "Field Instructions"
357
  msgstr ""
358
 
359
+ #: core/fields_meta_box.php:141
360
+ msgid "Instructions for authors. Shown when submitting data"
361
  msgstr ""
362
 
363
+ #: core/fields_meta_box.php:157
364
+ msgid "Is field searchable?"
365
  msgstr ""
366
 
367
+ #: core/fields_meta_box.php:165
368
+ msgid "Save this field's value as a standard WordPress Custom Field"
369
  msgstr ""
370
 
371
+ #: core/fields_meta_box.php:200
372
+ msgid "+ Add Field"
373
  msgstr ""
374
 
375
+ #: core/options_meta_box.php:18
376
+ msgid "Show on page"
377
  msgstr ""
378
 
379
+ #: core/options_meta_box.php:19
380
+ msgid "Deselect items to hide them on the edit page"
381
  msgstr ""
382
 
383
+ #: core/options_meta_box.php:20
384
+ msgid ""
385
+ "If multiple ACF groups appear on an edit page, the first ACF group's options "
386
+ "will be used. The first ACF group is the one with the lowest order number."
387
  msgstr ""
388
 
389
+ #: core/options_meta_box.php:49
390
+ msgid "Field Group Layout"
391
  msgstr ""
392
 
393
+ #: core/options_meta_box.php:50
394
+ msgid "Display your field group with or without a box"
395
  msgstr ""
396
 
397
+ #: acf.php:211
398
+ msgid "Adv Custom Fields"
399
  msgstr ""
400
 
401
+ #: acf.php:306 acf.php:324
402
+ msgid "Error: Field Type does not exist!"
403
  msgstr ""
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: Elliot Condon
3
  Donate link: https://www.paypal.com/au/cgi-bin/webscr?cmd=_flow&SESSION=-B2MHZ-ioHQb-z1o22AMmhjSI08rxFqQdljyfqVa1R-4QrbQWPNcfL37jYi&dispatch=5885d80a13c0db1f8e263663d3faee8d5fa8ff279e37c3d9d4e38bdbee0ede69
4
  Tags: custom, field, custom field, advanced, simple fields, magic fields, more fields, repeater, matrix, post, type, text, textarea, file, image, edit, admin
5
  Requires at least: 3.0
6
- Tested up to: 3.1
7
- Stable tag: 3.1
8
 
9
  Completely Customise your edit pages with an assortment of field types: Wysiwyg, Repeater, text, image, select, checkbox, page link, post object and more! Hide unwanted metaboxes and assign to any edit page!
10
 
@@ -81,6 +81,12 @@ http://support.plugins.elliotcondon.com/categories/advanced-custom-fields/
81
 
82
  == Changelog ==
83
 
 
 
 
 
 
 
84
  = 2.0.4 =
85
  * New Addon: Options Page (available on the plugins store: http://plugins.elliotcondon.com/shop/)
86
  * API: all functions now accept 'options' as a second parameter to target the options page
3
  Donate link: https://www.paypal.com/au/cgi-bin/webscr?cmd=_flow&SESSION=-B2MHZ-ioHQb-z1o22AMmhjSI08rxFqQdljyfqVa1R-4QrbQWPNcfL37jYi&dispatch=5885d80a13c0db1f8e263663d3faee8d5fa8ff279e37c3d9d4e38bdbee0ede69
4
  Tags: custom, field, custom field, advanced, simple fields, magic fields, more fields, repeater, matrix, post, type, text, textarea, file, image, edit, admin
5
  Requires at least: 3.0
6
+ Tested up to: 3.2
7
+ Stable tag: 3.2
8
 
9
  Completely Customise your edit pages with an assortment of field types: Wysiwyg, Repeater, text, image, select, checkbox, page link, post object and more! Hide unwanted metaboxes and assign to any edit page!
10
 
81
 
82
  == Changelog ==
83
 
84
+ = 2.0.5 =
85
+ * New Feature: Import / Export
86
+ * Bug Fixed: Wysiwyg javascript conflicts
87
+ * Bug Fixed: Wysiwyg popups conflicting with the date picker field
88
+ * New style for the date picker field
89
+
90
  = 2.0.4 =
91
  * New Addon: Options Page (available on the plugins store: http://plugins.elliotcondon.com/shop/)
92
  * API: all functions now accept 'options' as a second parameter to target the options page