Vicuna AdaptorにTwitterへの投稿機能を追加する

このブログの Theme は Vicuna Ext.で,Vicuna Adaptor というプラグインを使って,はてブカウンターなどを 表示させています.これのハックとして,Twitter への投稿ボタンを追加するというのを発見したので, 付けてみました.しかし,そのままだと上手くいかなかったので,僕がやった方法を書いておきます. まぁ,Vicuna Ext.だけだったらテーマに直接書き込んでもいい気がしますが,やはりこういうのはプラグインに 分離できるといいですよね.

/vicuna-adaptors/includes/admin_ui.php

このファイルは管理画面での Vicuna Adaptor の挙動を設定しています.一覧の一番下に Twitter 用の設定を 追加すると共に,id が POST された時の挙動なども設定してあげます.

指定の場所に以下のコードを追加します.

function vicuna_adaptor_menu()の中

if (isset($_POST['twitter-id'])) {
    $options['twitter-id'] = $_POST['twitter-id'];
    update_option('vicuna_adaptor', $options);
}

function vicuna_adaptor_menu()の中のif ($_GET['action'] == 'deactivate-all')の中

if (isset($options['twitter-id'])) {
    $tmp['twitter-id'] = $options['twitter-id'];
}

この 2 つは hatena-star-token がほぼ同じコードを書いているのでそれをコピーすればいいでしょう.

下の方の</tbody>の前くらい

<?php   /* Twitter */
    $status = $options['twitter']; ?>
    <tr<?php if ($status) : echo ' class="active"'; endif; ?>>
        <td class='name'><a href="http://twitter.com/"><img
src="http://twitter.com/favicon.ico" />twitter</a></td>
        <td class='desc'><p>記事のurl付きであなたのTwitterにコメントが届きます</p></td>
        <td class='status'><span class="<?php if (!$status) : echo 'in'; endif; ?>active"><?php if ($status) : echo 'A'; else : echo 'Ina'; endif; ?>ctive</span></td>
        <td class='togl action-links'><a href='plugins.php?page=admin_ui.php&action=<?php if ($status) : echo 'in'; endif; ?>active&#038;extension=twitter' title='<?php if (!$status) : echo 'A'; else : echo 'Ina'; endif; ?>ctive this plugin' class='edit'><?php if (!$status) : echo 'A'; else : echo 'Ina'; endif; ?>ctive</a></td>
    </tr>
    <tr<?php if ($status) : echo ' class="active"'; endif; ?>><td colspan="4" style="text-align: center"><form method="post" action="plugins.php?page=admin_ui.php">user ID = <input type="text" name="twitter-id" value="<?php echo htmlspecialchars($options["twitter-id"]); ?>" size="45" /> <input type="submit" value="<?php _e('submit', 'vicuna_adaptor'); ?>" /></form></td>

これも,はてなスターが似てるのでコピーして改変してもいいでしょう.

/vicuna-adapors/vicuna-adaptor.php

こちらのファイルは実際にブログ上でどのように表示されるかを設定しています.

下の方のfunction icon_css()の前くらい

if ($options['twitter']) {
    function add_twitter_post() {
?>
    <li class="icon twitter post"><a href="http://twitter.com/home?status=@
<?php
$options = get_option('vicuna_adaptor');
echo $options["twitter-id"];
?>
%20(<?php the_permalink() ?>%20)"><img src="http://twitter.com/favicon.ico" alt="Twitterでコメントする" /></a></li>
<?php
    }
    add_action('entry_info', add_twitter_post);
    add_action('single_entry_info', add_twitter_post);
    add_action('page_entry_info', add_twitter_post);
}

できあがり^^

これで完了です.あとは管理画面から Vicuna Adaptor を開くと,Twitter の項目が追加されているので Active にして, 自分の Twitter ID を登録しておけば,エントリ画面に Twitter 用のボタンが表示されます.

ボタンを押すと,ログインしている Twitter の画面が開き,発言欄に「@twitter-id (http://aaaa )」という内容が 入っているのでそのまま何か書いて投稿すれば OK!

さらに良くするなら,Twitter の画面に飛ばさずに Ajax でやるのがスマートだな.時間があれば考えてみたいけど, Ajax わかんねー w