2007年11月22日木曜日

CakePHPのhtmlヘルパーにて

現在、CakePHP1.1.18.5850を使っていますが、
htmlヘルパーのinputには、どうやら自動的にhtmlspecialcharsが入るみたいです。
で、油断していたのですが、textareaには入っていませんでした。
しっかりソース読んでおけばよかった・・・

一箇所だけだったので、下のように変更しておきます。

<?php echo $html->textarea($fieldname,array('value'=>$html->tagValue($fieldname,true)));?>



というか、tagValueもデフォルトではエスケープをしないようで、

$html->tagValue($fieldname,true)


と2番目にtrueを渡さないといけないようです。

2007年11月10日土曜日

scripts_for_layout

CakePHP1.2からdefaultのlayoutsにscripts_for_layoutという変数が追加されていた。
どうやら、View側からhead内に個別に書き込めることになるらしい。

今回は、CSSを使いたかったので下のコードをViewに追加してみた。

<?php echo $html->css('common',NULL,NULL,false); ?>



するとHTMLには

<link rel="stylesheet" type="text/css" href="/css/common.css" />



がhead内に書き込まれた状態で出力されていた。
これは便利。

他にもmeta,javascriptが使えるようだけど、また今度使ってみます。

2007年11月8日木曜日

モバイル向け AdSense

携帯サイトにAdSenseを張ろうとすると、
どうやら利用しているサーバーでは外部URLはrequireでエラーが出る模様。
というか、PHPでデフォルト設定らしい。
で、サーバー設定は変更不可と言う事なのに、
解決しないといけないというので、以下のように改変してみた。


$tmpfile = "/tmp/googlead.php";

$file = file_get_contents('http://pagead2.googlesyndication.com/pagead/show_ads.php');
$fp = fopen($tmpfile, "w");
fwrite($fp,$file);
fclose($fp);

$GLOBALS['google']['ad_type']='text';
$GLOBALS['google']['channel']='xxxxxxxxxx';
$GLOBALS['google']['client']='xxxxxxxxxx';
$GLOBALS['google']['format']='mobile_single';
$GLOBALS['google']['https']=$_SERVER['HTTPS'];
$GLOBALS['google']['host']=$_SERVER['HTTP_HOST'];
$GLOBALS['google']['ip']=$_SERVER['REMOTE_ADDR'];
$GLOBALS['google']['markup']='xhtml';
$GLOBALS['google']['oe']='utf8';
$GLOBALS['google']['output']='xhtml';
$GLOBALS['google']['ref']=$_SERVER['HTTP_REFERER'];
$GLOBALS['google']['url']=$_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$GLOBALS['google']['useragent']=$_SERVER['HTTP_USER_AGENT'];

require($tmpfile);



要するに、外部ファイルを一度手元に保存して、そちらをrequireするようにしてみた。
中身読んで、http://pagead2.googlesyndication.com/pagead/ads?
に直接取得しに行こうかとも考えたけど、それはやめておいた。

どうかGoogleの中の人がこれを見ていても、これくらいは見逃してください。

2007年11月6日火曜日

VALUE DOMAINにて

ドメインはVALUE DOMAINで取得しました。
で、サーバーもVALUE DOMAINの無料サーバーを使うことに決定。

で、すぐに使えるかと思っていたけど、
DNSの設定をしないといけないみたいでヘルプを読みながら設定してみる。
反映に時間が掛かるみたいですぐにはアクセスできないため、
正しい設定なのかどうかが分からない。

PHPは書くことができるけど、サーバーについてはサッパリ。

今更ながらサイトが作れるかが不安に・・・

2007年11月1日木曜日

CakePHP1.2

唐突だけど、蔵書管理をしたいなと常々思っていたので、
AmazonのAPIを利用して蔵書管理サイトを作ってみようと考えている
既にコンセプトが同じサイトはいくつもあるけど気にしない

PerlよりPHPの方が慣れているので、もちろんPHPで
フレームワークはもちろんCakePHPを利用するけど、
バージョンはpre-betaの1.2を使ってみたい

挫けない様にドメインも取得したのでがんばってみる