settings = array( 'plugin' => 'ACF Admin Flexible Content Collapse', 'this_acf_version' => 0, 'min_acf_version' => '4.4.11', 'version' => '1.1.0', 'url' => plugin_dir_url( __FILE__ ), 'path' => plugin_dir_path( __FILE__ ), 'plugin_path' => 'https://wordpress.org/plugins/acf-admin-flexible-content-collapse/' ); // set text domain load_plugin_textdomain( 'acf-admin-flex-collapse', false, dirname( plugin_basename(__FILE__) ) . '/languages/' ); // check for ACF and min version add_action( 'admin_init', array($this, 'acf_or_die'), 11); // enqueue scripts and styles add_action( 'acf/field_group/admin_head', array($this, 'acf_admin_flex_collapse_enqueue'), 11 ); if ( DHZ_SHOW_DONATION_LINK == true ) { // add plugin to $plugins array for the metabox add_filter('_dhz_plugins_list', array($this, '_dhz_meta_box_data')); // metabox callback for plugins list and donation link add_action('add_meta_boxes_acf-field-group', array($this, '_dhz_plugins_list_meta_box') ); add_action( 'add_meta_boxes_acf', array($this, '_dhz_plugins_list_meta_box') ); } } /** * Let's make sure ACF Pro is installed & activated * If not, we give notice and kill the activation of ACF RGBA Color Picker. * Also works if ACF Pro is deactivated. */ function acf_or_die() { if ( !class_exists('acf') ) { $this->kill_plugin(); } else { $this->settings['this_acf_version'] = acf()->settings['version']; if ( version_compare( $this->settings['this_acf_version'], $this->settings['min_acf_version'], '<' ) ) { $this->kill_plugin(); } } } function kill_plugin() { deactivate_plugins( plugin_basename( __FILE__ ) ); if ( isset( $_GET['activate'] ) ) { unset( $_GET['activate'] ); } add_action( 'admin_notices', array($this, 'acf_dependent_plugin_notice') ); } function acf_dependent_plugin_notice() { echo '

' . sprintf( __('%1$s requires Advanced Custom Fields v%2$s or higher to be installed and activated.', 'acf-admin-flex-collapse'), $this->settings['plugin'], $this->settings['min_acf_version']) . '

'; } /* * Load the javascript and CSS files on the ACF admin pages */ function acf_admin_flex_collapse_enqueue() { if ( class_exists('acf') ) { if ( version_compare( $this->settings['this_acf_version'], $this->settings['min_acf_version'], '>=' ) ) { $url = $this->settings['url']; $version = $this->settings['version']; // Localize the script $translation_array = array( 'reorder' => __( 'Reorder Layout', 'acf-admin-flex-collapse' ), 'delete' => __( 'Delete Layout', 'acf-admin-flex-collapse' ), 'duplicate' => __( 'Duplicate Layout', 'acf-admin-flex-collapse' ), 'addnew' => __( 'Add New Layout', 'acf-admin-flex-collapse' ), 'toggle' => __( 'Click to toggle', 'acf-admin-flex-collapse' ), 'collapseAll' => __( 'Collapse all Layouts', 'acf-admin-flex-collapse' ), 'expandAll' => __( 'Expand all Layouts', 'acf-admin-flex-collapse' ) ); if ( version_compare( $this->settings['this_acf_version'], '5.0.0', '>=' ) ) { wp_register_style ( 'acf_admin_flex_collapse_css', "{$url}assets/css/acf-admin-flexible-content-collapse-v5.css", false, $version ); wp_register_script( 'acf_admin_flex_collapse_script', "{$url}assets/js/acf-admin-flexible-content-collapse-v5.js", false, $version ); } else { wp_register_style ( 'acf_admin_flex_collapse_css', "{$url}assets/css/acf-admin-flexible-content-collapse-v4.css", false, $version ); wp_register_script( 'acf_admin_flex_collapse_script', "{$url}assets/js/acf-admin-flexible-content-collapse-v4.js", false, $version ); } wp_localize_script( 'acf_admin_flex_collapse_script', 'acf_flex_collapse', $translation_array ); wp_enqueue_style( 'acf_admin_flex_collapse_css' ); wp_enqueue_script( 'acf_admin_flex_collapse_script' ); } } } /* * Add plugin to $plugins array for the metabox */ function _dhz_meta_box_data($plugins=array()) { if ( version_compare( $this->settings['this_acf_version'], '5.0.0', '>=' ) ) { $screens = 'acf-field-group'; } else { $screens = 'acf'; } $plugins[] = array( 'title' => $this->settings['plugin'], 'screens' => array($screens), 'doc' => $this->settings['plugin_path'] ); return $plugins; } // end function meta_box /* * Add metabox for plugins list and donation link */ function _dhz_plugins_list_meta_box() { if (apply_filters('remove_dhz_nag', false)) { return; } $plugins = apply_filters('_dhz_plugins_list', array()); $id = 'plugins-by-dreihochzwo'; $title = ''.__("Plugins by dreihochzwo", "acf-admin-flex-collapse").''; $callback = array($this, 'show_dhz_plugins_list_meta_box'); $screens = array(); foreach ($plugins as $plugin) { $screens = array_merge($screens, $plugin['screens']); } $context = 'side'; $priority = 'default'; add_meta_box($id, $title, $callback, $screens, $context, $priority); } // end function _dhz_plugins_list_meta_box /* * Metabox callback for plugins list and donation link */ function show_dhz_plugins_list_meta_box() { $plugins = apply_filters('_dhz_plugins_list', array()); ?>