Example #1
0
 function ajax_upgrade()
 {
     // options
     $options = acf_parse_args($_POST, array('version' => '', 'nonce' => ''));
     // validate
     if (!wp_verify_nonce($options['nonce'], 'acf_nonce')) {
         wp_send_json_error();
     }
     // vars
     $path = acf_get_path("admin/updates/{$options['version']}.php");
     // load version
     if (!file_exists($path)) {
         wp_send_json_error();
     }
     // load any errors / feedback from update
     ob_start();
     // include
     include $path;
     // get feedback
     $feedback = ob_get_clean();
     // update successful
     update_option('acf_version', $options['version']);
     // check for relevant updates. If none are found, update this to the plugin version
     $updates = acf_get_updates();
     if (empty($updates)) {
         update_option('acf_version', acf_get_setting('version'));
     }
     // return
     wp_send_json_success(array('feedback' => $feedback));
 }
 function __construct()
 {
     /*
      *  name (string) Single word, no spaces. Underscores allowed
      */
     $this->name = 'button';
     /*
      *  label (string) Multiple words, can include spaces, visible when selecting a field type
      */
     $this->label = __('Button', 'acf-button');
     /*
      *  category (string) basic | content | choice | relational | jquery | layout | CUSTOM GROUP NAME
      */
     $this->category = 'basic';
     /*
      *  defaults (array) Array of default settings which are merged into the field object. These are used later in settings
      */
     $this->defaults = array();
     /*
      *  l10n (array) Array of strings that are used in JavaScript. This allows JS strings to be translated in PHP and loaded via:
      *  var message = acf._e('button', 'error');
      */
     $this->l10n = array('error' => __('Error! Please enter a value', 'acf-button'));
     // do not delete!
     parent::__construct();
     $this->settings = array('path' => acf_get_path(__DIR__), 'dir' => plugin_dir_url(__FILE__), 'version' => '1.0.0');
 }
Example #3
0
function acf_pro_get_view($view_name = '', $args = array())
{
    // vars
    $path = acf_get_path("pro/admin/views/{$view_name}.php");
    if (file_exists($path)) {
        include $path;
    }
}
Example #4
0
 function mb_locations()
 {
     // global
     global $post;
     // vars
     $field_group = acf_get_field_group($post);
     // UI needs at lease 1 location rule
     if (empty($field_group['location'])) {
         $field_group['location'] = array(array(array('param' => 'post_type', 'operator' => '==', 'value' => 'post')));
     }
     // don't use view because we need access to $this context
     include acf_get_path('admin/views/field-group-locations.php');
 }
