Fuelphp:DBクラスを使用したデータ取得

fuelphpDBクラスを使用し、データベースのデータを取得する方法をメモします。
データを取得する際はselect()メソッドを使用するとテーブル名やフィールド名などを
記述するだけで簡単に値を取得することができます。

また、直接SQL文を記述したい場合はquery()メソッドを使用しデータを取得します。
下記にselect()メソッドquery()メソッドの使用例を記載します。


select()メソッド

select()メソッドは、新しいDatabase_Query_Builder_Selectオブジェクトを返します。
select()メソッドを使用した場合は、自動的にエスケープされるのでSQLインジェクション対策が施されます。

・使用例


$query = \DB::select('id')->from('hoge_table');
$query->where('status', 1);
$res = $query->execute()->as_array();

query()メソッド

query()メソッドは、新しいDatabase_Queryオブジェクトを返します。
query()メソッドを使用する場合は、直接SQL文を記載します。

・使用例(SQL文の直接記述)


$sql = "SELECT id FROM hoge_table WHERE status = 1";
$query = \DB::query($sql);
$res = $query->execute()->as_array();

複雑なSQL文などを書く場合などに便利です。
しかし、エスケープ処理がされないので注意が必要です。

Twitter:WEBサイトにTwitterのタイムラインを埋め込む

ホームページブログTwitterタイムラインを表示しているWEBサイトをよく目にします。

自分のWEBサイトTwitterタイムラインを埋め込んでみました。
その時の埋め込み方法をメモします。


Twitter タイムラインの埋め込み方法

1.表示したいアカウントのTwitterにログインします。

2.アカウントの設定画面に遷移します。

twitter_timeline_1

3.アカウントの設定画面で「ウィジェット」をクリックします。

twitter_timeline_2

または、Twitterにログインした状態で下記のURLにアクセスします。

https://twitter.com/settings/widgets

4.ウィジェット画面で「新規作成」をクリックします。

twitter_timeline_3

5.ユーザーウィジェットの設定画面でタイムラインのタブを選択します。

twitter_timeline_4

6.「オプション」で表示したい内容を修正し「ウィジェットを作成」をクリックします。

twitter_timeline_5

7.「ウェジェットが作成されました。」とメッセージが出力されるので、作成されたコードをコピーします。

twitter_timeline_6

8.コピーしたコードをWEBサイトの表示したい箇所に貼り付け、アップロードします。

twitter_timeline_7

上記のようにTwitterタイムラインを表示することができます。
横幅は設定しなくても、埋め込んだ箇所の幅に設定してくれるみたいです。


CSS:「!important」を使用し優先的にスタイルを適用させる

CSSでスタイルが適用される順番は、基本的には最後に読み込まれたスタイルが適用されます。
しかし、最初に読み込まれたスタイルを優先的に読み込ませたい場合があります。

CSSで「!important」を使用すると指定したスタイル優先的適用させることが可能です。


「!important」の使用方法

「!important」の記述は下記のように
値の後に半角スペースを空けて記載します。

div {
	プロパティ: 値 !important;
}

下記のように設定した場合「!important」を使用した方のスタイルが優先的に適用されます。
なので、HTMLで記載した文字列の色は「#000000」で出力されます。


CSS

<style type="text/css">
div#main {
    color: #000000 !important;
}

div#main {
    color: #999999;
}
</style>

HTML

<div id="main">
テキスト文字列
</div>

「!important」を記述しない場合は、後に読み込まれた方のスタイルが
適用されるので文字列の色は「#999999」で出力されます。


Windows:隠しファイル、隠しフォルダ、拡張子の表示・非表示

Windows隠しファイル隠しフォルダの表示・非表示をする方法と
拡張子の表示・非表示する方法をメモします。

Windows 7」で設定した場合の方法です。


隠しファイル、隠しフォルダの表示・非表示

「スタート」から「コントロールパネル」をクリックし、
「デスクトップのカスタマイズ」をクリックします。

