PATH:
home
/
letacommog
/
rdvenunclick.fr1
/
wp-content
/
plugins
/
acf-extended
/
includes
/
modules
<?php if(!defined('ABSPATH')) exit; // Check setting if(!acfe_is_dev() && !acfe_is_super_dev()) return; if(!class_exists('acfe_dev')): class acfe_dev{ public $wp_meta = array(); public $acf_meta = array(); function __construct(){ // Script debug if(!defined('SCRIPT_DEBUG')) define('SCRIPT_DEBUG', true); // Post add_action('load-post.php', array($this, 'load_post')); add_action('load-post-new.php', array($this, 'load_post')); // Term add_action('load-term.php', array($this, 'load_term')); // User add_action('show_user_profile', array($this, 'load_user')); add_action('edit_user_profile', array($this, 'load_user')); // Options add_action('acf/options_page/submitbox_before_major_actions', array($this, 'load_admin')); add_action('wp_ajax_acfe/delete_meta', array($this, 'ajax_delete_meta')); add_action('wp_ajax_acfe/bulk_delete_meta', array($this, 'ajax_bulk_delete_meta')); } /* * Post */ function load_post(){ global $typenow; $post_type = $typenow; // Remove WP post meta box remove_meta_box('postcustom', false, 'normal'); if(!acfe_is_super_dev()){ $restricted = array('acf-field-group', 'acfe-dbt', 'acfe-dop', 'acfe-dpt', 'acfe-dt', 'acfe-form', 'acfe-template'); if(in_array($post_type, $restricted)) return; } // actions add_action('add_meta_boxes', array($this, 'add_post_meta_boxes'), 10, 2); } function add_post_meta_boxes($post_type, $post){ // Add Meta Boxes $this->add_meta_boxes(0, $post_type); } /* * Term */ function load_term(){ $screen = get_current_screen(); $taxonomy = $screen->taxonomy; // actions add_action("{$taxonomy}_edit_form", array($this, 'edit_term'), 20, 2); } function edit_term($term, $taxonomy){ // Get Term ID $post_id = acf_get_term_post_id($term->taxonomy, $term->term_id); // Add Meta Boxes $this->add_meta_boxes($post_id, 'edit-term'); // Poststuff echo '<div id="poststuff">'; do_meta_boxes('edit-term', 'normal', array()); echo '</div>'; } /* * User */ function load_user(){ // Get User ID global $user_id; $user_id = (int) $user_id; if(empty($user_id)) return; // Add Meta Boxes $this->add_meta_boxes('user_' . $user_id, 'edit-user'); // Poststuff echo '<div id="poststuff">'; do_meta_boxes('edit-user', 'normal', array()); echo '</div>'; } /* * Admin */ function load_admin($page){ $this->add_meta_boxes($page['post_id'], 'acf_options_page'); } /* * Add Meta Boxes */ function add_meta_boxes($post_id = 0, $object_type){ // Get Meta $this->get_meta($post_id); $render_bulk = false; // WP Metabox if(!empty($this->wp_meta)){ if(empty($this->acf_meta)) $render_bulk = true; $id = 'acfe-wp-custom-fields'; $title = 'WP Custom fields'; if($object_type === 'acf_options_page'){ $title = 'WP Options'; } $title .= '<span class="acfe_dev_meta_count">' . count($this->wp_meta) . '</span>'; $context = 'normal'; $priority = 'low'; add_meta_box($id, $title, array($this, 'render_meta_box'), $object_type, $context, $priority, array('table_type' => 'wp', 'object_type' => $object_type, 'render_bulk' => $render_bulk)); } // ACF Metabox if(!empty($this->acf_meta)){ if(!$render_bulk) $render_bulk = true; $id = 'acfe-acf-custom-fields'; $title = 'ACF Custom fields'; if($object_type === 'acf_options_page'){ $title = 'ACF Options'; } $title .= '<span class="acfe_dev_meta_count">' . count($this->acf_meta) . '</span>'; $context = 'normal'; $priority = 'low'; add_meta_box($id, $title, array($this, 'render_meta_box'), $object_type, $context, $priority, array('table_type' => 'acf', 'object_type' => $object_type, 'render_bulk' => $render_bulk)); } } function render_meta_box($post, $metabox){ $table_type = $metabox['args']['table_type']; $object_type = $metabox['args']['object_type']; $render_bulk = $metabox['args']['render_bulk']; $is_options = ($object_type === 'acf_options_page'); $is_acf = ($table_type === 'acf'); $metas = $this->wp_meta; if($is_acf) $metas = $this->acf_meta; ?> <table class="wp-list-table widefat fixed striped" style="border:0;"> <thead> <tr> <?php if(current_user_can(acf_get_setting('capability'))){ ?> <td scope="col" class="check-column"><input type="checkbox" /></td> <?php } ?> <th scope="col" style="width:30%;">Name</th> <th scope="col" style="width:auto;">Value</th> <?php if($is_acf){ ?> <th scope="col" style="width:100px;">Field Type</th> <th scope="col" style="width:120px;">Field group</th> <?php } ?> <?php if($is_options){ ?> <th scope="col" style="width:65px;">Autoload</th> <?php } ?> </tr> </thead> <tbody> <?php foreach($metas as $meta){ ?> <?php // WP Meta $meta_key = $meta['key']; $meta_id = $meta['id']; $value = $this->render_meta_value($meta['value']); $type = $meta['type']; // ACF Meta if($is_acf){ $field_type = acf_maybe_get($meta, 'field_type'); } $field_group = acf_maybe_get($meta, 'field_group'); $nonce = wp_create_nonce('acfe_delete_meta_' . $meta_id); ?> <tr class="acfe_dev_meta_<?php echo $is_options ? $meta_key : $meta_id; ?>"> <?php if(current_user_can(acf_get_setting('capability'))){ ?> <th scope="row" class="check-column"> <input type="checkbox" class="acfe_bulk_delete_meta" value="<?php echo $is_options ? $meta_key : $meta_id; ?>" /> </th> <?php } ?> <td> <strong><?php echo esc_attr($meta_key); ?></strong> <?php if(current_user_can(acf_get_setting('capability'))){ ?> <div class="row-actions"> <?php if($is_options){ ?> <span class="edit"> <a href="<?php echo admin_url('options-general.php?page=acfe-options&action=edit&option=' . $meta_id); ?>"><?php _e('Edit'); ?></a> | </span> <?php } ?> <span class="delete"> <a href="#" class="acfe_delete_meta" data-meta-id="<?php echo $meta_id; ?>" data-meta-key="<?php echo $meta_key; ?>" data-type="<?php echo $type; ?>" data-nonce="<?php echo $nonce; ?>"><?php _e('Delete'); ?></a> </span> </div> <?php } ?> </td> <td><?php echo $value; ?></td> <?php if($is_acf){ ?> <td><?php echo $field_type; ?></td> <td><?php echo $field_group; ?></td> <?php } ?> <?php if($is_options){ ?> <td><?php echo $meta['autoload']; ?></td> <?php } ?> </tr> <?php } ?> </tbody> </table> <?php if(current_user_can(acf_get_setting('capability')) && $render_bulk){ ?> <div class="acfe_dev_bulk_actions tablenav bottom"> <div class="alignleft actions bulkactions"> <label for="bulk-action-selector-bottom" class="screen-reader-text"><?php _e('Select bulk action'); ?></label> <input type="hidden" class="acfe_bulk_delete_meta_type" value="<?php echo $type; ?>" /> <?php $nonce = wp_create_nonce('acfe_bulk_delete_meta'); ?> <input type="hidden" class="acfe_bulk_delete_meta_nonce" value="<?php echo $nonce; ?>" /> <select class="acfe_bulk_delete_meta_action"> <option value="-1"><?php _e('Bulk Actions'); ?></option> <option value="delete"><?php _e('Delete'); ?></option> </select> <input type="submit" id="acfe_bulk_deleta_meta_submit" class="button action" value="<?php _e('Apply'); ?>"> </div> <br class="clear"> </div> <?php } ?> <?php } function render_meta_value($value){ $return = ''; // Empty if(empty($value) && !is_numeric($value)){ $css = 'color:#aaa;'; $value = '(' . __('empty', 'acf') . ')'; $return = '<pre style="max-height:200px; overflow:auto; white-space: pre; ' . $css . '">' . print_r($value, true) . '</pre>'; } // Serialized elseif(is_serialized($value)){ $return = '<pre style="max-height:200px; overflow:auto; white-space: pre;">' . print_r(maybe_unserialize($value), true) . '</pre>'; $return .= '<pre style="max-height:200px; overflow:auto; white-space: pre; margin-top:10px;">' . print_r($value, true) . '</pre>'; } // HTML elseif($value != strip_tags($value)){ $return = '<pre style="max-height:200px; overflow:auto; white-space: pre;">' . print_r(htmlentities($value), true) . '</pre>'; } // Json elseif(acfe_is_json($value)){ $return = '<pre style="max-height:200px; overflow:auto; white-space: pre;">' . print_r(json_decode($value), true) . '</pre>'; $return .= '<pre style="max-height:200px; overflow:auto; white-space: pre; margin-top:10px;">' . print_r($value, true) . '</pre>'; } // String else{ $return = '<pre style="max-height:200px; overflow:auto; white-space: pre;">' . print_r($value, true) . '</pre>'; } return $return; } function get_meta($post_id = 0){ if(!$post_id) $post_id = acf_get_valid_post_id(); if(empty($post_id)) return; $info = acf_get_post_id_info($post_id); global $wpdb; // Post if($info['type'] === 'post'){ $get_meta = $wpdb->get_results($wpdb->prepare("SELECT * FROM $wpdb->postmeta WHERE post_id = %d ", $info['id'])); } // Term elseif($info['type'] === 'term'){ $get_meta = $wpdb->get_results($wpdb->prepare("SELECT * FROM $wpdb->termmeta WHERE term_id = %d ", $info['id'])); } // User elseif($info['type'] === 'user'){ $get_meta = $wpdb->get_results($wpdb->prepare("SELECT * FROM $wpdb->usermeta WHERE user_id = %d ", $info['id'])); } // Option elseif($info['type'] === 'option'){ $id = $info['id']; $search = "{$id}_%"; $_search = "_{$id}_%"; $search_single = "{$id}"; $search = str_replace('_', '\_', $search); $_search = str_replace('_', '\_', $_search); $get_meta = $wpdb->get_results($wpdb->prepare("SELECT * FROM $wpdb->options WHERE option_name LIKE %s OR option_name LIKE %s OR option_name = %s", $search, $_search, $search_single)); } if(empty($get_meta)) return; $wp_meta = array(); // Option if($info['type'] === 'option'){ usort($get_meta, function($a, $b){ return strcmp($a->option_name, $b->option_name); }); foreach($get_meta as $meta){ $wp_meta[$meta->option_name] = array( 'id' => $meta->option_id, 'key' => $meta->option_name, 'value' => $meta->option_value, 'autoload' => $meta->autoload, 'type' => $info['type'], ); } // Post / Term }elseif($info['type'] === 'post' || $info['type'] === 'term'){ usort($get_meta, function($a, $b){ return strcmp($a->meta_key, $b->meta_key); }); foreach($get_meta as $meta){ $wp_meta[$meta->meta_key] = array( 'id' => $meta->meta_id, 'key' => $meta->meta_key, 'value' => $meta->meta_value, 'type' => $info['type'], ); } // User }elseif($info['type'] === 'user'){ usort($get_meta, function($a, $b){ return strcmp($a->meta_key, $b->meta_key); }); foreach($get_meta as $meta){ $wp_meta[$meta->meta_key] = array( 'id' => $meta->umeta_id, 'key' => $meta->meta_key, 'value' => $meta->meta_value, 'type' => $info['type'], ); } } $acf_meta = array(); foreach($wp_meta as $key => $meta){ // ACF Meta if(isset($wp_meta["_$key"])){ $field = false; $field_type_display = false; $field_group_display = false; $field_key = $wp_meta["_$key"]['value']; // Value = field_abcde123456? if(acf_is_field_key($field_key)){ $field = acf_get_field($field_key); if(!$field){ $field_type_display = '<em>Undefined</em>'; $field_group_display = '<em>Undefined</em>'; // Check clone: field_123456abcdef_field_123456abcfed $count = substr_count($field_key, 'field_'); if($count === 2){ $keys = explode('field_', $field_key); $field_1 = 'field_' . substr($keys[1], 0, -1); $field_2 = 'field_' . $keys[2]; $field = acf_get_field($field_2); } } if($field){ $field_type = acf_get_field_type($field['type']); $field_type_display = '<em>Undefined</em>'; if(isset($field_type->label)) $field_type_display = $field_type->label; $field_group = acfe_get_field_group_from_field($field); $field_group_display = '<em>Undefined</em>'; if($field_group){ $field_group_display = $field_group['title']; if(!empty($field_group['ID'])){ $post_status = get_post_status($field_group['ID']); if($post_status === 'publish' || $post_status === 'acf-disabled'){ $field_group_display = '<a href="' . admin_url('post.php?post=' . $field_group['ID'] . '&action=edit') . '">' . $field_group['title'] . '</a>'; } } } } } $_meta = $wp_meta["_$key"]; $_meta['field_type'] = $field_type_display; $_meta['field_group'] = $field_group_display; $acf_meta[] = $_meta; $_meta = $wp_meta[$key]; $_meta['field_type'] = $field_type_display; $_meta['field_group'] = $field_group_display; $acf_meta[] = $_meta; // Unset WP Meta unset($wp_meta["_$key"]); unset($wp_meta[$key]); } } $this->wp_meta = $wp_meta; $this->acf_meta = $acf_meta; } function ajax_delete_meta(){ // Vars $id = acf_maybe_get_POST('id'); $key = acf_maybe_get_POST('key'); $type = acf_maybe_get_POST('type'); // Check vars if(!$id || !$key || !$type) wp_die(0); // Check referer check_ajax_referer("acfe_delete_meta_$id"); if(!current_user_can(acf_get_setting('capability'))){ wp_die(-1); } // Delete option if($type === 'option'){ if(delete_option($key)) wp_die(1); // Delete meta }else{ if(delete_metadata_by_mid($type, $id)) wp_die(1); } wp_die(0); } function ajax_bulk_delete_meta(){ // Vars $ids = acf_maybe_get_POST('ids'); $type = acf_maybe_get_POST('type'); // Check vars if(!$ids || !$type) wp_die(0); // Check referer check_ajax_referer('acfe_bulk_delete_meta'); if(!current_user_can(acf_get_setting('capability'))){ wp_die(-1); } // Delete option if($type === 'option'){ foreach($ids as $key){ delete_option($key); } wp_die(1); // Delete meta }else{ foreach($ids as $id){ delete_metadata_by_mid($type, $id); } wp_die(1); } wp_die(0); } } new acfe_dev(); endif;
[+]
..
[+]
form
[-] taxonomy.php
[edit]
[-] dynamic-options-page.php
[edit]
[-] single-meta.php
[edit]
[-] autosync.php
[edit]
[-] dev.php
[edit]
[-] settings.php
[edit]
[-] dynamic-post-type.php
[edit]
[-] dynamic-form.php
[edit]
[-] author.php
[edit]
[-] user.php
[edit]
[-] dynamic-block-type.php
[edit]
[-] dynamic-taxonomy.php
[edit]