Example #5
0
function acf_get_updates()
{
    // vars
    $updates = array();
    $plugin_version = acf_get_setting('version');
    $acf_version = get_option('acf_version');
    $path = acf_get_path('admin/updates');
    // check that path exists
    if (!file_exists($path)) {
        return false;
    }
    $dir = opendir($path);
    while (false !== ($file = readdir($dir))) {
        // only php files
        if (substr($file, -4) !== '.php') {
            continue;
        }
        // get version number
        $update_version = substr($file, 0, -4);
        // ignore if update is for a future version. May exist for testing
        if (version_compare($update_version, $plugin_version, '>')) {
            continue;
        }
        // ignore if update has already been run
        if (version_compare($update_version, $acf_version, '<=')) {
            continue;
        }
        // append
        $updates[] = $update_version;
    }
    // return
    return $updates;
}
Example #6
0
 function initialize()
 {
     // vars
     $this->settings = array('name' => __('Advanced Custom Fields', 'acf'), 'version' => '5.2.5', 'basename' => plugin_basename(__FILE__), 'path' => plugin_dir_path(__FILE__), 'dir' => plugin_dir_url(__FILE__), 'show_admin' => true, 'show_updates' => true, 'stripslashes' => false, 'local' => true, 'json' => true, 'save_json' => '', 'load_json' => array(), 'default_language' => '', 'current_language' => '', 'capability' => 'manage_options', 'uploader' => 'wp');
     // include helpers
     include_once 'api/api-helpers.php';
     // set text domain
     load_textdomain('acf', acf_get_path('lang/acf-' . get_locale() . '.mo'));
     // api
     acf_include('api/api-value.php');
     acf_include('api/api-field.php');
     acf_include('api/api-field-group.php');
     acf_include('api/api-template.php');
     // core
     acf_include('core/ajax.php');
     acf_include('core/field.php');
     acf_include('core/input.php');
     acf_include('core/json.php');
     acf_include('core/local.php');
     acf_include('core/location.php');
     acf_include('core/media.php');
     acf_include('core/revisions.php');
     acf_include('core/compatibility.php');
     acf_include('core/third_party.php');
     // forms
     acf_include('forms/attachment.php');
     acf_include('forms/comment.php');
     acf_include('forms/post.php');
     acf_include('forms/taxonomy.php');
     acf_include('forms/user.php');
     acf_include('forms/widget.php');
     // admin
     if (is_admin()) {
         acf_include('admin/admin.php');
         acf_include('admin/field-group.php');
         acf_include('admin/field-groups.php');
         acf_include('admin/update.php');
         acf_include('admin/settings-export.php');
         //acf_include('admin/settings-addons.php');
         acf_include('admin/settings-info.php');
     }
     // fields
     acf_include('fields/text.php');
     acf_include('fields/textarea.php');
     acf_include('fields/number.php');
     acf_include('fields/email.php');
     acf_include('fields/url.php');
     acf_include('fields/password.php');
     acf_include('fields/wysiwyg.php');
     acf_include('fields/oembed.php');
     acf_include('fields/image.php');
     acf_include('fields/file.php');
     acf_include('fields/select.php');
     acf_include('fields/checkbox.php');
     acf_include('fields/radio.php');
     acf_include('fields/true_false.php');
     acf_include('fields/post_object.php');
     acf_include('fields/page_link.php');
     acf_include('fields/relationship.php');
     acf_include('fields/taxonomy.php');
     acf_include('fields/user.php');
     acf_include('fields/google-map.php');
     acf_include('fields/date_picker.php');
     acf_include('fields/color_picker.php');
     acf_include('fields/message.php');
     acf_include('fields/tab.php');
     // pro
     acf_include('pro/acf-pro.php');
     // actions
     add_action('init', array($this, 'wp_init'), 5);
     add_filter('posts_where', array($this, 'wp_posts_where'), 10, 2);
     //add_filter('posts_orderby',	array($this, 'wp_posts_orderby'), 10, 2 );
     //add_filter('posts_groupby',	array($this, 'wp_posts_groupby'), 10, 2 );
     //add_filter('posts_request',	array($this, 'posts_request'), 10, 1 );
 }
Example #7
0
 function enqueue_assets()
 {
     // globals
     global $wp_scripts, $wp_styles;
     // vars
     $version = '3.5.2';
     $lang = get_locale();
     $min = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
     //$lang = 'fr';
     // v4
     /*
     		wp_enqueue_script('select2', acf_get_dir("assets/inc/select2/dist/js/select2.full.js"), array('jquery'), '4.0', true );
     		wp_enqueue_style('select2', acf_get_dir("assets/inc/select2/dist/css/select2{$min}.css"), '', '4.0' );
     		return;
     */
     // register script
     if (!isset($wp_scripts->registered['select2'])) {
         // scripts
         wp_register_script('select2', acf_get_dir("assets/inc/select2/select2{$min}.js"), array('jquery'), $version);
         // translation
         if ($lang) {
             // vars
             $lang = str_replace('_', '-', $lang);
             $lang_code = substr($lang, 0, 2);
             $lang_src = '';
             // attempt 1
             if (file_exists(acf_get_path("assets/inc/select2/select2_locale_{$lang_code}.js"))) {
                 $lang_src = acf_get_dir("assets/inc/select2/select2_locale_{$lang_code}.js");
                 // attempt 2
             } elseif (file_exists(acf_get_path("assets/inc/select2/select2_locale_{$lang}.js"))) {
                 $lang_src = acf_get_dir("assets/inc/select2/select2_locale_{$lang}.js");
             }
             // enqueue
             if ($lang_src) {
                 wp_enqueue_script('select2-l10n', $lang_src, array('select2'), $version);
             }
         }
         // end translation
     }
     // register style
     if (!isset($wp_styles->registered['select2'])) {
         wp_register_style('select2', acf_get_dir('assets/inc/select2/select2.css'), '', $version);
     }
     // enqueue
     wp_enqueue_script('select2');
     wp_enqueue_style('select2');
 }
