113 lines
2.2 KiB
PHP
113 lines
2.2 KiB
PHP
<?php
|
|
|
|
// vars
|
|
$field_groups = acf_extract_var( $args, 'field_groups');
|
|
|
|
|
|
// replace
|
|
$str_replace = array(
|
|
" " => "\t",
|
|
"!!\'" => "'",
|
|
"'!!" => "",
|
|
"!!'" => ""
|
|
);
|
|
|
|
$preg_replace = array(
|
|
'/([\t\r\n]+?)array/' => 'array',
|
|
'/[0-9]+ => array/' => 'array'
|
|
);
|
|
|
|
?>
|
|
<div class="wrap acf-settings-wrap">
|
|
|
|
<h1><?php _e('Tools', 'acf'); ?></h1>
|
|
|
|
<div class="acf-box">
|
|
<div class="title">
|
|
<h3><?php _e('Export Field Groups to PHP', 'acf'); ?></h3>
|
|
</div>
|
|
|
|
<div class="inner">
|
|
<p><?php _e("The following code can be used to register a local version of the selected field group(s). A local field group can provide many benefits such as faster load times, version control & dynamic fields/settings. Simply copy and paste the following code to your theme's functions.php file or include it within an external file.", 'acf'); ?></p>
|
|
|
|
<textarea class="pre" readonly="true"><?php
|
|
|
|
echo "if( function_exists('acf_add_local_field_group') ):" . "\r\n" . "\r\n";
|
|
|
|
foreach( $field_groups as $field_group ) {
|
|
|
|
// code
|
|
$code = var_export($field_group, true);
|
|
|
|
|
|
// change double spaces to tabs
|
|
$code = str_replace( array_keys($str_replace), array_values($str_replace), $code );
|
|
|
|
|
|
// correctly formats "=> array("
|
|
$code = preg_replace( array_keys($preg_replace), array_values($preg_replace), $code );
|
|
|
|
|
|
// esc_textarea
|
|
$code = esc_textarea( $code );
|
|
|
|
|
|
// echo
|
|
echo "acf_add_local_field_group({$code});" . "\r\n" . "\r\n";
|
|
|
|
}
|
|
|
|
echo "endif;";
|
|
|
|
?></textarea>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
<div class="acf-hidden">
|
|
<style type="text/css">
|
|
textarea.pre {
|
|
width: 100%;
|
|
padding: 15px;
|
|
font-size: 14px;
|
|
line-height: 1.5em;
|
|
resize: none;
|
|
}
|
|
</style>
|
|
<script type="text/javascript">
|
|
(function($){
|
|
|
|
var i = 0;
|
|
|
|
$(document).on('click', 'textarea.pre', function(){
|
|
|
|
if( i == 0 )
|
|
{
|
|
i++;
|
|
|
|
$(this).focus().select();
|
|
|
|
return false;
|
|
}
|
|
|
|
});
|
|
|
|
$(document).on('keyup', 'textarea.pre', function(){
|
|
|
|
$(this).height( 0 );
|
|
$(this).height( this.scrollHeight );
|
|
|
|
});
|
|
|
|
$(document).ready(function(){
|
|
|
|
$('textarea.pre').trigger('keyup');
|
|
|
|
});
|
|
|
|
})(jQuery);
|
|
</script>
|
|
</div>
|