[ Index ]

PHP Cross Reference of WordPress Trunk (Updated Daily)

Search

title

Body

[close]

/wp-content/plugins/akismet/ -> class.akismet-widget.php (source)

   1  <?php
   2  /**
   3   * @package Akismet
   4   */
   5  
   6  // We plan to gradually remove all of the disabled lint rules below.
   7  // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped
   8  
   9  /**
  10   * Akismet Widget Class
  11   */
  12  class Akismet_Widget extends WP_Widget {
  13  
  14      /**
  15      * Constructor
  16      */
  17  	function __construct() {
  18          parent::__construct(
  19              'akismet_widget',
  20              __( 'Akismet Widget', 'akismet' ),
  21              array( 'description' => __( 'Display the number of spam comments Akismet has caught', 'akismet' ) )
  22          );
  23      }
  24  
  25      /**
  26       * Outputs the widget settings form
  27       *
  28       * @param array $instance The widget options
  29       */
  30  	public function form( $instance ) {
  31          if ( $instance && isset( $instance['title'] ) ) {
  32              $title = $instance['title'];
  33          } else {
  34              $title = __( 'Spam Blocked', 'akismet' );
  35          }
  36          ?>
  37  
  38          <p>
  39              <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php esc_html_e( 'Title:', 'akismet' ); ?></label>
  40              <input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
  41          </p>
  42  
  43          <?php
  44      }
  45  
  46      /**
  47       * Updates the widget settings
  48       *
  49       * @param array $new_instance New widget instance
  50       * @param array $old_instance Old widget instance
  51       * @return array Updated widget instance
  52       */
  53  	public function update( $new_instance, $old_instance ) {
  54          $instance          = array();
  55          $instance['title'] = sanitize_text_field( $new_instance['title'] );
  56          return $instance;
  57      }
  58  
  59      /**
  60       * Outputs the widget content
  61       *
  62       * @param array $args Widget arguments
  63       * @param array $instance Widget instance
  64       */
  65  	public function widget( $args, $instance ) {
  66          $count = get_option( 'akismet_spam_count' );
  67  
  68          if ( ! isset( $instance['title'] ) ) {
  69              $instance['title'] = __( 'Spam Blocked', 'akismet' );
  70          }
  71  
  72          echo $args['before_widget'];
  73          if ( ! empty( $instance['title'] ) ) {
  74              echo $args['before_title'];
  75              echo esc_html( $instance['title'] );
  76              echo $args['after_title'];
  77          }
  78          ?>
  79  
  80          <style>
  81              .a-stats {
  82                  --akismet-color-mid-green: #357b49;
  83                  --akismet-color-white: #fff;
  84                  --akismet-color-light-grey: #f6f7f7;
  85  
  86                  max-width: 350px;
  87                  width: auto;
  88              }
  89  
  90              .a-stats * {
  91                  all: unset;
  92                  box-sizing: border-box;
  93              }
  94  
  95              .a-stats strong {
  96                  font-weight: 600;
  97              }
  98  
  99              .a-stats a.a-stats__link,
 100              .a-stats a.a-stats__link:visited,
 101              .a-stats a.a-stats__link:active {
 102                  background: var(--akismet-color-mid-green);
 103                  border: none;
 104                  box-shadow: none;
 105                  border-radius: 8px;
 106                  color: var(--akismet-color-white);
 107                  cursor: pointer;
 108                  display: block;
 109                  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen-Sans', 'Ubuntu', 'Cantarell', 'Helvetica Neue', sans-serif;
 110                  font-weight: 500;
 111                  padding: 12px;
 112                  text-align: center;
 113                  text-decoration: none;
 114                  transition: all 0.2s ease;
 115              }
 116  
 117              /* Extra specificity to deal with TwentyTwentyOne focus style */
 118              .widget .a-stats a.a-stats__link:focus {
 119                  background: var(--akismet-color-mid-green);
 120                  color: var(--akismet-color-white);
 121                  text-decoration: none;
 122              }
 123  
 124              .a-stats a.a-stats__link:hover {
 125                  filter: brightness(110%);
 126                  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06), 0 0 2px rgba(0, 0, 0, 0.16);
 127              }
 128  
 129              .a-stats .count {
 130                  color: var(--akismet-color-white);
 131                  display: block;
 132                  font-size: 1.5em;
 133                  line-height: 1.4;
 134                  padding: 0 13px;
 135                  white-space: nowrap;
 136              }
 137          </style>
 138  
 139          <div class="a-stats">
 140              <a href="https://akismet.com" class="a-stats__link" target="_blank" rel="noopener" style="background-color: var(--akismet-color-mid-green); color: var(--akismet-color-white);">
 141                  <?php
 142  
 143                  echo wp_kses(
 144                      sprintf(
 145                      /* translators: The placeholder is the number of pieces of spam blocked by Akismet. */
 146                          _n(
 147                              '<strong class="count">%1$s spam</strong> blocked by <strong>Akismet</strong>',
 148                              '<strong class="count">%1$s spam</strong> blocked by <strong>Akismet</strong>',
 149                              $count,
 150                              'akismet'
 151                          ),
 152                          number_format_i18n( $count )
 153                      ),
 154                      array(
 155                          'strong' => array(
 156                              'class' => true,
 157                          ),
 158                      )
 159                  );
 160  
 161                  ?>
 162              </a>
 163          </div>
 164  
 165          <?php
 166          echo $args['after_widget'];
 167      }
 168  }
 169  
 170  /**
 171   * Register the Akismet widget
 172   */
 173  function akismet_register_widgets() {
 174      register_widget( 'Akismet_Widget' );
 175  }
 176  
 177  add_action( 'widgets_init', 'akismet_register_widgets' );


Generated : Sat Jul 26 08:20:01 2025 Cross-referenced by PHPXref