windows_display_1

「フォルダー オプション」をクリックします。

windows_display_2

「表示」タブを選択し、詳細設定の「ファイルとフォルダーの表示」にあるラジオボタンを選択します。

・隠しファイル、フォルダを表示する場合
「隠しファイル、隠しフォルダー、および隠しドライブを表示する」を選択します。

・隠しファイル、フォルダを非表示にする場合
「隠しファイル、隠しフォルダー、および隠しドライブを表示しない」を選択します。

windows_display_3

選択後、「適用」をクリックし「OK」をクリックすると
隠しファイル、フォルダの表示・非表示が設定されます。


拡張子の表示・非表示

隠しファイル、隠しフォルダの表示・非表示と同じように
「フォルダー オプション」を表示します。

「表示」タブを選択し、詳細設定の「登録されている拡張子は表示しない」のチェックボックスを変更します。

・拡張子を表示する場合
「登録されている拡張子は表示しない」のチェックを外します。

・拡張子を非表示にする場合
「登録されている拡張子は表示しない」にチェックを入れます。

windows_display_4

選択後、「適用」をクリックし「OK」をクリックすると
拡張子の表示・非表示が設定されます。


Fuelphp:Fuelphpで基本的なメール送信処理

FuelphpEmailパッケージを使用し、メール送信をした際の処理をメモします。
システムを作成しているとメール送信処理は頻繁に使用することがあると思います。
FuelphpのEmailクラスを使用することで簡単にメール送信をすることが可能です。


FuelphpでEmailクラスを使用したメール送信

Emailパッケージのロード

Emailクラスを利用可能にするには、Emailパッケージを読込んで使用できる状態にします。
「/fuel/app/config/config.php」の下記の箇所に「email」を追加し、Emailパッケージ読込みます。
※Emailパッケージをオートロードする場合


	'always_load'  => array(
		'packages'  => array(
			// Emailパッケージをオートロード
			'email',
		),

		(省略)
	),

また、Emailクラスを使用する時のみ起動させてい場合は
下記のようにコントローラー側で読込みます。


\Package::load('email');

Emailクラスの設定ファイル

Emailクラスの設定ファイルを編集します。

「/fuel/packages/email/config/email.php」をコピーし、
「/fuel/app/config/email.php」に新規で作成します。

文字化け対策をするため、コピーして新規に作成したファイルを
下記のように編集します。


	'setups' => array(
		'default' => array(),
		'jis' => array(
			'charset' => 'ISO-2022-JP',
			'encoding' => '7bit',
		)
	),

メール送信処理

メール送信をするにはEmail::forge()でインスタンスを生成します。
今回はEmail::forge(‘jis’)で設定ファイルで設定した内容を読込んでいます。

ファイルを使用しない場合


	$email = \Email::forge('jis');
	$email->from('送信元アドレス', '送信者名');
	$email->to('送信先アドレス');
	$email->subject('件名');
	$body = '本文';
	$email->body(mb_convert_encoding($body, 'jis'));

	try {
		$email->send();
	}
	catch (\EmailValidationFailedException $e) {
		$err_msg = '送信に失敗しました。';
	}
	catch (\EmailSendingFailedException $e) {
		$err_msg = '送信に失敗しました。';
	}

ファイルを使用する場合

「/fuel/app/views/email/sample.php」に
メール本文の内容を記載しています。


	$email = \Email::forge('jis');
	$email->from('送信元アドレス', '送信者名');
	$email->to('送信先アドレス');
	$email->subject('件名');
	$body = \View::forge('email/sample', $data);
	$email->body(mb_convert_encoding($body, 'jis'));

	try {
		$email->send();
	}
	catch (\EmailValidationFailedException $e) {
		$err_msg = '送信に失敗しました。';
	}
	catch (\EmailSendingFailedException $e) {
		$err_msg = '送信に失敗しました。';
	}