Merge branch 'release/5.5.2' into develop

This commit is contained in:
Remco Tolsma 2016-12-13 09:26:16 +01:00
commit 5d057a2869
134 changed files with 24314 additions and 9837 deletions

26
acf.php
View File

@ -3,7 +3,7 @@
Plugin Name: Advanced Custom Fields PRO
Plugin URI: https://www.advancedcustomfields.com/
Description: Customise WordPress with powerful, professional and intuitive fields
Version: 5.4.8
Version: 5.5.2
Author: Elliot Condon
Author URI: http://www.elliotcondon.com/
Copyright: Elliot Condon
@ -58,7 +58,7 @@ class acf {
// basic
'name' => __('Advanced Custom Fields', 'acf'),
'version' => '5.4.8',
'version' => '5.5.2',
// urls
'basename' => plugin_basename( __FILE__ ),
@ -83,7 +83,10 @@ class acf {
'google_api_key' => '',
'google_api_client' => '',
'enqueue_google_maps' => true,
'enqueue_select2' => true,
'enqueue_select2' => true,
'enqueue_datepicker' => true,
'enqueue_datetimepicker' => true,
'select2_version' => 3
);
@ -131,11 +134,17 @@ class acf {
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/update-network.php');
acf_include('admin/install.php');
acf_include('admin/settings-tools.php');
//acf_include('admin/settings-addons.php');
acf_include('admin/settings-info.php');
// network
if( is_network_admin() ) {
acf_include('admin/install-network.php');
}
}
@ -214,6 +223,7 @@ class acf {
acf_include('fields/password.php');
acf_include('fields/wysiwyg.php');
acf_include('fields/oembed.php');
//acf_include('fields/output.php');
acf_include('fields/image.php');
acf_include('fields/file.php');
acf_include('fields/select.php');
@ -350,12 +360,12 @@ class acf {
// acf-disabled
register_post_status('acf-disabled', array(
'label' => __( 'Disabled', 'acf' ),
'label' => __( 'Inactive', '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' ),
'label_count' => _n_noop( 'Inactive <span class="count">(%s)</span>', 'Inactive <span class="count">(%s)</span>', 'acf' ),
));
}

View File

@ -1,7 +1,15 @@
<?php
if( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
if( ! class_exists('acf_admin') ) :
class acf_admin {
// vars
var $notices = array();
/*
* __construct
*
@ -25,6 +33,58 @@ class acf_admin {
}
/*
* add_notice
*
* This function will add the notice data to a setting in the acf object for the admin_notices action to use
*
* @type function
* @date 17/10/13
* @since 5.0.0
*
* @param $text (string)
* @param $class (string)
* @param wrap (string)
* @return n/a
*/
function add_notice( $text = '', $class = '', $wrap = 'p' ) {
// append
$this->notices[] = array(
'text' => $text,
'class' => 'updated ' . $class,
'wrap' => $wrap
);
}
/*
* get_notices
*
* This function will return an array of admin notices
*
* @type function
* @date 17/10/13
* @since 5.0.0
*
* @param n/a
* @return (array)
*/
function get_notices() {
// bail early if no notices
if( empty($this->notices) ) return false;
// return
return $this->notices;
}
/*
* admin_menu
*
@ -41,11 +101,7 @@ class acf_admin {
function admin_menu() {
// bail early if no show_admin
if( !acf_get_setting('show_admin') ) {
return;
}
if( !acf_get_setting('show_admin') ) return;
// vars
@ -100,18 +156,15 @@ class acf_admin {
function admin_notices() {
// vars
$admin_notices = acf_get_admin_notices();
$notices = $this->get_notices();
// bail early if no notices
if( empty($admin_notices) ) {
return;
}
if( !$notices ) return;
foreach( $admin_notices as $notice ) {
// loop
foreach( $notices as $notice ) {
$open = '';
$close = '';
@ -133,8 +186,50 @@ class acf_admin {
}
// initialize
new acf_admin();
acf()->admin = new acf_admin();
endif; // class_exists check
/*
* acf_add_admin_notice
*
* This function will add the notice data to a setting in the acf object for the admin_notices action to use
*
* @type function
* @date 17/10/13
* @since 5.0.0
*
* @param $text (string)
* @param $class (string)
* @return (int) message ID (array position)
*/
function acf_add_admin_notice( $text, $class = '', $wrap = 'p' ) {
return acf()->admin->add_notice($text, $class, $wrap);
}
/*
* acf_get_admin_notices
*
* This function will return an array containing any admin notices
*
* @type function
* @date 17/10/13
* @since 5.0.0
*
* @param n/a
* @return (array)
*/
function acf_get_admin_notices() {
return acf()->admin->get_notices();
}
?>

View File

@ -392,7 +392,7 @@ class acf_admin_field_group {
// vars
$status = $field_group['active'] ? __("Active",'acf') : __("Disabled",'acf');
$status = $field_group['active'] ? __("Active",'acf') : __("Inactive",'acf');
?>
<script type="text/javascript">
@ -697,11 +697,14 @@ class acf_admin_field_group {
case "post_type" :
// get post types
$choices = acf_get_pretty_post_types();
$post_types = acf_get_post_types(array(
'show_ui' => 1,
'exclude' => array('attachment')
));
// remove attachments
unset( $choices['attachment'] );
// get choices
$choices = acf_get_pretty_post_types( $post_types );
// end
@ -711,10 +714,11 @@ class acf_admin_field_group {
case "post" :
// get post types
$exclude = array('page', 'attachment');
$post_types = acf_get_post_types( $exclude );
$post_types = acf_get_post_types(array(
'exclude' => array('page', 'attachment')
));
// get posts grouped by post type
$groups = acf_get_grouped_posts(array(
'post_type' => $post_types
@ -747,7 +751,32 @@ class acf_admin_field_group {
break;
case "post_template" :
// vars
$templates = wp_get_theme()->get_post_templates();
$default = apply_filters( 'default_page_template_title', __('Default Template', 'acf') );
// choices
$choices = array('default' => $default);
// templates
if( !empty($templates) ) {
foreach( $templates as $post_type => $post_type_templates ) {
$choices = array_merge($choices, $post_type_templates);
}
}
// break
break;
case "post_category" :
$terms = acf_get_taxonomy_terms( 'category' );
@ -862,18 +891,13 @@ class acf_admin_field_group {
case "page_template" :
$choices = array(
'default' => apply_filters( 'default_page_template_title', __('Default Template', 'acf') ),
);
// vars
$templates = wp_get_theme()->get_page_templates();
$default = apply_filters( 'default_page_template_title', __('Default Template', 'acf') );
$templates = get_page_templates();
foreach( $templates as $k => $v ) {
$choices[ $v ] = $k;
}
// merge
$choices = array_merge(array('default' => $default), $templates);
break;

View File

@ -564,7 +564,7 @@ class acf_admin_field_groups {
} else {
echo '<i class="acf-icon -minus yellow small acf-js-tooltip" title="' . __('Disabled', 'acf') . '"></i> ';
echo '<i class="acf-icon -minus yellow small acf-js-tooltip" title="' . __('Inactive', 'acf') . '"></i> ';
}
@ -594,9 +594,13 @@ class acf_admin_field_groups {
function admin_footer() {
// vars
$www = 'https://www.advancedcustomfields.com/resources/';
$url_home = 'https://www.advancedcustomfields.com';
$url_support = 'https://support.advancedcustomfields.com';
$url_docs = $url_home . '/resources/';
?><script type="text/html" id="tmpl-acf-column-2">
?>
<script type="text/html" id="tmpl-acf-column-2">
<div class="acf-column-2">
<div class="acf-box">
<div class="inner">
@ -607,21 +611,22 @@ class acf_admin_field_groups {
<h3><?php _e("Resources",'acf'); ?></h3>
<ul>
<li><a href="<?php echo $www; ?>#getting-started" target="_blank"><?php _e("Getting Started",'acf'); ?></a></li>
<li><a href="<?php echo $www; ?>#updates" target="_blank"><?php _e("Updates",'acf'); ?></a></li>
<li><a href="<?php echo $www; ?>#field-types" target="_blank"><?php _e("Field Types",'acf'); ?></a></li>
<li><a href="<?php echo $www; ?>#functions" target="_blank"><?php _e("Functions",'acf'); ?></a></li>
<li><a href="<?php echo $www; ?>#actions" target="_blank"><?php _e("Actions",'acf'); ?></a></li>
<li><a href="<?php echo $www; ?>#filters" target="_blank"><?php _e("Filters",'acf'); ?></a></li>
<li><a href="<?php echo $www; ?>#how-to" target="_blank"><?php _e("'How to' guides",'acf'); ?></a></li>
<li><a href="<?php echo $www; ?>#tutorials" target="_blank"><?php _e("Tutorials",'acf'); ?></a></li>
<li><a href="<?php echo $www; ?>#faq" target="_blank"><?php _e("FAQ",'acf'); ?></a></li>
<li><a href="<?php echo $url_docs; ?>" target="_blank"><?php _e("Documentation",'acf'); ?></a></li>
<li><a href="<?php echo $url_docs; ?>#getting-started" target="_blank"><?php _e("Getting Started",'acf'); ?></a></li>
<li><a href="<?php echo $url_docs; ?>#field-types" target="_blank"><?php _e("Field Types",'acf'); ?></a></li>
<li><a href="<?php echo $url_docs; ?>#functions" target="_blank"><?php _e("Functions",'acf'); ?></a></li>
<li><a href="<?php echo $url_docs; ?>#actions" target="_blank"><?php _e("Actions",'acf'); ?></a></li>
<li><a href="<?php echo $url_docs; ?>#filters" target="_blank"><?php _e("Filters",'acf'); ?></a></li>
<li><a href="<?php echo $url_docs; ?>#features" target="_blank"><?php _e("Features",'acf'); ?></a></li>
<li><a href="<?php echo $url_docs; ?>#how-to" target="_blank"><?php _e("How to",'acf'); ?></a></li>
<li><a href="<?php echo $url_docs; ?>#tutorials" target="_blank"><?php _e("Tutorials",'acf'); ?></a></li>
<li><a href="<?php echo $url_docs; ?>#faq" target="_blank"><?php _e("FAQ",'acf'); ?></a></li>
<li><a href="<?php echo $url_support; ?>" target="_blank"><?php _e("Support",'acf'); ?></a></li>
</ul>
</div>
<div class="footer footer-blue">
<ul class="acf-hl">
<li><?php _e("Created by",'acf'); ?> Elliot Condon</li>
</ul>
<div class="footer -blue">
<p><?php echo sprintf( __('Thank you for creating with <a href="%s">ACF</a>.','acf'), $url_home ); ?></p>
</div>
</div>
</div>

View File

@ -1,18 +1,10 @@
<?php
/*
* ACF Admin Update Network Class
*
* All the logic for updates
*
* @class acf_admin_update
* @package ACF
* @subpackage Admin
*/
if( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
if( ! class_exists('acf_admin_update_network') ) :
if( ! class_exists('acf_admin_install_network') ) :
class acf_admin_update_network {
class acf_admin_install_network {
/*
* __construct
@ -65,7 +57,7 @@ class acf_admin_update_network {
// get site updates
$updates = acf_get_updates();
$updates = acf_get_db_updates();
// restore
@ -93,7 +85,7 @@ class acf_admin_update_network {
// add page
$page = add_submenu_page('index.php', __('Upgrade Database','acf'), __('Upgrade Database','acf'), acf_get_setting('capability'), 'acf-upgrade', array($this,'network_html'));
$page = add_submenu_page('index.php', __('Upgrade Database','acf'), __('Upgrade Database','acf'), acf_get_setting('capability'), 'acf-upgrade-network', array($this,'network_html'));
// actions
@ -146,13 +138,13 @@ class acf_admin_update_network {
// view
$view = array(
'button_text' => __("Review sites & upgrade", 'acf'),
'button_url' => network_admin_url('index.php?page=acf-upgrade'),
'button_url' => network_admin_url('index.php?page=acf-upgrade-network'),
'confirm' => false
);
// load view
acf_get_view('update-notice', $view);
acf_get_view('install-notice', $view);
}
@ -193,7 +185,7 @@ class acf_admin_update_network {
// get site updates
$site['updates'] = acf_get_updates();
$site['updates'] = acf_get_db_updates();
// get site version
@ -228,16 +220,16 @@ class acf_admin_update_network {
// load view
acf_get_view('update-network', $view);
acf_get_view('install-network', $view);
}
}
// initialize
new acf_admin_update_network();
new acf_admin_install_network();
endif;
endif; // class_exists check
/*

553
admin/install-updates.php Normal file
View File

@ -0,0 +1,553 @@
<?php
if( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
/*
* acf_update_500
*
* These functions will update the DB for ACF v5.0.0
*
* @type function
* @date 10/09/2016
* @since 5.4.0
*
* @param n/a
* @return n/a
*/
function acf_update_500() {
// action for 3rd party
do_action('acf/update_500');
// field groups
acf_update_500_field_groups();
// version
acf_update_db_version('5.0.0');
}
function acf_update_500_field_groups() {
// vars
$ofgs = get_posts(array(
'numberposts' => -1,
'post_type' => 'acf',
'orderby' => 'menu_order title',
'order' => 'asc',
'suppress_filters' => true,
));
// check
if( !$ofgs ) return;
// loop
foreach( $ofgs as $ofg ){
$nfg = acf_update_500_field_group( $ofg );
}
}
function acf_update_500_field_group( $ofg ) {
// global
global $wpdb;
// create new field group
$nfg = array(
'ID' => 0,
'title' => $ofg->post_title,
'menu_order' => $ofg->menu_order,
);
// location rules
$groups = array();
// get all rules
$rules = get_post_meta($ofg->ID, 'rule', false);
if( is_array($rules) ) {
$group_no = 0;
foreach( $rules as $rule ) {
// if field group was duplicated, it may now be a serialized string!
$rule = maybe_unserialize($rule);
// does this rule have a group?
// + groups were added in 4.0.4
if( !isset($rule['group_no']) ) {
$rule['group_no'] = $group_no;
// sperate groups?
if( get_post_meta($ofg->ID, 'allorany', true) == 'any' ) {
$group_no++;
}
}
// extract vars
$group = acf_extract_var( $rule, 'group_no' );
$order = acf_extract_var( $rule, 'order_no' );
// add to group
$groups[ $group ][ $order ] = $rule;
// sort rules
ksort( $groups[ $group ] );
}
// sort groups
ksort( $groups );
}
$nfg['location'] = $groups;
// settings
if( $position = get_post_meta($ofg->ID, 'position', true) ) {
$nfg['position'] = $position;
}
if( $layout = get_post_meta($ofg->ID, 'layout', true) ) {
$nfg['layout'] = $layout;
}
if( $hide_on_screen = get_post_meta($ofg->ID, 'hide_on_screen', true) ) {
$nfg['hide_on_screen'] = maybe_unserialize($hide_on_screen);
}
// Note: acf_update_field_group will call the acf_get_valid_field_group function and apply 'compatibility' changes
// save field group
$nfg = acf_update_field_group( $nfg );
// action for 3rd party
do_action('acf/update_500_field_group', $nfg, $ofg);
// trash?
if( $ofg->post_status == 'trash' ) {
acf_trash_field_group( $nfg['ID'] );
}
// global
global $wpdb;
// get field from postmeta
$rows = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $wpdb->postmeta WHERE post_id = %d AND meta_key LIKE %s", $ofg->ID, 'field_%'), ARRAY_A);
// check
if( $rows ) {
// loop
foreach( $rows as $row ) {
// bail early if key already migrated (potential duplicates in DB)
if( acf_has_done('update_500_field_group_' . $ofg->ID . '_' . $row['meta_key']) ) continue;
// vars
$field = $row['meta_value'];
$field = maybe_unserialize( $field );
$field = maybe_unserialize( $field ); // run again for WPML
// add parent
$field['parent'] = $nfg['ID'];
// migrate field
$field = acf_update_500_field( $field );
}
}
// return
return $nfg;
}
function acf_update_500_field( $field ) {
// orig
$orig = $field;
// order_no is now menu_order
$field['menu_order'] = acf_extract_var( $field, 'order_no' );
// correct very old field keys
if( substr($field['key'], 0, 6) !== 'field_' ) {
$field['key'] = 'field_' . str_replace('field', '', $field['key']);
}
// get valid field
$field = acf_get_valid_field( $field );
// save field
$field = acf_update_field( $field );
// sub fields
if( $field['type'] == 'repeater' ) {
// get sub fields
$sub_fields = acf_extract_var( $orig, 'sub_fields' );
// save sub fields
if( !empty($sub_fields) ) {
$keys = array_keys($sub_fields);
foreach( $keys as $key ) {
$sub_field = acf_extract_var($sub_fields, $key);
$sub_field['parent'] = $field['ID'];
acf_update_500_field( $sub_field );
}
}
} elseif( $field['type'] == 'flexible_content' ) {
// get layouts
$layouts = acf_extract_var( $orig, 'layouts' );
// update layouts
$field['layouts'] = array();
// save sub fields
if( !empty($layouts) ) {
foreach( $layouts as $layout ) {
// vars
$layout_key = uniqid();
// append layotu key
$layout['key'] = $layout_key;
// extract sub fields
$sub_fields = acf_extract_var($layout, 'sub_fields');
// save sub fields
if( !empty($sub_fields) ) {
$keys = array_keys($sub_fields);
foreach( $keys as $key ) {
$sub_field = acf_extract_var($sub_fields, $key);
$sub_field['parent'] = $field['ID'];
$sub_field['parent_layout'] = $layout_key;
acf_update_500_field( $sub_field );
}
// foreach
}
// if
// append layout
$field['layouts'][] = $layout;
}
// foreach
}
// if
// save field again with less sub field data
$field = acf_update_field( $field );
}
// action for 3rd party
do_action('acf/update_500_field', $field);
// return
return $field;
}
/*
* acf_update_550
*
* These functions will update the DB for ACF v5.5.0
*
* @type function
* @date 10/09/2016
* @since 5.4.0
*
* @param n/a
* @return n/a
*/
function acf_update_550() { //acf_log('acf_update_550');
// action for 3rd party
do_action('acf/update_550');
// bail early if no table
if( !acf_isset_termmeta() ) {
update_option('acf_update_550_termmeta', 1);
echo __('Term meta upgrade not possible (termmeta table does not exist)', 'acf');
return;
}
// termmeta
acf_update_550_termmeta();
// version
acf_update_db_version('5.5.0');
}
/*
* acf_update_550_termmeta
*
* This function will migrate all term meta
*
* @type function
* @date 3/09/2016
* @since 5.4.0
*
* @param n/a
* @return n/a
*/
function acf_update_550_termmeta() { //acf_log('acf_update_550_termmeta');
// vars
$taxonomies = get_taxonomies(false, 'objects');
// bail early if no taxonomies
if( !$taxonomies ) return;
// loop
foreach( $taxonomies as $taxonomy ) {
acf_update_550_taxonomy( $taxonomy );
}
// delete trigger
delete_option('acf_update_550_termmeta');
// action for 3rd party
do_action('acf/update_550_termmeta');
}
/*
* acf_update_550_taxonomy
*
* This function will migrate term meta for a specific taxonomy
*
* @type function
* @date 3/09/2016
* @since 5.4.0
*
* @param $taxonomy (string)
* @return n/a
*/
function acf_update_550_taxonomy( $taxonomy ) { //acf_log('acf_update_550_taxonomy', $taxonomy);
// vars
$terms = get_terms($taxonomy->name, array( 'hide_empty' => false ));
// bail early if no terms
if( !$terms ) return;
// loop
foreach( $terms as $term ) {
acf_update_550_term( $term );
}
// action for 3rd party
do_action('acf/update_550_taxonomy', $taxonomy);
}
/*
* acf_update_550_term
*
* This function will migrate term meta for a specific term
*
* @type function
* @date 3/09/2016
* @since 5.4.0
*
* @param $term (object)
* @return n/a
*/
function acf_update_550_term( $term ) { //acf_log('acf_update_550_term', $term);
// global
global $wpdb;
// vars
$meta = array();
$post_id = $term->taxonomy . '_' . $term->term_id;
// vars
$search = $post_id . '_%';
$_search = '_' . $search;
// escape '_'
// http://stackoverflow.com/questions/2300285/how-do-i-escape-in-sql-server
$search = str_replace('_', '\_', $search);
$_search = str_replace('_', '\_', $_search);
// search
$rows = $wpdb->get_results($wpdb->prepare(
"SELECT *
FROM $wpdb->options
WHERE option_name LIKE %s
OR option_name LIKE %s",
$search,
$_search
), ARRAY_A);
// bail early if no row
if( empty($rows) ) return;
// vars
$search = $post_id . '_';
$_search = '_' . $search;
// loop
foreach( $rows as $row ) {
// vars
$name = $row['option_name'];
// extract $post_id from options name
if( strpos($name, $search) === 0 ) {
$name = substr($name, strlen($search));
// extract _$post_id from options name
} elseif( strpos($name, $_search) === 0 ) {
$name = '_' . substr($name, strlen($_search));
// $post_id not found at begining of name (false result)
} else {
continue;
}
// append
$meta[ $name ] = $row['option_value'];
}
// bail ealry if no meta
if( empty($meta) ) return;
// loop
foreach( $meta as $name => $value ) {
// update
update_metadata( 'term', $term->term_id, $name, $value );
}
// action for 3rd party
do_action('acf/update_550_term', $term);
}
?>

425
admin/install.php Normal file
View File

@ -0,0 +1,425 @@
<?php
if( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
if( ! class_exists('acf_admin_install') ) :
class acf_admin_install {
// vars
var $db_updates = array(
'5.0.0' => 'acf_update_500',
'5.5.0' => 'acf_update_550'
);
/*
* __construct
*
* This function will setup the class functionality
*
* @type function
* @date 5/03/2014
* @since 5.0.0
*
* @param n/a
* @return n/a
*/
function __construct() {
// actions
add_action('admin_menu', array($this,'admin_menu'), 20);
add_action('wp_upgrade', array($this,'wp_upgrade'), 10, 2);
// ajax
add_action('wp_ajax_acf/admin/db_update', array($this, 'ajax_db_update'));
}
/*
* admin_menu
*
* This function will chck for available updates and add actions if needed
*
* @type function
* @date 19/02/2014
* @since 5.0.0
*
* @param n/a
* @return n/a
*/
function admin_menu() {
// vars
$updates = acf_get_db_updates();
// bail early if no updates available
if( !$updates ) return;
// actions
add_action('admin_notices', array($this, 'admin_notices'), 1);
// add page
$page = add_submenu_page('index.php', __('Upgrade Database','acf'), __('Upgrade Database','acf'), acf_get_setting('capability'), 'acf-upgrade', array($this,'html') );
// actions
add_action('load-' . $page, array($this,'load'));
}
/*
* load
*
* This function will look at the $_POST data and run any functions if needed
*
* @type function
* @date 7/01/2014
* @since 5.0.0
*
* @param n/a
* @return n/a
*/
function load() {
// hide upgrade
remove_action('admin_notices', array($this, 'admin_notices'), 1);
// load acf scripts
acf_enqueue_scripts();
}
/*
* admin_notices
*
* This function will render any admin notices
*
* @type function
* @date 17/10/13
* @since 5.0.0
*
* @param n/a
* @return n/a
*/
function admin_notices() {
// view
$view = array(
'button_text' => __("Upgrade Database", 'acf'),
'button_url' => admin_url('index.php?page=acf-upgrade')
);
// load view
acf_get_view('install-notice', $view);
}
/*
* html
*
* description
*
* @type function
* @date 19/02/2014
* @since 5.0.0
*
* @param $post_id (int)
* @return $post_id (int)
*/
function html() {
// view
$view = array(
'updates' => acf_get_db_updates(),
'plugin_version' => acf_get_setting('version')
);
// load view
acf_get_view('install', $view);
}
/*
* ajax_db_update
*
* description
*
* @type function
* @date 24/10/13
* @since 5.0.0
*
* @param $post_id (int)
* @return $post_id (int)
*/
function ajax_db_update() {
// options
$options = wp_parse_args( $_POST, array(
'nonce' => '',
'blog_id' => '',
));
// validate
if( !wp_verify_nonce($options['nonce'], 'acf_db_update') ) {
wp_send_json_error(array(
'message' => __('Error validating request', 'acf')
));
}
// switch blog
if( $options['blog_id'] ) {
switch_to_blog( $options['blog_id'] );
}
// vars
$updates = acf_get_db_updates();
$message = '';
// bail early if no updates
if( empty($updates) ) {
wp_send_json_error(array(
'message' => __('No updates available.', 'acf')
));
}
// install updates
foreach( $updates as $version => $callback ) {
$message .= $this->run_update( $callback );
}
// updates complete
acf_update_db_version();
// return
wp_send_json_success(array(
'message' => $message
));
}
/*
* run_db_update
*
* This function will perform a db upgrade
*
* @type function
* @date 10/09/2016
* @since 5.4.0
*
* @param $post_id (int)
* @return $post_id (int)
*/
function run_update( $callback = '' ) {
// include update functions
acf_include('admin/install-updates.php');
// bail early if not found
if( !function_exists($callback) ) return false;
// load any errors / feedback from update
ob_start();
// include
call_user_func($callback);
// get feedback
$message = ob_get_clean();
// return
return $message;
}
/*
* wp_upgrade
*
* This function will run when the WP database is updated
*
* @type function
* @date 10/09/2016
* @since 5.4.0
*
* @param $wp_db_version (string) The new $wp_db_version
* @return $wp_current_db_version (string) The old (current) $wp_db_version
*/
function wp_upgrade( $wp_db_version, $wp_current_db_version ) {
// termmeta was added in 34370
if( $wp_db_version >= 34370 && $wp_current_db_version < 34370 && get_option('acf_update_550_termmeta') ) {
$this->run_update('acf_update_550_termmeta');
}
}
}
// initialize
acf()->admin->install = new acf_admin_install();
endif; // class_exists check
/*
* acf_get_db_version
*
* This function will return the current ACF DB version
*
* @type function
* @date 10/09/2016
* @since 5.4.0
*
* @param $post_id (int)
* @return $post_id (int)
*/
function acf_get_db_version() {
return get_option('acf_version');
}
/*
* acf_update_db_version
*
* This function will update the current ACF DB version
*
* @type function
* @date 10/09/2016
* @since 5.4.0
*
* @param $post_id (int)
* @return $post_id (int)
*/
function acf_update_db_version( $version = '' ) {
// default to latest
if( !$version ) {
$version = acf_get_setting('version');
}
// update
update_option('acf_version', $version );
}
/*
* acf_get_db_updates
*
* This function will return available db updates
*
* @type function
* @date 12/05/2014
* @since 5.0.0
*
* @param $post_id (int)
* @return $post_id (int)
*/
function acf_get_db_updates() {
// vars
$available = array();
$db_updates = acf()->admin->install->db_updates;
$acf_version = acf_get_setting('version');
$db_version = acf_get_db_version();
// bail early if is fresh install
if( !$db_version ) {
acf_update_db_version($acf_version);
return false;
}
// bail early if is up to date
if( acf_version_compare($db_version, '>=', $acf_version)) return false;
// loop
foreach( $db_updates as $version => $callback ) {
// ignore if update is for a future version (may exist for testing)
if( acf_version_compare( $version, '>', $acf_version ) ) continue;
// ignore if update has already been run
if( acf_version_compare( $version, '<=', $db_version ) ) continue;
// append
$available[ $version ] = $callback;
}
// bail early if no updates available
// - also update DB to current version
if( empty($available) ) {
acf_update_db_version($acf_version);
return false;
}
// return
return $available;
}
?>

View File

@ -1,372 +0,0 @@
<?php
/*
* ACF Admin Update Class
*
* All the logic for updates
*
* @class acf_admin_update
* @package ACF
* @subpackage Admin
*/
if( ! class_exists('acf_admin_update') ) :
class acf_admin_update {
/*
* __construct
*
* A good place to add actions / filters
*
* @type function
* @date 11/08/13
*
* @param N/A
* @return N/A
*/
function __construct() {
// actions
add_action('admin_menu', array($this,'admin_menu'), 20);
// ajax
add_action('wp_ajax_acf/admin/data_upgrade', array($this, 'ajax_upgrade'));
}
/*
* admin_menu
*
* This function will chck for available updates and add actions if needed
*
* @type function
* @date 19/02/2014
* @since 5.0.0
*
* @param n/a
* @return n/a
*/
function admin_menu() {
// vars
$plugin_version = acf_get_setting('version');
$acf_version = get_option('acf_version');
// bail early if a new install
if( !$acf_version ) {
update_option('acf_version', $plugin_version );
return;
}
// bail early if $acf_version is >= $plugin_version
if( version_compare( $acf_version, $plugin_version, '>=') ) {
return;
}
// vars
$updates = acf_get_updates();
// bail early if no updates available
if( empty($updates) ) {
update_option('acf_version', $plugin_version );
return;
}
// bail early if no show_admin
if( !acf_get_setting('show_admin') ) {
return;
}
// actions
add_action('admin_notices', array($this, 'admin_notices'), 1);
// add page
$page = add_submenu_page('edit.php?post_type=acf-field-group', __('Upgrade Database','acf'), __('Upgrade Database','acf'), acf_get_setting('capability'), 'acf-upgrade', array($this,'html') );
// actions
add_action('load-' . $page, array($this,'load'));
}
/*
* load
*
* This function will look at the $_POST data and run any functions if needed
*
* @type function
* @date 7/01/2014
* @since 5.0.0
*
* @param n/a
* @return n/a
*/
function load() {
// hide upgrade
remove_action('admin_notices', array($this, 'admin_notices'), 1);
// load acf scripts
acf_enqueue_scripts();
}
/*
* admin_notices
*
* This function will render any admin notices
*
* @type function
* @date 17/10/13
* @since 5.0.0
*
* @param n/a
* @return n/a
*/
function admin_notices() {
// view
$view = array(
'button_text' => __("Upgrade Database", 'acf'),
'button_url' => admin_url('edit.php?post_type=acf-field-group&page=acf-upgrade')
);
// load view
acf_get_view('update-notice', $view);
}
/*
* html
*
* description
*
* @type function
* @date 19/02/2014
* @since 5.0.0
*
* @param $post_id (int)
* @return $post_id (int)
*/
function html() {
// view
$view = array(
'updates' => acf_get_updates(),
'plugin_version' => acf_get_setting('version')
);
// load view
acf_get_view('update', $view);
}
/*
* ajax_upgrade
*
* description
*
* @type function
* @date 24/10/13
* @since 5.0.0
*
* @param $post_id (int)
* @return $post_id (int)
*/
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(array(
'message' => __('Error validating request', 'acf')
));
}
// 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', 'acf')
));
}
// 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', 'acf')
));
}
// 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
));
}
/*
* inject_downgrade
*
* description
*
* @type function
* @date 16/01/2014
* @since 5.0.0
*
* @param $post_id (int)
* @return $post_id (int)
*/
/*
function inject_downgrade( $transient ) {
// bail early if no plugins are being checked
if( empty($transient->checked) ) {
return $transient;
}
// bail early if no nonce
if( empty($_GET['_acfrollback']) ) {
return $transient;
}
// vars
$rollback = get_option('acf_version');
// bail early if nonce is not correct
if( !wp_verify_nonce( $_GET['_acfrollback'], 'rollback-acf_' . $rollback ) ) {
return $transient;
}
// create new object for update
$obj = new stdClass();
$obj->slug = $_GET['plugin'];
$obj->new_version = $rollback;
$obj->url = 'https://wordpress.org/plugins/advanced-custom-fields';
$obj->package = 'https://downloads.wordpress.org/plugin/advanced-custom-fields.' . $rollback . '.zip';;
// add to transient
$transient->response[ $_GET['plugin'] ] = $obj;
// return
return $transient;
}
*/
}
// initialize
new acf_admin_update();
endif;
?>

View File

@ -1,325 +0,0 @@
<?php
/*
* Upgrade to version 5.0.0
*
* @type upgrade
* @date 20/02/2014
* @since 5.0.0
*
* @param n/a
* @return n/a
*/
// Exit if accessed directly
if( !defined('ABSPATH') ) exit;
// global
global $wpdb;
// migrate field groups
$ofgs = get_posts(array(
'numberposts' => -1,
'post_type' => 'acf',
'orderby' => 'menu_order title',
'order' => 'asc',
'suppress_filters' => true,
));
// populate acfs
if( $ofgs ){ foreach( $ofgs as $ofg ){
// migrate field group
$nfg = _migrate_field_group_500( $ofg );
// get field from postmeta
$rows = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $wpdb->postmeta WHERE post_id = %d AND meta_key LIKE %s", $ofg->ID, 'field_%'), ARRAY_A);
if( $rows )
{
$nfg['fields'] = array();
foreach( $rows as $row )
{
$field = $row['meta_value'];
$field = maybe_unserialize( $field );
$field = maybe_unserialize( $field ); // run again for WPML
// add parent
$field['parent'] = $nfg['ID'];
// migrate field
$field = _migrate_field_500( $field );
}
}
}}
/*
* _migrate_field_group_500
*
* description
*
* @type function
* @date 20/02/2014
* @since 5.0.0
*
* @param $post_id (int)
* @return $post_id (int)
*/
function _migrate_field_group_500( $ofg ) {
// global
global $wpdb;
// get post status
$post_status = $ofg->post_status;
// create new field group
$nfg = array(
'ID' => 0,
'title' => $ofg->post_title,
'menu_order' => $ofg->menu_order,
);
// location rules
$groups = array();
// get all rules
$rules = get_post_meta($ofg->ID, 'rule', false);
if( is_array($rules) ) {
$group_no = 0;
foreach( $rules as $rule ) {
// if field group was duplicated, it may now be a serialized string!
$rule = maybe_unserialize($rule);
// does this rule have a group?
// + groups were added in 4.0.4
if( !isset($rule['group_no']) ) {
$rule['group_no'] = $group_no;
// sperate groups?
if( get_post_meta($ofg->ID, 'allorany', true) == 'any' ) {
$group_no++;
}
}
// extract vars
$group = acf_extract_var( $rule, 'group_no' );
$order = acf_extract_var( $rule, 'order_no' );
// add to group
$groups[ $group ][ $order ] = $rule;
// sort rules
ksort( $groups[ $group ] );
}
// sort groups
ksort( $groups );
}
$nfg['location'] = $groups;
// settings
if( $position = get_post_meta($ofg->ID, 'position', true) ) {
$nfg['position'] = $position;
}
if( $layout = get_post_meta($ofg->ID, 'layout', true) ) {
$nfg['layout'] = $layout;
}
if( $hide_on_screen = get_post_meta($ofg->ID, 'hide_on_screen', true) ) {
$nfg['hide_on_screen'] = maybe_unserialize($hide_on_screen);
}
// Note: acf_update_field_group will call the acf_get_valid_field_group function and apply 'compatibility' changes
// add old ID reference
$nfg['old_ID'] = $ofg->ID;
// save field group
$nfg = acf_update_field_group( $nfg );
// trash?
if( $post_status == 'trash' ) {
acf_trash_field_group( $nfg['ID'] );
}
// return
return $nfg;
}
/*
* _migrate_field_500
*
* description
*
* @type function
* @date 20/02/2014
* @since 5.0.0
*
* @param $post_id (int)
* @return $post_id (int)
*/
function _migrate_field_500( $field ) {
// orig
$orig = $field;
// order_no is now menu_order
$field['menu_order'] = acf_extract_var( $field, 'order_no' );
// correct very old field keys
if( substr($field['key'], 0, 6) !== 'field_' ) {
$field['key'] = 'field_' . str_replace('field', '', $field['key']);
}
// get valid field
$field = acf_get_valid_field( $field );
// save field
$field = acf_update_field( $field );
// sub fields
if( $field['type'] == 'repeater' ) {
// get sub fields
$sub_fields = acf_extract_var( $orig, 'sub_fields' );
// save sub fields
if( !empty($sub_fields) ) {
$keys = array_keys($sub_fields);
foreach( $keys as $key ) {
$sub_field = acf_extract_var($sub_fields, $key);
$sub_field['parent'] = $field['ID'];
_migrate_field_500( $sub_field );
}
}
} elseif( $field['type'] == 'flexible_content' ) {
// get layouts
$layouts = acf_extract_var( $orig, 'layouts' );
// update layouts
$field['layouts'] = array();
// save sub fields
if( !empty($layouts) ) {
foreach( $layouts as $layout ) {
// vars
$layout_key = uniqid();
// append layotu key
$layout['key'] = $layout_key;
// extract sub fields
$sub_fields = acf_extract_var($layout, 'sub_fields');
// save sub fields
if( !empty($sub_fields) ) {
$keys = array_keys($sub_fields);
foreach( $keys as $key ) {
$sub_field = acf_extract_var($sub_fields, $key);
$sub_field['parent'] = $field['ID'];
$sub_field['parent_layout'] = $layout_key;
_migrate_field_500( $sub_field );
}
// foreach
}
// if
// append layout
$field['layouts'][] = $layout;
}
// foreach
}
// if
// save field again with less sub field data
$field = acf_update_field( $field );
}
// return
return $field;
}
?>

View File

@ -24,7 +24,7 @@ if( empty($groups) ) {
}
?>
<tr data-name="conditional_logic" class="acf-field">
<tr class="acf-field acf-field-true-false acf-field-setting-conditional_logic" data_type="true_false" data-name="conditional_logic">
<td class="acf-label">
<label><?php _e("Conditional Logic",'acf'); ?></label>
</td>
@ -32,16 +32,12 @@ if( empty($groups) ) {
<?php
acf_render_field(array(
'type' => 'radio',
'type' => 'true_false',
'name' => 'conditional_logic',
'prefix' => $field['prefix'],
'value' => $disabled ? 0 : 1,
'choices' => array(
1 => __("Yes",'acf'),
0 => __("No",'acf'),
),
'layout' => 'horizontal',
'class' => 'conditional-toggle'
'ui' => 1,
'class' => 'conditional-toggle',
));
?>
@ -50,11 +46,8 @@ if( empty($groups) ) {
<?php foreach( $groups as $group_id => $group ):
// validate
if( empty($group) ) {
if( empty($group) ) continue;
continue;
}
// vars
// $group_id must be completely different to $rule_id to avoid JS issues

View File

@ -76,84 +76,70 @@ $atts['class'] = str_replace('_', '-', $atts['class']);
<table class="acf-table">
<tbody>
<?php
// label
acf_render_field_wrap(array(
acf_render_field_setting($field, array(
'label' => __('Field Label','acf'),
'instructions' => __('This is the name which will appear on the EDIT page','acf'),
'required' => 1,
'type' => 'text',
'name' => 'label',
'prefix' => $field['prefix'],
'value' => $field['label'],
'type' => 'text',
'required' => 1,
'class' => 'field-label'
), 'tr');
), true);
// name
acf_render_field_wrap(array(
acf_render_field_setting($field, array(
'label' => __('Field Name','acf'),
'instructions' => __('Single word, no spaces. Underscores and dashes allowed','acf'),
'required' => 1,
'type' => 'text',
'name' => 'name',
'prefix' => $field['prefix'],
'value' => $field['name'],
'type' => 'text',
'required' => 1,
'class' => 'field-name'
), 'tr');
), true);
// type
acf_render_field_wrap(array(
acf_render_field_setting($field, array(
'label' => __('Field Type','acf'),
'instructions' => '',
'required' => 1,
'type' => 'select',
'name' => 'type',
'prefix' => $field['prefix'],
'value' => $field['type'],
'choices' => acf_get_field_types(),
'choices' => acf_get_grouped_field_types(),
'class' => 'field-type'
), 'tr');
), true);
// instructions
acf_render_field_wrap(array(
acf_render_field_setting($field, array(
'label' => __('Instructions','acf'),
'instructions' => __('Instructions for authors. Shown when submitting data','acf'),
'type' => 'textarea',
'name' => 'instructions',
'prefix' => $field['prefix'],
'value' => $field['instructions'],
'rows' => 5
), 'tr');
), true);
// required
acf_render_field_wrap(array(
acf_render_field_setting($field, array(
'label' => __('Required?','acf'),
'instructions' => '',
'type' => 'radio',
'type' => 'true_false',
'name' => 'required',
'prefix' => $field['prefix'],
'value' => $field['required'],
'choices' => array(
1 => __("Yes",'acf'),
0 => __("No",'acf'),
),
'layout' => 'horizontal',
'ui' => 1,
'class' => 'field-required'
), 'tr');
// type specific settings
do_action("acf/render_field_settings/type={$field['type']}", $field);
), true);
// 3rd party settings
do_action('acf/render_field_settings', $field);
// type specific settings
do_action("acf/render_field_settings/type={$field['type']}", $field);
// conditional logic
acf_get_view('field-group-field-conditional-logic', array( 'field' => $field ));
@ -169,7 +155,8 @@ $atts['class'] = str_replace('_', '-', $atts['class']);
'prepend' => __('width', 'acf'),
'append' => '%',
'wrapper' => array(
'data-name' => 'wrapper'
'data-name' => 'wrapper',
'class' => 'acf-field-setting-wrapper'
)
), 'tr');

View File

@ -2,9 +2,7 @@
// vars
$fields = false;
$layout = false;
$parent = 0;
$clone = false;
// use fields if passed in
@ -20,23 +18,22 @@ extract( $args );
<li class="li-field-type"><?php _e('Type','acf'); ?></li>
</ul>
<div class="acf-field-list<?php if( $layout ){ echo " layout-{$layout}"; } ?>">
<?php
<div class="acf-field-list">
if( $fields ) {
foreach( $fields as $i => $field ) {
acf_get_view('field-group-field', array( 'field' => $field, 'i' => $i ));
}
}
?>
<div class="no-fields-message" <?php if( $fields ){ echo 'style="display:none;"'; } ?>>
<?php _e("No fields. Click the <strong>+ Add Field</strong> button to create your first field.",'acf'); ?>
</div>
<?php if( $fields ):
foreach( $fields as $i => $field ):
acf_get_view('field-group-field', array( 'field' => $field, 'i' => $i ));
endforeach;
endif; ?>
</div>
<ul class="acf-hl acf-tfoot">

View File

@ -4,6 +4,7 @@
$rule_types = apply_filters('acf/location/rule_types', array(
__("Post",'acf') => array(
'post_type' => __("Post Type",'acf'),
'post_template' => __("Post Template",'acf'),
'post_status' => __("Post Status",'acf'),
'post_format' => __("Post Format",'acf'),
'post_category' => __("Post Category",'acf'),
@ -30,6 +31,14 @@ $rule_types = apply_filters('acf/location/rule_types', array(
)
));
// WP < 4.7
if( acf_version_compare('wp', '<', '4.7') ) {
unset( $rule_types[ __("Post",'acf') ]['post_template'] );
}
$rule_operators = apply_filters( 'acf/location/rule_operators', array(
'==' => __("is equal to",'acf'),
'!=' => __("is not equal to",'acf'),

View File

@ -1,17 +1,16 @@
<?php
<?php
// active
acf_render_field_wrap(array(
'label' => __('Status','acf'),
'label' => __('Active','acf'),
'instructions' => '',
'type' => 'select',
'type' => 'true_false',
'name' => 'active',
'prefix' => 'acf_field_group',
'value' => $field_group['active'],
'choices' => array(
1 => __("Active",'acf'),
0 => __("Disabled",'acf'),
)
'ui' => 1,
//'ui_on_text' => __('Active', 'acf'),
//'ui_off_text' => __('Inactive', 'acf'),
));

View File

@ -64,7 +64,7 @@ extract($args);
<p><input type="submit" name="upgrade" value="<?php echo $button; ?>" class="button" id="upgrade-sites-2"></p>
<p class="show-on-complete"><?php _e('Database Upgrade complete', 'acf'); ?>. <a href="<?php echo network_admin_url(); ?>"><?php _e("Return to network dashboard",'acf'); ?></a>.</p>
<p class="show-on-complete"><?php echo sprintf( __('Database Upgrade complete. <a href="%s">Return to network dashboard</a>', 'acf'), network_admin_url() ); ?></p>
<style type="text/css">
@ -172,8 +172,8 @@ extract($args);
dataType: 'json',
type: 'post',
data: {
action: 'acf/admin/data_upgrade',
nonce: '<?php echo wp_create_nonce('acf_upgrade'); ?>',
action: 'acf/admin/db_update',
nonce: '<?php echo wp_create_nonce('acf_db_update'); ?>',
blog_id: $input.val(),
},
success: function( json ){

View File

@ -7,13 +7,13 @@ extract($args);
<h1><?php _e("Advanced Custom Fields Database Upgrade",'acf'); ?></h1>
<?php if( !empty($updates) ): ?>
<?php if( $updates ): ?>
<p><?php _e('Reading upgrade tasks...', 'acf'); ?></p>
<p class="show-on-ajax"><i class="acf-loading"></i> <?php printf(__('Upgrading data to version %s', 'acf'), $plugin_version); ?></p>
<p class="show-on-complete"><?php _e('Database Upgrade complete', 'acf'); ?>. <a href="<?php echo admin_url('edit.php?post_type=acf-field-group&page=acf-settings-info'); ?>"><?php _e("See what's new",'acf'); ?></a>.</p>
<p class="show-on-complete"><?php echo sprintf( __('Database Upgrade complete. <a href="%s">See what\'s new</a>', 'acf' ), admin_url('edit.php?post_type=acf-field-group&page=acf-settings-info') ); ?></p>
<style type="text/css">
@ -64,8 +64,8 @@ extract($args);
dataType: 'json',
type: 'post',
data: {
action: 'acf/admin/data_upgrade',
nonce: '<?php echo wp_create_nonce('acf_upgrade'); ?>'
action: 'acf/admin/db_update',
nonce: '<?php echo wp_create_nonce('acf_db_update'); ?>'
},
success: function( json ){
@ -107,7 +107,7 @@ extract($args);
<?php else: ?>
<p><?php _e('No updates available', 'acf'); ?>.</p>
<p><?php _e('No updates available.', 'acf'); ?></p>
<?php endif; ?>

View File

@ -914,11 +914,8 @@ function acf_get_field_group_style( $field_group ) {
$e = '';
// validate
if( !is_array($field_group['hide_on_screen']) )
{
return $e;
}
// bail early if no array or is empty
if( !acf_is_array($field_group['hide_on_screen']) ) return $e;
// add style to html
@ -1000,6 +997,7 @@ function acf_get_field_group_style( $field_group ) {
// return
return apply_filters('acf/get_field_group_style', $e, $field_group);
}

View File

@ -1,91 +1,5 @@
<?php
/*
* acf_get_field_types
*
* This function will return all available field types
*
* @type function
* @date 1/10/13
* @since 5.0.0
*
* @param n/a
* @return (array)
*/
function acf_get_field_types() {
return apply_filters('acf/get_field_types', array());
}
/*
* acf_get_field_type_label
*
* This function will return the label of a field type
*
* @type function
* @date 1/10/13
* @since 5.0.0
*
* @param n/a
* @return (array)
*/
function acf_get_field_type_label( $field_type ) {
// vars
$field_types = acf_get_field_types();
// loop through categories
foreach( $field_types as $category ) {
if( isset( $category[ $field_type ] ) ) {
return $category[ $field_type ];
}
}
// return
return '';
}
/*
* acf_field_type_exists
*
* This function will check if the field_type is available
*
* @type function
* @date 1/10/13
* @since 5.0.0
*
* @param $field_type (string)
* @return (boolean)
*/
function acf_field_type_exists( $field_type ) {
// vars
$label = acf_get_field_type_label( $field_type );
// return true if label exists
if( $label !== '' ) return true;
// return
return false;
}
/*
* acf_is_field_key
*
@ -168,7 +82,7 @@ function acf_get_valid_field( $field = false ) {
'id' => ''
),
'_name' => '',
'_input' => '',
'_prepare' => 0,
'_valid' => 0,
));
@ -177,26 +91,25 @@ function acf_get_valid_field( $field = false ) {
$field['_name'] = $field['name'];
// field is now valid
$field['_valid'] = 1;
// field specific defaults
$field = apply_filters( "acf/get_valid_field", $field );
$field = apply_filters( "acf/get_valid_field/type={$field['type']}", $field );
// field is now valid
$field['_valid'] = 1;
// translate
$field = acf_translate_field( $field );
// return
return $field;
}
/*
* acf_translate_field
*
@ -285,44 +198,36 @@ function acf_clone_field( $field, $clone_field ) {
function acf_prepare_field( $field ) {
// bail early if already prepared
if( $field['_input'] ) return $field;
if( $field['_prepare'] ) return $field;
// _input
$field['_input'] = $field['name'];
// _input: key overrides name
if( $field['key'] ) {
$field['_input'] = $field['key'];
}
// key overrides name
if( $field['key'] ) $field['name'] = $field['key'];
// _input: prefix prepends name
if( $field['prefix'] ) {
$field['_input'] = "{$field['prefix']}[{$field['_input']}]";
}
// prefix
if( $field['prefix'] ) $field['name'] = $field['prefix'] . '[' . $field['name'] . ']';
// add id (may be custom set)
if( !$field['id'] ) {
$field['id'] = str_replace(array('][', '[', ']'), array('-', '-', ''), $field['_input']);
}
// field is now prepared
$field['_prepare'] = 1;
// filter to 3rd party customization
$field = apply_filters( "acf/prepare_field", $field );
$field = apply_filters( "acf/prepare_field/type={$field['type']}", $field );
$field = apply_filters( "acf/prepare_field/name={$field['name']}", $field );
$field = apply_filters( "acf/prepare_field/name={$field['_name']}", $field );
$field = apply_filters( "acf/prepare_field/key={$field['key']}", $field );
// bail ealry if no field
if( !$field ) return false;
// id attr is generated from name
$field['id'] = str_replace(array('][', '[', ']'), array('-', '-', ''), $field['name']);
// return
return $field;
@ -469,8 +374,8 @@ function acf_render_field( $field = false ) {
$field = acf_prepare_field( $field );
// update $field['name']
$field['name'] = $field['_input'];
// bail ealry if no field
if( !$field ) return;
// create field specific html
@ -506,6 +411,10 @@ function acf_render_field_wrap( $field, $el = 'div', $instruction = 'label' ) {
$field = acf_prepare_field( $field );
// bail ealry if no field
if( !$field ) return;
// el
$elements = apply_filters('acf/render_field_wrap/elements', array(
'div' => 'div',
@ -531,7 +440,7 @@ function acf_render_field_wrap( $field, $el = 'div', $instruction = 'label' ) {
'class' => 'acf-field',
'width' => '',
'style' => '',
'data-name' => $field['name'],
'data-name' => $field['_name'],
'data-type' => $field['type'],
'data-key' => '',
);
@ -658,7 +567,7 @@ function acf_render_field_setting( $field, $setting, $global = false ) {
$setting = acf_get_valid_field( $setting );
// if this setting is not global, add a data attribute
// specific
if( !$global ) {
$setting['wrapper']['data-setting'] = $field['type'];
@ -666,29 +575,42 @@ function acf_render_field_setting( $field, $setting, $global = false ) {
}
// class
$setting['wrapper']['class'] .= ' acf-field-setting-' . $setting['name'];
// copy across prefix
$setting['prefix'] = $field['prefix'];
// attempt find value
if( $setting['value'] === null ) {
// copy across the $setting value
if( isset($field[ $setting['name'] ]) ) {
// name
if( isset($field[ $setting['name'] ]) ) {
$setting['value'] = $field[ $setting['name'] ];
$setting['value'] = $field[ $setting['name'] ];
} elseif( isset($setting['default_value']) ) {
// use the default value
$setting['value'] = $setting['default_value'];
// default
} elseif( isset($setting['default_value']) ) {
$setting['value'] = $setting['default_value'];
}
}
// vars
$instructions_placement = acf_extract_var( $setting, 'instructions_placement', 'label' );
// append (used by JS to join settings)
if( isset($setting['_append']) ) {
$setting['wrapper']['data-append'] = $setting['_append'];
}
// render
acf_render_field_wrap( $setting, 'tr', $instructions_placement );
acf_render_field_wrap( $setting, 'tr', 'label' );
}
@ -1286,7 +1208,7 @@ function acf_update_field( $field = false, $specific = false ) {
'class',
'parent',
'_name',
'_input',
'_prepare',
'_valid',
));
@ -1728,7 +1650,7 @@ function acf_prepare_field_for_export( $field ) {
'class',
'parent',
'_name',
'_input',
'_prepare',
'_valid',
));
@ -1826,7 +1748,7 @@ function acf_prepare_field_for_import( $field ) {
'id',
'class',
'_name',
'_input',
'_prepare',
'_valid',
));

View File

@ -370,30 +370,29 @@ function acf_get_view( $view_name = '', $args = array() ) {
function acf_merge_atts( $atts, $extra = array() ) {
// bail ealry if no $extra
if( empty($extra) ) {
return $atts;
}
if( empty($extra) ) return $atts;
// trim
$extra = array_map('trim', $extra);
$extra = array_filter($extra);
// merge in new atts
foreach( $extra as $k => $v ) {
// append
if( $k == 'class' || $k == 'style' ) {
if( $v === '' ) {
continue;
}
$atts[ $k ] .= ' ' . $v;
// merge
} else {
$v = $atts[ $k ] . ' ' . $v;
$atts[ $k ] = $v;
}
$atts[ $k ] = $v;
}
@ -612,48 +611,42 @@ function acf_get_sub_array( $array, $keys ) {
* @return (array)
*/
function acf_get_post_types( $exclude = array(), $include = array() ) {
function acf_get_post_types( $args = array() ) {
// get all custom post types
$post_types = get_post_types();
// vars
$exclude = acf_extract_var( $args, 'exclude', array() );
$return = array();
// core exclude
$exclude = wp_parse_args( $exclude, array('acf-field', 'acf-field-group', 'revision', 'nav_menu_item') );
// get post types
$post_types = get_post_types( $args, 'objects' );
// include
if( !empty($include) ) {
// remove ACF post types
$exclude[] = 'acf-field';
$exclude[] = 'acf-field-group';
// loop
foreach( $post_types as $i => $post_type ) {
foreach( array_keys($include) as $i ) {
$post_type = $include[ $i ];
if( post_type_exists($post_type) ) {
$post_types[ $post_type ] = $post_type;
}
}
// bail early if is exclude
if( in_array($i, $exclude) ) continue;
// bail early if is builtin (WP) private post type
// - nav_menu_item, revision, customize_changeset, etc
if( $post_type->_builtin && !$post_type->public ) continue;
// append
$return[] = $i;
}
// exclude
foreach( array_values($exclude) as $i ) {
unset( $post_types[ $i ] );
}
// simplify keys
$post_types = array_values($post_types);
// return
return $post_types;
return $return;
}
@ -861,75 +854,6 @@ function acf_verify_ajax() {
}
/*
* acf_add_admin_notice
*
* This function will add the notice data to a setting in the acf object for the admin_notices action to use
*
* @type function
* @date 17/10/13
* @since 5.0.0
*
* @param $text (string)
* @param $class (string)
* @return (int) message ID (array position)
*/
function acf_add_admin_notice( $text, $class = '', $wrap = 'p' )
{
// vars
$admin_notices = acf_get_admin_notices();
// add to array
$admin_notices[] = array(
'text' => $text,
'class' => "updated {$class}",
'wrap' => $wrap
);
// update
acf_update_setting( 'admin_notices', $admin_notices );
// return
return ( count( $admin_notices ) - 1 );
}
/*
* acf_get_admin_notices
*
* This function will return an array containing any admin notices
*
* @type function
* @date 17/10/13
* @since 5.0.0
*
* @param n/a
* @return (array)
*/
function acf_get_admin_notices()
{
// vars
$admin_notices = acf_get_setting( 'admin_notices' );
// validate
if( !$admin_notices )
{
$admin_notices = array();
}
// return
return $admin_notices;
}
/*
* acf_get_image_sizes
*
@ -1033,6 +957,70 @@ function acf_get_image_size( $s = '' ) {
}
/*
* acf_version_compare
*
* This function will compare version left v right
*
* @type function
* @date 21/11/16
* @since 5.5.0
*
* @param $compare (string)
* @param $version (string)
* @return (boolean)
*/
function acf_version_compare( $left = 'wp', $compare = '>', $right = '1' ) {
// global
global $wp_version;
// wp
if( $left === 'wp' ) $left = $wp_version;
// remove '-beta1' or '-RC1'
$left = acf_get_full_version($left);
$right = acf_get_full_version($right);
// return
return version_compare( $left, $right, $compare );
}
/*
* acf_get_full_version
*
* This function will remove any '-beta1' or '-RC1' strings from a version
*
* @type function
* @date 24/11/16
* @since 5.5.0
*
* @param $version (string)
* @return (string)
*/
function acf_get_full_version( $version = '1' ) {
// remove '-beta1' or '-RC1'
if( $pos = strpos($version, '-') ) {
$version = substr($version, 0, $pos);
}
// return
return $version;
}
/*
* acf_get_terms
*
@ -1723,23 +1711,10 @@ function acf_get_grouped_posts( $args ) {
$ordered_posts = get_page_children( $parent, $all_posts );
// if has ordered posts
// check for empty array (possible if parent did not exist within original data)
if( !empty($ordered_posts) ) {
// reset $this_posts
$this_posts = array();
// append
for( $i = $offset; $i < ($offset + $length); $i++ ) {
$this_posts[] = acf_extract_var( $ordered_posts, $i );
}
// clean up null values
$this_posts = array_filter($this_posts);
$this_posts = array_slice($ordered_posts, $offset, $length);
}
@ -2325,87 +2300,6 @@ function acf_debug_end() {
}
/*
* acf_get_updates
*
* This function will reutrn all or relevant updates for ACF
*
* @type function
* @date 12/05/2014
* @since 5.0.0
*
* @param $post_id (int)
* @return $post_id (int)
*/
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');
// bail early if no version (not activated)
if( !$acf_version ) {
return false;
}
// 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;
}
/*
* acf_encode_choices
*
@ -2440,7 +2334,7 @@ function acf_encode_choices( $array = array(), $show_keys = true ) {
foreach( $array as $k => $v ) {
// ignore if key and value are the same
if( $k === $v ) continue;
if( strval($k) == strval($v) ) continue;
// show key in the value
@ -2956,7 +2850,7 @@ function acf_get_valid_post_id( $post_id = 0 ) {
// term
} elseif( isset($post_id->taxonomy, $post_id->term_id) ) {
$post_id = $post_id->taxonomy . '_' . $post_id->term_id;
$post_id = 'term_' . $post_id->term_id;
// comment
} elseif( isset($post_id->comment_ID) ) {
@ -3083,9 +2977,14 @@ function acf_get_post_id_info( $post_id = 0 ) {
$type = explode($glue, $post_id);
$id = array_pop($type);
$type = implode($glue, $type);
$meta = array('post', 'user', 'comment'); // add in 'term'
$meta = array('post', 'user', 'comment', 'term'); // add in 'term'
// check if is taxonomy (ACF < 5.5)
// - avoid scenario where taxonomy exists with name of meta type
if( !in_array($type, $meta) && acf_isset_termmeta($type) ) $type = 'term';
// meta
if( is_numeric($id) && in_array($type, $meta) ) {
@ -3113,34 +3012,58 @@ function acf_get_post_id_info( $post_id = 0 ) {
}
/*
echo '<pre>';
print_r( acf_get_post_id_info(4) );
echo '</pre>';
echo '<pre>';
print_r( acf_get_post_id_info('post_4') );
echo '</pre>';
echo '<pre>';
print_r( acf_get_post_id_info('user_123') );
echo '</pre>';
echo '<pre>';
print_r( acf_get_post_id_info('term_567') );
echo '</pre>';
echo '<pre>';
print_r( acf_get_post_id_info('comment_6') );
echo '</pre>';
echo '<pre>';
print_r( acf_get_post_id_info('options_lol!') );
echo '</pre>';
echo '<pre>';
print_r( acf_get_post_id_info('option') );
echo '</pre>';
echo '<pre>';
print_r( acf_get_post_id_info('options') );
echo '</pre>';
die;
acf_log( acf_get_post_id_info(4) );
acf_log( acf_get_post_id_info('post_4') );
acf_log( acf_get_post_id_info('user_123') );
acf_log( acf_get_post_id_info('term_567') );
acf_log( acf_get_post_id_info('category_204') );
acf_log( acf_get_post_id_info('comment_6') );
acf_log( acf_get_post_id_info('options_lol!') );
acf_log( acf_get_post_id_info('option') );
acf_log( acf_get_post_id_info('options') );
*/
/*
* acf_isset_termmeta
*
* This function will return true if the termmeta table exists
* https://developer.wordpress.org/reference/functions/get_term_meta/
*
* @type function
* @date 3/09/2016
* @since 5.4.0
*
* @param $post_id (int)
* @return $post_id (int)
*/
function acf_isset_termmeta( $taxonomy = '' ) {
// bail ealry if no table
if( get_option('db_version') < 34370 ) return false;
// check taxonomy
if( $taxonomy && !taxonomy_exists($taxonomy) ) return false;
// return
return true;
}
/*
* acf_upload_files
*
@ -3390,31 +3313,18 @@ function acf_is_screen( $id = '' ) {
* @return $post_id (int)
*/
function acf_maybe_get( $array, $key, $default = null ) {
function acf_maybe_get( $array, $key = 0, $default = null ) {
// vars
$keys = explode('/', $key);
// if exists
if( isset($array[ $key ]) ) {
return $array[ $key ];
// loop through keys
foreach( $keys as $k ) {
// return default if does not exist
if( !isset($array[ $k ]) ) {
return $default;
}
// update $array
$array = $array[ $k ];
}
// return
return $array;
return $default;
}
@ -4228,6 +4138,36 @@ function acf_is_row_collapsed( $field_key = '', $row_index = 0 ) {
}
/*
* acf_get_attachment_image
*
* description
*
* @type function
* @date 24/10/16
* @since 5.5.0
*
* @param $post_id (int)
* @return $post_id (int)
*/
function acf_get_attachment_image( $attachment_id = 0, $size = 'thumbnail' ) {
// vars
$url = wp_get_attachment_image_src($attachment_id, 'thumbnail');
$alt = get_post_meta($attachment_id, '_wp_attachment_image_alt', true);
// bail early if no url
if( !$url ) return '';
// return
$value = '<img src="' . $url . '" alt="' . $alt . '" />';
}
/*
* acf_get_post_thumbnail
*
@ -4429,12 +4369,8 @@ function acf_format_date( $value, $format ) {
}
// translate
$value = date_i18n($format, $unixtimestamp);
// return
return $value;
return date_i18n($format, $unixtimestamp);
}

View File

@ -264,6 +264,10 @@ function get_field_objects( $post_id = false, $format_value = true, $load_value
$meta = get_comment_meta( $info['id'] );
} elseif( $info['type'] == 'term' ) {
$meta = get_term_meta( $info['id'] );
} else {
$rows = $wpdb->get_results($wpdb->prepare(
@ -1291,8 +1295,8 @@ class acf_template_form {
));
$args['form_attributes'] = wp_parse_args( $args['form_attributes'], array(
'id' => 'post',
'class' => '',
'id' => $args['id'],
'class' => 'acf-form',
'action' => '',
'method' => 'post',
));
@ -1322,10 +1326,6 @@ class acf_template_form {
}
// attributes
$args['form_attributes']['class'] .= ' acf-form';
// register local fields
foreach( $this->fields as $k => $field ) {
@ -1793,7 +1793,7 @@ function add_sub_row( $selector, $row = false, $post_id = false ) {
// update
return acf_update_value( $value, $post_id, $sub_field );
}
@ -1844,7 +1844,11 @@ function update_row( $selector, $i = 1, $row = false, $post_id = false ) {
// update value
return acf_update_value( $value, $post_id, $field );
acf_update_value( $value, $post_id, $field );
// return
return true;
}
@ -1904,7 +1908,11 @@ function update_sub_row( $selector, $i = 1, $row = false, $post_id = false ) {
// update
return acf_update_value( $value, $post_id, $sub_field );
acf_update_value( $value, $post_id, $sub_field );
// return
return true;
}

View File

@ -480,4 +480,34 @@ function acf_copy_postmeta( $from_post_id, $to_post_id ) {
}
/*
* acf_preview_value
*
* This function will return a human freindly 'preview' for a given field value
*
* @type function
* @date 24/10/16
* @since 5.5.0
*
* @param $value (mixed)
* @param $post_id (mixed)
* @param $field (array)
* @return (string)
*/
function acf_preview_value( $value, $post_id, $field ) {
// apply filters
$value = apply_filters( "acf/preview_value", $value, $post_id, $field );
$value = apply_filters( "acf/preview_value/type={$field['type']}", $value, $post_id, $field );
$value = apply_filters( "acf/preview_value/name={$field['_name']}", $value, $post_id, $field );
$value = apply_filters( "acf/preview_value/key={$field['key']}", $value, $post_id, $field );
// return
return $value;
}
?>

View File

@ -1,3 +1,11 @@
/*--------------------------------------------------------------------------------------------
*
* vars
*
*--------------------------------------------------------------------------------------------*/
/* colors */
/* acf-field */
/* responsive */
/*---------------------------------------------------------------------------------------------
*
* Global
@ -45,6 +53,7 @@
}
.no-fields-message {
padding: 15px 15px;
background: #fff;
}
.acf-field-list-wrap {
border: #DFDFDF solid 1px;
@ -66,7 +75,6 @@
/* field list */
.acf-field-list {
background: #F9F9F9;
border-top: #E1E1E1 solid 1px;
margin-top: -1px;
}
.acf-field-list a {
@ -82,9 +90,6 @@
border-top: #F0F0F0 solid 1px;
background: #fff;
}
.acf-field-object:first-child {
border-top: 0 none;
}
.acf-field-object.ui-sortable-helper {
border-top-color: #fff;
box-shadow: 0 0 0 1px #DFDFDF, 0 1px 4px rgba(0, 0, 0, 0.1);
@ -149,8 +154,8 @@
}
/* field object handle (open) */
.acf-field-object.open > .handle {
background: #00a0d2;
border: #0092bf solid 1px;
background: #2a9bd9;
border: #2696d3 solid 1px;
text-shadow: #268FBB 0 1px 0;
color: #fff;
position: relative;
@ -180,7 +185,7 @@
}
/* conditional logic */
.acf-field-object .rule-groups {
margin-top: 10px;
margin-top: 20px;
}
/* field object keys */
.acf-field-object .handle .pre-field-key {

View File

@ -1,5 +1,13 @@
/*--------------------------------------------------------------------------------------------
*
* vars
*
*--------------------------------------------------------------------------------------------*/
/* colors */
/* acf-field */
/* responsive */
/*--------------------------------------------------------------------------------------------
*
* General
*
*--------------------------------------------------------------------------------------------*/
@ -519,6 +527,8 @@ a.acf-icon.-cancel.grey:hover {
border: 1px solid #E5E5E5;
position: relative;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
/* title */
/* footer */
}
.acf-box .title {
border-bottom: 1px solid #EEEEEE;
@ -555,20 +565,18 @@ a.acf-icon.-cancel.grey:hover {
padding: 15px;
position: relative;
}
.acf-box .footer-blue {
.acf-box .footer.-blue {
border-top: 0 none;
background-color: #52ACCC;
background-color: #2a9bd9;
color: #FFFFFF;
}
.acf-box .footer-blue a {
.acf-box .footer.-blue p {
margin: 0;
}
.acf-box .footer.-blue a {
text-decoration: none;
text-shadow: none;
}
.acf-box .footer .acf-hl > li {
margin: 0 10px 0 0;
}
.acf-box .footer .acf-hl > li.acf-fr {
margin: 0 0 0 10px;
color: inherit;
}
/* error */
.acf-error-message {
@ -1032,13 +1040,14 @@ html[dir="rtl"] #acf-popup .title .acf-icon {
}
.acf-three-col > div {
float: left;
margin: 0 0 10px 5%;
margin: 0 0 15px 5%;
position: relative;
width: 30%;
}
.acf-three-col > div:first-child,
.acf-three-col > br + div {
margin-left: 0;
clear: left;
}
.acf-three-col > br {
display: none;

View File

@ -3,6 +3,9 @@
* vars
*
*--------------------------------------------------------------------------------------------*/
/* colors */
/* acf-field */
/* responsive */
/*--------------------------------------------------------------------------------------------
*
* acf-field
@ -559,6 +562,8 @@ ul.acf-checkbox-list {
position: relative;
padding: 1px;
margin: 0;
/* hl */
/* rtl */
}
ul.acf-radio-list li,
ul.acf-checkbox-list li {
@ -567,38 +572,150 @@ ul.acf-checkbox-list li {
margin: 0;
position: relative;
word-wrap: break-word;
}
ul.acf-hl.acf-radio-list li,
ul.acf-hl.acf-checkbox-list li {
margin-right: 20px;
clear: none;
}
ul.acf-radio-list li input,
ul.acf-checkbox-list li input {
margin: -1px 4px 0 0;
vertical-align: middle;
/* attachment sidebar fix*/
}
ul.acf-radio-list li label,
ul.acf-checkbox-list li label {
display: inline;
}
ul.acf-radio-list li input[type="checkbox"],
ul.acf-checkbox-list li input[type="checkbox"],
ul.acf-radio-list li input[type="radio"],
ul.acf-checkbox-list li input[type="radio"] {
margin: -1px 4px 0 0;
vertical-align: middle;
}
ul.acf-radio-list li input[type="text"],
ul.acf-checkbox-list li input[type="text"] {
width: auto;
vertical-align: middle;
margin: 2px 0;
}
ul.acf-radio-list li input[type="text"] {
width: auto;
}
/* attachment sidebar fix*/
ul.acf-radio-list li span,
ul.acf-checkbox-list li span {
float: none;
}
/* rtl */
html[dir="rtl"] ul.acf-radio-list li input,
html[dir="rtl"] ul.acf-checkbox-list li input {
ul.acf-radio-list.acf-hl li,
ul.acf-checkbox-list.acf-hl li {
margin-right: 20px;
clear: none;
}
html[dir="rtl"] ul.acf-radio-list input[type="checkbox"],
html[dir="rtl"] ul.acf-checkbox-list input[type="checkbox"],
html[dir="rtl"] ul.acf-radio-list input[type="radio"],
html[dir="rtl"] ul.acf-checkbox-list input[type="radio"] {
margin-left: 4px;
margin-right: 0;
padding: 0;
margin: 0;
}
/*---------------------------------------------------------------------------------------------
*
* Checkbox
*
*---------------------------------------------------------------------------------------------*/
.acf-checkbox-list .button {
margin: 10px 0 0;
}
/*---------------------------------------------------------------------------------------------
*
* True / False
*
*---------------------------------------------------------------------------------------------*/
.acf-switch {
display: inline-block;
border-radius: 5px;
cursor: pointer;
position: relative;
background: #f1f1f1;
height: 30px;
vertical-align: middle;
box-shadow: inset 0 0 1px rgba(0, 0, 0, 0.1);
-webkit-transition: background 0.25s ease;
-moz-transition: background 0.25s ease;
-o-transition: background 0.25s ease;
transition: background 0.25s ease;
/* hover */
/* active */
/* message */
}
.acf-switch span {
display: inline-block;
float: left;
text-align: center;
font-size: 13px;
line-height: 22px;
padding: 4px 10px;
min-width: 15px;
}
.acf-switch span i {
vertical-align: middle;
}
.acf-switch .acf-switch-on {
color: #fff;
text-shadow: #1f7db1 0 1px 0;
}
.acf-switch .acf-switch-slider {
position: absolute;
top: 3px;
left: 3px;
bottom: 3px;
right: 50%;
z-index: 1;
background: #fff;
border-radius: 3px;
border: #ccc solid 1px;
-webkit-transition: all 0.25s ease;
-moz-transition: all 0.25s ease;
-o-transition: all 0.25s ease;
transition: all 0.25s ease;
}
.acf-switch:hover {
background: #eeeeee;
}
.acf-switch.-on {
background: #2a9bd9;
}
.acf-switch.-on .acf-switch-slider {
left: 50%;
right: 3px;
border-color: #1f7db1;
}
.acf-switch + span {
margin-left: 6px;
}
/*
.acf-field[data-name="alt"] .acf-switch {
background: #fff;
border: #dddddd solid 1px;
height: 30px;
span {
padding: 3px 10px;
}
.acf-switch-slider {
background: #f9f9f9;
border: #bbbbbb solid 1px;
box-shadow: none;
margin: 3px;
}
&.-on {
border-color: #2c91fc;
background: @acf_blue_input2;
.acf-switch-slider {
background: #fff;
border-color: darken(@acf_blue_input2, 20%);
margin-left: -4px;
}
}
}
*/
/*--------------------------------------------------------------------------
*
* Google Map
@ -870,6 +987,20 @@ html[dir="rtl"] .acf-relationship .selection .values .acf-icon {
* WYSIWYG
*
*-------------------------------------------------------------------------*/
.acf-editor-wrap {
/* delay */
}
.acf-editor-wrap.delay .acf-editor-toolbar {
content: "";
display: block;
background: #f5f5f5;
border-bottom: #dddddd solid 1px;
color: #555d66;
padding: 10px;
}
.acf-editor-wrap.delay textarea {
padding: 10px;
}
.acf-editor-wrap iframe {
min-height: 200px;
}

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 613 B

After

Width:  |  Height:  |  Size: 613 B

View File

Before

Width:  |  Height:  |  Size: 845 B

After

Width:  |  Height:  |  Size: 845 B

431
assets/inc/select2/4/select2.css vendored Normal file
View File

@ -0,0 +1,431 @@
.select2-container {
box-sizing: border-box;
display: inline-block;
margin: 0;
position: relative;
vertical-align: middle; }
.select2-container .select2-selection--single {
box-sizing: border-box;
cursor: pointer;
display: block;
height: 28px;
user-select: none;
-webkit-user-select: none; }
.select2-container .select2-selection--single .select2-selection__rendered {
display: block;
padding-left: 8px;
padding-right: 20px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap; }
.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered {
padding-right: 8px;
padding-left: 20px; }
.select2-container .select2-selection--multiple {
box-sizing: border-box;
cursor: pointer;
display: block;
min-height: 32px;
user-select: none;
-webkit-user-select: none; }
.select2-container .select2-selection--multiple .select2-selection__rendered {
display: inline-block;
overflow: hidden;
padding-left: 8px;
text-overflow: ellipsis;
white-space: nowrap; }
.select2-container .select2-search--inline {
float: left; }
.select2-container .select2-search--inline .select2-search__field {
box-sizing: border-box;
border: none;
font-size: 100%;
margin-top: 5px; }
.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {
-webkit-appearance: none; }
.select2-dropdown {
background-color: white;
border: 1px solid #aaa;
border-radius: 4px;
box-sizing: border-box;
display: block;
position: absolute;
left: -100000px;
width: 100%;
z-index: 1051; }
.select2-results {
display: block; }
.select2-results__options {
list-style: none;
margin: 0;
padding: 0; }
.select2-results__option {
padding: 6px;
user-select: none;
-webkit-user-select: none; }
.select2-results__option[aria-selected] {
cursor: pointer; }
.select2-container--open .select2-dropdown {
left: 0; }
.select2-container--open .select2-dropdown--above {
border-bottom: none;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0; }
.select2-container--open .select2-dropdown--below {
border-top: none;
border-top-left-radius: 0;
border-top-right-radius: 0; }
.select2-search--dropdown {
display: block;
padding: 4px; }
.select2-search--dropdown .select2-search__field {
padding: 4px;
width: 100%;
box-sizing: border-box; }
.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {
-webkit-appearance: none; }
.select2-search--dropdown.select2-search--hide {
display: none; }
.select2-close-mask {
border: 0;
margin: 0;
padding: 0;
display: block;
position: fixed;
left: 0;
top: 0;
min-height: 100%;
min-width: 100%;
height: auto;
width: auto;
opacity: 0;
z-index: 99;
background-color: #fff;
filter: alpha(opacity=0); }
.select2-hidden-accessible {
border: 0;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px; }
.select2-container--default .select2-selection--single {
background-color: #fff;
border: 1px solid #aaa;
border-radius: 4px; }
.select2-container--default .select2-selection--single .select2-selection__rendered {
color: #444;
line-height: 28px; }
.select2-container--default .select2-selection--single .select2-selection__clear {
cursor: pointer;
float: right;
font-weight: bold; }
.select2-container--default .select2-selection--single .select2-selection__placeholder {
color: #999; }
.select2-container--default .select2-selection--single .select2-selection__arrow {
height: 26px;
position: absolute;
top: 1px;
right: 1px;
width: 20px; }
.select2-container--default .select2-selection--single .select2-selection__arrow b {
border-color: #888 transparent transparent transparent;
border-style: solid;
border-width: 5px 4px 0 4px;
height: 0;
left: 50%;
margin-left: -4px;
margin-top: -2px;
position: absolute;
top: 50%;
width: 0; }
.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear {
float: left; }
.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow {
left: 1px;
right: auto; }
.select2-container--default.select2-container--disabled .select2-selection--single {
background-color: #eee;
cursor: default; }
.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {
display: none; }
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
border-color: transparent transparent #888 transparent;
border-width: 0 4px 5px 4px; }
.select2-container--default .select2-selection--multiple {
background-color: white;
border: 1px solid #aaa;
border-radius: 4px;
cursor: text; }
.select2-container--default .select2-selection--multiple .select2-selection__rendered {
box-sizing: border-box;
list-style: none;
margin: 0;
padding: 0 5px;
width: 100%; }
.select2-container--default .select2-selection--multiple .select2-selection__placeholder {
color: #999;
margin-top: 5px;
float: left; }
.select2-container--default .select2-selection--multiple .select2-selection__clear {
cursor: pointer;
float: right;
font-weight: bold;
margin-top: 5px;
margin-right: 10px; }
.select2-container--default .select2-selection--multiple .select2-selection__choice {
background-color: #e4e4e4;
border: 1px solid #aaa;
border-radius: 4px;
cursor: default;
float: left;
margin-right: 5px;
margin-top: 5px;
padding: 0 5px; }
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
color: #999;
cursor: pointer;
display: inline-block;
font-weight: bold;
margin-right: 2px; }
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
color: #333; }
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder {
float: right; }
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
margin-left: 5px;
margin-right: auto; }
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
margin-left: 2px;
margin-right: auto; }
.select2-container--default.select2-container--focus .select2-selection--multiple {
border: solid black 1px;
outline: 0; }
.select2-container--default.select2-container--disabled .select2-selection--multiple {
background-color: #eee;
cursor: default; }
.select2-container--default.select2-container--disabled .select2-selection__choice__remove {
display: none; }
.select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple {
border-top-left-radius: 0;
border-top-right-radius: 0; }
.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {
border-bottom-left-radius: 0;
border-bottom-right-radius: 0; }
.select2-container--default .select2-search--dropdown .select2-search__field {
border: 1px solid #aaa; }
.select2-container--default .select2-search--inline .select2-search__field {
background: transparent;
border: none;
outline: 0; }
.select2-container--default .select2-results > .select2-results__options {
max-height: 200px;
overflow-y: auto; }
.select2-container--default .select2-results__option[role=group] {
padding: 0; }
.select2-container--default .select2-results__option[aria-disabled=true] {
color: #999; }
.select2-container--default .select2-results__option[aria-selected=true] {
background-color: #ddd; }
.select2-container--default .select2-results__option .select2-results__option {
padding-left: 1em; }
.select2-container--default .select2-results__option .select2-results__option .select2-results__group {
padding-left: 0; }
.select2-container--default .select2-results__option .select2-results__option .select2-results__option {
margin-left: -1em;
padding-left: 2em; }
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
margin-left: -2em;
padding-left: 3em; }
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
margin-left: -3em;
padding-left: 4em; }
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
margin-left: -4em;
padding-left: 5em; }
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
margin-left: -5em;
padding-left: 6em; }
.select2-container--default .select2-results__option--highlighted[aria-selected] {
background-color: #5897fb;
color: white; }
.select2-container--default .select2-results__group {
cursor: default;
display: block;
padding: 6px; }
.select2-container--classic .select2-selection--single {
background-color: #f6f6f6;
border: 1px solid #aaa;
border-radius: 4px;
outline: 0;
background-image: -webkit-linear-gradient(top, #ffffff 50%, #eeeeee 100%);
background-image: -o-linear-gradient(top, #ffffff 50%, #eeeeee 100%);
background-image: linear-gradient(to bottom, #ffffff 50%, #eeeeee 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0); }
.select2-container--classic .select2-selection--single:focus {
border: 1px solid #5897fb; }
.select2-container--classic .select2-selection--single .select2-selection__rendered {
color: #444;
line-height: 28px; }
.select2-container--classic .select2-selection--single .select2-selection__clear {
cursor: pointer;
float: right;
font-weight: bold;
margin-right: 10px; }
.select2-container--classic .select2-selection--single .select2-selection__placeholder {
color: #999; }
.select2-container--classic .select2-selection--single .select2-selection__arrow {
background-color: #ddd;
border: none;
border-left: 1px solid #aaa;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
height: 26px;
position: absolute;
top: 1px;
right: 1px;
width: 20px;
background-image: -webkit-linear-gradient(top, #eeeeee 50%, #cccccc 100%);
background-image: -o-linear-gradient(top, #eeeeee 50%, #cccccc 100%);
background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#cccccc', GradientType=0); }
.select2-container--classic .select2-selection--single .select2-selection__arrow b {
border-color: #888 transparent transparent transparent;
border-style: solid;
border-width: 5px 4px 0 4px;
height: 0;
left: 50%;
margin-left: -4px;
margin-top: -2px;
position: absolute;
top: 50%;
width: 0; }
.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear {
float: left; }
.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow {
border: none;
border-right: 1px solid #aaa;
border-radius: 0;
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
left: 1px;
right: auto; }
.select2-container--classic.select2-container--open .select2-selection--single {
border: 1px solid #5897fb; }
.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow {
background: transparent;
border: none; }
.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b {
border-color: transparent transparent #888 transparent;
border-width: 0 4px 5px 4px; }
.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single {
border-top: none;
border-top-left-radius: 0;
border-top-right-radius: 0;
background-image: -webkit-linear-gradient(top, #ffffff 0%, #eeeeee 50%);
background-image: -o-linear-gradient(top, #ffffff 0%, #eeeeee 50%);
background-image: linear-gradient(to bottom, #ffffff 0%, #eeeeee 50%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0); }
.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single {
border-bottom: none;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
background-image: -webkit-linear-gradient(top, #eeeeee 50%, #ffffff 100%);
background-image: -o-linear-gradient(top, #eeeeee 50%, #ffffff 100%);
background-image: linear-gradient(to bottom, #eeeeee 50%, #ffffff 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0); }
.select2-container--classic .select2-selection--multiple {
background-color: white;
border: 1px solid #aaa;
border-radius: 4px;
cursor: text;
outline: 0; }
.select2-container--classic .select2-selection--multiple:focus {
border: 1px solid #5897fb; }
.select2-container--classic .select2-selection--multiple .select2-selection__rendered {
list-style: none;
margin: 0;
padding: 0 5px; }
.select2-container--classic .select2-selection--multiple .select2-selection__clear {
display: none; }
.select2-container--classic .select2-selection--multiple .select2-selection__choice {
background-color: #e4e4e4;
border: 1px solid #aaa;
border-radius: 4px;
cursor: default;
float: left;
margin-right: 5px;
margin-top: 5px;
padding: 0 5px; }
.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove {
color: #888;
cursor: pointer;
display: inline-block;
font-weight: bold;
margin-right: 2px; }
.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover {
color: #555; }
.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
float: right; }
.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
margin-left: 5px;
margin-right: auto; }
.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
margin-left: 2px;
margin-right: auto; }
.select2-container--classic.select2-container--open .select2-selection--multiple {
border: 1px solid #5897fb; }
.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple {
border-top: none;
border-top-left-radius: 0;
border-top-right-radius: 0; }
.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple {
border-bottom: none;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0; }
.select2-container--classic .select2-search--dropdown .select2-search__field {
border: 1px solid #aaa;
outline: 0; }
.select2-container--classic .select2-search--inline .select2-search__field {
outline: 0; }
.select2-container--classic .select2-dropdown {
background-color: white;
border: 1px solid transparent; }
.select2-container--classic .select2-dropdown--above {
border-bottom: none; }
.select2-container--classic .select2-dropdown--below {
border-top: none; }
.select2-container--classic .select2-results > .select2-results__options {
max-height: 200px;
overflow-y: auto; }
.select2-container--classic .select2-results__option[role=group] {
padding: 0; }
.select2-container--classic .select2-results__option[aria-disabled=true] {
color: grey; }
.select2-container--classic .select2-results__option--highlighted[aria-selected] {
background-color: #3875d7;
color: white; }
.select2-container--classic .select2-results__group {
cursor: default;
display: block;
padding: 6px; }
.select2-container--classic.select2-container--open .select2-dropdown {
border-color: #5897fb; }

6114
assets/inc/select2/4/select2.full.js vendored Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

5403
assets/inc/select2/4/select2.js vendored Normal file

File diff suppressed because it is too large Load Diff

1
assets/inc/select2/4/select2.min.css vendored Normal file

File diff suppressed because one or more lines are too long

2
assets/inc/select2/4/select2.min.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -29,6 +29,7 @@ class acf_compatibility {
add_filter('acf/get_valid_field/type=date_picker', array($this, 'get_valid_date_picker_field'), 20, 1);
add_filter('acf/get_valid_field/type=taxonomy', array($this, 'get_valid_taxonomy_field'), 20, 1);
add_filter('acf/get_valid_field/type=date_time_picker', array($this, 'get_valid_date_time_picker_field'), 20, 1);
add_filter('acf/get_valid_field/type=user', array($this, 'get_valid_user_field'), 20, 1);
// field groups
@ -333,13 +334,17 @@ class acf_compatibility {
// convert from js to php
$date_format = acf_convert_date_to_php( $date_format );
//$date_format = acf_convert_date_to_php( $date_format );
$display_format = acf_convert_date_to_php( $display_format );
// bail early if already matches 'Ymd'
if( $date_format === 'yymmdd' ) return $field;
// append settings
$field['return_format'] = $date_format;
$field['display_format'] = $display_format;
$field['save_format'] = $date_format;
}
@ -430,6 +435,51 @@ class acf_compatibility {
}
/*
* get_valid_user_field
*
* This function will provide compatibility with ACF4 fields
*
* @type function
* @date 23/04/2014
* @since 5.0.0
*
* @param $field (array)
* @return $field
*/
function get_valid_user_field( $field ) {
// remove 'all' from roles
if( acf_in_array('all', $field['role']) ) {
$field['role'] = '';
}
// field_type removed in favour of multiple
if( !empty($field['field_type']) ) {
// extract vars
$field_type = acf_extract_var( $field, 'field_type' );
// multiple
if( $field_type === 'multi_select' ) {
$field['multiple'] = true;
}
}
// return
return $field;
}
/*
* get_valid_field_group
*

View File

@ -1,12 +1,16 @@
<?php
if( ! class_exists('acf_field') ) :
class acf_field {
var $name,
$title,
$category,
$defaults,
$l10n;
// vars
var $name = '',
$label = '',
$category = 'basic',
$defaults = array(),
$l10n = array(),
$public = true;
/*
@ -24,42 +28,43 @@ class acf_field {
function __construct() {
// register field
add_filter("acf/get_field_types", array($this, 'get_field_types'), 10, 1);
add_filter("acf/get_valid_field/type={$this->name}", array($this, 'get_valid_field'), 10, 1);
// info
$this->add_filter('acf/get_field_types', array($this, 'get_field_types'), 10, 1);
// value
$this->add_filter("acf/load_value/type={$this->name}", array($this, 'load_value'), 10, 3);
$this->add_filter("acf/update_value/type={$this->name}", array($this, 'update_value'), 10, 3);
$this->add_filter("acf/format_value/type={$this->name}", array($this, 'format_value'), 10, 3);
$this->add_filter("acf/validate_value/type={$this->name}", array($this, 'validate_value'), 10, 4);
$this->add_action("acf/delete_value/type={$this->name}", array($this, 'delete_value'), 10, 3);
$this->add_field_filter('acf/load_value', array($this, 'load_value'), 10, 3);
$this->add_field_filter('acf/update_value', array($this, 'update_value'), 10, 3);
$this->add_field_filter('acf/format_value', array($this, 'format_value'), 10, 3);
$this->add_field_filter('acf/validate_value', array($this, 'validate_value'), 10, 4);
$this->add_field_action('acf/delete_value', array($this, 'delete_value'), 10, 3);
// field
$this->add_filter("acf/load_field/type={$this->name}", array($this, 'load_field'), 10, 1);
$this->add_filter("acf/update_field/type={$this->name}", array($this, 'update_field'), 10, 1);
$this->add_filter("acf/duplicate_field/type={$this->name}", array($this, 'duplicate_field'), 10, 1);
$this->add_action("acf/delete_field/type={$this->name}", array($this, 'delete_field'), 10, 1);
$this->add_action("acf/render_field/type={$this->name}", array($this, 'render_field'), 10, 1);
$this->add_action("acf/render_field_settings/type={$this->name}", array($this, 'render_field_settings'), 10, 1);
$this->add_action("acf/prepare_field/type={$this->name}", array($this, 'prepare_field'), 10, 1);
$this->add_action("acf/translate_field/type={$this->name}", array($this, 'translate_field'), 10, 1);
$this->add_field_filter('acf/get_valid_field', array($this, 'get_valid_field'), 10, 1);
$this->add_field_filter('acf/load_field', array($this, 'load_field'), 10, 1);
$this->add_field_filter('acf/update_field', array($this, 'update_field'), 10, 1);
$this->add_field_filter('acf/duplicate_field', array($this, 'duplicate_field'), 10, 1);
$this->add_field_action('acf/delete_field', array($this, 'delete_field'), 10, 1);
$this->add_field_action('acf/render_field', array($this, 'render_field'), 9, 1);
$this->add_field_action('acf/render_field_settings', array($this, 'render_field_settings'), 9, 1);
$this->add_field_filter('acf/prepare_field', array($this, 'prepare_field'), 10, 1);
$this->add_field_filter('acf/translate_field', array($this, 'translate_field'), 10, 1);
// input actions
$this->add_action("acf/input/admin_enqueue_scripts", array($this, 'input_admin_enqueue_scripts'), 10, 0);
$this->add_action("acf/input/admin_head", array($this, 'input_admin_head'), 10, 0);
$this->add_action("acf/input/form_data", array($this, 'input_form_data'), 10, 1);
$this->add_filter("acf/input/admin_l10n", array($this, 'input_admin_l10n'), 10, 1);
$this->add_action("acf/input/admin_footer", array($this, 'input_admin_footer'), 10, 1);
$this->add_action("acf/input/admin_enqueue_scripts", array($this, 'input_admin_enqueue_scripts'), 10, 0);
$this->add_action("acf/input/admin_head", array($this, 'input_admin_head'), 10, 0);
$this->add_action("acf/input/form_data", array($this, 'input_form_data'), 10, 1);
$this->add_filter("acf/input/admin_l10n", array($this, 'input_admin_l10n'), 10, 1);
$this->add_action("acf/input/admin_footer", array($this, 'input_admin_footer'), 10, 1);
// field group actions
$this->add_action("acf/field_group/admin_enqueue_scripts", array($this, 'field_group_admin_enqueue_scripts'), 10, 0);
$this->add_action("acf/field_group/admin_head", array($this, 'field_group_admin_head'), 10, 0);
$this->add_action("acf/field_group/admin_footer", array($this, 'field_group_admin_footer'), 10, 0);
$this->add_action("acf/field_group/admin_enqueue_scripts", array($this, 'field_group_admin_enqueue_scripts'), 10, 0);
$this->add_action("acf/field_group/admin_head", array($this, 'field_group_admin_head'), 10, 0);
$this->add_action("acf/field_group/admin_footer", array($this, 'field_group_admin_footer'), 10, 0);
}
@ -188,42 +193,20 @@ class acf_field {
* @return $fields
*/
function get_field_types( $fields ) {
function get_field_types( $types ) {
$l10n = array(
'basic' => __('Basic', 'acf'),
'content' => __('Content', 'acf'),
'choice' => __('Choice', 'acf'),
'relational' => __('Relational', 'acf'),
'jquery' => __('jQuery', 'acf'),
'layout' => __('Layout', 'acf'),
// append
$types[ $this->name ] = array(
'label' => $this->label,
'name' => $this->name,
'category' => $this->category,
'public' => $this->public
);
// defaults
if( !$this->category )
{
$this->category = 'basic';
}
// return
return $types;
// cat
if( isset($l10n[ $this->category ]) )
{
$cat = $l10n[ $this->category ];
}
else
{
$cat = $this->category;
}
// add to array
$fields[ $cat ][ $this->name ] = $this->label;
// return array
return $fields;
}
@ -242,18 +225,13 @@ class acf_field {
function get_valid_field( $field ) {
if( !empty($this->defaults) )
{
foreach( $this->defaults as $k => $v )
{
if( !isset($field[ $k ]) )
{
$field[ $k ] = $v;
}
}
}
// bail early if no defaults
if( !is_array($this->defaults) ) return $field;
// merge in defaults
return array_merge($this->defaults, $field);
return $field;
}
@ -272,14 +250,173 @@ class acf_field {
function input_admin_l10n( $l10n ) {
if( !empty($this->l10n) )
{
$l10n[ $this->name ] = $this->l10n;
}
// bail early if no defaults
if( empty($this->l10n) ) return $l10n;
// append
$l10n[ $this->name ] = $this->l10n;
// return
return $l10n;
}
}
endif; // class_exists check
/*
* acf_get_field_types
*
* This function will return an array containing info about all field types
*
* @type function
* @date 22/10/16
* @since 5.5.0
*
* @param n/a
* @return (array)
*/
function acf_get_field_types() {
// vars
$cache_key = 'acf_get_field_types';
// check cache
if( acf_isset_cache($cache_key) ) return acf_get_cache($cache_key);
// get types
$types = apply_filters('acf/get_field_types', array());
// update cache
acf_set_cache($cache_key, $types);
// return
return $types;
}
/*
* acf_get_grouped_field_types
*
* This function will return a grouped array of fields types (category => name)
*
* @type function
* @date 1/10/13
* @since 5.0.0
*
* @param n/a
* @return (array)
*/
function acf_get_grouped_field_types() {
// vars
$types = array();
$l10n = array(
'basic' => __('Basic', 'acf'),
'content' => __('Content', 'acf'),
'choice' => __('Choice', 'acf'),
'relational' => __('Relational', 'acf'),
'jquery' => __('jQuery', 'acf'),
'layout' => __('Layout', 'acf'),
);
// get field type information
$types_info = acf_get_field_types();
// loop
foreach( $types_info as $info ) {
// bail early if not public
if( !$info['public'] ) continue;
// vars
$cat = $info['category'];
// default to basic
if( !$cat ) $cat = 'basic';
// translate
$cat = isset($l10n[ $cat ]) ? $l10n[ $cat ] : $cat;
// append
$types[ $cat ][ $info['name'] ] = $info['label'];
}
// return
return $types;
}
/*
* acf_get_field_type_label
*
* This function will return the label of a field type
*
* @type function
* @date 1/10/13
* @since 5.0.0
*
* @param n/a
* @return (array)
*/
function acf_get_field_type_label( $type = '' ) {
// vars
$types = acf_get_field_types();
// bail early if doesn't exist
if( !isset($types[ $type ]) ) return '';
// return
return $types[ $type ]['label'];
}
/*
* acf_field_type_exists
*
* This function will check if the field_type exists
*
* @type function
* @date 1/10/13
* @since 5.0.0
*
* @param $type (string)
* @return (boolean)
*/
function acf_field_type_exists( $type = '' ) {
// vars
$types = acf_get_field_types();
// return
return isset($types[ $type ]);
}

View File

@ -18,8 +18,9 @@ class acf_location {
function __construct() {
// Post
add_filter( 'acf/location/rule_match/post_type', array($this, 'rule_match_post_type'), 10, 3 );
add_filter( 'acf/location/rule_match/post', array($this, 'rule_match_post'), 10, 3 );
add_filter( 'acf/location/rule_match/post_type', array($this, 'rule_match_post_type'), 10, 3 );
add_filter( 'acf/location/rule_match/post_template', array($this, 'rule_match_post_template'), 10, 3 );
add_filter( 'acf/location/rule_match/post_category', array($this, 'rule_match_post_taxonomy'), 10, 3 );
add_filter( 'acf/location/rule_match/post_format', array($this, 'rule_match_post_format'), 10, 3 );
add_filter( 'acf/location/rule_match/post_status', array($this, 'rule_match_post_status'), 10, 3 );
@ -47,7 +48,83 @@ class acf_location {
add_filter( 'acf/location/rule_match/widget', array($this, 'rule_match_widget'), 10, 3 );
}
/*
* get_post_type
*
* This function will return the current post_type
*
* @type function
* @date 25/11/16
* @since 5.5.0
*
* @param $options (int)
* @return (mixed)
*/
function get_post_type( $options ) {
// check options
// - allow acf_form() to exclude the post_id param and still work as expected
if( $options['post_type'] ) {
return $options['post_type'];
}
// get post type from post
if( $options['post_id'] ) {
return get_post_type( $options['post_id'] );
}
// return
return false;
}
/*
* compare_value_to_rule
*
* This function will compare a value to a location rule and return a boolean result
*
* @type function
* @date 25/11/16
* @since 5.5.0
*
* @param $value (mixed)
* @param rule (array)
* @return (boolean)
*/
function compare_value_to_rule( $value, $rule ) {
// match
$match = ( $value === $rule['value'] );
// override for "all"
if( $rule['value'] == 'all' ) $match = true;
// reverse if 'not equal to'
if( $rule['operator'] === '!=' ) {
$match = !$match;
}
// return
return $match;
}
/*
* rule_match_post_type
@ -66,37 +143,81 @@ class acf_location {
function rule_match_post_type( $match, $rule, $options ) {
// vars
// - allow acf_form to exclude the post_id param and still work as expected
$post_type = $options['post_type'];
$post_type = $this->get_post_type($options);
// find post type for current post
if( !$post_type ) {
// bail early if no post_type found (not a post)
if( !$post_type ) return false;
// match
return $this->compare_value_to_rule($post_type, $rule);
}
/*
* rule_match_post_template
*
* This function will match a location rule and return true or false
*
* @type function
* @date 25/11/16
* @since 5.5.0
*
* @param $match (boolean)
* @param $rule (array)
* @return $options (array)t)
*/
function rule_match_post_template( $match, $rule, $options ) {
// bail early if not a post
if( !$options['post_id'] ) return false;
// vars
$templates = array();
$post_type = get_post_type( $options['post_id'] );
$page_template = $options['page_template'];
// get templates (WP 4.7)
if( acf_version_compare('wp', '>=', '4.7') ) {
// bail early if not a post
if( !$options['post_id'] ) return false;
// get post type
$post_type = get_post_type( $options['post_id'] );
$templates = wp_get_theme()->get_post_templates();
}
// compare
if( $rule['operator'] == "==" ) {
$match = ( $post_type === $rule['value'] );
} elseif( $rule['operator'] == "!=" ) {
$match = ( $post_type !== $rule['value'] );
}
// 'page' is always a valid pt even if no templates exist in the theme
// allows scenario where page_template = 'default' and no templates exist
if( !isset($templates['page']) ) {
$templates['page'] = array();
}
// return
return $match;
// bail early if this post type does not allow for templates
if( !isset($templates[ $post_type ]) ) return false;
// get page template
if( !$page_template ) {
$page_template = get_post_meta( $options['post_id'], '_wp_page_template', true );
}
// new post - no page template
if( !$page_template ) $page_template = "default";
// match
return $this->compare_value_to_rule($page_template, $rule);
}
@ -688,51 +809,21 @@ class acf_location {
// vars
$page_template = $options['page_template'];
$post_type = get_post_type( $options['post_id'] );
// get page template
if( !$page_template ) {
$page_template = get_post_meta( $options['post_id'], '_wp_page_template', true );
// page template 'default' rule is only for 'page' post type
// prevents 'Default Template' field groups appearing on all post types that allow for post templates (WP 4.7)
if( $rule['value'] === 'default' ) {
// bail ealry if not page
if( $post_type !== 'page' ) return false;
}
// get page template again
if( !$page_template ) {
$post_type = $options['post_type'];
if( !$post_type ) {
$post_type = get_post_type( $options['post_id'] );
}
if( $post_type === 'page' ) {
$page_template = "default";
}
}
// compare
if( $rule['operator'] == "==" ) {
$match = ( $page_template === $rule['value'] );
} elseif( $rule['operator'] == "!=" ) {
$match = ( $page_template !== $rule['value'] );
}
// return
return $match;
// return
return $this->rule_match_post_template( $match, $rule, $options );
}

View File

@ -155,12 +155,8 @@ class acf_validation {
function ajax_validate_save_post() {
// bail early if _acfnonce is missing
if( !isset($_POST['_acfnonce']) ) {
wp_send_json_error();
}
// validate
if( !acf_verify_ajax() ) die();
// vars

View File

@ -43,8 +43,8 @@ class acf_wpml_compatibility {
// actions
add_action('acf/upgrade_start/5.0.0', array($this, 'upgrade_start_5'));
add_action('acf/upgrade_finish/5.0.0', array($this, 'upgrade_finish_5'));
add_action('acf/update_500', array($this, 'update_500'), 10);
add_action('acf/update_500_field_group', array($this, 'update_500_field_group'), 10, 2);
add_action('acf/update_field_group', array($this, 'update_field_group'), 2, 1);
add_action('icl_make_duplicate', array($this, 'icl_make_duplicate'), 10, 4);
@ -102,9 +102,9 @@ class acf_wpml_compatibility {
/*
* upgrade_start_5
* update_500
*
* description
* This function will update the WPML settings to allow 'acf-field-group' to be translatable
*
* @type function
* @date 10/04/2015
@ -114,11 +114,7 @@ class acf_wpml_compatibility {
* @return $post_id (int)
*/
function upgrade_start_5() {
// actions
add_action('acf/update_field_group', array($this, 'update_field_group_5'), 1, 1);
function update_500() {
// global
global $sitepress, $sitepress_settings;
@ -148,28 +144,7 @@ class acf_wpml_compatibility {
/*
* upgrade_finish
*
* description
*
* @type function
* @date 10/04/2015
* @since 5.2.3
*
* @param $post_id (int)
* @return $post_id (int)
*/
function upgrade_finish_5() {
// actions
remove_action('acf/update_field_group', array($this, 'update_field_group_5'), 1, 1);
}
/*
* update_field_group_5
* update_500_field_group
*
* This function will update the icl_translations table data when creating the fiedl groups
*
@ -181,24 +156,16 @@ class acf_wpml_compatibility {
* @return n/a
*/
function update_field_group_5( $field_group ) {
function update_500_field_group($field_group, $ofg) {
// global
global $wpdb, $sitepress;
// bail early if no old_ID (added to $field_group by upgrade 5.0.0)
if( empty($field_group['old_ID']) ) {
return;
}
// get translation rows (old acf4 and new acf5)
$old_row = $wpdb->get_row($wpdb->prepare(
"SELECT * FROM {$wpdb->prefix}icl_translations WHERE element_type=%s AND element_id=%d",
'post_acf', $field_group['old_ID']
'post_acf', $ofg->ID
), ARRAY_A);
$new_row = $wpdb->get_row($wpdb->prepare(
@ -422,10 +389,6 @@ class acf_wpml_compatibility {
<script type="text/javascript">
(function($) {
// bail ealry if no lang
if( typeof icl_this_lang == 'undefined' ) return;
// add filter
acf.add_filter('prepare_for_ajax', function( args ){

View File

@ -39,6 +39,8 @@ class acf_field_checkbox extends acf_field {
'layout' => 'vertical',
'choices' => array(),
'default_value' => '',
'allow_custom' => 0,
'save_custom' => 0,
'toggle' => 0,
'return_format' => 'value'
);
@ -66,8 +68,9 @@ class acf_field_checkbox extends acf_field {
function render_field( $field ) {
// decode value (convert to array)
// ensure array
$field['value'] = acf_get_array($field['value'], false);
$field['choices'] = acf_get_array($field['choices']);
// hiden input
@ -170,6 +173,37 @@ class acf_field_checkbox extends acf_field {
}
// allow_custom
if( $field['allow_custom'] ) {
// loop
foreach( $field['value'] as $value ) {
// ignore if already eixsts
if( isset($field['choices'][ $value ]) ) continue;
// vars
$atts = array(
'type' => 'text',
'name' => $field['name'],
'value' => $value,
);
// append
$li .= '<li><input class="acf-checkbox-custom" type="checkbox" checked="checked" /><input ' . acf_esc_attr( $atts ) . '/></li>';
}
// append button
$li .= '<li><a href="#" class="button acf-add-checkbox">' . __('Add new choice', 'acf') . '</a></li>';
}
// class
$field['class'] .= ' acf-checkbox-list';
$field['class'] .= ($field['layout'] == 'horizontal') ? ' acf-hl' : ' acf-bl';
@ -178,6 +212,7 @@ class acf_field_checkbox extends acf_field {
// return
echo '<ul ' . acf_esc_attr(array( 'class' => $field['class'] )) . '>' . $li . '</ul>';
}
@ -210,6 +245,28 @@ class acf_field_checkbox extends acf_field {
));
// other_choice
acf_render_field_setting( $field, array(
'label' => __('Allow Custom','acf'),
'instructions' => '',
'name' => 'allow_custom',
'type' => 'true_false',
'ui' => 1,
'message' => __("Allow 'custom' values to be added", 'acf'),
));
// save_other_choice
acf_render_field_setting( $field, array(
'label' => __('Save Custom','acf'),
'instructions' => '',
'name' => 'save_custom',
'type' => 'true_false',
'ui' => 1,
'message' => __("Save 'custom' values to the field's choices", 'acf')
));
// default_value
acf_render_field_setting( $field, array(
'label' => __('Default Value','acf'),
@ -237,13 +294,9 @@ class acf_field_checkbox extends acf_field {
acf_render_field_setting( $field, array(
'label' => __('Toggle','acf'),
'instructions' => __('Prepend an extra checkbox to toggle all choices','acf'),
'type' => 'radio',
'name' => 'toggle',
'layout' => 'horizontal',
'choices' => array(
1 => __("Yes",'acf'),
0 => __("No",'acf'),
)
'type' => 'true_false',
'ui' => 1,
));
@ -304,7 +357,49 @@ class acf_field_checkbox extends acf_field {
function update_value( $value, $post_id, $field ) {
return acf_get_field_type('select')->update_value( $value, $post_id, $field );
// bail early if is empty
if( empty($value) ) return $value;
// select -> update_value()
$value = acf_get_field_type('select')->update_value( $value, $post_id, $field );
// save_other_choice
if( $field['save_custom'] ) {
// get raw $field (may have been changed via repeater field)
// if field is local, it won't have an ID
$selector = $field['ID'] ? $field['ID'] : $field['key'];
$field = acf_get_field( $selector, true );
// bail early if no ID (JSON only)
if( !$field['ID'] ) return $value;
// loop
foreach( $value as $v ) {
// ignore if already eixsts
if( isset($field['choices'][ $v ]) ) continue;
// append
$field['choices'][ $v ] = $v;
}
// save
acf_update_field( $field );
}
// return
return $value;
}
@ -352,8 +447,10 @@ class acf_field_checkbox extends acf_field {
}
new acf_field_checkbox();
endif;
// initialize
acf_register_field_type( new acf_field_checkbox() );
endif; // class_exists check
?>

View File

@ -104,6 +104,10 @@ class acf_field_date_picker extends acf_field {
function input_admin_enqueue_scripts() {
// bail ealry if no enqueue
if( !acf_get_setting('enqueue_datepicker') ) return;
// script
wp_enqueue_script('jquery-ui-datepicker');
@ -159,8 +163,23 @@ class acf_field_date_picker extends acf_field {
'type' => 'text',
'value' => $display_value,
);
// save_format - compatibility with ACF < 5.0.0
if( !empty($field['save_format']) ) {
// add custom JS save format
$div['data-save_format'] = $field['save_format'];
// revert hidden input value to raw DB value
$hidden['value'] = $field['value'];
// remove formatted value (will do this via JS)
$input['value'] = '';
}
// html
$e .= '<div ' . acf_esc_attr($div) . '>';
$e .= '<input ' . acf_esc_attr($hidden). '/>';
@ -200,27 +219,43 @@ class acf_field_date_picker extends acf_field {
'name' => 'display_format',
'other_choice' => 1,
'choices' => array(
'd/m/Y' => date('d/m/Y'),
'm/d/Y' => date('m/d/Y'),
'F j, Y' => date('F j, Y'),
'd/m/Y' => date_i18n('d/m/Y'),
'm/d/Y' => date_i18n('m/d/Y'),
'F j, Y' => date_i18n('F j, Y'),
)
));
// return_format
acf_render_field_setting( $field, array(
'label' => __('Return Format','acf'),
'instructions' => __('The format returned via template functions','acf'),
'type' => 'radio',
'name' => 'return_format',
'other_choice' => 1,
'choices' => array(
'd/m/Y' => date('d/m/Y'),
'm/d/Y' => date('m/d/Y'),
'F j, Y' => date('F j, Y'),
'Ymd' => date('Ymd'),
)
));
// save_format - compatibility with ACF < 5.0.0
if( !empty($field['save_format']) ) {
// save_format
acf_render_field_setting( $field, array(
'label' => __('Save Format','acf'),
'instructions' => __('The format used when saving a value','acf'),
'type' => 'text',
'name' => 'save_format',
//'readonly' => 1 // this setting was not readonly in v4
));
} else {
// return_format
acf_render_field_setting( $field, array(
'label' => __('Return Format','acf'),
'instructions' => __('The format returned via template functions','acf'),
'type' => 'radio',
'name' => 'return_format',
'other_choice' => 1,
'choices' => array(
'd/m/Y' => date_i18n('d/m/Y'),
'm/d/Y' => date_i18n('m/d/Y'),
'F j, Y' => date_i18n('F j, Y'),
'Ymd' => date_i18n('Ymd'),
)
));
}
// first_day
@ -253,6 +288,15 @@ class acf_field_date_picker extends acf_field {
function format_value( $value, $post_id, $field ) {
// save_format - compatibility with ACF < 5.0.0
if( !empty($field['save_format']) ) {
return $value;
}
// return
return acf_format_date( $value, $field['return_format'] );
}

View File

@ -83,6 +83,10 @@ class acf_field_date_and_time_picker extends acf_field {
function input_admin_enqueue_scripts() {
// bail ealry if no enqueue
if( !acf_get_setting('enqueue_datetimepicker') ) return;
// vars
$version = '1.6.1';
@ -189,10 +193,10 @@ class acf_field_date_and_time_picker extends acf_field {
'name' => 'display_format',
'other_choice' => 1,
'choices' => array(
'd/m/Y g:i a' => date('d/m/Y g:i a'),
'm/d/Y g:i a' => date('m/d/Y g:i a'),
'F j, Y g:i a' => date('F j, Y g:i a'),
'Y-m-d H:i:s' => date('Y-m-d H:i:s'),
'd/m/Y g:i a' => date_i18n('d/m/Y g:i a'),
'm/d/Y g:i a' => date_i18n('m/d/Y g:i a'),
'F j, Y g:i a' => date_i18n('F j, Y g:i a'),
'Y-m-d H:i:s' => date_i18n('Y-m-d H:i:s'),
)
));
@ -205,10 +209,10 @@ class acf_field_date_and_time_picker extends acf_field {
'name' => 'return_format',
'other_choice' => 1,
'choices' => array(
'd/m/Y g:i a' => date('d/m/Y g:i a'),
'm/d/Y g:i a' => date('m/d/Y g:i a'),
'F j, Y g:i a' => date('F j, Y g:i a'),
'Y-m-d H:i:s' => date('Y-m-d H:i:s'),
'd/m/Y g:i a' => date_i18n('d/m/Y g:i a'),
'm/d/Y g:i a' => date_i18n('m/d/Y g:i a'),
'F j, Y g:i a' => date_i18n('F j, Y g:i a'),
'Y-m-d H:i:s' => date_i18n('Y-m-d H:i:s'),
)
));

View File

@ -168,7 +168,9 @@ class acf_field_file extends acf_field {
<div class="acf-error-message"><p><?php echo $field['value']; ?></p></div>
<?php endif; ?>
<input type="file" name="<?php echo $field['name']; ?>" id="<?php echo $field['id']; ?>" />
<label class="acf-basic-uploader">
<input type="file" name="<?php echo $field['name']; ?>" id="<?php echo $field['id']; ?>" />
</label>
<?php else: ?>

View File

@ -181,9 +181,7 @@ class acf_field_google_map extends acf_field {
'name' => 'center_lng',
'prepend' => 'lng',
'placeholder' => $this->default_values['center_lng'],
'wrapper' => array(
'data-append' => 'center_lat'
)
'_append' => 'center_lat'
));

View File

@ -151,7 +151,9 @@ class acf_field_image extends acf_field {
<div class="acf-error-message"><p><?php echo $field['value']; ?></p></div>
<?php endif; ?>
<input type="file" name="<?php echo $field['name']; ?>" id="<?php echo $field['id']; ?>" />
<label class="acf-basic-uploader">
<input type="file" name="<?php echo $field['name']; ?>" id="<?php echo $field['id']; ?>" />
</label>
<?php else: ?>
@ -256,9 +258,7 @@ class acf_field_image extends acf_field {
'name' => 'min_height',
'prepend' => __('Height', 'acf'),
'append' => 'px',
'wrapper' => array(
'data-append' => 'min_width'
)
'_append' => 'min_width'
));
acf_render_field_setting( $field, array(
@ -267,9 +267,7 @@ class acf_field_image extends acf_field {
'name' => 'min_size',
'prepend' => __('File size', 'acf'),
'append' => 'MB',
'wrapper' => array(
'data-append' => 'min_width'
)
'_append' => 'min_width'
));
@ -289,9 +287,7 @@ class acf_field_image extends acf_field {
'name' => 'max_height',
'prepend' => __('Height', 'acf'),
'append' => 'px',
'wrapper' => array(
'data-append' => 'max_width'
)
'_append' => 'max_width'
));
acf_render_field_setting( $field, array(
@ -300,9 +296,7 @@ class acf_field_image extends acf_field {
'name' => 'max_size',
'prepend' => __('File size', 'acf'),
'append' => 'MB',
'wrapper' => array(
'data-append' => 'max_width'
)
'_append' => 'max_width'
));

View File

@ -36,7 +36,6 @@ class acf_field_message extends acf_field {
$this->label = __("Message",'acf');
$this->category = 'layout';
$this->defaults = array(
'value' => false, // prevents ACF from attempting to load value
'message' => '',
'esc_html' => 0,
'new_lines' => 'wpautop',
@ -138,45 +137,14 @@ class acf_field_message extends acf_field {
acf_render_field_setting( $field, array(
'label' => __('Escape HTML','acf'),
'instructions' => __('Allow HTML markup to display as visible text instead of rendering','acf'),
'type' => 'radio',
'name' => 'esc_html',
'choices' => array(
1 => __("Yes",'acf'),
0 => __("No",'acf'),
),
'layout' => 'horizontal',
'type' => 'true_false',
'ui' => 1,
));
}
/*
* update_field()
*
* This filter is appied to the $field before it is saved to the database
*
* @type filter
* @since 3.6
* @date 23/01/13
*
* @param $field - the field array holding all the field options
* @param $post_id - the field group ID (post_type = acf)
*
* @return $field - the modified field
*/
function update_field( $field ) {
// remove name
$field['name'] = '';
$field['required'] = 0;
// return
return $field;
}
/*
* translate_field
*
@ -201,6 +169,40 @@ class acf_field_message extends acf_field {
}
/*
* load_field()
*
* This filter is appied to the $field after it is loaded from the database
*
* @type filter
* @since 3.6
* @date 23/01/13
*
* @param $field - the field array holding all the field options
*
* @return $field - the field array holding all the field options
*/
function load_field( $field ) {
// remove name to avoid caching issue
$field['name'] = '';
// remove required to avoid JS issues
$field['required'] = 0;
// set value other than 'null' to avoid ACF loading / caching issue
$field['value'] = false;
// return
return $field;
}
}

View File

@ -116,10 +116,13 @@ class acf_field_oembed extends acf_field {
function ajax_search() {
// validate
if( !acf_verify_ajax() ) die();
// options
$args = acf_parse_args( $_POST, array(
's' => '',
'nonce' => '',
'width' => 0,
'height' => 0,
));
@ -139,14 +142,6 @@ class acf_field_oembed extends acf_field {
}
// validate
if( ! wp_verify_nonce($args['nonce'], 'acf_nonce') ) {
die();
}
// get oembed
echo $this->wp_oembed_get($args['s'], $args['width'], $args['height']);
@ -222,7 +217,7 @@ class acf_field_oembed extends acf_field {
</div>
<div class="canvas-error">
<p><strong><?php _e("Error", 'acf'); ?></strong>. <?php _e("No embed found for the given URL", 'acf'); ?></p>
<p><strong><?php _e("Error.", 'acf'); ?></strong> <?php _e("No embed found for the given URL.", 'acf'); ?></p>
</div>
<div class="canvas-media" data-name="value-embed">
@ -275,9 +270,7 @@ class acf_field_oembed extends acf_field {
'prepend' => __('Height', 'acf'),
'append' => 'px',
'placeholder' => $this->default_values['height'],
'wrapper' => array(
'data-append' => 'width'
)
'_append' => 'width'
));
}

91
fields/output.php Normal file
View File

@ -0,0 +1,91 @@
<?php
/*
* ACF Output Field Class
*
* All the logic for this field type
*
* @class acf_field_output
* @extends acf_field
* @package ACF
* @subpackage Fields
*/
if( ! class_exists('acf_field_output') ) :
class acf_field_output extends acf_field {
/*
* __construct
*
* This function will setup the field type data
*
* @type function
* @date 5/03/2014
* @since 5.0.0
*
* @param n/a
* @return n/a
*/
function __construct() {
// vars
$this->name = 'output';
$this->label = 'output';
$this->public = false;
$this->defaults = array(
'html' => false
);
// do not delete!
parent::__construct();
}
/*
* render_field()
*
* Create the HTML interface for your field
*
* @param $field (array) the $field being rendered
*
* @type action
* @since 3.6
* @date 23/01/13
*
* @param $field (array) the $field being edited
* @return n/a
*/
function render_field( $field ) {
// bail early if no html
if( !$field['html'] ) return;
// html
if( is_string($field['html']) && !function_exists($field['html']) ) {
echo $field['html'];
// function
} else {
call_user_func_array($field['html'], array($field));
}
}
}
// initialize
acf_register_field_type( new acf_field_output() );
endif; // class_exists check
?>

View File

@ -527,13 +527,9 @@ class acf_field_page_link extends acf_field {
acf_render_field_setting( $field, array(
'label' => __('Allow Null?','acf'),
'instructions' => '',
'type' => 'radio',
'name' => 'allow_null',
'choices' => array(
1 => __("Yes",'acf'),
0 => __("No",'acf'),
),
'layout' => 'horizontal',
'type' => 'true_false',
'ui' => 1,
));
@ -541,13 +537,9 @@ class acf_field_page_link extends acf_field {
acf_render_field_setting( $field, array(
'label' => __('Allow Archives URLs','acf'),
'instructions' => '',
'type' => 'radio',
'name' => 'allow_archives',
'choices' => array(
1 => __("Yes",'acf'),
0 => __("No",'acf'),
),
'layout' => 'horizontal',
'type' => 'true_false',
'ui' => 1,
));
@ -555,13 +547,9 @@ class acf_field_page_link extends acf_field {
acf_render_field_setting( $field, array(
'label' => __('Select multiple values?','acf'),
'instructions' => '',
'type' => 'radio',
'name' => 'multiple',
'choices' => array(
1 => __("Yes",'acf'),
0 => __("No",'acf'),
),
'layout' => 'horizontal',
'type' => 'true_false',
'ui' => 1,
));
}

View File

@ -426,13 +426,9 @@ class acf_field_post_object extends acf_field {
acf_render_field_setting( $field, array(
'label' => __('Allow Null?','acf'),
'instructions' => '',
'type' => 'radio',
'name' => 'allow_null',
'choices' => array(
1 => __("Yes",'acf'),
0 => __("No",'acf'),
),
'layout' => 'horizontal',
'type' => 'true_false',
'ui' => 1,
));
@ -440,13 +436,9 @@ class acf_field_post_object extends acf_field {
acf_render_field_setting( $field, array(
'label' => __('Select multiple values?','acf'),
'instructions' => '',
'type' => 'radio',
'name' => 'multiple',
'choices' => array(
1 => __("Yes",'acf'),
0 => __("No",'acf'),
),
'layout' => 'horizontal',
'type' => 'true_false',
'ui' => 1,
));

View File

@ -124,7 +124,8 @@ class acf_field_radio extends acf_field {
'type' => 'text',
'name' => $field['name'],
'value' => '',
'disabled' => 'disabled'
'disabled' => 'disabled',
'class' => 'acf-disabled'
);
@ -249,13 +250,9 @@ class acf_field_radio extends acf_field {
acf_render_field_setting( $field, array(
'label' => __('Allow Null?','acf'),
'instructions' => '',
'type' => 'radio',
'name' => 'allow_null',
'choices' => array(
1 => __("Yes",'acf'),
0 => __("No",'acf'),
),
'layout' => 'horizontal',
'type' => 'true_false',
'ui' => 1,
));
@ -263,9 +260,10 @@ class acf_field_radio extends acf_field {
acf_render_field_setting( $field, array(
'label' => __('Other','acf'),
'instructions' => '',
'type' => 'true_false',
'name' => 'other_choice',
'message' => __("Add 'other' choice to allow for custom values", 'acf')
'type' => 'true_false',
'ui' => 1,
'message' => __("Add 'other' choice to allow for custom values", 'acf'),
));
@ -273,8 +271,9 @@ class acf_field_radio extends acf_field {
acf_render_field_setting( $field, array(
'label' => __('Save Other','acf'),
'instructions' => '',
'type' => 'true_false',
'name' => 'save_other_choice',
'type' => 'true_false',
'ui' => 1,
'message' => __("Save 'other' values to the field's choices", 'acf')
));

View File

@ -483,11 +483,6 @@ class acf_field_relationship extends acf_field {
if( !empty($field['post_type']) ) {
$post_types = $field['post_type'];
} else {
$post_types = acf_get_post_types();
}

View File

@ -87,27 +87,43 @@ class acf_field_select extends acf_field {
function input_admin_enqueue_scripts() {
// bail ealry if no enqueue
if( !acf_get_setting('enqueue_select2') ) return;
// globals
global $wp_scripts, $wp_styles;
// vars
$version = '3.5.2';
$min = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
$major = acf_get_setting('select2_version');
$version = '';
$script = '';
$style = '';
// script
wp_enqueue_script('select2', acf_get_dir("assets/inc/select2/select2{$min}.js"), array('jquery'), $version );
// style
wp_enqueue_style('select2', acf_get_dir('assets/inc/select2/select2.css'), '', $version );
// 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' );
if( $major == 4 ) {
$version = '4.0';
$script = acf_get_dir("assets/inc/select2/4/select2.full{$min}.js");
$style = acf_get_dir("assets/inc/select2/4/select2{$min}.css");
// v3
} else {
$version = '3.5.2';
$script = acf_get_dir("assets/inc/select2/3/select2{$min}.js");
$style = acf_get_dir("assets/inc/select2/3/select2.css");
}
// enqueue
wp_enqueue_script('select2', $script, array('jquery'), $version );
wp_enqueue_style('select2', $style, '', $version );
}
@ -237,7 +253,7 @@ class acf_field_select extends acf_field {
*/
function render_field( $field ) {
// convert
$field['value'] = acf_get_array($field['value'], false);
$field['choices'] = acf_get_array($field['choices']);
@ -252,14 +268,14 @@ class acf_field_select extends acf_field {
// add empty value (allows '' to be selected)
if( !count($field['value']) ) {
if( empty($field['value']) ) {
$field['value'][''] = '';
$field['value'] = array('');
}
// null
// allow null
// - have tried array_merge but this causes keys to re-index if is numeric (post ID's)
if( $field['allow_null'] && !$field['multiple'] ) {
@ -269,7 +285,6 @@ class acf_field_select extends acf_field {
}
// vars
$atts = array(
'id' => $field['id'],
@ -290,7 +305,7 @@ class acf_field_select extends acf_field {
$atts['size'] = 5;
$atts['name'] .= '[]';
}
}
// special atts
@ -445,8 +460,8 @@ class acf_field_select extends acf_field {
acf_render_field_setting( $field, array(
'label' => __('Choices','acf'),
'instructions' => __('Enter each choice on a new line.','acf') . '<br /><br />' . __('For more control, you may specify both a value and label like this:','acf'). '<br /><br />' . __('red : Red','acf'),
'type' => 'textarea',
'name' => 'choices',
'type' => 'textarea',
));
@ -454,8 +469,8 @@ class acf_field_select extends acf_field {
acf_render_field_setting( $field, array(
'label' => __('Default Value','acf'),
'instructions' => __('Enter each default value on a new line','acf'),
'type' => 'textarea',
'name' => 'default_value',
'type' => 'textarea',
));
@ -463,13 +478,9 @@ class acf_field_select extends acf_field {
acf_render_field_setting( $field, array(
'label' => __('Allow Null?','acf'),
'instructions' => '',
'type' => 'radio',
'name' => 'allow_null',
'choices' => array(
1 => __("Yes",'acf'),
0 => __("No",'acf'),
),
'layout' => 'horizontal',
'type' => 'true_false',
'ui' => 1,
));
@ -477,13 +488,9 @@ class acf_field_select extends acf_field {
acf_render_field_setting( $field, array(
'label' => __('Select multiple values?','acf'),
'instructions' => '',
'type' => 'radio',
'name' => 'multiple',
'choices' => array(
1 => __("Yes",'acf'),
0 => __("No",'acf'),
),
'layout' => 'horizontal',
'type' => 'true_false',
'ui' => 1,
));
@ -491,13 +498,9 @@ class acf_field_select extends acf_field {
acf_render_field_setting( $field, array(
'label' => __('Stylised UI','acf'),
'instructions' => '',
'type' => 'radio',
'name' => 'ui',
'choices' => array(
1 => __("Yes",'acf'),
0 => __("No",'acf'),
),
'layout' => 'horizontal',
'type' => 'true_false',
'ui' => 1,
));
@ -505,13 +508,9 @@ class acf_field_select extends acf_field {
acf_render_field_setting( $field, array(
'label' => __('Use AJAX to lazy load choices?','acf'),
'instructions' => '',
'type' => 'radio',
'name' => 'ajax',
'choices' => array(
1 => __("Yes",'acf'),
0 => __("No",'acf'),
),
'layout' => 'horizontal',
'type' => 'true_false',
'ui' => 1,
));
@ -519,9 +518,8 @@ class acf_field_select extends acf_field {
acf_render_field_setting( $field, array(
'label' => __('Return Format','acf'),
'instructions' => __('Specify the value returned','acf'),
'type' => 'radio',
'type' => 'select',
'name' => 'return_format',
'layout' => 'horizontal',
'choices' => array(
'value' => __('Value','acf'),
'label' => __('Label','acf'),

View File

@ -36,7 +36,6 @@ class acf_field_tab extends acf_field {
$this->label = __("Tab",'acf');
$this->category = 'layout';
$this->defaults = array(
'value' => false, // prevents ACF from attempting to load value
'placement' => 'top',
'endpoint' => 0 // added in 5.2.8
);
@ -124,42 +123,45 @@ class acf_field_tab extends acf_field {
acf_render_field_setting( $field, array(
'label' => __('End-point','acf'),
'instructions' => __('Use this field as an end-point and start a new group of tabs','acf'),
'type' => 'radio',
'name' => 'endpoint',
'choices' => array(
1 => __("Yes",'acf'),
0 => __("No",'acf'),
),
'layout' => 'horizontal',
'type' => 'true_false',
'ui' => 1,
));
}
/*
* update_field()
* load_field()
*
* This filter is appied to the $field before it is saved to the database
* This filter is appied to the $field after it is loaded from the database
*
* @type filter
* @since 3.6
* @date 23/01/13
*
* @param $field - the field array holding all the field options
* @param $post_id - the field group ID (post_type = acf)
*
* @return $field - the modified field
* @return $field - the field array holding all the field options
*/
function update_field( $field ) {
function load_field( $field ) {
// remove name
// remove name to avoid caching issue
$field['name'] = '';
// remove required to avoid JS issues
$field['required'] = 0;
// set value other than 'null' to avoid ACF loading / caching issue
$field['value'] = false;
// return
return $field;
}
}

View File

@ -192,9 +192,17 @@ class acf_field_taxonomy extends acf_field {
// this will fail if a search has taken place because parents wont exist
if( !$is_search ) {
$terms = _get_term_children( $parent, $terms, $field['taxonomy'] );
// order terms
$ordered_terms = _get_term_children( $parent, $terms, $field['taxonomy'] );
// check for empty array (possible if parent did not exist within original data)
if( !empty($ordered_terms) ) {
$terms = $ordered_terms;
}
}
@ -786,13 +794,9 @@ class acf_field_taxonomy extends acf_field {
acf_render_field_setting( $field, array(
'label' => __('Allow Null?','acf'),
'instructions' => '',
'type' => 'radio',
'name' => 'allow_null',
'choices' => array(
1 => __("Yes",'acf'),
0 => __("No",'acf'),
),
'layout' => 'horizontal',
'type' => 'true_false',
'ui' => 1,
));
@ -800,13 +804,9 @@ class acf_field_taxonomy extends acf_field {
acf_render_field_setting( $field, array(
'label' => __('Create Terms','acf'),
'instructions' => __('Allow new terms to be created whilst editing','acf'),
'type' => 'radio',
'name' => 'add_term',
'choices' => array(
1 => __("Yes",'acf'),
0 => __("No",'acf'),
),
'layout' => 'horizontal',
'type' => 'true_false',
'ui' => 1,
));
@ -814,13 +814,9 @@ class acf_field_taxonomy extends acf_field {
acf_render_field_setting( $field, array(
'label' => __('Save Terms','acf'),
'instructions' => __('Connect selected terms to the post','acf'),
'type' => 'radio',
'name' => 'save_terms',
'choices' => array(
1 => __("Yes",'acf'),
0 => __("No",'acf'),
),
'layout' => 'horizontal',
'type' => 'true_false',
'ui' => 1,
));
@ -828,13 +824,9 @@ class acf_field_taxonomy extends acf_field {
acf_render_field_setting( $field, array(
'label' => __('Load Terms','acf'),
'instructions' => __('Load value from posts terms','acf'),
'type' => 'radio',
'name' => 'load_terms',
'choices' => array(
1 => __("Yes",'acf'),
0 => __("No",'acf'),
),
'layout' => 'horizontal',
'type' => 'true_false',
'ui' => 1,
));
@ -905,7 +897,7 @@ class acf_field_taxonomy extends acf_field {
// note: this situation should never occur due to condition of the add new button
if( !current_user_can( $taxonomy_obj->cap->manage_terms) ) {
echo '<p><strong>' . __("Error", 'acf') . '.</strong> ' . sprintf( __('User unable to add new %s', 'acf'), $taxonomy_label ) . '</p>';
echo '<p><strong>' . __("Error.", 'acf') . '</strong> ' . sprintf( __('User unable to add new %s', 'acf'), $taxonomy_label ) . '</p>';
die;
}

View File

@ -33,11 +33,14 @@ class acf_field_true_false extends acf_field {
// vars
$this->name = 'true_false';
$this->label = __("True / False",'acf');
$this->label = __('True / False','acf');
$this->category = 'choice';
$this->defaults = array(
'default_value' => 0,
'message' => '',
'ui' => 0,
'ui_on_text' => '',
'ui_off_text' => '',
);
@ -62,27 +65,59 @@ class acf_field_true_false extends acf_field {
function render_field( $field ) {
// vars
$atts = array(
$input = array(
'type' => 'checkbox',
'id' => "{$field['id']}-1",
'id' => $field['id'],
'name' => $field['name'],
'value' => '1',
'class' => $field['class'],
'autocomplete' => 'off'
);
$hidden = array(
'name' => $field['name'],
'value' => 0
);
$active = $field['value'] ? true : false;
$switch = '';
// checked
if( !empty($field['value']) ) {
if( $active ) $input['checked'] = 'checked';
$atts['checked'] = 'checked';
// ui
if( $field['ui'] ) {
// vars
if( $field['ui_on_text'] === '' ) $field['ui_on_text'] = __('Yes', 'acf');
if( $field['ui_off_text'] === '' ) $field['ui_off_text'] = __('No', 'acf');
// update input
$input['class'] .= ' acf-switch-input';
$input['style'] = 'display:none;';
$switch .= '<div class="acf-switch' . ($active ? ' -on' : '') . '">';
$switch .= '<span class="acf-switch-on">'.$field['ui_on_text'].'</span>';
$switch .= '<span class="acf-switch-off">'.$field['ui_off_text'].'</span>';
$switch .= '<div class="acf-switch-slider"></div>';
$switch .= '</div>';
}
?>
<div class="acf-true-false">
<?php acf_hidden_input($hidden); ?>
<label>
<input <?php echo acf_esc_attr($input); ?>/>
<?php if( $switch ) echo $switch; ?>
<?php if( $field['message'] ): ?><span><?php echo $field['message']; ?></span><?php endif; ?>
</label>
</div>
<?php
// html
echo '<ul class="acf-checkbox-list acf-bl ' . acf_esc_attr($field['class']) . '">';
echo '<input type="hidden" name="' . acf_esc_attr($field['name']) . '" value="0" />';
echo '<li><label><input ' . acf_esc_attr($atts) . '/>' . $field['message'] . '</label></li>';
echo '</ul>';
}
@ -104,7 +139,7 @@ class acf_field_true_false extends acf_field {
// message
acf_render_field_setting( $field, array(
'label' => __('Message','acf'),
'instructions' => __('eg. Show extra content','acf'),
'instructions' => __('Displays text alongside the checkbox','acf'),
'type' => 'text',
'name' => 'message',
));
@ -118,6 +153,37 @@ class acf_field_true_false extends acf_field {
'name' => 'default_value',
));
// ui
acf_render_field_setting( $field, array(
'label' => __('Stylised UI','acf'),
'instructions' => '',
'type' => 'true_false',
'name' => 'ui',
'ui' => 1,
'class' => 'acf-field-object-true-false-ui'
));
// on_text
acf_render_field_setting( $field, array(
'label' => __('On Text','acf'),
'instructions' => __('Text shown when active','acf'),
'type' => 'text',
'name' => 'ui_on_text',
'placeholder' => __('Yes', 'acf')
));
// on_text
acf_render_field_setting( $field, array(
'label' => __('Off Text','acf'),
'instructions' => __('Text shown when inactive','acf'),
'type' => 'text',
'name' => 'ui_off_text',
'placeholder' => __('No', 'acf')
));
}
@ -198,6 +264,8 @@ class acf_field_true_false extends acf_field {
// translate
$field['message'] = acf_translate( $field['message'] );
$field['ui_on_text'] = acf_translate( $field['ui_on_text'] );
$field['ui_off_text'] = acf_translate( $field['ui_off_text'] );
// return

View File

@ -393,13 +393,9 @@ class acf_field_user extends acf_field {
acf_render_field_setting( $field, array(
'label' => __('Allow Null?','acf'),
'instructions' => '',
'type' => 'radio',
'name' => 'allow_null',
'choices' => array(
1 => __("Yes",'acf'),
0 => __("No",'acf'),
),
'layout' => 'horizontal',
'type' => 'true_false',
'ui' => 1,
));
@ -407,13 +403,9 @@ class acf_field_user extends acf_field {
acf_render_field_setting( $field, array(
'label' => __('Select multiple values?','acf'),
'instructions' => '',
'type' => 'radio',
'name' => 'multiple',
'choices' => array(
1 => __("Yes",'acf'),
0 => __("No",'acf'),
),
'layout' => 'horizontal',
'type' => 'true_false',
'ui' => 1,
));

View File

@ -40,6 +40,7 @@ class acf_field_wysiwyg extends acf_field {
'toolbar' => 'full',
'media_upload' => 1,
'default_value' => '',
'delay' => 0
);
@ -140,57 +141,52 @@ class acf_field_wysiwyg extends acf_field {
// vars
$toolbars = array();
$editor_id = 'acf_content';
if( version_compare($wp_version, '3.9', '>=' ) ) {
// toolbars
$toolbars = array();
$mce_buttons = 'formatselect, bold, italic, bullist, numlist, blockquote, alignleft, aligncenter, alignright, link, unlink, wp_more, spellchecker, fullscreen, wp_adv';
$mce_buttons_2 = 'strikethrough, hr, forecolor, pastetext, removeformat, charmap, outdent, indent, undo, redo, wp_help';
$teeny_mce_buttons = 'bold, italic, underline, blockquote, strikethrough, bullist, numlist, alignleft, aligncenter, alignright, undo, redo, link, unlink, fullscreen';
// Full
$toolbars['Full'] = array(
1 => apply_filters('mce_buttons', array('bold', 'italic', 'strikethrough', 'bullist', 'numlist', 'blockquote', 'hr', 'alignleft', 'aligncenter', 'alignright', 'link', 'unlink', 'wp_more', 'spellchecker', 'fullscreen', 'wp_adv' ), $editor_id),
2 => apply_filters('mce_buttons_2', array( 'formatselect', 'underline', 'alignjustify', 'forecolor', 'pastetext', 'removeformat', 'charmap', 'outdent', 'indent', 'undo', 'redo', 'wp_help' ), $editor_id),
3 => apply_filters('mce_buttons_3', array(), $editor_id),
4 => apply_filters('mce_buttons_4', array(), $editor_id),
);
// WP < 3.9
if( acf_version_compare('wp', '<', '3.9') ) {
// Basic
$toolbars['Basic'] = array(
1 => apply_filters('teeny_mce_buttons', array('bold', 'italic', 'underline', 'blockquote', 'strikethrough', 'bullist', 'numlist', 'alignleft', 'aligncenter', 'alignright', 'undo', 'redo', 'link', 'unlink', 'fullscreen'), $editor_id),
);
} else {
// Full
$toolbars['Full'] = array(
1 => apply_filters('mce_buttons', array('bold', 'italic', 'strikethrough', 'bullist', 'numlist', 'blockquote', 'justifyleft', 'justifycenter', 'justifyright', 'link', 'unlink', 'wp_more', 'spellchecker', 'fullscreen', 'wp_adv' ), $editor_id),
2 => apply_filters('mce_buttons_2', array( 'formatselect', 'underline', 'justifyfull', 'forecolor', 'pastetext', 'pasteword', 'removeformat', 'charmap', 'outdent', 'indent', 'undo', 'redo', 'wp_help' ), $editor_id),
3 => apply_filters('mce_buttons_3', array(), $editor_id),
4 => apply_filters('mce_buttons_4', array(), $editor_id),
);
// Basic
$toolbars['Basic'] = array(
1 => apply_filters( 'teeny_mce_buttons', array('bold', 'italic', 'underline', 'blockquote', 'strikethrough', 'bullist', 'numlist', 'justifyleft', 'justifycenter', 'justifyright', 'undo', 'redo', 'link', 'unlink', 'fullscreen'), $editor_id ),
);
}
$mce_buttons = 'bold, italic, strikethrough, bullist, numlist, blockquote, justifyleft, justifycenter, justifyright, link, unlink, wp_more, spellchecker, fullscreen, wp_adv';
$mce_buttons_2 = 'formatselect, underline, justifyfull, forecolor, pastetext, pasteword, removeformat, charmap, outdent, indent, undo, redo, wp_help';
$teeny_mce_buttons = 'bold, italic, underline, blockquote, strikethrough, bullist, numlist, justifyleft, justifycenter, justifyright, undo, redo, link, unlink, fullscreen';
// WP < 4.7
} elseif( acf_version_compare('wp', '<', '4.7') ) {
$mce_buttons = 'bold, italic, strikethrough, bullist, numlist, blockquote, hr, alignleft, aligncenter, alignright, link, unlink, wp_more, spellchecker, fullscreen, wp_adv';
$mce_buttons_2 = 'formatselect, underline, alignjustify, forecolor, pastetext, removeformat, charmap, outdent, indent, undo, redo, wp_help';
//$teeny_mce_buttons = 'bold, italic, underline, blockquote, strikethrough, bullist, numlist, alignleft, aligncenter, alignright, undo, redo, link, unlink, fullscreen';
}
// explode
$mce_buttons = explode(', ', $mce_buttons);
$mce_buttons_2 = explode(', ', $mce_buttons_2);
$teeny_mce_buttons = explode(', ', $teeny_mce_buttons);
// Full
$toolbars['Full'] = array(
1 => apply_filters('mce_buttons', $mce_buttons, $editor_id),
2 => apply_filters('mce_buttons_2', $mce_buttons_2, $editor_id),
3 => apply_filters('mce_buttons_3', array(), $editor_id),
4 => apply_filters('mce_buttons_4', array(), $editor_id)
);
// Basic
$toolbars['Basic'] = array(
1 => apply_filters('teeny_mce_buttons', $teeny_mce_buttons, $editor_id)
);
// Filter for 3rd party
@ -364,8 +360,24 @@ acf.fields.wysiwyg.toolbars = <?php echo json_encode($json); ?>;
// filter
$field['value'] = apply_filters( 'acf_the_editor_content', $field['value'], $default_editor );
// attr
$wrap = array(
'id' => 'wp-' . $id . '-wrap',
'class' => 'acf-editor-wrap wp-core-ui wp-editor-wrap ' . $switch_class,
'data-toolbar' => $field['toolbar']
);
// delay
if( $field['delay'] ) {
$wrap['class'] .= ' delay';
}
?>
<div id="wp-<?php echo $id; ?>-wrap" class="acf-editor-wrap wp-core-ui wp-editor-wrap <?php echo $switch_class; ?>" data-toolbar="<?php echo $field['toolbar']; ?>" data-upload="<?php echo $field['media_upload']; ?>">
<div <?php echo acf_esc_attr($wrap); ?>>
<div id="wp-<?php echo $id; ?>-editor-tools" class="wp-editor-tools hide-if-no-js">
<?php if( $field['media_upload'] ): ?>
<div id="wp-<?php echo $id; ?>-media-buttons" class="wp-media-buttons">
@ -374,12 +386,15 @@ acf.fields.wysiwyg.toolbars = <?php echo json_encode($json); ?>;
<?php endif; ?>
<?php if( user_can_richedit() && $show_tabs ): ?>
<div class="wp-editor-tabs">
<button id="<?php echo $id; ?>-tmce" class="wp-switch-editor switch-tmce" <?php echo $button; ?> type="button"><?php echo __('Visual', 'acf'); ?></button>
<button id="<?php echo $id; ?>-html" class="wp-switch-editor switch-html" <?php echo $button; ?> type="button"><?php echo _x( 'Text', 'Name for the Text editor tab (formerly HTML)', 'acf' ); ?></button>
<button id="<?php echo $id; ?>-tmce" class="wp-switch-editor switch-tmce" <?php echo $button; ?> type="button"><?php echo __('Visual', 'acf'); ?></button>
<button id="<?php echo $id; ?>-html" class="wp-switch-editor switch-html" <?php echo $button; ?> type="button"><?php echo _x( 'Text', 'Name for the Text editor tab (formerly HTML)', 'acf' ); ?></button>
</div>
<?php endif; ?>
</div>
<div id="wp-<?php echo $id; ?>-editor-container" class="wp-editor-container">
<?php if( $field['delay'] ): ?>
<div class="acf-editor-toolbar"><?php _e('Click to initialize TinyMCE', 'acf'); ?></div>
<?php endif; ?>
<textarea id="<?php echo $id; ?>" class="wp-editor-area" name="<?php echo $field['name']; ?>" <?php if($height): ?>style="height:<?php echo $height; ?>px;"<?php endif; ?>><?php echo $field['value']; ?></textarea>
</div>
</div>
@ -457,13 +472,19 @@ acf.fields.wysiwyg.toolbars = <?php echo json_encode($json); ?>;
acf_render_field_setting( $field, array(
'label' => __('Show Media Upload Buttons?','acf'),
'instructions' => '',
'type' => 'radio',
'name' => 'media_upload',
'layout' => 'horizontal',
'choices' => array(
1 => __("Yes",'acf'),
0 => __("No",'acf'),
)
'type' => 'true_false',
'ui' => 1,
));
// delay
acf_render_field_setting( $field, array(
'label' => __('Delay initialization?','acf'),
'instructions' => __('TinyMCE will not be initalized until field is clicked','acf'),
'name' => 'delay',
'type' => 'true_false',
'ui' => 1,
));
}

View File

@ -387,20 +387,15 @@ class acf_form_taxonomy {
function save_term( $term_id, $tt_id, $taxonomy ) {
// verify and remove nonce
if( ! acf_verify_nonce('taxonomy') ) {
if( !acf_verify_nonce('taxonomy') ) return $term_id;
// valied and show errors
acf_validate_save_post( true );
return $term_id;
}
// save data
if( acf_validate_save_post(true) ) {
acf_save_post("{$taxonomy}_{$term_id}");
}
// save
acf_save_post('term_' . $term_id);
}
@ -420,11 +415,30 @@ class acf_form_taxonomy {
function delete_term( $term, $tt_id, $taxonomy, $deleted_term ) {
// bail early if termmeta table exists
if( acf_isset_termmeta() ) return $term;
// globals
global $wpdb;
$values = $wpdb->query($wpdb->prepare(
"DELETE FROM $wpdb->options WHERE option_name LIKE %s",
'%' . $taxonomy . '_' . $term . '%'
// vars
$search = $taxonomy . '_' . $term . '_%';
$_search = '_' . $search;
// escape '_'
// http://stackoverflow.com/questions/2300285/how-do-i-escape-in-sql-server
$search = str_replace('_', '\_', $search);
$_search = str_replace('_', '\_', $_search);
// delete
$result = $wpdb->query($wpdb->prepare(
"DELETE FROM $wpdb->options WHERE option_name LIKE %s OR option_name LIKE %s",
$search,
$_search
));
}

View File

@ -215,7 +215,7 @@ class acf_form_user {
// show title
if( $user_form === 'register' ) $show_title = false;
//if( $user_form === 'register' ) $show_title = false;
// args
@ -324,6 +324,19 @@ class acf_form_user {
<?php else: ?>
#registerform h2 {
margin: 1em 0;
}
#registerform .acf-field .acf-label {
margin-bottom: 0;
}
#registerform .acf-field .acf-label label {
font-weight: normal;
font-size: 14px;
}
#registerform p.submit {
text-align: right;
}

Binary file not shown.

View File

@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Advanced Custom Fields Pro\n"
"POT-Creation-Date: 2016-05-19 15:59+0200\n"
"PO-Revision-Date: 2016-05-24 12:56+0200\n"
"Last-Translator: \n"
"PO-Revision-Date: 2016-11-03 17:07+1000\n"
"Last-Translator: Elliot Condon <e@elliotcondon.com>\n"
"Language-Team: Adil el hallaoui <servicewb11@gmail.com>\n"
"Language: ar\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.8.2\n"
"X-Generator: Poedit 1.8.1\n"
"X-Poedit-Basepath: ..\n"
"X-Poedit-WPHeader: acf.php\n"
"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
@ -593,6 +593,10 @@ msgstr "حذف"
msgid "Error"
msgstr "خطأ"
#: fields/oembed.php:220 fields/taxonomy.php:900
msgid "Error."
msgstr "خطأ."
#: admin/views/field-group-field.php:68
msgid "Field type does not exist"
msgstr "نوع حقل غير موجود"
@ -1267,12 +1271,8 @@ msgid "Site is up to date"
msgstr "الموقع حتى الآن"
#: admin/views/update-network.php:62 admin/views/update.php:16
msgid "Database Upgrade complete"
msgstr "ترقية قاعدة البيانات كاملة"
#: admin/views/update-network.php:62
msgid "Return to network dashboard"
msgstr "العودة إلى لوحة معلومات الشبكة"
msgid "Database Upgrade complete. <a href=\"%s\">Return to network dashboard</a>"
msgstr "ترقية قاعدة البيانات كاملة. <a href=\"%s\">العودة إلى لوحة معلومات الشبكة</a>"
#: admin/views/update-network.php:101 admin/views/update-notice.php:35
msgid ""
@ -1321,8 +1321,8 @@ msgid "See what's new"
msgstr "أنظر ما هو الجديد في"
#: admin/views/update.php:110
msgid "No updates available"
msgstr "لا توجد تحديثات متوفرة"
msgid "No updates available."
msgstr "لا توجد تحديثات متوفرة."
#: api/api-helpers.php:937
msgid "Thumbnail"
@ -1873,8 +1873,8 @@ msgid "Enter URL"
msgstr "قم بإدخال عنوان URL"
#: fields/oembed.php:225
msgid "No embed found for the given URL"
msgstr "تضمين لا العثور على عنوان URL معين"
msgid "No embed found for the given URL."
msgstr "تضمين لا العثور على عنوان URL معين."
#: fields/oembed.php:261 fields/oembed.php:272
msgid "Embed Size"
@ -2260,12 +2260,8 @@ msgid "Options Updated"
msgstr "تم تحديث الإعدادات"
#: pro/admin/options-page.php:282
msgid "No Custom Field Groups found for this options page"
msgstr "يتم العثور على أية \"مجموعات حقل مخصص\" لهذه الصفحة خيارات"
#: pro/admin/options-page.php:282
msgid "Create a Custom Field Group"
msgstr "قم بإنشاء مجموعة حقل مخصص"
msgid "No Custom Field Groups found for this options page. <a href=\"%s\">Create a Custom Field Group</a>"
msgstr "يتم العثور على أية \"مجموعات حقل مخصص\" لهذه الصفحة خيارات. <a href=\"%s\">قم بإنشاء مجموعة حقل مخصص</a>"
#: pro/admin/settings-updates.php:137
msgid "<b>Error</b>. Could not connect to update server"

Binary file not shown.

View File

@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: Advanced Custom Fields\n"
"Report-Msgid-Bugs-To: http://support.advancedcustomfields.com\n"
"POT-Creation-Date: 2016-02-05 11:05+1000\n"
"PO-Revision-Date: 2016-04-07 10:29+1000\n"
"PO-Revision-Date: 2016-11-03 17:07+1000\n"
"Last-Translator: Elliot Condon <e@elliotcondon.com>\n"
"Language-Team: Elliot Condon <e@elliotcondon.com>\n"
"MIME-Version: 1.0\n"
@ -578,6 +578,10 @@ msgstr "Изтриване"
msgid "Error"
msgstr "Грешка"
#: fields/oembed.php:220 fields/taxonomy.php:900
msgid "Error."
msgstr "Грешка."
#: admin/views/field-group-field.php:68
msgid "Field type does not exist"
msgstr "Типът поле не съществува"
@ -1272,12 +1276,8 @@ msgid "Site is up to date"
msgstr "Сайтът няма нужда от обновяване"
#: admin/views/update-network.php:62 admin/views/update.php:16
msgid "Database Upgrade complete"
msgstr "Обновяването на базата данни бе завършено"
#: admin/views/update-network.php:62
msgid "Return to network dashboard"
msgstr "Връщане към мрежовото табло"
msgid "Database Upgrade complete. <a href=\"%s\">Return to network dashboard</a>"
msgstr "Обновяването на базата данни бе завършено. <a href=\"%s\">Връщане към мрежовото табло</a>"
#: admin/views/update-network.php:101 admin/views/update-notice.php:35
msgid ""
@ -1326,8 +1326,8 @@ msgid "See what's new"
msgstr "Вижте какво е новото"
#: admin/views/update.php:110
msgid "No updates available"
msgstr "Няма налични актуализации"
msgid "No updates available."
msgstr "Няма налични актуализации."
#: api/api-helpers.php:909
msgid "Thumbnail"
@ -1878,8 +1878,8 @@ msgid "Enter URL"
msgstr "Въведете URL адрес"
#: fields/oembed.php:225
msgid "No embed found for the given URL"
msgstr "Няма открито вграждане за посочения URL адрес"
msgid "No embed found for the given URL."
msgstr "Няма открито вграждане за посочения URL адрес."
#: fields/oembed.php:261 fields/oembed.php:272
msgid "Embed Size"
@ -2262,12 +2262,8 @@ msgid "Options Updated"
msgstr "Опциите бяха актуализирани"
#: pro/admin/options-page.php:282
msgid "No Custom Field Groups found for this options page"
msgstr "Няма намерени групи полета за тази страница с опции"
#: pro/admin/options-page.php:282
msgid "Create a Custom Field Group"
msgstr "Създаване на група полета"
msgid "No Custom Field Groups found for this options page. <a href=\"%s\">Create a Custom Field Group</a>"
msgstr "Няма намерени групи полета за тази страница с опции. <a href=\"%s\">Създаване на група полета</a>"
#: pro/admin/settings-updates.php:137
msgid "<b>Error</b>. Could not connect to update server"

Binary file not shown.

View File

@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: Advanced Custom Fields Pro v5.2.9\n"
"Report-Msgid-Bugs-To: http://support.advancedcustomfields.com\n"
"POT-Creation-Date: 2015-08-11 23:09+0200\n"
"PO-Revision-Date: 2016-04-07 10:29+1000\n"
"PO-Revision-Date: 2016-11-03 17:08+1000\n"
"Last-Translator: Elliot Condon <e@elliotcondon.com>\n"
"Language-Team: webees.cz s.r.o. <jakubmachala@webees.cz>\n"
"Language: cs_CZ\n"
@ -579,6 +579,10 @@ msgstr "Smazat"
msgid "Error"
msgstr ""
#: fields/oembed.php:220 fields/taxonomy.php:900
msgid "Error."
msgstr ""
#: admin/views/field-group-field.php:68
msgid "Field type does not exist"
msgstr ""
@ -1224,11 +1228,7 @@ msgid "Site is up to date"
msgstr ""
#: admin/views/update-network.php:62 admin/views/update.php:16
msgid "Database Upgrade complete"
msgstr ""
#: admin/views/update-network.php:62
msgid "Return to network dashboard"
msgid "Database Upgrade complete. <a href=\"%s\">Return to network dashboard</a>"
msgstr ""
#: admin/views/update-network.php:101 admin/views/update-notice.php:35
@ -1274,7 +1274,7 @@ msgid "See what's new"
msgstr ""
#: admin/views/update.php:110
msgid "No updates available"
msgid "No updates available."
msgstr ""
#: api/api-helpers.php:821
@ -1797,7 +1797,7 @@ msgid "Enter URL"
msgstr ""
#: fields/oembed.php:212
msgid "No embed found for the given URL"
msgid "No embed found for the given URL."
msgstr ""
#: fields/oembed.php:248 fields/oembed.php:259
@ -2200,13 +2200,9 @@ msgid "Options Updated"
msgstr "Nastavení aktualizováno"
#: pro/admin/options-page.php:304
msgid "No Custom Field Groups found for this options page"
msgid "No Custom Field Groups found for this options page. <a href=\"%s\">Create a Custom Field Group</a>"
msgstr ""
#: pro/admin/options-page.php:304
msgid "Create a Custom Field Group"
msgstr "Vytvořit vlastní skupinu polí"
#: pro/admin/settings-updates.php:137
msgid "<b>Error</b>. Could not connect to update server"
msgstr ""

Binary file not shown.

View File

@ -1,17 +1,17 @@
msgid ""
msgstr ""
"Project-Id-Version: Advanced Custom Fields Pro v5.4.0\n"
"Project-Id-Version: Advanced Custom Fields Pro v5.5.0\n"
"Report-Msgid-Bugs-To: http://support.advancedcustomfields.com\n"
"POT-Creation-Date: 2016-07-28 10:37+0200\n"
"PO-Revision-Date: 2016-07-28 10:53+0200\n"
"Last-Translator: Raphael Hüni <rafhun@gmail.com>\n"
"POT-Creation-Date: 2016-10-14 08:58+0200\n"
"PO-Revision-Date: 2016-11-03 17:08+1000\n"
"Last-Translator: Elliot Condon <e@elliotcondon.com>\n"
"Language-Team: Raphael Hüni <rafhun@gmail.com>\n"
"Language: de_CH\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.8.5\n"
"X-Generator: Poedit 1.8.1\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
"esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
@ -28,109 +28,109 @@ msgid "Advanced Custom Fields"
msgstr "Advanced Custom Fields"
# @ acf
#: acf.php:271 admin/admin.php:61
#: acf.php:273 admin/admin.php:61
msgid "Field Groups"
msgstr "Feld-Gruppen"
# @ acf
#: acf.php:272
#: acf.php:274
msgid "Field Group"
msgstr "Feld-Gruppe"
# @ acf
#: acf.php:273 acf.php:305 admin/admin.php:62
#: acf.php:275 acf.php:307 admin/admin.php:62
#: pro/fields/flexible-content.php:500
msgid "Add New"
msgstr "Erstellen"
# @ acf
#: acf.php:274
#: acf.php:276
msgid "Add New Field Group"
msgstr "Neue Feld-Gruppe erstellen"
# @ acf
#: acf.php:275
#: acf.php:277
msgid "Edit Field Group"
msgstr "Feld-Gruppe bearbeiten"
# @ acf
#: acf.php:276
#: acf.php:278
msgid "New Field Group"
msgstr "Neue Feld-Gruppe"
# @ acf
#: acf.php:277
#: acf.php:279
msgid "View Field Group"
msgstr "Feld-Gruppe anzeigen"
# @ acf
#: acf.php:278
#: acf.php:280
msgid "Search Field Groups"
msgstr "Feld-Gruppen suchen"
# @ acf
#: acf.php:279
#: acf.php:281
msgid "No Field Groups found"
msgstr "Keine Feld-Gruppen gefunden"
# @ acf
#: acf.php:280
#: acf.php:282
msgid "No Field Groups found in Trash"
msgstr "Keine Feld-Gruppen im Papierkorb gefunden"
# @ acf
#: acf.php:303 admin/field-group.php:182 admin/field-group.php:280
#: admin/field-groups.php:528 pro/fields/clone.php:662
#: acf.php:305 admin/field-group.php:182 admin/field-group.php:280
#: admin/field-groups.php:528 pro/fields/clone.php:688
msgid "Fields"
msgstr "Felder"
# @ acf
#: acf.php:304
#: acf.php:306
msgid "Field"
msgstr "Feld"
# @ acf
#: acf.php:306
#: acf.php:308
msgid "Add New Field"
msgstr "Feld hinzufügen"
# @ acf
#: acf.php:307
#: acf.php:309
msgid "Edit Field"
msgstr "Feld bearbeiten"
# @ acf
#: acf.php:308 admin/views/field-group-fields.php:54
#: acf.php:310 admin/views/field-group-fields.php:54
#: admin/views/settings-info.php:111
msgid "New Field"
msgstr "Neues Feld"
# @ acf
#: acf.php:309
#: acf.php:311
msgid "View Field"
msgstr "Feld anzeigen"
# @ acf
#: acf.php:310
#: acf.php:312
msgid "Search Fields"
msgstr "Felder suchen"
# @ acf
#: acf.php:311
#: acf.php:313
msgid "No Fields found"
msgstr "Keine Felder gefunden"
# @ acf
#: acf.php:312
#: acf.php:314
msgid "No Fields found in Trash"
msgstr "Keine Feld-Gruppen im Papierkorb gefunden"
#: acf.php:351 admin/field-group.php:395 admin/field-groups.php:585
#: acf.php:353 admin/field-group.php:395 admin/field-groups.php:585
#: admin/views/field-group-options.php:13
msgid "Disabled"
msgstr "Deaktiviert"
#: acf.php:356
#: acf.php:358
#, php-format
msgid "Disabled <span class=\"count\">(%s)</span>"
msgid_plural "Disabled <span class=\"count\">(%s)</span>"
@ -216,7 +216,7 @@ msgstr "kopieren"
#: admin/views/field-group-field-conditional-logic.php:62
#: admin/views/field-group-field-conditional-logic.php:162
#: admin/views/field-group-locations.php:59
#: admin/views/field-group-locations.php:135 api/api-helpers.php:3952
#: admin/views/field-group-locations.php:135 api/api-helpers.php:3973
msgid "or"
msgstr "oder"
@ -265,96 +265,96 @@ msgid "Active"
msgstr "Aktiviert"
# @ acf
#: admin/field-group.php:842
#: admin/field-group.php:846
msgid "Front Page"
msgstr "Startseite"
# @ acf
#: admin/field-group.php:843
#: admin/field-group.php:847
msgid "Posts Page"
msgstr "Beitrags-Seite"
# @ acf
#: admin/field-group.php:844
#: admin/field-group.php:848
msgid "Top Level Page (no parent)"
msgstr "Seite ohne übergeordnete Seiten"
# @ acf
#: admin/field-group.php:845
#: admin/field-group.php:849
msgid "Parent Page (has children)"
msgstr "Übergeordnete Seite (mit Unterseiten)"
# @ acf
#: admin/field-group.php:846
#: admin/field-group.php:850
msgid "Child Page (has parent)"
msgstr "Unterseite (mit übergeordneter Seite)"
# @ acf
#: admin/field-group.php:862
#: admin/field-group.php:866
msgid "Default Template"
msgstr "Standard-Template"
# @ acf
#: admin/field-group.php:885
#: admin/field-group.php:889
msgid "Logged in"
msgstr "ist angemeldet"
# @ acf
#: admin/field-group.php:886
#: admin/field-group.php:890
msgid "Viewing front end"
msgstr "ist im Front-End"
# @ acf
#: admin/field-group.php:887
#: admin/field-group.php:891
msgid "Viewing back end"
msgstr "ist im Back-End"
# @ acf
#: admin/field-group.php:906
#: admin/field-group.php:910
msgid "Super Admin"
msgstr "Super-Admin"
# @ acf
#: admin/field-group.php:917 admin/field-group.php:925
#: admin/field-group.php:939 admin/field-group.php:946
#: admin/field-group.php:963 admin/field-group.php:980 fields/file.php:241
#: admin/field-group.php:921 admin/field-group.php:929
#: admin/field-group.php:943 admin/field-group.php:950
#: admin/field-group.php:967 admin/field-group.php:984 fields/file.php:241
#: fields/image.php:237 pro/fields/gallery.php:676
msgid "All"
msgstr "Alle"
# @ acf
#: admin/field-group.php:926
#: admin/field-group.php:930
msgid "Add / Edit"
msgstr "Hinzufügen / Bearbeiten"
# @ acf
#: admin/field-group.php:927
#: admin/field-group.php:931
msgid "Register"
msgstr "Registrieren"
# @ acf
#: admin/field-group.php:1167
#: admin/field-group.php:1171
msgid "Move Complete."
msgstr "Verschieben erfolgreich abgeschlossen."
# @ acf
#: admin/field-group.php:1168
#: admin/field-group.php:1172
#, php-format
msgid "The %s field can now be found in the %s field group"
msgstr "Das Feld \"%s\" wurde in die %s Feld-Gruppe verschoben"
# @ acf
#: admin/field-group.php:1170
#: admin/field-group.php:1174
msgid "Close Window"
msgstr "Schliessen"
# @ acf
#: admin/field-group.php:1205
#: admin/field-group.php:1209
msgid "Please select the destination for this field"
msgstr "In welche Feld-Gruppe solle dieses Feld verschoben werden"
# @ acf
#: admin/field-group.php:1212
#: admin/field-group.php:1216
msgid "Move Field"
msgstr "Feld verschieben"
@ -399,8 +399,8 @@ msgid "Sync available"
msgstr "Synchronisierung verfügbar"
# @ acf
#: admin/field-groups.php:525 api/api-template.php:1077
#: api/api-template.php:1290 pro/fields/gallery.php:370
#: admin/field-groups.php:525 api/api-template.php:1039
#: pro/fields/gallery.php:370
msgid "Title"
msgstr "Titel"
@ -493,18 +493,24 @@ msgid "Duplicate"
msgstr "Duplizieren"
# @ acf
#: admin/field-groups.php:751
#: admin/field-groups.php:717 fields/google-map.php:133
#: fields/relationship.php:742
msgid "Search"
msgstr "Suchen"
# @ acf
#: admin/field-groups.php:767
#, php-format
msgid "Select %s"
msgstr "%s auswählen"
# @ acf
#: admin/field-groups.php:759
#: admin/field-groups.php:775
msgid "Synchronise field group"
msgstr "Synchronisiere Feld-Gruppe"
# @ acf
#: admin/field-groups.php:759 admin/field-groups.php:776
#: admin/field-groups.php:775 admin/field-groups.php:792
msgid "Sync"
msgstr "Synchronisieren"
@ -581,8 +587,8 @@ msgstr "Fehler beim Überprüfen der Anfrage"
# @ acf
#: admin/update.php:243 admin/views/update.php:110
msgid "No updates available"
msgstr "Keine Aktualisierungen verfügbar"
msgid "No updates available."
msgstr "Keine Aktualisierungen verfügbar."
#: admin/update.php:260
msgid "Error loading update"
@ -602,9 +608,9 @@ msgstr "Bedingungen für die Anzeige"
#: fields/select.php:483 fields/select.php:497 fields/select.php:511
#: fields/tab.php:130 fields/taxonomy.php:785 fields/taxonomy.php:799
#: fields/taxonomy.php:813 fields/taxonomy.php:827 fields/user.php:399
#: fields/user.php:413 fields/wysiwyg.php:418
#: pro/admin/views/settings-updates.php:93 pro/fields/clone.php:716
#: pro/fields/clone.php:734
#: fields/user.php:413 fields/wysiwyg.php:464
#: pro/admin/views/settings-updates.php:93 pro/fields/clone.php:742
#: pro/fields/clone.php:760
msgid "Yes"
msgstr "Ja"
@ -617,9 +623,9 @@ msgstr "Ja"
#: fields/select.php:484 fields/select.php:498 fields/select.php:512
#: fields/tab.php:131 fields/taxonomy.php:700 fields/taxonomy.php:786
#: fields/taxonomy.php:800 fields/taxonomy.php:814 fields/taxonomy.php:828
#: fields/user.php:400 fields/user.php:414 fields/wysiwyg.php:419
#: pro/admin/views/settings-updates.php:103 pro/fields/clone.php:717
#: pro/fields/clone.php:735
#: fields/user.php:400 fields/user.php:414 fields/wysiwyg.php:465
#: pro/admin/views/settings-updates.php:103 pro/fields/clone.php:743
#: pro/fields/clone.php:761
msgid "No"
msgstr "Nein"
@ -654,7 +660,7 @@ msgstr "Regel-Gruppe hinzufügen"
# @ acf
#: admin/views/field-group-field.php:50 pro/fields/flexible-content.php:346
#: pro/fields/repeater.php:302
#: pro/fields/repeater.php:311
msgid "Drag to reorder"
msgstr "Ziehen zum Sortieren"
@ -700,6 +706,10 @@ msgstr "Löschen"
msgid "Error"
msgstr "Fehler"
#: fields/oembed.php:220 fields/taxonomy.php:900
msgid "Error."
msgstr "Fehler."
# @ acf
#: admin/views/field-group-field.php:69
msgid "Field type does not exist"
@ -1564,13 +1574,8 @@ msgstr "Seite ist aktuell"
# @ acf
#: admin/views/update-network.php:67 admin/views/update.php:16
msgid "Database Upgrade complete"
msgstr "Datenbank-Aktualisierung fertiggestellt"
# @ acf
#: admin/views/update-network.php:67
msgid "Return to network dashboard"
msgstr "Zum Netzwerk Dashboard"
msgid "Database Upgrade complete. <a href=\"%s\">Return to network dashboard</a>"
msgstr "Datenbank-Aktualisierung fertiggestellt. <a href=\"%s\">Zum Netzwerk Dashboard</a>"
# @ acf
#: admin/views/update-network.php:106 admin/views/update-notice.php:35
@ -1624,101 +1629,101 @@ msgid "See what's new"
msgstr "Was ist neu"
# @ acf
#: api/api-helpers.php:944
#: api/api-helpers.php:950
msgid "Thumbnail"
msgstr "Miniaturbild"
# @ acf
#: api/api-helpers.php:945
#: api/api-helpers.php:951
msgid "Medium"
msgstr "Mittel"
# @ acf
#: api/api-helpers.php:946
#: api/api-helpers.php:952
msgid "Large"
msgstr "Gross"
# @ acf
#: api/api-helpers.php:995
#: api/api-helpers.php:1001
msgid "Full Size"
msgstr "Volle Grösse"
# @ acf
#: api/api-helpers.php:1207 api/api-helpers.php:1770 pro/fields/clone.php:849
#: api/api-helpers.php:1213 api/api-helpers.php:1776 pro/fields/clone.php:879
msgid "(no title)"
msgstr "(ohne Titel)"
#: api/api-helpers.php:1807 fields/page_link.php:284 fields/post_object.php:283
#: fields/taxonomy.php:989
#: api/api-helpers.php:1813 fields/page_link.php:284
#: fields/post_object.php:283 fields/taxonomy.php:989
msgid "Parent"
msgstr "Eltern"
# @ acf
#: api/api-helpers.php:3873
#: api/api-helpers.php:3894
#, php-format
msgid "Image width must be at least %dpx."
msgstr "Die Breite des Bildes muss mindestens %dpx sein."
# @ acf
#: api/api-helpers.php:3878
#: api/api-helpers.php:3899
#, php-format
msgid "Image width must not exceed %dpx."
msgstr "Die Breite des Bildes darf %dpx nicht überschreiten."
# @ acf
#: api/api-helpers.php:3894
#: api/api-helpers.php:3915
#, php-format
msgid "Image height must be at least %dpx."
msgstr "Die Höhe des Bildes muss mindestens %dpx sein."
# @ acf
#: api/api-helpers.php:3899
#: api/api-helpers.php:3920
#, php-format
msgid "Image height must not exceed %dpx."
msgstr "Die Höhe des Bild darf %dpx nicht überschreiten."
# @ acf
#: api/api-helpers.php:3917
#: api/api-helpers.php:3938
#, php-format
msgid "File size must be at least %s."
msgstr "Die Dateigrösse muss mindestens %s sein."
# @ acf
#: api/api-helpers.php:3922
#: api/api-helpers.php:3943
#, php-format
msgid "File size must must not exceed %s."
msgstr "Die Dateigrösse darf %s nicht überschreiten."
# @ acf
#: api/api-helpers.php:3956
#: api/api-helpers.php:3977
#, php-format
msgid "File type must be %s."
msgstr "Der Dateityp muss %s sein."
#: api/api-template.php:1092
# @ acf
#: api/api-template.php:1048 core/field.php:133
msgid "Content"
msgstr "Inhalt"
#: api/api-template.php:1056
msgid "Validate Email"
msgstr "E-Mail bestätigen"
#: api/api-template.php:1106
msgid "Spam Detected"
msgstr "Spam erkannt"
# @ acf
#: api/api-template.php:1235 pro/api/api-options-page.php:50
#: api/api-template.php:1309 pro/api/api-options-page.php:50
#: pro/fields/gallery.php:588
msgid "Update"
msgstr "Aktualisieren"
# @ acf
#: api/api-template.php:1236
#: api/api-template.php:1310
msgid "Post updated"
msgstr "Beitrag aktualisiert"
# @ acf
#: api/api-template.php:1304 core/field.php:133
msgid "Content"
msgstr "Inhalt"
#: api/api-template.php:1369
msgid "Validate Email"
msgstr "E-Mail bestätigen"
# @ acf
#: core/field.php:132
msgid "Basic"
@ -1741,8 +1746,8 @@ msgstr "jQuery"
# @ acf
#: core/field.php:137 fields/checkbox.php:224 fields/radio.php:293
#: pro/fields/clone.php:692 pro/fields/flexible-content.php:495
#: pro/fields/flexible-content.php:544 pro/fields/repeater.php:459
#: pro/fields/clone.php:718 pro/fields/flexible-content.php:495
#: pro/fields/flexible-content.php:544 pro/fields/repeater.php:468
msgid "Layout"
msgstr "Layout"
@ -1762,7 +1767,7 @@ msgid "Validation successful"
msgstr "Überprüfung erfolgreich"
# @ acf
#: core/input.php:261 core/validation.php:306 forms/widget.php:234
#: core/input.php:261 core/validation.php:326 forms/widget.php:234
msgid "Validation failed"
msgstr "Überprüfung fehlgeschlagen"
@ -1803,7 +1808,7 @@ msgid "Uploaded to this post"
msgstr "Zu diesem Beitrag hochgeladen"
# @ acf
#: core/validation.php:207
#: core/validation.php:211
#, php-format
msgid "%s value is required"
msgstr "%s Wert ist notwendig"
@ -1841,10 +1846,10 @@ msgid "red : Red"
msgstr "rot : Rot"
# @ acf
#: fields/checkbox.php:215 fields/color_picker.php:147 fields/email.php:124
#: fields/number.php:150 fields/radio.php:284 fields/select.php:455
#: fields/text.php:148 fields/textarea.php:145 fields/true_false.php:115
#: fields/url.php:117 fields/wysiwyg.php:379
#: fields/checkbox.php:215 fields/color_picker.php:147 fields/email.php:133
#: fields/number.php:145 fields/radio.php:284 fields/select.php:455
#: fields/text.php:142 fields/textarea.php:139 fields/true_false.php:115
#: fields/url.php:114 fields/wysiwyg.php:425
msgid "Default Value"
msgstr "Standardwert"
@ -1960,8 +1965,8 @@ msgstr "Das Datums-Format für die Anzeige in der Bearbeitungs-Ansicht"
# @ acf
#: fields/date_picker.php:210 fields/date_time_picker.php:200
#: fields/post_object.php:455 fields/relationship.php:783 fields/select.php:520
#: fields/time_picker.php:140
#: fields/post_object.php:455 fields/relationship.php:783
#: fields/select.php:520 fields/time_picker.php:140
msgid "Return Format"
msgstr "Rückgabewert"
@ -2061,45 +2066,45 @@ msgid "Email"
msgstr "E-Mail"
# @ acf
#: fields/email.php:125 fields/number.php:151 fields/radio.php:285
#: fields/text.php:149 fields/textarea.php:146 fields/url.php:118
#: fields/wysiwyg.php:380
#: fields/email.php:134 fields/number.php:146 fields/radio.php:285
#: fields/text.php:143 fields/textarea.php:140 fields/url.php:115
#: fields/wysiwyg.php:426
msgid "Appears when creating a new post"
msgstr "Erscheint bei der Erstellung eines neuen Beitrags"
# @ acf
#: fields/email.php:133 fields/number.php:159 fields/password.php:137
#: fields/text.php:157 fields/textarea.php:154 fields/url.php:126
#: fields/email.php:142 fields/number.php:154 fields/password.php:134
#: fields/text.php:151 fields/textarea.php:148 fields/url.php:123
msgid "Placeholder Text"
msgstr "Platzhalter-Text"
# @ acf
#: fields/email.php:134 fields/number.php:160 fields/password.php:138
#: fields/text.php:158 fields/textarea.php:155 fields/url.php:127
#: fields/email.php:143 fields/number.php:155 fields/password.php:135
#: fields/text.php:152 fields/textarea.php:149 fields/url.php:124
msgid "Appears within the input"
msgstr "Platzhalter-Text solange keine Eingabe im Feld vorgenommen wurde"
# @ acf
#: fields/email.php:142 fields/number.php:168 fields/password.php:146
#: fields/text.php:166
#: fields/email.php:151 fields/number.php:163 fields/password.php:143
#: fields/text.php:160
msgid "Prepend"
msgstr "Voranstellen"
# @ acf
#: fields/email.php:143 fields/number.php:169 fields/password.php:147
#: fields/text.php:167
#: fields/email.php:152 fields/number.php:164 fields/password.php:144
#: fields/text.php:161
msgid "Appears before the input"
msgstr "Wird dem Eingabefeld vorangestellt"
# @ acf
#: fields/email.php:151 fields/number.php:177 fields/password.php:155
#: fields/text.php:175
#: fields/email.php:160 fields/number.php:172 fields/password.php:152
#: fields/text.php:169
msgid "Append"
msgstr "Anhängen"
# @ acf
#: fields/email.php:152 fields/number.php:178 fields/password.php:156
#: fields/text.php:176
#: fields/email.php:161 fields/number.php:173 fields/password.php:153
#: fields/text.php:170
msgid "Appears after the input"
msgstr "Wird dem Eingabefeld hinten angestellt"
@ -2208,11 +2213,6 @@ msgstr "Lokalisiere"
msgid "Sorry, this browser does not support geolocation"
msgstr "Dieser Browser unterstützt keine Geo-Lokation"
# @ acf
#: fields/google-map.php:133 fields/relationship.php:742
msgid "Search"
msgstr "Suchen"
# @ acf
#: fields/google-map.php:134
msgid "Clear location"
@ -2344,27 +2344,27 @@ msgid "Message"
msgstr "Nachricht"
# @ acf
#: fields/message.php:125 fields/textarea.php:182
#: fields/message.php:125 fields/textarea.php:176
msgid "New Lines"
msgstr "Neue Zeilen"
# @ acf
#: fields/message.php:126 fields/textarea.php:183
#: fields/message.php:126 fields/textarea.php:177
msgid "Controls how new lines are rendered"
msgstr "Legt fest wie Zeilenumbrüche gehandhabt werden"
# @ acf
#: fields/message.php:130 fields/textarea.php:187
#: fields/message.php:130 fields/textarea.php:181
msgid "Automatically add paragraphs"
msgstr "Absätze automatisch hinzufügen"
# @ acf
#: fields/message.php:131 fields/textarea.php:188
#: fields/message.php:131 fields/textarea.php:182
msgid "Automatically add &lt;br&gt;"
msgstr "Zeilenumbrüche ( &lt;br&gt; ) automatisch hinzufügen"
# @ acf
#: fields/message.php:132 fields/textarea.php:189
#: fields/message.php:132 fields/textarea.php:183
msgid "No Formatting"
msgstr "Keine Formatierung"
@ -2386,33 +2386,33 @@ msgid "Number"
msgstr "Numerisch"
# @ acf
#: fields/number.php:186
#: fields/number.php:181
msgid "Minimum Value"
msgstr "Mindestwert"
# @ acf
#: fields/number.php:195
#: fields/number.php:190
msgid "Maximum Value"
msgstr "Maximalwert"
# @ acf
#: fields/number.php:204
#: fields/number.php:199
msgid "Step Size"
msgstr "Schrittweite"
# @ acf
#: fields/number.php:242
#: fields/number.php:237
msgid "Value must be a number"
msgstr "Wert muss eine Zahl sein"
# @ acf
#: fields/number.php:260
#: fields/number.php:255
#, php-format
msgid "Value must be equal to or higher than %d"
msgstr "Wert muss grösser oder gleich %d sein"
# @ acf
#: fields/number.php:268
#: fields/number.php:263
#, php-format
msgid "Value must be equal to or lower than %d"
msgstr "Wert muss kleiner oder gleich %d sein"
@ -2429,8 +2429,8 @@ msgstr "URL eingeben"
# @ acf
#: fields/oembed.php:225
msgid "No embed found for the given URL"
msgstr "Keine Inhalte für die eingegebene URL gefunden"
msgid "No embed found for the given URL."
msgstr "Keine Inhalte für die eingegebene URL gefunden."
# @ acf
#: fields/oembed.php:261 fields/oembed.php:272
@ -2834,12 +2834,12 @@ msgid "Text"
msgstr "Text einzeilig"
# @ acf
#: fields/text.php:184 fields/textarea.php:163
#: fields/text.php:178 fields/textarea.php:157
msgid "Character Limit"
msgstr "Zeichenbegrenzung"
# @ acf
#: fields/text.php:185 fields/textarea.php:164
#: fields/text.php:179 fields/textarea.php:158
msgid "Leave blank for no limit"
msgstr "Ein leeres Eingabefeld bedeutet keine Begrenzung"
@ -2849,12 +2849,12 @@ msgid "Text Area"
msgstr "Text mehrzeilig"
# @ acf
#: fields/textarea.php:172
#: fields/textarea.php:166
msgid "Rows"
msgstr "Zeilenanzahl"
# @ acf
#: fields/textarea.php:173
#: fields/textarea.php:167
msgid "Sets the textarea height"
msgstr "Definiert die Höhe des Textfelds"
@ -2878,7 +2878,7 @@ msgid "Url"
msgstr "URL"
# @ acf
#: fields/url.php:168
#: fields/url.php:165
msgid "Value must be a valid URL"
msgstr "Bitte eine gültige URL eingeben"
@ -2893,48 +2893,48 @@ msgid "All user roles"
msgstr "Alle Benutzerrollen"
# @ acf
#: fields/wysiwyg.php:37
#: fields/wysiwyg.php:36
msgid "Wysiwyg Editor"
msgstr "WYSIWYG-Editor"
# @ acf
#: fields/wysiwyg.php:331
#: fields/wysiwyg.php:377
msgid "Visual"
msgstr "Visuell"
# @ acf
#: fields/wysiwyg.php:332
#: fields/wysiwyg.php:378
msgctxt "Name for the Text editor tab (formerly HTML)"
msgid "Text"
msgstr "Text"
# @ acf
#: fields/wysiwyg.php:388
#: fields/wysiwyg.php:434
msgid "Tabs"
msgstr "Tabs"
# @ acf
#: fields/wysiwyg.php:393
#: fields/wysiwyg.php:439
msgid "Visual & Text"
msgstr "Visuell & Text"
# @ acf
#: fields/wysiwyg.php:394
#: fields/wysiwyg.php:440
msgid "Visual Only"
msgstr "Nur Visuell"
# @ acf
#: fields/wysiwyg.php:395
#: fields/wysiwyg.php:441
msgid "Text Only"
msgstr "Nur Text"
# @ acf
#: fields/wysiwyg.php:402
#: fields/wysiwyg.php:448
msgid "Toolbar"
msgstr "Werkzeugleiste"
# @ acf
#: fields/wysiwyg.php:412
#: fields/wysiwyg.php:458
msgid "Show Media Upload Buttons?"
msgstr "Button zum Hochladen von Medien anzeigen?"
@ -2983,13 +2983,8 @@ msgstr "Veröffentlichen"
# @ acf
#: pro/admin/options-page.php:315
msgid "No Custom Field Groups found for this options page"
msgstr "Keine Feld-Gruppen für die Options-Seite gefunden"
# @ acf
#: pro/admin/options-page.php:315
msgid "Create a Custom Field Group"
msgstr "Erstelle eine Feld-Gruppe"
msgid "No Custom Field Groups found for this options page. <a href=\"%s\">Create a Custom Field Group</a>"
msgstr "Keine Feld-Gruppen für die Options-Seite gefunden. <a href=\"%s\">Erstelle eine Feld-Gruppe</a>"
# @ acf
#: pro/admin/settings-updates.php:87
@ -3074,6 +3069,14 @@ msgstr "Aktualisierungs-Hinweis"
msgid "Options"
msgstr "Optionen"
#: pro/api/api-pro.php:328
msgid ""
"Error validating license URL (website does not match). Please re-activate "
"your license"
msgstr ""
"Fehler bei der Überprüfung der Lizenz URL (Webseite stimmt nicht überein). "
"Bitte reaktiviere deine Lizenz"
#: pro/core/updates.php:206
#, php-format
msgid ""
@ -3091,70 +3094,78 @@ msgctxt "noun"
msgid "Clone"
msgstr "Klonen"
#: pro/fields/clone.php:663
#: pro/fields/clone.php:689
msgid "Select one or more fields you wish to clone"
msgstr "Wähle eines oder mehrere Felder aus, das/die du klonen willst"
# @ acf
#: pro/fields/clone.php:678
#: pro/fields/clone.php:704
msgid "Display"
msgstr "Anzeige"
#: pro/fields/clone.php:679
#: pro/fields/clone.php:705
msgid "Specify the style used to render the clone field"
msgstr "Gib an, wie die geklonten Felder ausgegeben werden sollen"
#: pro/fields/clone.php:684
#: pro/fields/clone.php:710
msgid "Group (displays selected fields in a group within this field)"
msgstr ""
"Gruppe (zeigt die ausgewählten Felder in einer Gruppe innerhalb dieses Felds "
"an)"
#: pro/fields/clone.php:685
#: pro/fields/clone.php:711
msgid "Seamless (replaces this field with selected fields)"
msgstr "Nahtlos (ersetzt dieses Feld mit den ausgewählten Feldern)"
#: pro/fields/clone.php:693
#: pro/fields/clone.php:719
msgid "Specify the style used to render the selected fields"
msgstr "Gib an, wie die ausgewählten Felder angezeigt werden sollen"
# @ acf
#: pro/fields/clone.php:698 pro/fields/flexible-content.php:555
#: pro/fields/repeater.php:467
#: pro/fields/clone.php:724 pro/fields/flexible-content.php:555
#: pro/fields/repeater.php:476
msgid "Block"
msgstr "Block"
# @ acf
#: pro/fields/clone.php:699 pro/fields/flexible-content.php:554
#: pro/fields/repeater.php:466
#: pro/fields/clone.php:725 pro/fields/flexible-content.php:554
#: pro/fields/repeater.php:475
msgid "Table"
msgstr "Tabelle"
# @ acf
#: pro/fields/clone.php:700 pro/fields/flexible-content.php:556
#: pro/fields/repeater.php:468
#: pro/fields/clone.php:726 pro/fields/flexible-content.php:556
#: pro/fields/repeater.php:477
msgid "Row"
msgstr "Reihe"
#: pro/fields/clone.php:706
#: pro/fields/clone.php:732
#, php-format
msgid "Labels will be displayed as %s"
msgstr "Bezeichnungen werden angezeigt als %s"
#: pro/fields/clone.php:709
#: pro/fields/clone.php:735
msgid "Prefix Field Labels"
msgstr "Präfix für Feld Bezeichnungen"
#: pro/fields/clone.php:724
#: pro/fields/clone.php:750
#, php-format
msgid "Values will be saved as %s"
msgstr "Werte werden gespeichert als %s"
#: pro/fields/clone.php:727
#: pro/fields/clone.php:753
msgid "Prefix Field Names"
msgstr "Präfix für Feld Namen"
#: pro/fields/clone.php:883
#: pro/fields/clone.php:875
msgid "Unknown field"
msgstr "Unbekanntes Feld"
#: pro/fields/clone.php:914
msgid "Unknown field group"
msgstr "Unbekannte Feld-Gruppe"
#: pro/fields/clone.php:918
#, php-format
msgid "All fields from %s field group"
msgstr "Alle Felder der %s Feld-Gruppe"
@ -3230,7 +3241,7 @@ msgstr "Layout hinzufügen"
msgid "Remove layout"
msgstr "Layout entfernen"
#: pro/fields/flexible-content.php:356 pro/fields/repeater.php:304
#: pro/fields/flexible-content.php:356 pro/fields/repeater.php:313
msgid "Click to toggle"
msgstr "Zum Auswählen anklicken"
@ -3270,7 +3281,7 @@ msgid "Max"
msgstr "Max"
# @ acf
#: pro/fields/flexible-content.php:612 pro/fields/repeater.php:475
#: pro/fields/flexible-content.php:612 pro/fields/repeater.php:484
msgid "Button Label"
msgstr "Button-Beschriftung"
@ -3389,37 +3400,37 @@ msgid "Maximum rows reached ({max} rows)"
msgstr "Maximum der Einträge mit ({max} Reihen) erreicht"
# @ acf
#: pro/fields/repeater.php:349
#: pro/fields/repeater.php:358
msgid "Add row"
msgstr "Eintrag hinzufügen"
# @ acf
#: pro/fields/repeater.php:350
#: pro/fields/repeater.php:359
msgid "Remove row"
msgstr "Eintrag löschen"
# @ acf
#: pro/fields/repeater.php:398
#: pro/fields/repeater.php:407
msgid "Sub Fields"
msgstr "Wiederholungsfelder"
#: pro/fields/repeater.php:428
#: pro/fields/repeater.php:437
msgid "Collapsed"
msgstr "Zugeklappt"
#: pro/fields/repeater.php:429
#: pro/fields/repeater.php:438
msgid "Select a sub field to show when row is collapsed"
msgstr ""
"Wähle welches der Wiederholungsfelder im zugeklappten Zustand angezeigt "
"werden soll"
# @ acf
#: pro/fields/repeater.php:439
#: pro/fields/repeater.php:448
msgid "Minimum Rows"
msgstr "Minimum der Einträge"
# @ acf
#: pro/fields/repeater.php:449
#: pro/fields/repeater.php:458
msgid "Maximum Rows"
msgstr "Maximum der Einträge"

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: Advanced Custom Fields Pro v5.2.9\n"
"Report-Msgid-Bugs-To: http://support.advancedcustomfields.com\n"
"POT-Creation-Date: 2015-08-11 23:12+0200\n"
"PO-Revision-Date: 2016-04-07 10:30+1000\n"
"PO-Revision-Date: 2016-11-03 17:09+1000\n"
"Last-Translator: Elliot Condon <e@elliotcondon.com>\n"
"Language-Team: Héctor Garrofé <info@hectorgarrofe.com>\n"
"Language: es_ES\n"
@ -579,6 +579,10 @@ msgstr "Borrar"
msgid "Error"
msgstr "Error"
#: fields/oembed.php:220 fields/taxonomy.php:900
msgid "Error."
msgstr "Error."
#: admin/views/field-group-field.php:68
msgid "Field type does not exist"
msgstr "Tipo de campo inexistente"
@ -1286,12 +1290,8 @@ msgid "Site is up to date"
msgstr "El sitio está actualizado"
#: admin/views/update-network.php:62 admin/views/update.php:16
msgid "Database Upgrade complete"
msgstr "Actualización de base de datos completa"
#: admin/views/update-network.php:62
msgid "Return to network dashboard"
msgstr "Regresar al Escritorio de Red"
msgid "Database Upgrade complete. <a href=\"%s\">Return to network dashboard</a>"
msgstr "Actualización de base de datos completa. <a href=\"%s\">Regresar al Escritorio de Red</a>"
#: admin/views/update-network.php:101 admin/views/update-notice.php:35
msgid ""
@ -1340,8 +1340,8 @@ msgid "See what's new"
msgstr "Mira qué hay de nuevo"
#: admin/views/update.php:110
msgid "No updates available"
msgstr "No hay actualizaciones disponibles"
msgid "No updates available."
msgstr "No hay actualizaciones disponibles."
#: api/api-helpers.php:821
msgid "Thumbnail"
@ -1868,8 +1868,8 @@ msgid "Enter URL"
msgstr "Ingresa URL"
#: fields/oembed.php:212
msgid "No embed found for the given URL"
msgstr "No se encontró embed para la URL proporcionada"
msgid "No embed found for the given URL."
msgstr "No se encontró embed para la URL proporcionada."
#: fields/oembed.php:248 fields/oembed.php:259
msgid "Embed Size"
@ -2280,14 +2280,8 @@ msgid "Options Updated"
msgstr "Opciones Actualizadas"
#: pro/admin/options-page.php:304
msgid "No Custom Field Groups found for this options page"
msgstr ""
"No se encontraron grupos de campos personalizados para esta página de "
"opciones"
#: pro/admin/options-page.php:304
msgid "Create a Custom Field Group"
msgstr "Crear Grupo de Campos Personalizados"
msgid "No Custom Field Groups found for this options page. <a href=\"%s\">Create a Custom Field Group</a>"
msgstr "No se encontraron grupos de campos personalizados para esta página de opciones. <a href=\"%s\">Crear Grupo de Campos Personalizados</a>"
#: pro/admin/settings-updates.php:137
msgid "<b>Error</b>. Could not connect to update server"

Binary file not shown.

View File

@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: Advanced Custom Fields Pro v5.2.9\n"
"Report-Msgid-Bugs-To: http://support.advancedcustomfields.com\n"
"POT-Creation-Date: 2016-08-06 19:58+0430\n"
"PO-Revision-Date: 2016-08-06 20:09+0430\n"
"PO-Revision-Date: 2016-11-03 17:09+1000\n"
"Last-Translator: Elliot Condon <e@elliotcondon.com>\n"
"Language-Team: Kamel Kimiaei Fard <Kamel.Kimiaei.Fard@gmail.com>\n"
"Language: fa\n"
@ -11,7 +11,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Poedit 1.8.8\n"
"X-Generator: Poedit 1.8.1\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
"esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
@ -480,8 +480,8 @@ msgid "Error validating request"
msgstr ""
#: admin/update.php:243 admin/views/update.php:110
msgid "No updates available"
msgstr "به‌روزرسانی موجود نیست"
msgid "No updates available."
msgstr "به‌روزرسانی موجود نیست."
#: admin/update.php:260
msgid "Error loading update"
@ -582,6 +582,10 @@ msgstr "حذف"
msgid "Error"
msgstr "خطا"
#: fields/oembed.php:220 fields/taxonomy.php:900
msgid "Error."
msgstr "خطا."
#: admin/views/field-group-field.php:69
msgid "Field type does not exist"
msgstr "نوع زمینه وجود ندارد"
@ -1273,12 +1277,8 @@ msgid "Site is up to date"
msgstr "سایت به روز است"
#: admin/views/update-network.php:67 admin/views/update.php:16
msgid "Database Upgrade complete"
msgstr "به روزرسانی دیتابیس انجام شد"
#: admin/views/update-network.php:67
msgid "Return to network dashboard"
msgstr "بازگشت به پیشخوان شبکه"
msgid "Database Upgrade complete. <a href=\"%s\">Return to network dashboard</a>"
msgstr "به روزرسانی دیتابیس انجام شد. <a href=\"%s\">بازگشت به پیشخوان شبکه</a>"
#: admin/views/update-network.php:106 admin/views/update-notice.php:35
msgid ""
@ -1342,8 +1342,8 @@ msgstr "اندازه کامل"
msgid "(no title)"
msgstr "(بدون عنوان)"
#: api/api-helpers.php:1807 fields/page_link.php:284 fields/post_object.php:283
#: fields/taxonomy.php:989
#: api/api-helpers.php:1807 fields/page_link.php:284
#: fields/post_object.php:283 fields/taxonomy.php:989
msgid "Parent"
msgstr ""
@ -1608,8 +1608,8 @@ msgid "The format displayed when editing a post"
msgstr "قالب در زمان نمایش نوشته دیده خواهد شد"
#: fields/date_picker.php:210 fields/date_time_picker.php:200
#: fields/post_object.php:455 fields/relationship.php:783 fields/select.php:520
#: fields/time_picker.php:140
#: fields/post_object.php:455 fields/relationship.php:783
#: fields/select.php:520 fields/time_picker.php:140
msgid "Return Format"
msgstr "فرمت بازگشت"
@ -1997,8 +1997,8 @@ msgid "Enter URL"
msgstr "آدرس را وارد کنید"
#: fields/oembed.php:225
msgid "No embed found for the given URL"
msgstr "امکان جاسازی برای آدرس وارد شده یافت نشد"
msgid "No embed found for the given URL."
msgstr "امکان جاسازی برای آدرس وارد شده یافت نشد."
#: fields/oembed.php:261 fields/oembed.php:272
msgid "Embed Size"
@ -2463,12 +2463,8 @@ msgid "Publish"
msgstr "انتشار"
#: pro/admin/options-page.php:315
msgid "No Custom Field Groups found for this options page"
msgstr "هیچ گروه زمینه دلخواهی برای این صفحه تنظیمات یافت نشد"
#: pro/admin/options-page.php:315
msgid "Create a Custom Field Group"
msgstr "ساخت گروه زمینه دلخواه"
msgid "No Custom Field Groups found for this options page. <a href=\"%s\">Create a Custom Field Group</a>"
msgstr "هیچ گروه زمینه دلخواهی برای این صفحه تنظیمات یافت نشد. <a href=\"%s\">ساخت گروه زمینه دلخواه</a>"
#: pro/admin/settings-updates.php:87
msgid "<b>Error</b>. Could not connect to update server"

Binary file not shown.

View File

@ -3,14 +3,14 @@ msgstr ""
"Project-Id-Version: Advanced Custom Fields Pro v5.2.9\n"
"Report-Msgid-Bugs-To: http://support.advancedcustomfields.com\n"
"POT-Creation-Date: 2016-09-24 00:01+0300\n"
"PO-Revision-Date: 2016-09-24 00:03+0300\n"
"Last-Translator: Sauli Rajala <sauli.rajala@valu.fi>\n"
"PO-Revision-Date: 2016-11-03 17:09+1000\n"
"Last-Translator: Elliot Condon <e@elliotcondon.com>\n"
"Language-Team: \n"
"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.8.2\n"
"X-Generator: Poedit 1.8.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
@ -490,8 +490,8 @@ msgid "Error validating request"
msgstr "Virhe pyynnön käsittelyssä"
#: admin/update.php:243 admin/views/update.php:110
msgid "No updates available"
msgstr "Päivityksiä ei ole saatavilla"
msgid "No updates available."
msgstr "Päivityksiä ei ole saatavilla."
#: admin/update.php:260
msgid "Error loading update"
@ -592,6 +592,10 @@ msgstr "Poista"
msgid "Error"
msgstr "Virhe"
#: fields/oembed.php:220 fields/taxonomy.php:900
msgid "Error."
msgstr "Virhe."
#: admin/views/field-group-field.php:69
msgid "Field type does not exist"
msgstr "Kenttätyyppi ei ole olemassa"
@ -1293,12 +1297,8 @@ msgid "Site is up to date"
msgstr "Sivusto on ajan tasalla"
#: admin/views/update-network.php:67 admin/views/update.php:16
msgid "Database Upgrade complete"
msgstr "Tietokanta on päivitetty"
#: admin/views/update-network.php:67
msgid "Return to network dashboard"
msgstr "Palaa verkon hallinnan ohjausnäkymään"
msgid "Database Upgrade complete. <a href=\"%s\">Return to network dashboard</a>"
msgstr "Tietokanta on päivitetty. <a href=\"%s\">Palaa verkon hallinnan ohjausnäkymään</a>"
#: admin/views/update-network.php:106 admin/views/update-notice.php:35
msgid ""
@ -2015,8 +2015,8 @@ msgid "Enter URL"
msgstr "Syötä URL"
#: fields/oembed.php:225
msgid "No embed found for the given URL"
msgstr "Upotettavaa ei löytynyt annetusta URL-osoitteesta"
msgid "No embed found for the given URL."
msgstr "Upotettavaa ei löytynyt annetusta URL-osoitteesta."
#: fields/oembed.php:261 fields/oembed.php:272
msgid "Embed Size"
@ -2486,12 +2486,8 @@ msgid "Publish"
msgstr "Julkaistu"
#: pro/admin/options-page.php:315
msgid "No Custom Field Groups found for this options page"
msgstr "Yhtään lisäkenttäryhmää ei löytynyt tälle asetussivulle"
#: pro/admin/options-page.php:315
msgid "Create a Custom Field Group"
msgstr "Luo lisäkenttäryhmä"
msgid "No Custom Field Groups found for this options page. <a href=\"%s\">Create a Custom Field Group</a>"
msgstr "Yhtään lisäkenttäryhmää ei löytynyt tälle asetussivulle. <a href=\"%s\">Luo lisäkenttäryhmä</a>"
#: pro/admin/settings-updates.php:87
msgid "<b>Error</b>. Could not connect to update server"

Binary file not shown.

View File

@ -3,15 +3,15 @@ msgstr ""
"Project-Id-Version: Advanced Custom Fields Pro v5.2.9\n"
"Report-Msgid-Bugs-To: http://support.advancedcustomfields.com\n"
"POT-Creation-Date: 2016-06-17 13:45+0200\n"
"PO-Revision-Date: 2016-06-17 14:36+0200\n"
"Last-Translator: Maxime BERNARD-JACQUET <maxime@smoothie-creative.com>\n"
"PO-Revision-Date: 2016-11-03 17:09+1000\n"
"Last-Translator: Elliot Condon <e@elliotcondon.com>\n"
"Language-Team: Dysign <maxime@dysign.fr>\n"
"Language: fr_FR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Poedit 1.8.6\n"
"X-Generator: Poedit 1.8.1\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
"esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
@ -541,8 +541,8 @@ msgstr "Erreur : la requête na pas pu être validée"
# @ acf
#: admin/update.php:243 admin/views/update.php:110
msgid "No updates available"
msgstr "Aucune mise à jour disponible"
msgid "No updates available."
msgstr "Aucune mise à jour disponible."
#: admin/update.php:260
msgid "Error loading update"
@ -645,6 +645,10 @@ msgstr "Supprimer"
msgid "Error"
msgstr "Erreur"
#: fields/oembed.php:220 fields/taxonomy.php:900
msgid "Error."
msgstr "Erreur."
# @ acf
#: admin/views/field-group-field.php:68
msgid "Field type does not exist"
@ -1416,12 +1420,8 @@ msgid "Site is up to date"
msgstr "Site à jour"
#: admin/views/update-network.php:67 admin/views/update.php:16
msgid "Database Upgrade complete"
msgstr "Mise à niveau de la base de données effectuée"
#: admin/views/update-network.php:67
msgid "Return to network dashboard"
msgstr "Retourner au panneau d'administration du réseau"
msgid "Database Upgrade complete. <a href=\"%s\">Return to network dashboard</a>"
msgstr "Mise à niveau de la base de données effectuée. <a href=\"%s\">Retourner au panneau d'administration du réseau</a>"
#: admin/views/update-network.php:106 admin/views/update-notice.php:35
msgid ""
@ -2178,8 +2178,8 @@ msgid "Enter URL"
msgstr "Entrez l'URL"
#: fields/oembed.php:225
msgid "No embed found for the given URL"
msgstr "Aucune instruction d'intégration trouvée à cette adresse"
msgid "No embed found for the given URL."
msgstr "Aucune instruction d'intégration trouvée à cette adresse."
#: fields/oembed.php:261 fields/oembed.php:272
msgid "Embed Size"
@ -2674,13 +2674,8 @@ msgstr "Publier"
# @ default
#: pro/admin/options-page.php:315
msgid "No Custom Field Groups found for this options page"
msgstr "Aucun groupe de champs trouvé pour cette page options"
# @ acf
#: pro/admin/options-page.php:315
msgid "Create a Custom Field Group"
msgstr "Créer un groupe de champs"
msgid "No Custom Field Groups found for this options page. <a href=\"%s\">Create a Custom Field Group</a>"
msgstr "Aucun groupe de champs trouvé pour cette page options. <a href=\"%s\">Créer un groupe de champs</a>"
#: pro/admin/settings-updates.php:125
msgid "<b>Error</b>. Could not connect to update server"

Binary file not shown.

View File

@ -577,6 +577,10 @@ msgstr "מחיקה"
msgid "Error"
msgstr "שגיאה"
#: fields/oembed.php:220 fields/taxonomy.php:900
msgid "Error."
msgstr "שגיאה."
#: admin/views/field-group-field.php:68
msgid "Field type does not exist"
msgstr "סוג השדה לא נמצא"
@ -1245,11 +1249,7 @@ msgid "Site is up to date"
msgstr ""
#: admin/views/update-network.php:62 admin/views/update.php:16
msgid "Database Upgrade complete"
msgstr ""
#: admin/views/update-network.php:62
msgid "Return to network dashboard"
msgid "Database Upgrade complete. <a href=\"%s\">Return to network dashboard</a>"
msgstr ""
#: admin/views/update-network.php:101 admin/views/update-notice.php:35
@ -1299,7 +1299,7 @@ msgid "See what's new"
msgstr "בואו לראות מה חדש"
#: admin/views/update.php:110
msgid "No updates available"
msgid "No updates available."
msgstr ""
#: api/api-helpers.php:821
@ -1822,8 +1822,8 @@ msgid "Enter URL"
msgstr "הקלד כתובת URL"
#: fields/oembed.php:212
msgid "No embed found for the given URL"
msgstr "לא נמצא קוד הטמעה לכתובת ה-URL הנתונה"
msgid "No embed found for the given URL."
msgstr "לא נמצא קוד הטמעה לכתובת ה-URL הנתונה."
#: fields/oembed.php:248 fields/oembed.php:259
msgid "Embed Size"
@ -2229,12 +2229,8 @@ msgid "Options Updated"
msgstr "האפשרויות עודכנו"
#: pro/admin/options-page.php:304
msgid "No Custom Field Groups found for this options page"
msgstr "אף קבוצת שדות לא נמצאה בפח"
#: pro/admin/options-page.php:304
msgid "Create a Custom Field Group"
msgstr "יצירת קבוצת שדות מיוחדים"
msgid "No Custom Field Groups found for this options page. <a href=\"%s\">Create a Custom Field Group</a>"
msgstr "אף קבוצת שדות לא נמצאה בפח. <a href=\"%s\">יצירת קבוצת שדות מיוחדים</a>"
#: pro/admin/settings-updates.php:137
msgid "<b>Error</b>. Could not connect to update server"

Binary file not shown.

View File

@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: Advanced Custom Fields Pro v5.2.9\n"
"Report-Msgid-Bugs-To: http://support.advancedcustomfields.com\n"
"POT-Creation-Date: 2015-08-11 23:26+0200\n"
"PO-Revision-Date: 2016-04-07 10:30+1000\n"
"PO-Revision-Date: 2016-11-03 17:11+1000\n"
"Last-Translator: Elliot Condon <e@elliotcondon.com>\n"
"Language-Team: Elliot Condon <e@elliotcondon.com>\n"
"Language: hu_HU\n"
@ -578,6 +578,10 @@ msgstr "Törlés"
msgid "Error"
msgstr "Hiba"
#: fields/oembed.php:220 fields/taxonomy.php:900
msgid "Error."
msgstr "Hiba."
#: admin/views/field-group-field.php:68
msgid "Field type does not exist"
msgstr "Mezőtípus nem létezik"
@ -1282,11 +1286,7 @@ msgid "Site is up to date"
msgstr ""
#: admin/views/update-network.php:62 admin/views/update.php:16
msgid "Database Upgrade complete"
msgstr ""
#: admin/views/update-network.php:62
msgid "Return to network dashboard"
msgid "Database Upgrade complete. <a href=\"%s\">Return to network dashboard</a>"
msgstr ""
#: admin/views/update-network.php:101 admin/views/update-notice.php:35
@ -1337,7 +1337,7 @@ msgid "See what's new"
msgstr "Újdonságok áttekintése"
#: admin/views/update.php:110
msgid "No updates available"
msgid "No updates available."
msgstr ""
#: api/api-helpers.php:821
@ -1865,8 +1865,8 @@ msgid "Enter URL"
msgstr "URL megadása"
#: fields/oembed.php:212
msgid "No embed found for the given URL"
msgstr "Nem található beágyazható elem a megadott URL-en"
msgid "No embed found for the given URL."
msgstr "Nem található beágyazható elem a megadott URL-en."
#: fields/oembed.php:248 fields/oembed.php:259
msgid "Embed Size"
@ -2279,12 +2279,8 @@ msgid "Options Updated"
msgstr "Beállítások elmentve"
#: pro/admin/options-page.php:304
msgid "No Custom Field Groups found for this options page"
msgstr "Nincsenek mezőcsoportok ehhez a beállítás oldalhoz."
#: pro/admin/options-page.php:304
msgid "Create a Custom Field Group"
msgstr "Mezőcsoport hozzáadása"
msgid "No Custom Field Groups found for this options page. <a href=\"%s\">Create a Custom Field Group</a>"
msgstr "Nincsenek mezőcsoportok ehhez a beállítás oldalhoz. <a href=\"%s\">Mezőcsoport hozzáadása</a>"
#: pro/admin/settings-updates.php:137
msgid "<b>Error</b>. Could not connect to update server"

Binary file not shown.

View File

@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: Advanced Custom Fields\n"
"Report-Msgid-Bugs-To: http://support.advancedcustomfields.com\n"
"POT-Creation-Date: 2016-01-25 09:18-0800\n"
"PO-Revision-Date: 2016-04-07 10:30+1000\n"
"PO-Revision-Date: 2016-11-03 17:12+1000\n"
"Language-Team: Elliot Condon <e@elliotcondon.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -574,6 +574,10 @@ msgstr "Hapus"
msgid "Error"
msgstr "Error"
#: fields/oembed.php:220 fields/taxonomy.php:900
msgid "Error."
msgstr "Error."
#: admin/views/field-group-field.php:69
msgid "Field type does not exist"
msgstr "Jenis bidang tidak ada"
@ -1270,12 +1274,8 @@ msgid "Site is up to date"
msgstr "Situs ini up-to-date"
#: admin/views/update-network.php:62 admin/views/update.php:16
msgid "Database Upgrade complete"
msgstr "Upgrade database selesai"
#: admin/views/update-network.php:62
msgid "Return to network dashboard"
msgstr "Kembali ke dasbor jaringan"
msgid "Database Upgrade complete. <a href=\"%s\">Return to network dashboard</a>"
msgstr "Upgrade database selesai. <a href=\"%s\">Kembali ke dasbor jaringan</a>"
#: admin/views/update-network.php:101 admin/views/update-notice.php:35
msgid ""
@ -1324,7 +1324,7 @@ msgid "See what's new"
msgstr "Lihat apa yang baru"
#: admin/views/update.php:110
msgid "No updates available"
msgid "No updates available."
msgstr "pembaruan tidak tersedia ."
#: api/api-helpers.php:909
@ -1871,8 +1871,8 @@ msgid "Enter URL"
msgstr "Masukkan URL"
#: fields/oembed.php:225
msgid "No embed found for the given URL"
msgstr "Tidak ada embed ditemukan dari URL yang diberikan"
msgid "No embed found for the given URL."
msgstr "Tidak ada embed ditemukan dari URL yang diberikan."
#: fields/oembed.php:261 fields/oembed.php:272
msgid "Embed Size"
@ -2254,12 +2254,8 @@ msgid "Options Updated"
msgstr "Pilihan Diperbarui"
#: pro/admin/options-page.php:304
msgid "No Custom Field Groups found for this options page"
msgstr "Tidak ada Grup Bidang Kustom ditemukan untuk halaman pilihan ini"
#: pro/admin/options-page.php:304
msgid "Create a Custom Field Group"
msgstr "Buat Grup Bidang Kustom"
msgid "No Custom Field Groups found for this options page. <a href=\"%s\">Create a Custom Field Group</a>"
msgstr "Tidak ada Grup Bidang Kustom ditemukan untuk halaman pilihan ini. <a href=\"%s\">Buat Grup Bidang Kustom</a>"
#: pro/admin/settings-updates.php:137
msgid "<b>Error</b>. Could not connect to update server"

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: Advanced Custom Fields Pro v5.2.9\n"
"Report-Msgid-Bugs-To: http://support.advancedcustomfields.com\n"
"POT-Creation-Date: 2015-08-11 23:33+0200\n"
"PO-Revision-Date: 2016-04-07 10:30+1000\n"
"PO-Revision-Date: 2016-11-03 17:12+1000\n"
"Last-Translator: Elliot Condon <e@elliotcondon.com>\n"
"Language-Team: shogo kato <s_kato@crete.co.jp>\n"
"Language: ja_JP\n"
@ -574,6 +574,10 @@ msgstr "削除"
msgid "Error"
msgstr "エラー"
#: fields/oembed.php:220 fields/taxonomy.php:900
msgid "Error."
msgstr "エラー."
#: admin/views/field-group-field.php:68
msgid "Field type does not exist"
msgstr "フィールドタイプが存在しません"
@ -1263,11 +1267,7 @@ msgid "Site is up to date"
msgstr ""
#: admin/views/update-network.php:62 admin/views/update.php:16
msgid "Database Upgrade complete"
msgstr ""
#: admin/views/update-network.php:62
msgid "Return to network dashboard"
msgid "Database Upgrade complete. <a href=\"%s\">Return to network dashboard</a>"
msgstr ""
#: admin/views/update-network.php:101 admin/views/update-notice.php:35
@ -1317,7 +1317,7 @@ msgid "See what's new"
msgstr "新着情報を見る"
#: admin/views/update.php:110
msgid "No updates available"
msgid "No updates available."
msgstr ""
#: api/api-helpers.php:821
@ -1840,8 +1840,8 @@ msgid "Enter URL"
msgstr "URLを入力"
#: fields/oembed.php:212
msgid "No embed found for the given URL"
msgstr "指定されたURLには埋め込む内容がありません"
msgid "No embed found for the given URL."
msgstr "指定されたURLには埋め込む内容がありません."
#: fields/oembed.php:248 fields/oembed.php:259
msgid "Embed Size"
@ -2248,12 +2248,8 @@ msgid "Options Updated"
msgstr "オプションを更新しました"
#: pro/admin/options-page.php:304
msgid "No Custom Field Groups found for this options page"
msgstr "このオプションページにカスタムフィールドグループがありません"
#: pro/admin/options-page.php:304
msgid "Create a Custom Field Group"
msgstr "カスタムフィールドグループを作成"
msgid "No Custom Field Groups found for this options page. <a href=\"%s\">Create a Custom Field Group</a>"
msgstr "このオプションページにカスタムフィールドグループがありません. <a href=\"%s\">カスタムフィールドグループを作成</a>"
#: pro/admin/settings-updates.php:137
msgid "<b>Error</b>. Could not connect to update server"

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More