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

投稿者:chikunai 投稿日時:2009-01-04(日) 22:22

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

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

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

  1.   $form['what_links_to_show'] = array(
  2.     '#type' => 'fieldset',
  3.     '#title' => t('What bookmark links to show'),
  4.   );
  5.   $form['what_links_to_show']['service_links_show_delicious'] = array(
  6.     '#type' => 'checkbox',
  7.     '#title' => t('Show del.icio.us link'),
  8.     '#return_value' => 1,
  9.     '#default_value' => variable_get('service_links_show_delicious', 1),
  10.   );

以下の記述を

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

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

  1.   $form['what_links_to_show'] = array(
  2.     '#type' => 'fieldset',
  3.     '#title' => t('What bookmark links to show'),
  4.   );
  5.   $form['what_links_to_show']['service_links_show_hatena'] = array(
  6.     '#type' => 'checkbox',
  7.     '#title' => t('Show Hatena link'),
  8.     '#return_value' => 1,
  9.     '#default_value' => variable_get('service_links_show_hatena', 1),
  10.   );
  11.   $form['what_links_to_show']['service_links_show_delicious'] = array(
  12.     '#type' => 'checkbox',
  13.     '#title' => t('Show del.icio.us link'),
  14.     '#return_value' => 1,
  15.     '#default_value' => variable_get('service_links_show_delicious', 1),
  16.   );

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

  1.   if (variable_get('service_links_show_delicious', 0)) {
  2.     $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);
  3.   }

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

  1.   if (variable_get('service_links_show_hatena', 0)) {
  2.     $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);
  3.   }

これで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」にチェックをつけてください。これではてなブックマークのボタンが表示されます。




コメント(0)

新しいコメントの投稿

このフィールドの内容は非公開にされ、公表されることはありません。
  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 使用できるHTMLタグ: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • 行と段落は自動的に折り返されます。
  • You can use BBCode tags in the text. URLs will automatically be converted to links.
  • 次のタグを使用してソースコード構文をハイライトすることができます。: <code>, <blockcode> The supported tag styles are: <foo>, [foo].
  • You may insert videos with [video:URL]

書式オプションに関するより詳しい情報...

CAPTCHA
この問題はユーザが人間であるかどうかをテストし、スパムによる自動投稿を防ぐためのものです。
Image CAPTCHA
Enter the characters shown in the image.
Drupal theme by Kiwi Themes.