PluginProbe
Buttonizer – Floating Menus, Sticky Buttons, & Popup Builder / 1.0.6
Buttonizer – Floating Menus, Sticky Buttons, & Popup Builder v1.0.6
3.6.0 3.5.0 trunk 1.0.10 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.6.1 1.0.7 1.0.8 1.0.9 1.1 1.1.1 1.2 1.3 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.5 1.5.1 All 110 releases
buttonizer-multifunctional-button / freemius / templates / plugin-icon.php

plugin-icon.php in Buttonizer – Floating Menus, Sticky Buttons, & Popup Builder 1.0.6, at freemius/templates/plugin-icon.php

128 lines 3.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * @package Freemius
4 * @copyright Copyright (c) 2015, Freemius, Inc.
5 * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
6 * @since 1.1.4
7 */
8
9 if ( ! defined( 'ABSPATH' ) ) {
10 exit;
11 }
12
13 /**
14 * @var array $VARS
15 */
16 $slug = $VARS['slug'];
17 $fs = freemius( $slug );
18
19 /**
20 * @since 1.1.7.5
21 */
22 $local_path = $fs->apply_filters( 'plugin_icon', false );
23
24 if ( is_string( $local_path ) ) {
25 $icons = array( $local_path );
26 } else {
27 global $fs_active_plugins;
28
29 $img_dir = WP_FS__DIR_IMG;
30
31 if ( 1 < count( $fs_active_plugins->plugins ) ) {
32 $plugin_or_theme_img_dir = WP_PLUGIN_DIR;
33
34 foreach ( $fs_active_plugins->plugins as $sdk_path => &$data ) {
35 if ( $data->plugin_path == $fs->get_plugin_basename() ) {
36 $img_dir = $plugin_or_theme_img_dir
37 . '/'
38 . str_replace( '../themes/', '', $sdk_path )
39 . '/assets/img';
40
41 break;
42 }
43 }
44 }
45
46 $icons = glob( fs_normalize_path( $img_dir . '/' . $slug . '.*' ) );
47 if ( ! is_array( $icons ) || 0 === count( $icons ) ) {
48 $icon_found = false;
49 $local_path = fs_normalize_path( $img_dir . '/' . $slug . '.png' );
50
51 $have_write_permissions = ( 'direct' === get_filesystem_method( array(), fs_normalize_path( $img_dir ) ) );
52
53 if ( WP_FS__IS_LOCALHOST && $fs->is_org_repo_compliant() && $have_write_permissions ) {
54 /**
55 * IMPORTANT: THIS CODE WILL NEVER RUN AFTER THE PLUGIN IS IN THE REPO.
56 *
57 * This code will only be executed once during the testing
58 * of the plugin in a local environment. The plugin icon file WILL
59 * already exist in the assets folder when the plugin is deployed to
60 * the repository.
61 */
62 if ( ! function_exists( 'plugins_api' ) ) {
63 require_once ABSPATH . 'wp-admin/includes/plugin-install.php';
64 }
65
66 $plugin_information = plugins_api( 'plugin_information', array(
67 'slug' => $slug,
68 'fields' => array(
69 'sections' => false,
70 'tags' => false,
71 'icons' => true
72 )
73 ) );
74
75 if (
76 ! is_wp_error( $plugin_information )
77 && isset( $plugin_information->icons )
78 && ! empty( $plugin_information->icons )
79 ) {
80 /**
81 * Get the smallest icon.
82 *
83 * @author Leo Fajardo (@leorw)
84 * @since 1.2.2
85 */
86 $icon = end( $plugin_information->icons );
87
88 if ( 0 !== strpos( $icon, 'http' ) ) {
89 $icon = 'http:' . $icon;
90 }
91
92 /**
93 * Get a clean file extension, e.g.: "jpg" and not "jpg?rev=1305765".
94 *
95 * @author Leo Fajardo (@leorw)
96 * @since 1.2.2
97 */
98 $ext = pathinfo( strtok( $icon, '?' ), PATHINFO_EXTENSION );
99
100 $local_path = fs_normalize_path( $img_dir . '/' . $slug . '.' . $ext );
101 fs_download_image( $icon, $local_path );
102
103 $icon_found = true;
104 }
105 }
106
107 if ( ! $icon_found ) {
108 // No icons found, fallback to default icon.
109 if ( $have_write_permissions ) {
110 // If have write permissions, copy default icon.
111 copy( fs_normalize_path( $img_dir . '/plugin-icon.png' ), $local_path );
112 } else {
113 // If doesn't have write permissions, use default icon path.
114 $local_path = fs_normalize_path( $img_dir . '/plugin-icon.png' );
115 }
116 }
117
118 $icons = array( $local_path );
119 }
120 }
121
122 $icon_dir = dirname( $icons[0] );
123 $relative_url = fs_img_url( substr( $icons[0], strlen( $icon_dir ) ), $icon_dir );
124 ?>
125 <div class="fs-plugin-icon">
126 <img src="<?php echo $relative_url ?>" width="80" height="80"/>
127 </div>
128