とんでもブログ ~ プログラマのWeb開発メモ (PHP, CSS, JavaScript) -2ページ目

JavaScript / アンカークリックでtextareaを拡大縮小する

リンクのワンクリックでテキストエリアを拡大縮小できるライブラリ(クラス)を作りました。
利用にはprototype.jsが必要です。

【JavaScript部分】
// テキスト欄の拡大/縮小をするクラス
function TextareaSizeChanger(textarea_id, width_to_change, height_to_change)
{
this.textarea_id = textarea_id;
this.toggle_width = width_to_change;
this.toggle_height = height_to_change;

this.link_id = "";
this.toggle_link_text = "";

// 拡大/縮小時にアンカーの文言を切り替えたい場合、この関数を呼び出してください
this.setToggleLinkText = function(link_id, link_text_to_change)
{
this.link_id = link_id;
this.toggle_link_text = link_text_to_change;
}

// textareaを指定サイズに拡大/縮小する
this.toggle = function()
{
tmp = $(this.textarea_id).style.width;
$(this.textarea_id).style.width = this.toggle_width;
this.toggle_width = tmp;
tmp = $(this.textarea_id).style.height;
$(this.textarea_id).style.height = this.toggle_height;
this.toggle_height = tmp;

if (this.link_id != "")
{
tmp = $(this.link_id).innerHTML;
$(this.link_id).innerHTML = this.toggle_link_text;
this.toggle_link_text = tmp;
}
}
}



【使い方】
縦100px横100pxのテキストエリアを縦200px横200pxに拡大したい場合は、以下のHTMLソースとなります。
<textarea id="default_textarea_id" style="width:100px;height:100px;">デフォルトテキスト</textarea>
<a href="#" onclick="mailtextChanger.toggle(); return false;" id="link_id">テキストエリアを拡大します</a>

<script type="text/javascript">
var sizeChanger = new TextareaSizeChanger("default_textarea_id", "200px", "200px");
sizeChanger.setToggleLinkText("textarea_link", 'テキストエリアを縮小します');
</script>



それにしても、JavaScriptは引数のポインタ渡しができないのが不便ですね。

CakePHP / CakePHPのバージョンを表示する

CakePHPのバージョンを調べるには、以下の1行でOK。

Configure::version();


念のため書いておくと、たとえばviewの中で表示させるなら、以下のように書きます。

<?php echo Configure::version() ?>


また、詳細な情報を表示させたい場合、cakeinfoを作成している方もいます。
phpinfoと同様の画面で見やすいです。
http://www.1x1.jp/blog/2007/01/cakephp_cakeinfo.html

InternetExplorer / IEの起動が遅いと思ったときにとりあえずやるべきこと

1) IEを起動する

2) 「ツール」→「インターネットオプション」→「プログラム」→「アドオンの管理」

3) 起動が遅くなっている原因と思われるアドオンを無効にする

4) IEを再起動


IEのアドオン機能なんて意識したことがなかったんですが、こんなに簡単にON/OFFができるものなんですね。

勉強になりました。

Apache / 本番環境とテスト環境で.htaccessの動作を変える

ググっても出てこなくて、調べて解決したのでメモしておきます。


Apacheで本番/テスト環境の切り替えをするのに、"IfDefine"を使いました。

http://httpd.apache.org/docs/2.0/ja/mod/core.html#ifdefine


Apache起動時にオプションとして定数(文字列)を指定することで、「その定数が存在するか」の条件分岐ができるようになります。



-----

Apache起動コマンド


テストサーバでのApache起動の際、 -Dオプションで追加すればOKです。


apachectl -D TEST -k start


再起動時には"TEST"は保持されます。


------

.htaccess内への記述

# 本番環境
<IfDefine !TEST>
	# ここに本番用設定を記述
</IfDefine>
# テスト環境
<IfDefine TEST>
	# ここにテスト用設定を記述
</IfDefine>




記事は適宜修正しますので、「うまくいった」「うまくいかなかった」等コメントいただけると助かります。


PHP / mb_trim() - 文字列前後の改行とスペースを取り除く(マルチバイト版)

前回、検索ボックス用文字列分割ライブラリ という記事を書きましたが、その中でmb_trim関数を書いていたことに気づきました。

mb_trim()でググってみると、そのものずばりが出てこなくて困ってたんです。

ここに記録しておきます。



function mb_trim($str)
{
	return mb_ereg_replace('^[[:space:]]*([\s\S]*?)[[:space:]]*$', '\1', $str);
}

【2008.08.27】一部修正しました