/**
  * Get Button for front
  *
  * @param $post WP_Post
  * @since 0.0.1-dev
  *
  * @return string
  */
 public function get_display($post)
 {
     if ($this->smart) {
         return Push7_Subscribe_Button::get_official_button(Push7_Subscribe_Button::get_appid_inc_official());
     } else {
         return $this->get_link('about:blank', apply_filters('push7_sb_share_title', _x('Subscribe', 'share to', 'simple-push-subscribe-button')), apply_filters('push7_sb_share_description', __('Click to subscribe push notification with Push7', 'simple-push-subscribe-button')), 'appid=' . Push7_Subscribe_Button::get_appid_inc_official(), 'sharing-push7-' . $post->ID);
     }
 }
 /**
  * for save options
  *
  * @param array $options_in
  *
  * @return Push7_Subscribe_Button_Options
  */
 public static function create_options($options_in)
 {
     if (!is_array($options_in)) {
         if ($options_in instanceof static) {
             $options_in = get_object_vars($options_in);
         } else {
             throw new RuntimeException('Invalid action.');
         }
     }
     $options['appid'] = empty($options_in['appid']) ? '' : $options_in['appid'];
     $options['enable_social_buzz'] = empty($options_in['enable_social_buzz']) ? false : ('true' === $options_in['enable_social_buzz'] ? true : ('on' === $options_in['enable_social_buzz'] ? true : (true === $options_in['enable_social_buzz'] ? true : false)));
     $options['social_buzz_message'] = empty($options_in['social_buzz_message']) ? '' : $options_in['social_buzz_message'];
     $options['social_buzz_mode'] = !empty($options_in['social_buzz_mode']) && in_array($options_in['social_buzz_mode'], array_keys(Push7_Subscribe_Button::get_sbztypes()), true) ? $options_in['social_buzz_mode'] : null;
     if (empty($options_in['social_buzz_posttype']) or !is_array($options_in['social_buzz_posttype'])) {
         $options['social_buzz_posttype'] = array();
     } else {
         $post_types = get_post_types();
         foreach ($options_in['social_buzz_posttype'] as $post_type) {
             if (in_array($post_type, $post_types, true)) {
                 $options['social_buzz_posttype'][] = $post_type;
             }
         }
     }
     return new self($options);
 }
    /**
     * @param array $instance
     *
     * @since 0.0.1-dev
     * @return string
     */
    public function form($instance)
    {
        $title = isset($instance['title']) ? $instance['title'] : __('Subscribe Push Notification', 'simple-push-subscribe-button');
        $mode = !empty($instance['mode']) ? $instance['mode'] : 'r';
        $appid = !empty($instance['appid']) ? $instance['appid'] : '';
        ?>
		<p>
			<label
				for="<?php 
        echo $this->get_field_id('title');
        ?>
"><?php 
        _e('Title (Option):', 'simple-push-subscribe-button');
        ?>
</label>
			<input class="widefat" id="<?php 
        echo $this->get_field_id('title');
        ?>
"
			       name="<?php 
        echo $this->get_field_name('title');
        ?>
" type="text"
			       value="<?php 
        echo esc_attr($title);
        ?>
">

		</p>
		<p>
			<label
				for="<?php 
        echo $this->get_field_id('mode');
        ?>
"><?php 
        _e('Mode:', 'simple-push-subscribe-button');
        ?>
</label>
			<select class="widefat" id="<?php 
        echo $this->get_field_id('mode');
        ?>
"
			        name="<?php 
        echo $this->get_field_name('mode');
        ?>
">
				<?php 
        foreach ($this->mode_variation as $m => $name) {
            ?>
					<option value="<?php 
            echo $m;
            ?>
" <?php 
            selected($mode, $m);
            ?>
><?php 
            echo $name;
            ?>
</option><?php 
        }
        ?>
			</select>

		</p>

		<p>
			<label
				for="<?php 
        echo $this->get_field_id('appid');
        ?>
"><?php 
        _e('APPID (Option):', 'simple-push-subscribe-button');
        ?>
</label>
			<input class="widefat" id="<?php 
        echo $this->get_field_id('appid');
        ?>
"
			       name="<?php 
        echo $this->get_field_name('appid');
        ?>
" type="text"
			       value="<?php 
        echo esc_attr($appid);
        ?>
"
			       placeholder="<?php 
        echo esc_attr(Push7_Subscribe_Button::get_appid_inc_official());
        ?>
"
			       pattern="<?php 
        echo Push7_Subscribe_Button::APP_ID_PATTERN;
        ?>
"
			>

		</p>

		<?php 
        return $instance;
    }
 public function test_official_button()
 {
     $this->assertSame(Push7_Subscribe_Button::get_official_button(Push7_Subscribe_Button::get_appid_inc_official()), '<div class="p7-b" data-p7id="' . self::OUR_APPID . '" data-p7c="n"></div>');
 }
 /**
  * @return string
  * @since 0.0.1-dev
  */
 public function get_template()
 {
     return sprintf('<div class=push7-sb-sbz-simple id=push7-sb-sbz>%s</div>', sprintf(__('%1$s Push Notification', 'simple-push-subscribe-button'), \Push7_Subscribe_Button::get_official_button(\Push7_Subscribe_Button::get_appid_inc_official(), 'r')));
 }
 /**
  * @return string
  * @since 0.0.1-dev
  */
 public function get_template()
 {
     return sprintf('<div class="push7-sb-sbz-with-thumb" id="push7-sb-sbz"><div class="push7-sb-sbz-with-thumb-thumbnail"></div><div class="push7-sb-sbz-with-thumb-subscribe">%s</div></div>', sprintf('<p>%s</p><div class="push7ssb-subscribe">%s</div>', \Push7_Subscribe_Button_Options::get_options()->social_buzz_message, \Push7_Subscribe_Button::get_official_button(\Push7_Subscribe_Button::get_appid_inc_official(), 'r')));
 }
 public function render_sbz_mode()
 {
     $current = \Push7_Subscribe_Button_Options::get_options()->social_buzz_mode;
     echo '<select name="' . \Push7_Subscribe_Button::PLUGIN_OPTIONS . '[social_buzz_mode]" id="push7ssb_sbz_mode">';
     foreach (\Push7_Subscribe_Button::get_sbztypes() as $slug => $attrs) {
         printf('<option value="%s" %s>%s</option>', $slug, selected($slug, $current, false), $attrs['name']);
     }
     echo '</select>';
 }