Example #8
0
File: acf.php Project: jewbre/vdlhr
 function wp_init()
 {
     // vars
     $cap = acf_get_setting('capability');
     $version = acf_get_setting('version');
     $lang = get_locale();
     $scripts = array();
     $styles = array();
     $min = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
     // Create post type 'acf-field-group'
     register_post_type('acf-field-group', array('labels' => array('name' => __('Field Groups', 'acf'), 'singular_name' => __('Field Group', 'acf'), 'add_new' => __('Add New', 'acf'), 'add_new_item' => __('Add New Field Group', 'acf'), 'edit_item' => __('Edit Field Group', 'acf'), 'new_item' => __('New Field Group', 'acf'), 'view_item' => __('View Field Group', 'acf'), 'search_items' => __('Search Field Groups', 'acf'), 'not_found' => __('No Field Groups found', 'acf'), 'not_found_in_trash' => __('No Field Groups found in Trash', 'acf')), 'public' => false, 'show_ui' => true, '_builtin' => false, 'capability_type' => 'post', 'capabilities' => array('edit_post' => $cap, 'delete_post' => $cap, 'edit_posts' => $cap, 'delete_posts' => $cap), 'hierarchical' => true, 'rewrite' => false, 'query_var' => false, 'supports' => array('title'), 'show_in_menu' => false));
     // Create post type 'acf-field'
     register_post_type('acf-field', array('labels' => array('name' => __('Fields', 'acf'), 'singular_name' => __('Field', 'acf'), 'add_new' => __('Add New', 'acf'), 'add_new_item' => __('Add New Field', 'acf'), 'edit_item' => __('Edit Field', 'acf'), 'new_item' => __('New Field', 'acf'), 'view_item' => __('View Field', 'acf'), 'search_items' => __('Search Fields', 'acf'), 'not_found' => __('No Fields found', 'acf'), 'not_found_in_trash' => __('No Fields found in Trash', 'acf')), 'public' => false, 'show_ui' => false, '_builtin' => false, 'capability_type' => 'post', 'capabilities' => array('edit_post' => $cap, 'delete_post' => $cap, 'edit_posts' => $cap, 'delete_posts' => $cap), 'hierarchical' => true, 'rewrite' => false, 'query_var' => false, 'supports' => array('title'), 'show_in_menu' => false));
     // append scripts
     $scripts['select2'] = array('src' => acf_get_dir("assets/inc/select2/select2{$min}.js"), 'deps' => array('jquery'));
     $scripts['acf-input'] = array('src' => acf_get_dir("assets/js/acf-input{$min}.js"), 'deps' => array('jquery', 'jquery-ui-core', 'jquery-ui-sortable', 'jquery-ui-resizable', 'jquery-ui-datepicker', 'wp-color-picker', 'select2'));
     $scripts['acf-field-group'] = array('src' => acf_get_dir("assets/js/acf-field-group{$min}.js"), 'deps' => array('acf-input'));
     // select2-l10n
     if ($lang) {
         // vars
         $lang = str_replace('_', '-', $lang);
         $lang_code = substr($lang, 0, 2);
         $src = '';
         // attempt 1
         if (file_exists(acf_get_path("assets/inc/select2/select2_locale_{$lang_code}.js"))) {
             $src = acf_get_dir("assets/inc/select2/select2_locale_{$lang_code}.js");
         } elseif (file_exists(acf_get_path("assets/inc/select2/select2_locale_{$lang}.js"))) {
             $src = acf_get_dir("assets/inc/select2/select2_locale_{$lang}.js");
         }
         // only append if file exists
         if ($src) {
             // append script
             $scripts['select2-l10n'] = array('src' => $src, 'deps' => array('select2'));
             // append dep
             $scripts['acf-input']['deps'][] = 'select2-l10n';
         }
     }
     // register scripts
     foreach ($scripts as $handle => $script) {
         wp_register_script($handle, $script['src'], $script['deps'], $version);
     }
     // append styles
     $styles['select2'] = array('src' => acf_get_dir('assets/inc/select2/select2.css'), 'deps' => false);
     $styles['acf-datepicker'] = array('src' => acf_get_dir('assets/inc/datepicker/jquery-ui-1.10.4.custom.min.css'), 'deps' => false);
     $styles['acf-global'] = array('src' => acf_get_dir('assets/css/acf-global.css'), 'deps' => false);
     $styles['acf-input'] = array('src' => acf_get_dir('assets/css/acf-input.css'), 'deps' => array('acf-global', 'wp-color-picker', 'select2', 'acf-datepicker'));
     $styles['acf-field-group'] = array('src' => acf_get_dir('assets/css/acf-field-group.css'), 'deps' => array('acf-input'));
     // register styles
     foreach ($styles as $handle => $style) {
         wp_register_style($handle, $style['src'], $style['deps'], $version);
     }
     // complete loading of ACF files
     $this->complete();
 }
