PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 4.2.2
Admin Columns v4.2.2
7.0.19 2.3.5 2.4 2.4.1 2.4.10 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.6.1 2.5.6.2 2.5.6.3 2.5.6.4 3.0 3.0.1 3.0.2 3.0.3 3.0.5 3.0.7 3.1 3.1.1 3.1.10 3.1.2 3.1.3 3.1.5 3.2.3 3.2.7 3.3.1 3.4.1 3.4.6 3.4.8 4.0.1 4.0.3 4.1.6 4.2.2 4.2.5 4.3 4.3.2 4.4.1 4.4.4 4.4.5 4.5.5 4.6.1 4.7.18 4.7.19 4.7.20 4.7.7 7.0.13 7.0.14 7.0.16 trunk 1.0 1.1 1.1.3 1.2 1.2.1 1.3 1.3.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.5.1 1.4.6 1.4.6.1 1.4.6.2 1.4.6.3 1.4.6.4 1.4.7 1.4.8 1.4.9 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2 2.2.1 2.2.1.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.5.1 2.2.6 2.2.6.1 2.2.6.2 2.2.6.3 2.2.6.4 2.2.7 2.2.8 2.2.8.1 2.2.9 2.3.1 2.3.2 2.3.3
codepress-admin-columns / classes / Message / Plugin.php
codepress-admin-columns / classes / Message Last commit date
Notice 5 years ago InlineMessage.php 5 years ago Notice.php 5 years ago Plugin.php 5 years ago
Plugin.php
104 lines
1 <?php
2
3 namespace AC\Message;
4
5 use AC\Message;
6 use AC\View;
7
8 class Plugin extends Message {
9
10 /**
11 * @var string
12 */
13 protected $plugin_basename;
14
15 /**
16 * @var string
17 */
18 protected $icon;
19
20 /**
21 * @param string $message
22 * @param string $plugin_basename
23 */
24 public function __construct( $message, $plugin_basename ) {
25 parent::__construct( $message );
26
27 $this->plugin_basename = $plugin_basename;
28 $this->type = self::WARNING;
29 $this->icon = $this->get_icon_by_current_type();
30 }
31
32 public function register() {
33 add_action( 'after_plugin_row_' . $this->plugin_basename, [ $this, 'display' ], 11 );
34 }
35
36 public function render() {
37 switch ( $this->type ) {
38 case self::SUCCESS :
39 $class = 'updated-message notice-success';
40
41 break;
42 case self::INFO :
43 $class = self::WARNING;
44
45 break;
46 default:
47 $class = $this->type;
48 }
49
50 $is_plugin_active = is_multisite() && is_network_admin()
51 ? is_plugin_active_for_network( $this->plugin_basename )
52 : is_plugin_active( $this->plugin_basename );
53
54 $status = $is_plugin_active
55 ? 'active'
56 : 'inactive';
57
58 $data = [
59 'plugin_basename' => $this->plugin_basename,
60 'icon' => $this->icon,
61 'class' => $class,
62 'message' => $this->message,
63 'type' => $this->type,
64 'status' => $status,
65 ];
66
67 $view = new View( $data );
68 $view->set_template( 'message/plugin' );
69
70 return $view->render();
71 }
72
73 /**
74 * @return string
75 */
76 protected function get_icon_by_current_type() {
77 $mapping = [
78 self::SUCCESS => '\f147',
79 self::WARNING => '\f348',
80 self::ERROR => '\f534',
81 self::INFO => '\f463',
82 ];
83
84 if ( ! isset( $mapping[ $this->type ] ) ) {
85 return false;
86 }
87
88 return $mapping[ $this->type ];
89 }
90
91 /**
92 * Set the icon of this notice
93 *
94 * @param string $icon
95 *
96 * @return $this
97 */
98 public function set_icon( $icon ) {
99 $this->icon = $icon;
100
101 return $this;
102 }
103
104 }