本日は「 Drupal での開発に便利なブックマークレット」という小ネタのご紹介ができればと思います。
まずは、ブックマークレットをご存じない方のためにブックマークレットについて手短にご説明をさせてください。 「ブックマークレット」( bookmarklet )とは、ブラウザのブックマークに登録できるタイプのプログラムのことです。 通常のブックマークと同様、ブックマークのタイトルと URL のペアを登録して利用する形になります。 プログラム(コード)の記述には(おそらく唯一) JavaScript が利用できます。
本当の本当に小ネタですので前置きはこれぐらいにして早速ブックマークレットのご紹介に入りたいと思います。
1. Drupal モジュールのダウンロードコマンドを出力するブックマークレット
まずはひとつめ。 こちらは Drupal.org のコントリビュートモジュールのページでダウンロード用の Drush コマンドを出力してくれるブックマークレットです。 実際の動作イメージを見ていただくのが早いかと思います。
モジュールページでブックマークレットを実行すると
プロンプトウィンドウにモジュールダウンロード用の Drush コマンドが出力されます。
コードはこちら。
javascript:(function (){
/* 定数を定義 */
var PROPER_URL = /^https?\:\/\/www\.drupal\.org/;
var MODULE_PATTERN = /[^\/]+$/;
/* 現在のページの URL を取得 */
var url = document.URL;
/* 現在のウェブサイトが Drupal.org 以外なら何もせずに終了 */
if (!(PROPER_URL.test(url))) {
return;
}
/* Drush のダウンロードコマンドをプロンプトで表示 */
var module_name = MODULE_PATTERN.exec(url);
var command = 'drush -y dl ' + module_name;
window.prompt('drush command for installation', command);
})();
出てきたプロンプト文字列をコピーしてコマンドラインに貼り付ければすぐにモジュールがダウンロードできます。
私自身ふだんはコマンドを手打ちするのですが、キーボードをたくさん叩き過ぎてキーボード入力がつらくなったような日(笑)には、思い出したようにこのブックマークレットを使用します。
現在のページが Drupal.org のモジュールページかどうかの厳密なチェックはしていないため、そのあたりは使う側でのチェックが必要です。
2. 現在のページの Generator を確認するブックマークレット
ふたつめは、他のサイトを見ているときに「これ Drupal かな?」と思ったときに手軽に Generator をチェックするためのブックマークレットです。
javascript:(function (){
/* Drupal 7 には jQuery が同梱されているので jQuery をそのまま使う */
if (typeof jQuery !== 'undefined') {
alert(jQuery('meta[name="Generator"]').attr('content'));
}
})();
Drupal 7 の場合 jQuery が原則有効化されているので jQuery の機能をダイレクトに使用しています。 jQuery がないサイトの場合には何も処理せずに終了するので、汎用の Generator チェック用ブックマークレットではありません。 その点は注意が必要です。
Drupal 7 を使っているサイトで上記のブックマークレットを使用すると、次のようなアラートが出てきて Drupal 7 (http://drupal.org)
という文字列が表示されます。
こちらは他のブラウザの拡張機能でも実現できたりするので、ちょっとお遊び的なブックマークレットです。
以上です。 いかがだったでしょうか?
エディタのスニペットや Drush をはじめとして、 Drupal 開発やホームページ運用をサポートしてくれるツールがいろいろあります。 今後も良さそうなものをここでご紹介していければと思います。
募集しています
スタジオ・ウミは「Drupal」に特化したサービスを提供する Drupal のエキスパートチーム。
フルリモート&フレックス制だから、働く場所を選ばず時間の使い方も自由です。
そんなワークライフバランスの整った環境で、当ブログに書かれているような
様々な技術を共に学びながら、Drupalサイト開発に携わってみたい方を募集しています。
まずはお話だけでも大歓迎!ぜひお気軽にご連絡ください。