Example #9
0
 function init()
 {
     // bail early if a plugin called get_field early
     if (!did_action('plugins_loaded')) {
         return;
     }
     // bail early if already init
     if (acf_get_setting('init')) {
         return;
     }
     // only run once
     acf_update_setting('init', true);
     // vars
     $major = intval(acf_get_setting('version'));
     // redeclare dir
     // - allow another plugin to modify dir (maybe force SSL)
     acf_update_setting('dir', plugin_dir_url(__FILE__));
     // set text domain
     load_textdomain('acf', acf_get_path('lang/acf-' . get_locale() . '.mo'));
     // include wpml support
     if (defined('ICL_SITEPRESS_VERSION')) {
         acf_include('core/wpml.php');
     }
     // field types
     acf_include('fields/text.php');
     acf_include('fields/textarea.php');
     acf_include('fields/number.php');
     acf_include('fields/email.php');
     acf_include('fields/url.php');
     acf_include('fields/password.php');
     acf_include('fields/wysiwyg.php');
     acf_include('fields/oembed.php');
     acf_include('fields/image.php');
     acf_include('fields/file.php');
     acf_include('fields/select.php');
     acf_include('fields/checkbox.php');
     acf_include('fields/radio.php');
     acf_include('fields/true_false.php');
     acf_include('fields/post_object.php');
     acf_include('fields/page_link.php');
     acf_include('fields/relationship.php');
     acf_include('fields/taxonomy.php');
     acf_include('fields/user.php');
     acf_include('fields/google-map.php');
     acf_include('fields/date_picker.php');
     acf_include('fields/date_time_picker.php');
     acf_include('fields/time_picker.php');
     acf_include('fields/color_picker.php');
     acf_include('fields/message.php');
     acf_include('fields/tab.php');
     // 3rd party field types
     do_action('acf/include_field_types', $major);
     // local fields
     do_action('acf/include_fields', $major);
     // action for 3rd party
     do_action('acf/init');
 }
Example #10
0
 function register_assets()
 {
     // vars
     $version = acf_get_setting('version');
     $lang = get_locale();
     $min = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
     $scripts = array();
     $styles = array();
     // append scripts
     $scripts['select2'] = array('src' => acf_get_dir("assets/inc/select2/select2{$min}.js"), 'deps' => array('jquery'));
     $scripts['acf-input'] = array('src' => acf_get_dir("assets/js/acf-input{$min}.js"), 'deps' => array('jquery', 'jquery-ui-core', 'jquery-ui-sortable', 'jquery-ui-resizable', 'jquery-ui-datepicker', 'wp-color-picker', 'select2'));
     $scripts['acf-field-group'] = array('src' => acf_get_dir("assets/js/acf-field-group{$min}.js"), 'deps' => array('acf-input'));
     // select2-l10n
     if ($lang) {
         // vars
         $lang = str_replace('_', '-', $lang);
         $lang_code = substr($lang, 0, 2);
         $src = '';
         // attempt 1
         if (file_exists(acf_get_path("assets/inc/select2/select2_locale_{$lang_code}.js"))) {
             $src = acf_get_dir("assets/inc/select2/select2_locale_{$lang_code}.js");
         } elseif (file_exists(acf_get_path("assets/inc/select2/select2_locale_{$lang}.js"))) {
             $src = acf_get_dir("assets/inc/select2/select2_locale_{$lang}.js");
         }
         // only append if file exists
         if ($src) {
             // append script
             $scripts['select2-l10n'] = array('src' => $src, 'deps' => array('select2'));
             // append dep
             $scripts['acf-input']['deps'][] = 'select2-l10n';
         }
     }
     // register scripts
     foreach ($scripts as $handle => $script) {
         wp_register_script($handle, $script['src'], $script['deps'], $version);
     }
     // append styles
     $styles['select2'] = array('src' => acf_get_dir('assets/inc/select2/select2.css'), 'deps' => false);
     $styles['acf-datepicker'] = array('src' => acf_get_dir('assets/inc/datepicker/jquery-ui-1.10.4.custom.min.css'), 'deps' => false);
     $styles['acf-global'] = array('src' => acf_get_dir('assets/css/acf-global.css'), 'deps' => false);
     $styles['acf-input'] = array('src' => acf_get_dir('assets/css/acf-input.css'), 'deps' => array('acf-global', 'wp-color-picker', 'select2', 'acf-datepicker'));
     $styles['acf-field-group'] = array('src' => acf_get_dir('assets/css/acf-field-group.css'), 'deps' => array('acf-input'));
     // register styles
     foreach ($styles as $handle => $style) {
         wp_register_style($handle, $style['src'], $style['deps'], $version);
     }
 }
