アーカイブ

‘開発’ タグのついている投稿

[concrete5] コントローラ内でメールの送信

2009 年 8 月 11 日 snufkin コメントはありません

concrete5 でコントローラの中でメール送信する時は、mail helperを呼び出して次のように設定・送信します。

$mh = Loader::helper('mail');
$mh->to( 送信先メアド );
$mh->from( 送信元メアド );

$mh->addParameter( 'param_a', $param_a );
$mh->load( 'mailbody' );

$mh->setSubject( メールタイトル );

@$mh->sendMail();
$mh->load( 'mailbody' );

の部分ではメール本文を設定しています。
/mail の中にテンプレート用のファイル ‘mailbody.php’ を用意します。
‘mailbody.php’ の中では変数「$body」に本文を代入します。
例えば

<?php
$body = 'こんにちは、メール本文です。';
?>

とすれば ‘こんにちは、メール本文です。’ という文字列がメール本文にセットされます。

$mh->addParameter( 'param_a', $param_a );

の部分では ‘mailbody.php’ に渡すパラメータをセットしています。
ここでセットした値は ‘mailbody.php’ の中で使うことができます。

最後は

@$mh->sendMail();

で送信します。

タグ: , , ,
カテゴリー: concrete5 タグ: , , ,

concrete5 のブロック

2009 年 5 月 30 日 snufkin コメントはありません

http://www.concrete5.org/help/building_with_concrete5/developers/understanding_blocks/understanding-and-building-blocks-in-concrete5

の超訳。かなりてきとー。しかも途中で飽きた。

——————————

ブロックについて

あなたのConcrete5サイトは「ブロック」

を使えば簡単に機能を拡張することができます。

【ブロックのディレクトリの中身】
■add.php
必須。
ブロックを追加するときに表示される。
自動的に<form>タグで囲まれ、「新規」(submit)ボタンをクリックするとこのブロックのcontrollerに送信される。

■edit.php
必須ではないが通常は必要と思われる。
ブロックの編集モードのときに表示される。
add.phpど同様に<form>タグで囲まれる。

■controller.php
必須。
このブロックに固有で重要なパラメータ(ブロックの名前や詳細、表示サイズなど)や必要なプログラムが書かれています。
ブロックのクラスはブロックの保存機能も受け持ちます。(データベースに正しくマッピングされてさえいれば、どんな風に保存するか指定するひつようもありませんが)

■db.xml
データベースへコンテンツの保存が必要なブロック(99%が該当するでしょう)には必須。
このファイルにはこのブロックが使うデータベースのテーブルを作成する構文がADO XMLSフォーマットで記述されています。

■auto.js
必須ではない。
このファイルが存在すれば、ブロックがaddまたはeditモードのときに読み込まれます。

■icon.png
必須ではない。
Concrete内でこのブロックが表示されるときに表示される画像。

■tools ディレクトリ
必須ではない。
このブロックで使われうるファイルを置きます。
AutoNavブロックはこの機能を使っています。

■templates/
必須ではない。
このディレクトリに置かれたファイルは、CMS全体を通してカスタムテンプレートとしてつかわれるようなビューになります。
例えば、典型的なautonavブロックはulを使ってコーディングしますが、”Header Menu”テンプレートはautonavブロックを使うことができ、divでコーディングされたメニューに置き換えます。

ブロックのインストール

インストールインフォメーション1
■controller.php 内のプロパティ
【必須プロパティ】
[btDescription]
そのブロックが持つ機能の簡単な説明。
ダッシュボードやブロック追加画面で表示されます。

[btName]
そのブロックの名前

【必須ではないプロパティ】
[btTable]
そのブロックのデータベーステーブル。明示され、ブロックがこのデータベーステーブルのみを使っているなら、このブロックは自らの情報をこのテーブルに保存します。その際、ブロックのフォームのフィールドはそのままデータベースのカラムになります。

[btInterfaceWidth]
ブロックが追加や編集される際に表示されるポップアップダイアログの幅。

[btInterfaceHeight]
ブロックが追加や編集される際に表示されるポップアップダイアログの高さ。

インストールインフォメーション2
■db.xml

タグ: , ,
カテゴリー: concrete5 タグ: , ,

携帯端末ID

2009 年 2 月 24 日 snufkin コメントはありません

携帯にはユニークなIDがふられている。それを携帯端末IDというらしい。

ID・パスワードなどの入力の手間を省くためにこの携帯端末IDが使われることがあるらしい。

pearのNet_UserAgent_Mobileを使うと簡単に取得できるらしい。
また、OpenPNEMyNetsなどのSNSアプリの「簡単ログイン」の機能にも利用されており、KtaiID.php(webapp/lib/OpenPNE/KtaiID.php)に携帯端末ID取得のためのclassが定義されている。

