settings = array( 'plugin' => 'ACF Tooltip', 'this_acf_version' => 0, 'min_acf_version' => '5.5.0', 'version' => '1.2.0', 'url' => plugin_dir_url( __FILE__ ), 'path' => plugin_dir_path( __FILE__ ), 'plugin_path' => 'https://wordpress.org/plugins/acf-tooltip/' ); // set text domain load_plugin_textdomain( 'acf_tooltip', false, dirname( plugin_basename(__FILE__) ) . '/languages/' ); add_action( 'admin_init', array($this, 'acf_or_die'), 11); // include field add_action('acf/input/admin_enqueue_scripts', array($this, 'acf_tooltip_enqueue_scripts'), 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') ); } } /** * 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 ACF PRO v%2$s or higher to be installed and activated.', 'acf_tooltip'), $this->settings['plugin'], $this->settings['min_acf_version']) . '

'; } /* * Load the javascript and CSS files on the ACF admin pages */ function acf_tooltip_enqueue_scripts() { // globals global $wp_scripts, $wp_styles; $url = $this->settings['url']; $version = $this->settings['version']; // register ACF Tooltip CSS wp_register_style( 'acf-tooltip-style', "{$url}assets/css/acf-tooltip.css", 'acf-tooltip-qTip2-style', $version); // register qTip2 CSS wp_register_style( 'acf-tooltip-qTip2-style', "{$url}assets/vendor/qtip/jquery.qtip.min.css", false, '3.0.3'); // register qTip2 script wp_register_script( 'acf-tooltip-qTip2-script', "{$url}/assets/vendor/qtip/jquery.qtip.min.js", array('jquery'), '3.0.3', true ); // register ACF Tooltip script wp_register_script( 'acf-tooltip-script', "{$url}/assets/js/acf-tooltip.js", array('jquery'), $version, true ); $acf_tooltip_fieldeditor = apply_filters( "acf/tooltip/fieldeditor", FALSE ); $acf_tooltip_css = apply_filters( "acf/tooltip/css", "" ); $acf_tooltip_style = apply_filters( "acf/tooltip/style", 'qtip-acf' ); $acf_tooltip_position_my = apply_filters( "acf/tooltip/position/my", 'center left' ); $acf_tooltip_position_at = apply_filters( "acf/tooltip/position/at", 'center right' ); $acf_tooltip_class_only = apply_filters( "acf/tooltip/class/only", '' ); $acf_tooltip_class_exclude = apply_filters( "acf/tooltip/class/exclude", '' ); if ( $acf_tooltip_css != "" ) { // register themes css file for ACF Tooltip wp_register_style( 'acf-tooltip-qTip2-css', $acf_tooltip_css, 'acf-tooltip-qTip2-style' ); } // localize wp_localize_script('acf-tooltip-script', 'acfTooltip', array( 'style' => $acf_tooltip_style, 'my' => $acf_tooltip_position_my, 'at' => $acf_tooltip_position_at, 'class' => $acf_tooltip_class_only, 'exclude_class' => $acf_tooltip_class_exclude, 'fieldeditor' => $acf_tooltip_fieldeditor )); // enqueue styles & scripts wp_enqueue_style('acf-tooltip-qTip2-style'); wp_enqueue_style('acf-tooltip-style'); wp_enqueue_style('acf-tooltip-qTip2-css'); wp_enqueue_script('acf-tooltip-qTip2-script'); wp_enqueue_script('acf-tooltip-script'); } /* * Add plugin to $plugins array for the metabox */ function _dhz_meta_box_data($plugins=array()) { $plugins[] = array( 'title' => $this->settings['plugin'], 'screens' => array('acf-field-group'), '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() { $plugins = apply_filters('_dhz_plugins_list', array()); $id = 'plugins-by-dreihochzwo'; $title = ''.__("Plugins by dreihochzwo", "acf_tooltip").''; $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()); ?>