Example #11
0
 function ajax_upgrade()
 {
     // options
     $options = wp_parse_args($_POST, array('nonce' => '', 'blog_id' => ''));
     // validate
     if (!wp_verify_nonce($options['nonce'], 'acf_upgrade')) {
         wp_send_json_error();
     }
     // switch blog
     if ($options['blog_id']) {
         switch_to_blog($options['blog_id']);
     }
     // vars
     $updates = acf_get_updates();
     $message = '';
     // bail early if no updates
     if (empty($updates)) {
         wp_send_json_error(array('message' => 'No updates available'));
     }
     // install updates
     foreach ($updates as $version) {
         // get path
         $path = acf_get_path("admin/updates/{$version}.php");
         // load version
         if (!file_exists($path)) {
             wp_send_json_error(array('message' => 'Error loading update'));
         }
         // load any errors / feedback from update
         ob_start();
         // action for 3rd party
         do_action('acf/upgrade_start/' . $version);
         // include
         include $path;
         // action for 3rd party
         do_action('acf/upgrade_finish/' . $version);
         // get feedback
         $message .= ob_get_clean();
         // update successful
         update_option('acf_version', $version);
     }
     // updates complete
     update_option('acf_version', acf_get_setting('version'));
     // return
     wp_send_json_success(array('message' => $message));
 }
Example #12
0
			</div>			
		</div>
		
	</div>
	