ex)
(usagi/webapp/modules/qrentry/do/qr_insert_c_member.php)

//簡単ログインを判定
if ($_REQUEST['easy_access']) {
    $easy_access_id = OpenPNE_KtaiID::getID();
    if (!$easy_access_id) {
        $errors[] = '携帯の個体識別番号を取得できませんでした簡単ログインのチェックを外して登録してください。';
    } else {
        $prof['easy_access_id'] = $easy_access_id;
    }
}
タグ: , , , ,
カテゴリー: web製作 タグ: , , , ,

僕がケータイサイトを作りたくない理由

2009 年 1 月 13 日 snufkin コメントはありません

僕がケータイサイトを作りたくない理由

ウェブ(PCの)で通用してもケータイで通用しない技術ってあるじゃないですか。
特に日本のケータイの仕様(?)は「ガラパゴス」とか言われて独特の進化をしている訳です。

ここ最近はケータイ向けのサイトを作っていないので最近の動向はよくわからないですが、キャリアや機種によって使える使える技術が違ったり、見え方が違ったりするのって制作側からすると設計や検証にコストがかかりすぎると思うんです。

でも、なぜかクライアントは「ケータイサイトは安い」という感覚があるらしく、「ケータイだから」という理由で予算をとってくれない場合もあったりなかったり・・・

ウェブを作る立場から言うと、「ウェブの技術をそのままケータイでも使いたい。だって、新しくいろいろ覚えるの、面倒なんだもん。」が本音です。表示できる画像形式が違ったり、画面サイズが違うことを意識しなければならないって本当に萎えます。なんならケータイ向けの方が高くてもいいんじゃないかとさえ思います。

だってケータイ向けなら「どこでも見られる」とか「普及率」とかのメリットがあるじゃないですか。
なので、PC向けサイトよりたくさんオカネください。ブログとかCMSとかにするならなおのこと面倒が多いです。だからたくさんオカネくれませんか。

それがかなわないなら、閉鎖的な感じの日本のケータイよりも、iPhoneとかAndroidとかに期待したいのが本音です。Flashが使えなかったりまだ発展途上の感はありますが、PC向けのサイトがそのまま表示できたり、javascriptが動いたりと、制作側から見た感じではラクができるのではないかと思います。

発売されるケータイがすべてAndroid端末なら、webの開発コストはかなり押さえられるようになるのではないでしょうか。

タグ: , , , ,
カテゴリー: web製作 タグ: , , , ,

[cakephp]find(‘list’)でid・name以外のフィールドを取得

2008 年 11 月 21 日 snufkin コメントはありません

cakephp tipscakephp1.2でgenerateListが非推奨になったのでそれに変わる方法を探しました。


どうやらfind(‘list’)を使うと、対象モデルの「id」と「name」、または「id」と「title」の配列がかえってくるみたい。

配列の組み合わせを変えるには、find() の第2引数で指定するといいらしい。

$fields = array(
  "fields" => array(
    "User.display_name"));
$users = $this->User->find("list", $fields);
?>

とすると、

Array (
  [1] => admin1
  [2] => owner1
  [3] => manager1
  [4] => manager2
)

となり、

 array(
    "User.email",
    "User.display_name"));
$users = $this->User->find("list", $fields);
?>

とすると、

Array (
  [admin1@example.com]   => admin1
  [owner1@example.com]   => owner1
  [manager1@example.com] => manager1
  [manager2@example.com] => manager2)

さらに

 array(
    "User.email",
    "User.display_name",
    "User.role_id"));
$users = $this->User->find("list", $fields);
?>

とすると、

Array (
  [1] => Array ( ................................. Admin
    [admin1@example.com]   => admin1 )

  [2] => Array ( ................................. Owner
    [owner1@example.com]   => owner1 )

  [3] => Array ( ................................. Manager
    [manager1@example.com] => manager1
    [manager2@example.com] => manager2 )
)

のように3つめの配列でグルーピングされるみたいです。
参考:Model | find(“list”) により得られる配列で id/name 以外のフィールドを組み合わせる

タグ: , ,
カテゴリー: Tips, software タグ: , ,

DIRECTORY_SEPARATOR

PHPで、そのファイルシステムでのディレクトリ区切り文字をあらわす定数です。
Windowsなら「\」、Linuxなら「/」が入るそうです。

知りませんでした。

タグ: , ,
カテゴリー: Tips タグ: , ,

Aptanaのインストール

2008 年 7 月 11 日 snufkin コメントはありません
カテゴリー: Tips, web製作 タグ: , , ,