Posts tagged download

optionタグを選択不可にする disabled 属性を IE6 でも有効にする方法

0

optionタグを選択不可にする disabled 属性で紹介したように option タグに disabled 属性を指定することにより選択不可にすることができるのですが、IE6 では選択できてしまいます。

JavaScript で解決する方法です。

Select, Option, Disabled And The JavaScript Solution

上記の参考サイトに詳しくやり方が書かれていますので、簡単に手順だけ紹介。

  • 参考サイトの「Implementing」にある download リンクより JavaScript コード(select-option-disabled-emulation.js)をダウンロード
  • select-option-disabled-emulation.js を適当な場所に保存
  • html 内で select-option-disabled-emulation.js を読み込む
  • 選択不可にしたい option タグに disabled 属性を指定する

DHTML で解決する方法です。

これは上記参考サイトの補足で紹介されていたサイトです。
apptaro’s blog: Emulating Disabled Options in IE with DHTML Behaviors

こちらも上記URL に詳しいやり方が書かかれていますので、簡単にご紹介。

  • 参考サイトの中央よりやや下にある Download よりファイル一式をダウンロード
  • 適当な場所に css, htc ファイルを保存
  • html で上記 css を読み込む
  • 選択不可にしたい option タグに disabled 属性を指定する

これで IE6 でも option タグの disabled 属性が使えるようになりました。

CakePHP で Smarty を使用するメモ

3

Smarty を CakePHP で使用する方法を調べたメモ

Smarty の用意

Smarty ディレクトリを/vendors ディレクトリへコピー

/vendors/smarty/Smarty.class.php

のようになる。

Smarty が使用するディレクトリを作成

/app/tmp/smarty/cache/
/app/tmp/smarty/compile/

Smarty 用の View クラスの準備

レンダリングを任せる Smarty View Class を設定します。
Smarty View Class をダウンロードして smarty.php とリネームして

/app/views/

に配置する。

smarty という名前のサブディレクトリを使用しないなら
$this->subDir = 'smarty'.DS;
をコメントアウトする。
また、
$this->Smarty->assign_by_ref('view', $this);

$this->Smarty->assign_by_ref('this', $this);
に変更する。
この変更はテンプレートの中で $this を .thtml と同じように使用したい場合に必要。

AppController の設定

/app/app_controller.php

を作成

class Appcontroller extends Controller{
    var $view = "Smarty";
}

実際の使用

view に .tpl があれば Smarty テンプレートとして処理を行い、なければデフォルトの .thtml を表示するようになる。

.tpl の中では .thtml で使用できるヘルパーも使用できる。
.thtml の「<?php echo」を「{」、「;?>」を「}」にすればほぼそのまま利用できる。

ただ、.thtml で HTMLヘルパーを使用している場合

{$html->input('Post/name', array('size'=>'30'))}

のままでは、array(…) でエラーになる。

これを修正するには、Smarty のプラグインを使用して解決する。
プラグインをダウンロードして function.assign_assoc.php にリネームして

/vendors/samrty/libs/plugins/

に配置する。

テンプレートの先頭で

{assign_assoc var='ArrayName' value='size=>30'}

などとして

{$html->input('Post/name', $ArrayName)}

とすればOK.

ただ結構最後のやつが面倒かも。。。

Go to Top