Drupal、はてなブックマークに対応したService linksモジュールの作り方

in

よくブログは、はてなブックマークやBuzzurlやlivedoorクリップなどのソーシャルブックマークのボタンが貼られています。ブログ側は読者にソーシャルブックマークが使えるという利便性を提供します。ソーシャルブックマーク側はブックマークされている人気の記事情報を配信できます。相互にユーザーがアクセスしてくれるので、ソーシャル系として人気のサービスです。

Drupalでも、ソーシャルブックマークのボタンを気軽に付けられるモジュールがあります。Service linksです。しかし海外製であるため、選べるボタンはdel.icio.us、Digg、Reddit、Facebookなど海外のサイトばかり。はてなブックマークのボタンを表示させる、日本語向きのカスタマイズする方法を記します。

まずは、管理画面のカスタマイズ。service_links.moduleファイルの54行目に以下記述があります。

  $form['what_links_to_show'] = array(
    '#type' => 'fieldset',
    '#title' => t('What bookmark links to show'),
  );
  $form['what_links_to_show']['service_links_show_delicious'] = array(
    '#type' => 'checkbox',
    '#title' => t('Show del.icio.us link'),
    '#return_value' => 1,
    '#default_value' => variable_get('service_links_show_delicious', 1),
  );

以下の記述を

  $form['what_links_to_show']['service_links_show_hatena'] = array(
    '#type' => 'checkbox',
    '#title' => t('Show Hatena link'),
    '#return_value' => 1,
    '#default_value' => variable_get('service_links_show_hatena', 1),
  );

58行目に追記します。するとこんな感じになるはずです。

  $form['what_links_to_show'] = array(
    '#type' => 'fieldset',
    '#title' => t('What bookmark links to show'),
  );
  $form['what_links_to_show']['service_links_show_hatena'] = array(
    '#type' => 'checkbox',
    '#title' => t('Show Hatena link'),
    '#return_value' => 1,
    '#default_value' => variable_get('service_links_show_hatena', 1),
  );
  $form['what_links_to_show']['service_links_show_delicious'] = array(
    '#type' => 'checkbox',
    '#title' => t('Show del.icio.us link'),
    '#return_value' => 1,
    '#default_value' => variable_get('service_links_show_delicious', 1),
  );

実際表示する部分をカスタマイズします。
330行目あたりにある以下のコード以降が表示する部分になります。ちなみにこの部分はdel.icio.usの表示です。

  if (variable_get('service_links_show_delicious', 0)) {
    $links['service_links_delicious'] = theme('service_links_build_link', t('Delicious'), "http://del.icio.us/post?url=$url&title=$title", t('Bookmark this post on del.icio.us.'), 'delicious.png', $nodelink);
  }

上記コードの前でも後でもいいので、以下にコードを追加します。

  if (variable_get('service_links_show_hatena', 0)) {
    $links['service_links_hatena'] = theme('service_links_build_link', t('Hatena'), "http://b.hatena.ne.jp/entry/".urldecode($url), t('Bookmark this post on Hatena'), 'hatena.gif', $nodelink);
  }

これでservice_links.moduleファイルを保存してください。

最後に、ブックマークのボタンに使う画像を取ってサーバに配置します。

http://b.hatena.ne.jp/images/entry.gif をダウンロードしファイル名をhatena.gifに変えます。hatena.gifファイルをサーバの sites/all/modules/service_links フォルダの下に保存してください。

これでカスタマイズ終了。

あとは管理画面のService linksの設定で、「Show Hatena link」にチェックをつけてください。これではてなブックマークのボタンが表示されます。


Back to top