サイト全体、または一部のページに対して、登録ユーザーのみに閲覧を制限したい場合には、テーマのテンプレートファイル内に、次のコードを追加します。
|
<?php if (!is_user_logged_in()) auth_redirect(); ?> |
ログインしていない状態で該当するテンプレートのページを開こうとした場合、ログイン画面に移りユーザー名、パスワードの入力を求められます。
そこでログインするともとのページにリダイレクトされ、ページの閲覧が可能になります。
「is_page()」「is_category()」などと組み合わせると、必要なページのみに制限をかけることができます。
Drupalのコアに含まれるプロフィールモジュールではユーザに関連するデータ、本名や電話などを追加で作成できます。プロフィールモジュールで作成したカスタムフィールドを、データベースから直接取り出す時のメモです。
この情報をノードタイプのviewsやcontemplateで使いたい時に、下記のように記述して直接データベースから取得しています。
|
<?php //uidが3で、プロフィールフィールドのIDが1のデータ $value = db_result(db_query("SELECT value FROM {profile_values} WHERE uid = %d AND fid = %d", 3, 1)); echo $value; ?> |
viewsでコンテンツにCCKのユーザ参照がある場合は、リレーションシップにした方が簡単です。
PHPの正規表現によるパターンマッチで、ファイル名から拡張子を取り除いた文字列を取り出す方法です。
|
<?php echo(get_filename("test.txt")); //test echo(get_filename("test.test.txt")); //test.test function get_filename($file) { return preg_replace("/(.+)(\.[^.]+$)/", "$1", $file); } ?> |
パターンマッチ内の1つ目のパーレン「(.+)」で、任意の1文字以上の文字列を表します。
2つ目のパーレン「(\.[^.]+$)」で、文末にある、ドット1文字から始まり、ドット以外の1文字以上の文字列を表しています。
「$1」の部分を「$2」とすることで、2つ目のパーレン(上記の場合「.txt」となります)を取り出すことができます。
ちょっとしたメモや、何となくとっておきたいイメージ、参考にしたいWebページの記事など、日々増えていく細かな情報を「Yojimbo」でスマートに整理することができます。
クリップボードにあるテキストはショートカットで、イメージなどファイルはドラッグでと、さくさくと情報をためこんでいけます。
仕事で使っていると、Webで見つけたサンプルコードや、解説文など整理していくのに便利です。
情報をためていくだけなら、あえてこういったソフトは必要ないですが、Yojimboを使うと後から情報を見つけ出すのに、威力を発揮します。
Yojimboに取り込んだもの一つ一つにタグ付けができて、カテゴリごとに任意のフォルダに分けたり、フラッグやラベルを付けることもできます。
上手く使うこつとしては、情報を取り込んだ段階でタグ付けなど細かく分類しておくと、時間がたって忘れた時でも、素早く情報を見つけることができそうです。
Yojimboと同類のソフトに「Together」と「Evernote」があります。Togetherは機能的にもほぼ互角に感じます。価格も同じ39ドルです。どちらも試用してみてインターフェイスの好みでYojimboにしました。Evernoteも機能的には近いのですが、ブラウザを内蔵していなくて、Webアーカイブを保存(閲覧)できないところが残念です。WebページをPDFとしては保存できます。
Yojimboオフィシャルサイト
jQueryを使ってナビゲーションボタンなどによく使われている、画像のロールオーバー、ロールアウトを設定する方法です。
予め通常時、ロールオーバー時の画像データ2種類を用意します。ファイル名は通常時が「button.png」の場合、ロールオーバー時は「button-over.png」と「-over」を付加しておきます。ともに同じディレクトリに保存します。
HTMLに通常時の画像を配置し、クラスを「over」としておきます。
|
<img src="button.png" alt="ボタン" class="over" /> |
次のjQueryを含むJavasScriptを、Head内、外部ファイルなど任意の場所に記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
$(function(){ imageOver(); }) //イメージのロールオーバー設定 function imageOver() { //クラスに「over」を持つ、ページ内の全てのimg要素に対して実行 $("img.over").each(function() { //イメージURLから拡張子を取り出し、ロールオーバー用イメージURLを作成 var image = this.src; var extension = image.substr(image.lastIndexOf("."), image.length-1); var image_over = image.replace(extension, "-over"+extension); //ロールオーバー用イメージを読み込み new Image().src = image_over; //ロールオーバー、ロールアウト時のイメージURL設定 $(this).hover( function(){this.src = image_over}, function(){this.src = image} ); }); } |
上記のスクリプトでは、HTMLページ内に配置してある「over」クラスを持つイメージ全てに対して、ロールオーバー時に「-over」を付加した画像ファイルに置き換える設定にしてあります。ロールアウトで元の画像に戻します。
スクリプト内でロールオーバー用画像を読み込んでおくことにより、ロールオーバー時に画像の読み込みのため一瞬、間が空くことを防いでいます。