/var/www/hkosl.com/aga/wp-content/plugins/jetpack/modules/widgets/internet-defense-league.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
<?php

class Jetpack_Internet_Defense_League_Widget extends WP_Widget {

    public 
$defaults = array();

    public 
$variant;
    public 
$variants = array();

    public 
$campaign;
    public 
$campaigns  = array();
    public 
$no_current true;

    public 
$badge;
    public 
$badges = array();

    function 
__construct() {
        
parent::__construct(
            
'internet_defense_league_widget',
            
/** This filter is documented in modules/widgets/facebook-likebox.php */
            
apply_filters'jetpack_widget_name'esc_html__'Internet Defense League''jetpack' ) ),
            array(
                
'description'                 => esc_html__'Show your support for the Internet Defense League.''jetpack' ),
                
'customize_selective_refresh' => true,
            )
        );

        
// When enabling campaigns other than 'none' or empty, change $no_current to false above.
        
$this->campaigns = array(
            
''     => esc_html__'All current and future campaigns''jetpack' ),
            
'none' => esc_html__'None, just display the badge please''jetpack' ),
        );

        
$this->variants = array(
            
'banner' => esc_html__'Banner at the top of my site''jetpack' ),
            
'modal'  => esc_html__'Modal (Overlay Box)''jetpack' ),
        );

        
$this->badges = array(
            
'shield_badge'   => esc_html__'Shield Badge''jetpack' ),
            
'super_badge'    => esc_html__'Super Badge''jetpack' ),
            
'side_bar_badge' => esc_html__'Red Cat Badge''jetpack' ),
        );

        if ( 
$this->no_current === false ) {
            
$this->badges['none'] = esc_html__'Don\'t display a badge (just the campaign)''jetpack' );
        }

        
$this->defaults = array(
            
'campaign' => key$this->campaigns ),
            
'variant'  => key$this->variants ),
            
'badge'    => key$this->badges ),
        );
    }

    public function 
widget$args$instance ) {
        
$instance wp_parse_args$instance$this->defaults );

        if ( 
'none' != $instance['badge'] ) {
            if ( ! isset( 
$this->badges$instance['badge'] ] ) ) {
                
$instance['badge'] = $this->defaults['badge'];
            }
            
$badge_url        esc_url'https://internetdefenseleague.org/images/badges/final/' $instance['badge'] . '.png' );
            
$photon_badge_url jetpack_photon_url$badge_url );
            
$alt_text         esc_html__'Member of The Internet Defense League''jetpack' );
            echo 
$args['before_widget'];
            echo 
'<p><a href="https://internetdefenseleague.org/"><img src="' $photon_badge_url '" alt="' $alt_text '" style="max-width: 100%; height: auto;" /></a></p>';
            echo 
$args['after_widget'];
        }

        if ( 
'none' != $instance['campaign'] ) {
            
$this->campaign $instance['campaign'];
            
$this->variant  $instance['variant'];
            
add_action'wp_footer', array( $this'footer_script' ) );
        }

        
/** This action is already documented in modules/widgets/gravatar-profile.php */
        
do_action'jetpack_stats_extra''widget_view''internet_defense_league' );
    }

    public function 
footer_script() {
        if ( ! isset( 
$this->campaigns$this->campaign ] ) ) {
            
$this->campaign $this->defaults['campaign'];
        }

        if ( ! isset( 
$this->variants$this->variant ] ) ) {
            
$this->variant $this->defaults['variant'];
        }
        
?>
        <script type="text/javascript">
            window._idl = {};
            _idl.campaign = "<?php echo esc_js$this->campaign ); ?>";
            _idl.variant = "<?php echo esc_js$this->variant ); ?>";
            (function() {
                var idl = document.createElement('script');
                idl.type = 'text/javascript';
                idl.async = true;
                idl.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'members.internetdefenseleague.org/include/?url=' + (_idl.url || '') + '&campaign=' + (_idl.campaign || '') + '&variant=' + (_idl.variant || 'banner');
                document.getElementsByTagName('body')[0].appendChild(idl);
            })();
        </script>
        <?php
    
}

    public function 
form$instance ) {
        
$instance wp_parse_args$instance$this->defaults );

        
// Hide first two form fields if no current campaigns.
        
if ( false === $this->no_current ) {
            echo 
'<p><label>';
            echo 
esc_html__'Which Internet Defense League campaign do you want to participate in?''jetpack' ) . '<br />';
            
$this->select'campaign'$this->campaigns$instance['campaign'] );
            echo 
'</label></p>';

            echo 
'<p><label>';
            echo 
esc_html__'How do you want to promote the campaign?''jetpack' ) . '<br />';
            
$this->select'variant'$this->variants$instance['variant'] );
            echo 
'</label></p>';
        }

        echo 
'<p><label>';
        echo 
esc_html__'Which badge would you like to display?''jetpack' ) . '<br />';
        
$this->select'badge'$this->badges$instance['badge'] );
        echo 
'</label></p>';

        
/* translators: %s is a name of an internet campaign called the "Internet Defense League" */
        
echo '<p>' sprintf_x'Learn more about the %s''the Internet Defense League''jetpack' ), '<a href="https://www.internetdefenseleague.org/">Internet Defense League</a>' ) . '</p>';
    }

    public function 
select$field_name$options$default null ) {
        echo 
'<select class="widefat" name="' $this->get_field_name$field_name ) . '">';
        foreach ( 
$options as $option_slug => $option_name ) {
            echo 
'<option value="' esc_attr$option_slug ) . '"' selected$option_slug$defaultfalse ) . '>' esc_html$option_name ) . '</option>';
        }
        echo 
'</select>';
    }

    public function 
update$new_instance$old_instance ) {
        
$instance = array();

        
$instance['campaign'] = ( isset( $new_instance['campaign'] ) && isset( $this->campaigns$new_instance['campaign'] ] ) ) ? $new_instance['campaign'] : $this->defaults['campaign'];
        
$instance['variant']  = ( isset( $new_instance['variant'] ) && isset( $this->variants[  $new_instance['variant']  ] ) ) ? $new_instance['variant'] : $this->defaults['variant'];
        
$instance['badge']    = ( isset( $new_instance['badge'] ) && isset( $this->badges[    $new_instance['badge'] ] ) ) ? $new_instance['badge'] : $this->defaults['badge'];

        return 
$instance;
    }
}

function 
jetpack_internet_defense_league_init() {
    
register_widget'Jetpack_Internet_Defense_League_Widget' );
}

add_action'widgets_init''jetpack_internet_defense_league_init' );