PluginProbe
Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization / trunk
Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization vtrunk
4.2.14 4.2.13 4.2.12 4.2.11 4.2.10 4.2.9 4.2.8 4.2.7 4.2.6 4.2.5 2.5.5 2.5.6 2.5.7 3.0.0 3.0.1 3.1.0 3.1.1 3.1.2 3.1.3 3.10.0 3.11.0 3.11.1 3.11.2 3.11.3 3.12.0 All 135 releases
← All changes | vendor/codeinwp/themeisle-sdk/src/Modules/Dashboard_widget.php +46 -7 3.1.3 → trunk View file →
@@ -11,8 +11,9 @@
11 11
12 12 namespace ThemeisleSDK\Modules;
13 13
14 14 use ThemeisleSDK\Common\Abstract_Module;
15 +use ThemeisleSDK\Loader;
15 16 use ThemeisleSDK\Product;
16 17
17 18 // Exit if accessed directly.
18 19 if ( ! defined( 'ABSPATH' ) ) {
@@ -75,13 +76,14 @@
75 76 if ( apply_filters( 'themeisle_sdk_hide_dashboard_widget', false ) ) {
76 77 return;
77 78 }
78 79 $this->product = $product;
79 - $this->dashboard_name = apply_filters( 'themeisle_sdk_dashboard_widget_name', 'WordPress Guides/Tutorials' );
80 + $this->dashboard_name = apply_filters( 'themeisle_sdk_dashboard_widget_name', Loader::$labels['dashboard_widget']['title'] );
80 81 $this->feeds = apply_filters(
81 82 'themeisle_sdk_dashboard_widget_feeds',
82 83 [
83 84 'https://themeisle.com/blog/feed',
85 + 'https://wpshout.com/feed',
84 86 ]
85 87 );
86 88 add_action( 'wp_dashboard_setup', array( &$this, 'add_widget' ) );
87 89 add_action( 'wp_network_dashboard_setup', array( &$this, 'add_widget' ) );
@@ -120,8 +122,12 @@
120 122 return;
121 123 }
122 124 ?>
123 125 <style type="text/css">
126 + #dashboard-widgets #themeisle .hndle {
127 + padding-left: 39px;
128 + }
129 +
124 130 #themeisle ul li.ti-dw-recommend-item {
125 131 padding-left: 7px;
126 132 border-top: 1px solid #eee;
127 133 margin-bottom: 0px;
@@ -130,9 +136,9 @@
130 136
131 137 #themeisle h2.hndle {
132 138 background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABbCAMAAADncTNAAAAAtFBMVEVHcEyAgIB/f3+xsbGgoaGBgYGCgoKKioqAgIC1tbW5ubnFx8iAgIDU1taBgYGCgoKAgIC0tLXW19jW2NiAgIC3uLiBgYHLzMy4uLhycnLW19d/f3/T1NW0tLTX19mVlZWvr6+BgYHl5eWKiottbW5JSUnW2Nm5ubnh4eHT1NWVlZVjY2N4eHh9fX6pqqq+v79PT0/39/fu7u7Nzc7Z2ttYWFgBAQHDw8P////JysoZGRk0NTZqJc/sAAAAIXRSTlMA0FL7/oEnEPL6eibivm9gwJya76/enFq2CXI+2lFAyM8GATmPAAADj0lEQVR4Xu2YaW/iOhSGAwRCWDosnXa6znjJvm8svf//f12TuARyhiR2pfnUR6gSEnr0+uT4xK7yRb755pvhHePli5K7Bfpkuhoq8ozRJdMH+WWha6Z3sqYparCSLRJqspjImVbANJU03cNMMpofAwQZCGsmpQYyFvVM0Q00OQ9koMl5IPcCoro+RA1Dt2Ea9n9eZ0+YHJLkgIlkDywQx00wCTyaReiKH8LbNU9ybJOdkchV6QFxyCFLbVvdfaREqgUWg/tx2UbqIcK2Hex2TdGLwFTjIj3XP3YfCZFsb23KRZn/3263oymSFI0/a5S4PqUBjoBIJBDjeEhCN0wxQSRybIxtJ3K5SGzuE/vAwIQc8ZmMMJFAIM4oikZItfEFtorGgoE43FObwqHU68OtPCnOz8KZ2Jbl5LgkSW0Tc7YyIz/EFWmS4jMbiZU5mJOmKRaJpKGGyLZtDJh3iyaNUu/3+xyKnrtFL71EG+FTiMpENhQtxUQ8kSOXCIr2tnCNhg/gTX0SHYFp0t7TCwQZ7U841yoHrW6rtGroUwTWVnLMssxx+H4bgZcSOFf5MYx0Ae8FghomMDyC2EBNImBywPkNTDNqGLQpIg2TjUNU8tBy9DQMo0DAZF16rAi7vJAtFTIYFAHUc6hIRW6OuOhJgaCSwmDEAYK4oa7ro+qIEyJU/US7KTJKPNSFT9tFgVFBu0SF1y7yjX4masRA9Da7EFGj28R/BkQz6xGIOurkx38T/bKs9Uk8aIiMwm/Jw0VP1yLrJwt13xAxvABBgsK4KWLov35DkRF7ZaqgzuZ7MQ8MOntmVYyAqKTwaICKqvSUFnVccMN5sziEP/5+xGDTahbH5Q3ZB76zr8fI+nJtvUUU3t3ml5GKviK/npCg3CGodnuJ4JVkfRFJYGVDBZrqKnn9RLf+CzDTS5PaN5J38+auzX4ykU4Qoj0rdKfcYs5ijfo9OL/uRUgZyQr7NCWtWwiUSLc4arfJa7lpszTA1OJZAQ8w8dXFrR5YHzCWSnS3pZ18tOi4Ps4vl/c7i/6qomjRecN+UubrPyPGn/VEMU3T0UFHkaPzpgjxmJsnjmrtionlMDZiog0TsY/DPtn8SXtlBvbtxKtwopy7lqW3smQO+yoGE1Uu55GJ3pmI8ygoejZNnqj0vnIRCyTKfLstRdtStGQi09myUsvwvlkuzSUXbV+Xz5ryBebV33fln/A/moud69FZiEYAAAAASUVORK5CYII=');
133 139 background-repeat: no-repeat;
134 - background-position: 92% 50%;
140 + background-position: 2% 50%;
135 141 background-size: 25px;
136 142 }
137 143
138 144 #themeisle .inside {
@@ -276,9 +282,9 @@
276 282 }
277 283 ?>
278 284 <div class="ti-dw-footer">
279 285 <span class="ti-dw-recommend-item ">
280 - <span class="ti-dw-recommend"><?php echo esc_attr( apply_filters( 'themeisle_sdk_dashboard_popular_label', sprintf( 'Popular %s', ucwords( $type ) ) ) ); ?>
286 + <span class="ti-dw-recommend"><?php echo esc_attr( apply_filters( 'themeisle_sdk_dashboard_popular_label', sprintf( Loader::$labels['dashboard_widget']['popular'], ucwords( $type ) ) ) ); ?>
281 287 : </span>
282 288 <?php
283 289 echo esc_attr(
284 290 trim(
@@ -295,11 +301,11 @@
295 301 )
296 302 );
297 303 ?>
298 304 (<a class="thickbox open-plugin-details-modal"
299 - href="<?php echo esc_url( $url . '&TB_iframe=true&width=600&height=500' ); ?>"><?php echo esc_attr( apply_filters( 'themeisle_sdk_dashboard_install_label', 'Install' ) ); ?></a>)
305 + href="<?php echo esc_url( $url . '&TB_iframe=true&width=600&height=500' ); ?>"><?php echo esc_attr( apply_filters( 'themeisle_sdk_dashboard_install_label', Loader::$labels['dashboard_widget']['install'] ) ); ?></a>)
300 306 </span>
301 - <span class="ti-dw-powered-by"><span><?php echo esc_attr( apply_filters( 'themeisle_sdk_dashboard_widget_powered_by', sprintf( 'Powered by %s', $this->product->get_friendly_name() ) ) ); ?></span></span>
307 + <span class="ti-dw-powered-by"><span><?php echo esc_attr( apply_filters( 'themeisle_sdk_dashboard_widget_powered_by', sprintf( Loader::$labels['dashboard_widget']['powered'], $this->product->get_friendly_name() ) ) ); ?></span></span>
302 308 </div>
303 309
304 310 <?php
305 311
@@ -309,10 +315,39 @@
309 315 * Setup feed items.
310 316 */
311 317 private function setup_feeds() {
312 318 if ( false === ( $items_normalized = get_transient( 'themeisle_sdk_feed_items' ) ) ) { //phpcs:ignore Squiz.PHP.DisallowMultipleAssignments.FoundInControlStructure
319 + // Do not force the feed for the items in the sdk feeds list.
320 + // this prevents showing notices if another plugin will force all SimplePie feeds to load, instead it will
321 + // use the regular SimplePie validation and abort early if the feed is not valid.
322 + $sdk_feeds = $this->feeds;
323 + add_action(
324 + 'wp_feed_options',
325 + function ( $feed, $url ) use ( $sdk_feeds ) {
326 + if ( defined( 'TI_SDK_PHPUNIT' ) && true === TI_SDK_PHPUNIT ) {
327 + return;
328 + }
329 +
330 + if ( ! is_string( $url ) && in_array( $url, $sdk_feeds, true ) ) {
331 + $feed->force_feed( false );
332 +
333 + return;
334 + }
335 + if ( is_array( $url ) ) {
336 + foreach ( $url as $feed_url ) {
337 + if ( in_array( $feed_url, $sdk_feeds, true ) ) {
338 + $feed->force_feed( false );
339 +
340 + return;
341 + }
342 + }
343 + }
344 + },
345 + PHP_INT_MAX,
346 + 2
347 + );
313 348 // Load SimplePie Instance.
314 - $feed = fetch_feed( $this->feeds );
349 + $feed = fetch_feed( $sdk_feeds );
315 350 // TODO report error when is an error loading the feed.
316 351 if ( is_wp_error( $feed ) ) {
317 352 return;
318 353 }
@@ -317,9 +352,13 @@
317 352 return;
318 353 }
319 354
320 355 $items = $feed->get_items( 0, 5 );
321 - foreach ( (array) $items as $item ) {
356 + $items = is_array( $items ) ? $items : [];
357 +
358 + $items_normalized = [];
359 +
360 + foreach ( $items as $item ) {
322 361 $items_normalized[] = array(
323 362 'title' => $item->get_title(),
324 363 'date' => $item->get_date( 'U' ),
325 364 'link' => $item->get_permalink(),