File "enhanced-text-widget.php"
Full Path: /home/branxxtp/freemanvalue.com/wp-content/plugins/enhanced-text-widget/enhanced-text-widget.php
File size: 14.95 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/*
Plugin Name: Enhanced Text Widget
Plugin URI: http://wordpress.org/plugins/enhanced-text-widget/
Description: An enhanced version of the default text widget where you may have Text, HTML, CSS, JavaScript, Flash, Shortcodes, and/or PHP as content with linkable widget title.
Version: 1.6.7
Author: Clever Widgets
Author URI: https://themecheck.info
Text Domain: enhanced-text-widget
Domain Path: /languages
License: MIT
*/
// Exit if accessed directly.
if ( !defined('ABSPATH') ) exit;
require_once 'analyst/main.php';
analyst_init(array(
'client-id' => 'ozb8r4zvwq369anp',
'client-secret' => '63fcba7fd64e28937637a50f84450df531eb2dae',
'base-dir' => __FILE__
));
class EnhancedTextWidget extends WP_Widget {
/**
* Widget construction
*/
function __construct() {
$widget_ops = array('classname' => 'widget_text enhanced-text-widget', 'description' => __( 'Text, HTML, CSS, PHP, Flash, JavaScript, Shortcodes', 'enhanced-text-widget' ));
$control_ops = array( 'width' => 450 );
parent::__construct('EnhancedTextWidget', __( 'Enhanced Text', 'enhanced-text-widget' ), $widget_ops, $control_ops);
load_plugin_textdomain( 'enhanced-text-widget', false, basename( dirname( __FILE__ ) ) . '/languages' );
}
/**
* Setup the widget output
*/
function widget( $args, $instance ) {
if (!isset($args['widget_id'])) {
$args['widget_id'] = null;
}
extract($args);
$title = esc_attr(apply_filters('widget_title', empty($instance['title']) ? '' : $instance['title'], $instance));
$titleUrl = esc_url(empty($instance['titleUrl']) ? '' : $instance['titleUrl'], ['http', 'https']);
$cssClass = esc_attr(empty($instance['cssClass']) ? '' : $instance['cssClass']);
$text = apply_filters('widget_enhanced_text', $instance['text'], $instance);
$hideTitle = !empty($instance['hideTitle']) ? true : false;
$hideEmpty = !empty($instance['hideEmpty']) ? true : false;
$newWindow = !empty($instance['newWindow']) ? true : false;
$filterText = !empty($instance['filter']) ? true : false;
$bare = !empty($instance['bare']) ? true : false;
if ( $cssClass ) {
if( strpos($before_widget, 'class') === false ) {
$before_widget = str_replace('>', 'class="'. $cssClass . '"', $before_widget);
} else {
$before_widget = str_replace('class="', 'class="'. $cssClass . ' ', $before_widget);
}
}
// Parse the text through PHP
ob_start();
eval('?>' . $text);
$text = ob_get_contents();
ob_end_clean();
// Run text through do_shortcode
$text = do_shortcode($text);
if (!empty($text) || !$hideEmpty) {
echo $bare ? '' : $before_widget;
if ($newWindow) $newWindow = "target='_blank'";
if(!$hideTitle && $title) {
if($titleUrl) $title = "<a href='$titleUrl' $newWindow>$title</a>";
echo $bare ? $title : $before_title . $title . $after_title;
}
echo $bare ? '' : '<div class="textwidget widget-text">';
// Echo the content
echo $filterText ? wpautop($text) : $text;
echo $bare ? '' : '</div>' . $after_widget;
}
}
/**
* Run on widget update
*/
function update( $new_instance, $old_instance ) {
$user = wp_get_current_user();
$allowed_roles = array( 'editor', 'administrator', 'author' );
if (!array_intersect($allowed_roles, $user->roles) && !current_user_can('setup_network')) {
return;
}
$instance = $old_instance;
$instance['title'] = esc_attr(strip_tags($new_instance['title']));
if ( current_user_can('unfiltered_html') )
$instance['text'] = $new_instance['text'];
else
$instance['text'] = wp_filter_post_kses($new_instance['text']);
$instance['titleUrl'] = esc_attr(strip_tags($new_instance['titleUrl']));
$instance['cssClass'] = esc_attr(strip_tags($new_instance['cssClass']));
$instance['hideTitle'] = isset($new_instance['hideTitle']);
$instance['hideEmpty'] = isset($new_instance['hideEmpty']);
$instance['newWindow'] = esc_attr(isset($new_instance['newWindow']));
$instance['filter'] = esc_attr(isset($new_instance['filter']));
$instance['bare'] = esc_attr(isset($new_instance['bare']));
return $instance;
}
/**
* Setup the widget admin form
*/
function form( $instance ) {
$user = wp_get_current_user();
$allowed_roles = array( 'editor', 'administrator', 'author' );
if (!array_intersect($allowed_roles, $user->roles) && !current_user_can('setup_network')) {
return;
}
$instance = wp_parse_args( (array) $instance, array(
'title' => '',
'titleUrl' => '',
'cssClass' => '',
'text' => ''
));
$title = $instance['title'];
$titleUrl = $instance['titleUrl'];
$cssClass = $instance['cssClass'];
$text = format_to_edit($instance['text']);
?>
<style>
.monospace {
font-family: Consolas, Lucida Console, monospace;
}
.etw-credits {
font-size: 0.9em;
background: #F7F7F7;
border: 1px solid #EBEBEB;
padding: 4px 6px;
}
</style>
<p>
<label for="<?php echo $this->get_field_id('title'); ?>"><?php _e( 'Title', 'enhanced-text-widget' ); ?>:</label>
<input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr($title); ?>" />
</p>
<p>
<label for="<?php echo $this->get_field_id('titleUrl'); ?>"><?php _e( 'URL', 'enhanced-text-widget' ); ?>:</label>
<input class="widefat" id="<?php echo $this->get_field_id('titleUrl'); ?>" name="<?php echo $this->get_field_name('titleUrl'); ?>" type="text" value="<?php echo esc_attr($titleUrl); ?>" />
</p>
<p>
<label for="<?php echo $this->get_field_id('cssClass'); ?>"><?php _e( 'CSS Classes', 'enhanced-text-widget' ); ?>:</label>
<input class="widefat" id="<?php echo $this->get_field_id('cssClass'); ?>" name="<?php echo $this->get_field_name('cssClass'); ?>" type="text" value="<?php echo esc_attr($cssClass); ?>" />
</p>
<p>
<label for="<?php echo $this->get_field_id('text'); ?>"><?php _e( 'Content', 'enhanced-text-widget' ); ?>:</label>
<textarea class="widefat monospace" rows="16" cols="20" id="<?php echo $this->get_field_id('text'); ?>" name="<?php echo $this->get_field_name('text'); ?>"><?php echo $text; ?></textarea>
</p>
<p>
<input id="<?php echo $this->get_field_id('hideTitle'); ?>" name="<?php echo $this->get_field_name('hideTitle'); ?>" type="checkbox" <?php checked(isset($instance['hideTitle']) ? $instance['hideTitle'] : 0); ?> /> <label for="<?php echo $this->get_field_id('hideTitle'); ?>"><?php _e( 'Do not display the title', 'enhanced-text-widget' ); ?></label>
</p>
<p>
<input id="<?php echo $this->get_field_id('hideEmpty'); ?>" name="<?php echo $this->get_field_name('hideEmpty'); ?>" type="checkbox" <?php checked(isset($instance['hideEmpty']) ? $instance['hideEmpty'] : 0); ?> /> <label for="<?php echo $this->get_field_id('hideEmpty'); ?>"><?php _e( 'Do not display empty widgets', 'enhanced-text-widget' ); ?></label>
</p>
<p>
<input type="checkbox" id="<?php echo $this->get_field_id('newWindow'); ?>" name="<?php echo $this->get_field_name('newWindow'); ?>" <?php checked(isset($instance['newWindow']) ? $instance['newWindow'] : 0); ?> />
<label for="<?php echo $this->get_field_id('newWindow'); ?>"><?php _e( 'Open the URL in a new window', 'enhanced-text-widget' ); ?></label>
</p>
<p>
<input id="<?php echo $this->get_field_id('filter'); ?>" name="<?php echo $this->get_field_name('filter'); ?>" type="checkbox" <?php checked(isset($instance['filter']) ? $instance['filter'] : 0); ?> /> <label for="<?php echo $this->get_field_id('filter'); ?>"><?php _e( 'Automatically add paragraphs to the content', 'enhanced-text-widget' ); ?></label>
</p>
<p>
<input id="<?php echo $this->get_field_id('bare'); ?>" name="<?php echo $this->get_field_name('bare'); ?>" type="checkbox" <?php checked(isset($instance['bare']) ? $instance['bare'] : 0); ?> /> <label for="<?php echo $this->get_field_id('bare'); ?>"><?php _e( 'Do not output before/after_widget/title', 'enhanced-text-widget' ); ?></label>
</p>
<div class="etw-carousel-ad-trigger">
<div class="etw-new-label"><?php _e( 'New', 'enhanced-text-widget' ); ?></div>
<span><?php _e( 'Please check out our other plugins too!', 'enhanced-text-widget' ); ?></span>
<div class="etw-check-it-label"><?php _e( 'Check it out', 'enhanced-text-widget' ); ?></div>
</div>
<?php
}
}
/**
* Register the widget
*/
function enhanced_text_widget_init() {
register_widget( 'EnhancedTextWidget' );
}
add_action( 'widgets_init', 'enhanced_text_widget_init' );
add_action('admin_init', function () {
require_once 'banner/misc.php';
});
/* Admin notice to check Classic Widgets Plugin is not already installed and WordPress version 5.8 or higher */
add_action( 'admin_notices', 'etw_flush_admin_notice__warning' );
function etw_flush_admin_notice__warning() {
global $wp_version;
if ( version_compare( $wp_version, '5.8' ) >= 0 && !is_plugin_active( 'classic-widgets/classic-widgets.php' ) ) {
$etw_hide_admin_notification = get_option( 'etw_hide_admin_notification' );
if( 'yes' === $etw_hide_admin_notification ) {
return;
}
?>
<div class="notice notice-warning etw-notice-wrapper is-dismissible">
<p><?php
echo sprintf(
__( '%1$sEnhanced Text Widget:%2$s This plugin provides a classic widget type, and needs the %3$sClassic Widgets%4$s plugin to function properly on this WordPress version.', 'ultimate-posts-widget' ),
'<b>',
'</b>',
'<a href="https://wordpress.org/plugins/classic-widgets/" target="_blank">',
'</a>'
);
?></p>
</div>
<?php
}
}
add_action( 'admin_print_footer_scripts', 'etw_admin_footer_js' );
function etw_admin_footer_js() {
?>
<script id='etw-notice-js'>
(function ($) {
$( document ).ready( function() {
$( document ).on( 'click', '.etw-notice-wrapper.is-dismissible .notice-dismiss', function () {
$.ajax({
type: "post",
dataType: "json",
url: "<?php echo admin_url( 'admin-ajax.php' ); ?>",
data : { action: "etw_hide_admin_notification", nonce: "<?php echo wp_create_nonce('etw_hide_admin_notification'); ?>" },
});
});
});
})( jQuery );
</script>
<?php
}
add_action( 'wp_ajax_etw_hide_admin_notification', 'etw_hide_admin_notification_callback' );
function etw_hide_admin_notification_callback() {
if (!isset($_POST['nonce']) || !wp_verify_nonce(sanitize_text_field($_POST['nonce']), 'etw_hide_admin_notification')) {
wp_send_json_error();
die;
}
$option_name = 'etw_hide_admin_notification';
$new_value = 'yes';
if ( get_option( $option_name ) !== false ) {
update_option( $option_name, $new_value );
} else {
$deprecated = null;
$autoload = 'no';
add_option( $option_name, $new_value, $deprecated, $autoload );
}
wp_send_json_success();
die;
}
// Activation of tryOutPlugins module
add_action('plugins_loaded', function () {
if (!(class_exists('\Inisev\Subs\Inisev_Try_Out_Plugins') || class_exists('Inisev\Subs\Inisev_Try_Out_Plugins') || class_exists('Inisev_Try_Out_Plugins'))) {
require_once __DIR__ . '/modules/tryOutPlugins/tryOutPlugins.php';
$try_out_plugins = new \Inisev\Subs\Inisev_Try_Out_Plugins(__FILE__, __DIR__, 'Enhanced Text Widget', 'plugins.php?s=Enhanced%20Text%20Widget&plugin_status=all');
}
});
add_filter( 'plugin_action_links_' . plugin_basename(__FILE__), function ($links) {
$tifm_action = array('<a href="#!" id="etw_tifm_disable">' . __('Disable Plugin Test Feature', 'enhanced-text-widget') . '</a>');
if (get_option('_tifm_feature_enabled') === 'disabled') {
$tifm_action = array('<a href="#!" id="etw_tifm_enable">' . __('Enable Plugin Test Feature', 'enhanced-text-widget') . '</a>');
}
return array_merge($links, $tifm_action);
});
add_action('admin_footer', function () {
global $pagenow;
if ($pagenow === 'plugins.php') {
?>
<script type="text/javascript">
(function () {
let nonceTIFM = "<?php echo wp_create_nonce('tifm_notice_nonce') ?>";
jQuery('#etw_tifm_enable').on('click', (e) => {
e.preventDefault();
jQuery.post(ajaxurl, { action: 'tifm_save_decision', decision: 'true', nonce: nonceTIFM }).done(() => {
window.location.reload();
}).fail(() => {
alert('There was an error and we could not update this option.');
});
});
jQuery('#etw_tifm_disable').on('click', (e) => {
e.preventDefault();
jQuery.post(ajaxurl, { action: 'tifm_save_decision', decision: 'false', nonce: nonceTIFM }).done(() => {
window.location.reload();
}).fail(() => {
alert('There was an error and we could not update this option.');
});
});
})();
</script>
<?php
}
});
// Actions of tryOutPlugins
if (!has_action('wp_ajax_tifm_save_decision')) {
add_action('wp_ajax_tifm_save_decision', function () {
// Nonce verification
if (!isset($_POST['nonce']) || !wp_verify_nonce(sanitize_text_field($_POST['nonce']), 'tifm_notice_nonce')) {
wp_send_json_error();
return;
}
if (isset($_POST['decision'])) {
if ($_POST['decision'] == 'true') {
update_option('_tifm_feature_enabled', 'enabled');
delete_option('_tifm_disable_feature_forever', true);
wp_send_json_success();
exit;
} else if ($_POST['decision'] == 'false') {
update_option('_tifm_feature_enabled', 'disabled');
update_option('_tifm_disable_feature_forever', true);
wp_send_json_success();
exit;
} else if ($_POST['decision'] == 'reset') {
delete_option('_tifm_feature_enabled');
delete_option('_tifm_hide_notice_forever');
delete_option('_tifm_disable_feature_forever');
wp_send_json_success();
exit;
}
wp_send_json_error();
exit;
}
});
}