SBM Popular Entry プラグインをウィジェット対応にする

2010-4-13 11:00
このエントリーをはてなブックマークに追加

このサイトでは WordPress にブックマーク等のカウント数を表示するために被ブックマーク数表示+ランキング生成プラグインを利用しています。

このプラグインは、はてなブックマーク、ライブドアクリップ、delicious、Yahoo! ブックマークのカウント数を表示するだけでなく、内部にキャッシュしたデータを利用してブックマック数のランキング表示をする機能があります。

このプラグインは更新が停止されてしまっているのですが、サイドバーにランキング表示するウィジェット機能を追加してみました。以下のコードを wp-sbm_popular_entry.php に追加します。

class SBM_Popular_Entry_Widget extends WP_Widget {
    function SBM_Popular_Entry_Widget() {
        parent::WP_Widget(false, $name = 'SBM Popular Entry');	
    }

    function widget($args, $instance) {
        extract( $args );
        $title = $instance['title'];
        $number = $instance['number'];
        echo $before_widget;
        if (isset($title)) {
            echo $before_title, $title, $after_title;
        }
        if (empty($number)) {
            $number = 10;
        }
        SBM_popular_entry_list($number);
        echo $after_widget;
    }

    function update($new_instance, $old_instance) {
        $instance = $old_instance;
        $instance['title'] = strip_tags($new_instance['title']);
        if (!$number = (int)$new_instance['number']) {
            $number = 10;
        } else if ( $number < 1 ) {
             $number = 1;
        } else if ( $number > 15 ) {
             $number = 15;
        }
        $instance['number'] = $number;
        return $instance;
    }

    function form($instance) {
        echo '<p><label for="', $this->get_field_id('title'), '">',
                _e('Title:'), ' <input class="widefat" id="', $this->get_field_id('title'),
                '" name="', $this->get_field_name('title'),
                '" type="text" value="', $instance['title'], '" /></label></p>';
        echo '<p><label for="', $this->get_field_id('number'), '">',
                _e('Number of posts to show:'), ' <input id="', $this->get_field_id('number'), 
                '" name="', $this->get_field_name('number'),
                '" type="text" value="', $instance['number'], '" size="3" maxlenght="2" /></label><br />',
                '<small>', _e('(at most 15)'), '</small></p>';
     }

}

add_action('widgets_init', create_function('', 'return register_widget("SBM_Popular_Entry_Widget");'));

これでウィジェット対応テーマの場合、”SBM Popular Entry” というウィジェットが使えるようになります。

あわせてSBM Popular Entryのdelicious.comのカウント数を表示する修正も実施しています。delicious のブックマーク数がカウントされなかったのを表示できました。

コメントはまだありません

No comments yet.

Sorry, the comment form is closed at this time.

71 queries. HTML convert time: 1.117 sec. Powered by WordPress. Valid XHTML
Copyright © 2003-2017 @ futuremix.org ログイン