<?php 
} elseif ($active == 'changelog') {
    ?>
	
	<p class="about-description"><?php 
    printf(__("We think you'll love the changes in %s.", 'acf'), $version);
    ?>
</p>
	
	<?php 
    $items = file_get_contents(acf_get_path('readme.txt'));
    $items = explode('= ' . $version . ' =', $items);
    $items = end($items);
    $items = current(explode("\n\n", $items));
    $items = array_filter(array_map('trim', explode("*", $items)));
    ?>
	<ul class="changelog">
	<?php 
    foreach ($items as $item) {
        $item = explode('http', $item);
        ?>
		<li><?php 
        echo $item[0];
        if (isset($item[1])) {
            ?>
<a href="http<?php 
Example #13
0
 function enqueue_assets()
 {
     // vars
     $version = '3.5.2';
     $lang = get_locale();
     $min = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
     // v4
     /*
     		wp_enqueue_script('select2', acf_get_dir("assets/inc/select2/dist/js/select2.full.js"), array('jquery'), '4.0', true );
     		wp_enqueue_style('select2', acf_get_dir("assets/inc/select2/dist/css/select2{$min}.css"), '', '4.0' );
     		return;
     */
     // scripts
     wp_enqueue_script('select2', acf_get_dir("assets/inc/select2/select2{$min}.js"), array('jquery'), $version, true);
     // styles
     wp_enqueue_style('select2', acf_get_dir('assets/inc/select2/select2.css'), '', $version);
     // bail early if no language
     if (!$lang) {
         return;
     }
     // vars
     $lang = str_replace('_', '-', $lang);
     $lang_code = substr($lang, 0, 2);
     $src = '';
     // attempt 1
     if (file_exists(acf_get_path("assets/inc/select2/select2_locale_{$lang_code}.js"))) {
         $src = acf_get_dir("assets/inc/select2/select2_locale_{$lang_code}.js");
     } elseif (file_exists(acf_get_path("assets/inc/select2/select2_locale_{$lang}.js"))) {
         $src = acf_get_dir("assets/inc/select2/select2_locale_{$lang}.js");
     }
     // bail early if no language
     if (!$src) {
         return;
     }
     // scripts
     wp_enqueue_script('select2-l10n', $src, '', $version, true);
 }
 function mb_locations()
 {
     include acf_get_path('admin/views/field-group-locations.php');
 }
Example #15
0
 function wp_init()
 {
     // vars
     $cap = acf_get_setting('capability');
     $version = acf_get_setting('version');
     $lang = get_locale();
     $scripts = array();
     $styles = array();
     $min = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
     // redeclare dir - allow another plugin to modify dir (maybe force SSL)
     acf_update_setting('dir', plugin_dir_url(__FILE__));
     // set text domain
     load_textdomain('acf', acf_get_path('lang/acf-' . get_locale() . '.mo'));
     $my_register_post_type = 'register_' . 'post_type';
     $my_register_post_type('acf-field-group', array('labels' => array('name' => __('Field Groups', 'acf'), 'singular_name' => __('Field Group', 'acf'), 'add_new' => __('Add New', 'acf'), 'add_new_item' => __('Add New Field Group', 'acf'), 'edit_item' => __('Edit Field Group', 'acf'), 'new_item' => __('New Field Group', 'acf'), 'view_item' => __('View Field Group', 'acf'), 'search_items' => __('Search Field Groups', 'acf'), 'not_found' => __('No Field Groups found', 'acf'), 'not_found_in_trash' => __('No Field Groups found in Trash', 'acf')), 'public' => false, 'show_ui' => true, '_builtin' => false, 'capability_type' => 'post', 'capabilities' => array('edit_post' => $cap, 'delete_post' => $cap, 'edit_posts' => $cap, 'delete_posts' => $cap), 'hierarchical' => true, 'rewrite' => false, 'query_var' => false, 'supports' => array('title'), 'show_in_menu' => false));
     $my_register_post_type('acf-field', array('labels' => array('name' => __('Fields', 'acf'), 'singular_name' => __('Field', 'acf'), 'add_new' => __('Add New', 'acf'), 'add_new_item' => __('Add New Field', 'acf'), 'edit_item' => __('Edit Field', 'acf'), 'new_item' => __('New Field', 'acf'), 'view_item' => __('View Field', 'acf'), 'search_items' => __('Search Fields', 'acf'), 'not_found' => __('No Fields found', 'acf'), 'not_found_in_trash' => __('No Fields found in Trash', 'acf')), 'public' => false, 'show_ui' => false, '_builtin' => false, 'capability_type' => 'post', 'capabilities' => array('edit_post' => $cap, 'delete_post' => $cap, 'edit_posts' => $cap, 'delete_posts' => $cap), 'hierarchical' => true, 'rewrite' => false, 'query_var' => false, 'supports' => array('title'), 'show_in_menu' => false));
     /*
     
     		// register post type 'acf-field-group'
     		register_post_type('acf-field-group', array(
     			'labels'			=> array(
     			    'name'					=> __( 'Field Groups', 'acf' ),
     				'singular_name'			=> __( 'Field Group', 'acf' ),
     			    'add_new'				=> __( 'Add New' , 'acf' ),
     			    'add_new_item'			=> __( 'Add New Field Group' , 'acf' ),
     			    'edit_item'				=> __( 'Edit Field Group' , 'acf' ),
     			    'new_item'				=> __( 'New Field Group' , 'acf' ),
     			    'view_item'				=> __( 'View Field Group', 'acf' ),
     			    'search_items'			=> __( 'Search Field Groups', 'acf' ),
     			    'not_found'				=> __( 'No Field Groups found', 'acf' ),
     			    'not_found_in_trash'	=> __( 'No Field Groups found in Trash', 'acf' ), 
     			),
     			'public'			=> false,
     			'show_ui'			=> true,
     			'_builtin'			=> false,
     			'capability_type'	=> 'post',
     			'capabilities'		=> array(
     				'edit_post'			=> $cap,
     				'delete_post'		=> $cap,
     				'edit_posts'		=> $cap,
     				'delete_posts'		=> $cap,
     			),
     			'hierarchical'		=> true,
     			'rewrite'			=> false,
     			'query_var'			=> false,
     			'supports' 			=> array('title'),
     			'show_in_menu'		=> false,
     		));
     		// register post type 'acf-field'
     		register_post_type('acf-field', array(
     			'labels'			=> array(
     			    'name'					=> __( 'Fields', 'acf' ),
     				'singular_name'			=> __( 'Field', 'acf' ),
     			    'add_new'				=> __( 'Add New' , 'acf' ),
     			    'add_new_item'			=> __( 'Add New Field' , 'acf' ),
     			    'edit_item'				=> __( 'Edit Field' , 'acf' ),
     			    'new_item'				=> __( 'New Field' , 'acf' ),
     			    'view_item'				=> __( 'View Field', 'acf' ),
     			    'search_items'			=> __( 'Search Fields', 'acf' ),
     			    'not_found'				=> __( 'No Fields found', 'acf' ),
     			    'not_found_in_trash'	=> __( 'No Fields found in Trash', 'acf' ), 
     			),
     			'public'			=> false,
     			'show_ui'			=> false,
     			'_builtin'			=> false,
     			'capability_type'	=> 'post',
     			'capabilities'		=> array(
     				'edit_post'			=> $cap,
     				'delete_post'		=> $cap,
     				'edit_posts'		=> $cap,
     				'delete_posts'		=> $cap,
     			),
     			'hierarchical'		=> true,
     			'rewrite'			=> false,
     			'query_var'			=> false,
     			'supports' 			=> array('title'),
     			'show_in_menu'		=> false,
     		));
     */
     // register post status
     register_post_status('acf-disabled', array('label' => __('Disabled', 'acf'), 'public' => true, 'exclude_from_search' => false, 'show_in_admin_all_list' => true, 'show_in_admin_status_list' => true, 'label_count' => _n_noop('Disabled <span class="count">(%s)</span>', 'Disabled <span class="count">(%s)</span>', 'acf')));
     // append scripts
     $scripts['select2'] = array('src' => acf_get_dir("assets/inc/select2/select2{$min}.js"), 'deps' => array('jquery'));
     $scripts['acf-input'] = array('src' => acf_get_dir("assets/js/acf-input{$min}.js"), 'deps' => array('jquery', 'jquery-ui-core', 'jquery-ui-sortable', 'jquery-ui-resizable', 'jquery-ui-datepicker', 'wp-color-picker', 'select2'));
     $scripts['acf-field-group'] = array('src' => acf_get_dir("assets/js/acf-field-group{$min}.js"), 'deps' => array('acf-input'));
     // select2-l10n
     if ($lang) {
         // vars
         $lang = str_replace('_', '-', $lang);
         $lang_code = substr($lang, 0, 2);
         $src = '';
         // attempt 1
         if (file_exists(acf_get_path("assets/inc/select2/select2_locale_{$lang_code}.js"))) {
             $src = acf_get_dir("assets/inc/select2/select2_locale_{$lang_code}.js");
         } elseif (file_exists(acf_get_path("assets/inc/select2/select2_locale_{$lang}.js"))) {
             $src = acf_get_dir("assets/inc/select2/select2_locale_{$lang}.js");
         }
         // only append if file exists
         if ($src) {
             // append script
             $scripts['select2-l10n'] = array('src' => $src, 'deps' => array('select2'));
             // append dep
             $scripts['acf-input']['deps'][] = 'select2-l10n';
         }
     }
     // register scripts
     foreach ($scripts as $handle => $script) {
         wp_register_script($handle, $script['src'], $script['deps'], $version);
     }
     // append styles
     $styles['select2'] = array('src' => acf_get_dir('assets/inc/select2/select2.css'), 'deps' => false);
     $styles['acf-datepicker'] = array('src' => acf_get_dir('assets/inc/datepicker/jquery-ui-1.10.4.custom.min.css'), 'deps' => false);
     $styles['acf-global'] = array('src' => acf_get_dir('assets/css/acf-global.css'), 'deps' => false);
     $styles['acf-input'] = array('src' => acf_get_dir('assets/css/acf-input.css'), 'deps' => array('acf-global', 'wp-color-picker', 'select2', 'acf-datepicker'));
     $styles['acf-field-group'] = array('src' => acf_get_dir('assets/css/acf-field-group.css'), 'deps' => array('acf-input'));
     // register styles
     foreach ($styles as $handle => $style) {
         wp_register_style($handle, $style['src'], $style['deps'], $version);
     }
     // complete loading of ACF files
     $this->complete();
 }