| Server IP : 195.130.67.5 / Your IP : 216.73.217.127 Web Server : Microsoft-IIS/10.0 System : Windows NT WEBSERVER1 10.0 build 17763 (Windows Server 2016) i586 User : IUSR ( 0) PHP Version : 7.4.19 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/inetpub/wwwroot/ia/wp-content/plugins/wordpress-popular-posts/src/Widget/ |
Upload File : |
<?php
namespace WordPressPopularPosts\Widget;
use WordPressPopularPosts\{ Helper, Image, Output, Themer, Translate };
use WordPressPopularPosts\Traits\QueriesPosts;
class Widget extends \WP_Widget {
use QueriesPosts;
/**
* Default options.
*
* @since 5.0.0
* @var array
*/
private $defaults = [];
/**
* Administrative settings.
*
* @since 2.3.3
* @var array
*/
private $config = [];
/**
* Image object.
*
* @since 5.0.0
* @var WordPressPopularPosts\Image
*/
private $thumbnail;
/**
* Output object.
*
* @var \WordPressPopularPosts\Output
* @access private
*/
private $output;
/**
* Translate object.
*
* @var \WordPressPopularPosts\Translate $translate
* @access private
*/
private $translate;
/**
* Themer object.
*
* @var \WordPressPopularPosts\Themer $themer
* @access private
*/
private $themer;
/**
* Construct.
*
* @since 1.0.0
* @param array $options
* @param array $config
* @param \WordPressPopularPosts\Output $output
* @param \WordPressPopularPosts\Image $image
* @param \WordPressPopularPosts\Translate $translate
* @param \WordPressPopularPosts\Themer $themer
*/
public function __construct(array $options, array $config, Output $output, Image $thumbnail, Translate $translate, Themer $themer)
{
// Create the widget
parent::__construct(
'wpp',
'WP Popular Posts',
[
'classname' => 'popular-posts',
'description' => 'The most Popular Posts on your blog.'
]
);
$this->defaults = $options;
$this->config = $config;
$this->output = $output;
$this->thumbnail = $thumbnail;
$this->translate = $translate;
$this->themer = $themer;
}
/**
* Widget hooks.
*
* @since 5.0.0
*/
public function hooks()
{
// Register the widget
add_action('widgets_init', [$this, 'register']);
// Remove widget from Legacy Widget block
add_filter('widget_types_to_hide_from_legacy_widget_block', [$this, 'remove_from_legacy_widget_block']);
}
/**
* Registers the widget.
*
* @since 5.0.0
*/
public function register()
{
register_widget($this);
}
/**
* Outputs the content of the widget.
*
* @since 1.0.0
* @param array $args The array of form elements.
* @param array $instance The current instance of the widget.
*/
public function widget($args, $instance)
{
/**
* @var string $name
* @var string $id
* @var string $description
* @var string $class
* @var string $before_widget
* @var string $after_widget
* @var string $before_title
* @var string $after_title
* @var string $widget_id
* @var string $widget_name
*/
extract($args, EXTR_SKIP);
echo "\n" . $before_widget . "\n"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
$notice = '';
if ( is_user_logged_in() && current_user_can('manage_options') ) {
ob_start();
?>
<style>
.wpp-notice {
margin: 0 0 22px;
padding: 18px 22px;
background: #fcfcf7;
border: #ffff63 4px solid;
}
.wpp-notice p {
color: #000 !important;
}
.wpp-notice p:nth-child(2n) {
margin: 0;
font-size: 0.85em;
}
</style>
<div class="wpp-notice">
<p><strong>Important notice for administrators:</strong> The WP Popular Posts "classic" widget has been removed.</p>
<p>This widget has reached end-of-life as of version 7.0. Please go to <strong>Appearance > Widgets > [Your Sidebar] > WP Popular Posts</strong> for instructions on migrating your popular posts list to either the WP Popular Posts block or the wpp shortcode.</p>
</div>
<?php
$notice = ob_get_clean() . "\n";
}
echo $notice;
echo "\n" . $after_widget . "\n"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
/**
* Generates the administration form for the widget.
*
* @since 1.0.0
* @param array $instance The array of keys and values for the widget.
*/
public function form($instance)
{
$instance = Helper::merge_array_r(
$this->defaults,
(array) $instance
);
require plugin_dir_path(__FILE__) . '/form.php';
}
/**
* Processes the widget's options to be saved.
*
* @since 1.0.0
* @param array $new_instance The previous instance of values before the update.
* @param array $old_instance The new instance of values to be generated via the update.
* @return array $instance Updated instance.
*/
public function update($new_instance, $old_instance)
{
if ( empty($old_instance) ) {
$old_instance = $this->defaults;
} else {
$old_instance = Helper::merge_array_r(
$this->defaults,
(array) $old_instance
);
}
$instance = $old_instance;
return $instance;
}
/**
* Returns data on the current sidebar.
*
* @since 5.0.0
* @access private
* @return array|null
*/
private function get_sidebar_data()
{
global $wp_registered_sidebars;
$sidebars = wp_get_sidebars_widgets();
foreach ( (array) $sidebars as $sidebar_id => $sidebar ) {
if ( in_array($this->id, (array) $sidebar, true ) ) {
return $wp_registered_sidebars[$sidebar_id];
}
}
return null;
}
/**
* Removes the standard widget from the Legacy Widget block.
*
* @param array
* @return array
*/
public function remove_from_legacy_widget_block(array $widget_types)
{
$widget_types[] = 'wpp';
return $widget_types;
}
}