settings = array(
'plugin' => 'ACF Tooltip',
'this_acf_version' => 0,
'min_acf_version' => '5.5.0',
'version' => '1.1.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());
?>
-
";
if ($plugin['doc']) {
?>