<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-753083107210443599</id><updated>2012-01-27T15:42:15.144+09:00</updated><category term='モバイル'/><category term='Python'/><category term='リストマーカー'/><category term='MovableType'/><category term='SQL'/><category term='TIPS'/><category term='ブラウザ'/><category term='SQLite'/><category term='データベース'/><category term='リスト'/><category term='アスペクト指向'/><category term='Flash'/><category term='高階関数'/><category term='Mac'/><category term='EUC'/><category term='Flex'/><category term='プログラミング'/><category term='文字化け'/><category term='関数'/><category term='jQuery'/><category term='CSS'/><category term='擬似クラス'/><category term='UTF-8'/><category term='WordPress'/><category term='rhaco'/><category term='Perl'/><category term='その他'/><category term='CSV'/><category term='API'/><category term='オープンソース'/><category term='オブジェクト指向'/><category term='PEAR'/><category term='PHP'/><category term='*参考'/><category term='Google Analytics'/><category term='Firefox'/><category term='リフレクション'/><category term='SEO'/><category term='XPath'/><category term='透過png'/><category term='CMS'/><category term='HTML'/><category term='IE'/><category term='Symfony'/><category term='JavaScript'/><category term='正規表現'/><category term='サーバ変数'/><category term='XSS'/><category term='クロージャ'/><title type='text'>さぼてん</title><subtitle type='html'>Pｇ職に転職したいWebサイト制作。PHPとかMySQLとか。symfony、CakePHP、Perl勉強。</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default?start-index=101&amp;max-results=100'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>278</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-9030605246055653823</id><published>2012-01-27T15:36:00.000+09:00</published><updated>2012-01-27T15:42:15.195+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='モバイル'/><title type='text'>携帯、iOS端末、スマートフォン、モバイル端末の判別ライブラリ - MobileESP</title><content type='html'>&lt;h4&gt;サイト&lt;/h4&gt;&lt;div&gt;&lt;a href="http://blog.mobileesp.com/" title="The MobileESP Project: Easily detect mobile web site visitors"&gt;MobileESP&lt;/a&gt; - &lt;cite&gt;The MobileESP Project&lt;/cite&gt;&lt;/div&gt;&lt;p&gt;PHP、JavaScript、Java、ASP.NETそれぞれのライブラリが有ります。&lt;br /&gt;
&lt;br /&gt;
PHP用は以下からダウンロード。&lt;br /&gt;
&lt;/p&gt;&lt;h4&gt;ダウンロード&lt;/h4&gt;&lt;div&gt;&lt;a href="http://code.google.com/p/mobileesp/source/browse/#svn/PHP" title="/ - mobileesp - MobileESP - Google Project Hosting"&gt;mobileesp  MobileESP&lt;/a&gt; - &lt;cite&gt;Google Project Hosting&lt;/cite&gt;&lt;/div&gt;&lt;h4&gt;使い方&lt;/h4&gt;&lt;p&gt;て程もなく、アップロードして呼び出すだけ。&lt;br /&gt;
&lt;/p&gt;&lt;pre&gt;/* MbileESPの使い方 */
&lt;code title="MbileESPの使い方"&gt;
require &amp;quot;mdetect.php&amp;quot;; $m = new uagent_info();
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;以下メソッドです。返り値はすべて「&lt;var&gt;TRUE&lt;/var&gt;/&lt;var&gt;FALSE&lt;/var&gt;」です。&lt;/p&gt;&lt;pre&gt;/* メソッド一覧 */
Get_Uagent(PHP以外GetUserAgent):$_SERVER['HTTP_USER_AGENT']をstrtolower()に通した値
Get_HttpAccept(PHP以外GetHttpAccept):$_SERVER['HTTP_ACCEPT']をstrtolower()に通した値
DetectIphone:iPhone判別(iPod TouchかiPad)
DetectIpod:iPod Touch判別
DetectIpad:iPad判別
DetectIphoneOrIpod:iPhoneかiPod Touch
DetectIos:iOS機器判別(iPhone、iPod Touch、iPad)
DetectAndroid:Android OS機器判別(Android携帯、タブレット、HTC Flyer、Google TV)
DetectAndroidPhone:Android携帯判別(Androidモバイル機器のみタブレットは無視)
DetectAndroidTablet:Androidタブレット判別(Androidモバイル機器以外)
DetectGoogleTV:GoogleTV判別
DetectAndroidWebKit:Android携帯用のWebKitブラウザか判別
DetectWebkit:0WebKitエンジン製ブラウザか判別
DetectS60OssBrowser:Nokia S60ブラウザか判別
DetectSymbianOS:Symbian OS機器判別
DetectWindowsPhone7:Windows Phone 7機器判別
DetectWindowsMobile:Windows Mobile機器判別(Windows Phone 7以外の7:Windows Mobile 6以前)
DetectBlackBerry:BlackBerry用ブラウザ判別
DetectBlackBerryTablet:BlackBerryタブレット用ブラウザ判別
DetectBlackBerryWebKit:BlackBerryのWebKitブラウザか判別(BlackBerry OS 6)
DetectBlackBerryTouch:BlackBerryのブラウザか判別(Storm、Torch、Bold Touch、Playbook)
DetectBlackBerryHigh:BlackBerry OS 5のブラウザか機器(Storm、Bold、Curve2等BlackBerry OS 6～7のブラウザ以外)
DetectBlackBerryLow:BlackBerry機器の古いブラウザか判別(Pearl, 8800, Curve1)
DetectPalmOS:PalmOS機器のブラウザか判別
DetectPalmWebOS:PalmのWebOS機器のブラウザか判別
DetectWebOSTablet:HPのWebOSタブレット機器のブラウザか判別
DetectGarminNuvifone:GarminのNuvifonのブラウザか判別
DetectSmartphone:スマートフォンか判別（次のメソッドを呼ぶ:isIphone()、isAndroidPhone()、isTierIphone()、DetectS60OssBrowser()、DetectSymbianOS()、DetectWindowsMobile()、DetectWindowsPhone7()、DetectBlackBerry()、DetectPalmWebOS()、DetectPalmOS()、DetectGarminNuvifone()）
DetectBrewDevice:Brew機器か判別
DetectDangerHiptop:Danger Hiptopか判別
DetectOperaMobile:Operaブラウザか判別(Opera Mobile、Opera mini)
DetectOperaAndroidPhone:Android携帯のOpera Mobileブラウザか判別
DetectOperaAndroidTablet:AndroidタブレットのOpera Mobileブラウザか判別
DetectWapWml:0WAPかWMLに対応した機器か判別
DetectKindle:eInk対応のAmazon Kindle機器
DetectMobileQuick:モバイル機器の簡易判別(iPad等モダンデバイスを除くスマートフォン)
DetectSonyPlaystation:Playstatioｎか判別
DetectNintendo:Nindendoのゲーム機か判別
DetectXbox:Xboxか判別
DetectGameConsole:ゲーム機か判別(次のメソッドを呼ぶ:DetectSonyPlaystation()、DetectNintendo()、Xbox())
DetectMidpCapable:Java MIDP対応機器か判別
DetectMaemoTablet:NokiaのMaemo機器か判別
DetectArchos:0Archos機器かどうか
DetectSonyMylo:Myloか判別
DetectMobileLong:携帯、スマートフォン、タブレット、ゲーム機等のモバイル機器か判別(次のメソッドを呼ぶ:DetectMobileQuick()、DetectGameConsole()、DetectSonyMylo()　次の機器かユーザエージェントから判別:"up.link"、"sonyericsson"、"ericsson"、"docomo"、"kddi"、"vodafone")
DetectGameConsole:
DetectTierTablet:iPad、Android、BB Playbook、WebOS等のHTML 5対応の大画面タブレットを判別(次のメソッドを呼ぶ:DetectIpad()、DetectAndroidTablet()、DetectBlackBerryTablet()、DetectWebOSTablet())
DetectTierIphone:iPhone、iPod Touch、Android、Windows Phone 7、WebOS等のiPhoneコンテンツ対応機器を判別
DetectTierRichCss:iPhone向けCSS有効な機器を判別(Javascriptは考慮しない、DetectTierIphone()を除く)
DetectTierOtherPhones:携帯を判別(iPhoneとDetectTierRichCss()を除く)
&lt;/pre&gt;&lt;p&gt;PHPだけ「&lt;code&gt;GetUserAgent()&lt;/code&gt;⇒&lt;code&gt;Get_Uagent&lt;/code&gt;」や「&lt;code&gt;GetHttpAccept&lt;/code&gt;⇒&lt;code&gt;Get_HttpAccept&lt;/code&gt;」でなぜか「&lt;code&gt;strtolower()&lt;/code&gt;」を使って小文字にしてたり良くわかりませんが、Softbankはシミュレータでアクセスしたところ以下のメソッドが検知してくれるようです。&lt;br /&gt;
&lt;/p&gt;&lt;pre&gt;/* シミュレータからSoftbankでアクセス結果 */
&lt;samp&gt;
DetectMidpCapable:1
DetectMobileQuick:1
DetectMobileLong:1
DetectTierOtherPhones:1
&lt;/samp&gt;&lt;/pre&gt;&lt;p&gt;IDなど取得するメソッドはないのでセッション管理やログインなどには使えませんが、レスポンシブ Webデザインに使うには良いかもしれません。&lt;/p&gt;&lt;h4&gt;感想&lt;/h4&gt;&lt;p&gt;いろんなプラットフォームがあるんだなぁと思いました。&lt;br /&gt;
その全てのアクセスを想定しなくてはいけないのはさらにWeb制作が大変だと思います。&lt;br /&gt;
&lt;/p&gt;&lt;h4&gt;おまけ&lt;/h4&gt;&lt;textarea style="height:8em;width:40em;"&gt;&lt;br /&gt;
echo "GetUserAgent:", $m-&gt;Get_Uagent(),"&lt;br&gt;";&lt;br /&gt;
echo "GetHttpAccept:",$m-&gt;Get_HttpAccept(),"&lt;br&gt;";&lt;br /&gt;
echo "DetectIphone:",$m-&gt;DetectIphone(),"&lt;br&gt;";&lt;br /&gt;
echo "DetectIpod:",$m-&gt;DetectIpod(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectIpad:",$m-&gt;DetectIpad(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectIphoneOrIpod:",$m-&gt;DetectIphoneOrIpod(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectIos:",$m-&gt;DetectIos(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectAndroid:",$m-&gt;DetectAndroid(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectAndroidPhone:",$m-&gt;DetectAndroidPhone(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectAndroidTablet:",$m-&gt;DetectAndroidTablet(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectGoogleTV:",$m-&gt;DetectGoogleTV(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectAndroidWebKit:",$m-&gt;DetectAndroidWebKit(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectWebkit:",$m-&gt;DetectWebkit(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectS60OssBrowser:",$m-&gt;DetectS60OssBrowser(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectSymbianOS:",$m-&gt;DetectSymbianOS(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectWindowsPhone7:",$m-&gt;DetectWindowsPhone7(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectWindowsMobile:",$m-&gt;DetectWindowsMobile(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectBlackBerry:",$m-&gt;DetectBlackBerry(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectBlackBerryTablet:",$m-&gt;DetectBlackBerryTablet(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectBlackBerryWebKit:",$m-&gt;DetectBlackBerryWebKit(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectBlackBerryTouch:",$m-&gt;DetectBlackBerryTouch(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectBlackBerryHigh:",$m-&gt;DetectBlackBerryHigh(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectBlackBerryLow:",$m-&gt;DetectBlackBerryLow(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectPalmOS:",$m-&gt;DetectPalmOS(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectPalmWebOS:",$m-&gt;DetectPalmWebOS(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectWebOSTablet:",$m-&gt;DetectWebOSTablet(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectGarminNuvifone:",$m-&gt;DetectGarminNuvifone(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectBrewDevice:",$m-&gt;DetectBrewDevice(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectDangerHiptop:",$m-&gt;DetectDangerHiptop(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectOperaMobile:",$m-&gt;DetectOperaMobile(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectOperaAndroidPhone:",$m-&gt;DetectOperaAndroidPhone(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectOperaAndroidTablet:",$m-&gt;DetectOperaAndroidTablet(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectWapWml:",$m-&gt;DetectWapWml(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectKindle:",$m-&gt;DetectKindle(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectSonyPlaystation:",$m-&gt;DetectSonyPlaystation(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectNintendo:",$m-&gt;DetectNintendo(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectXbox:",$m-&gt;DetectXbox(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectMidpCapable:",$m-&gt;DetectMidpCapable(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectMaemoTablet:",$m-&gt;DetectMaemoTablet(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectArchos:",$m-&gt;DetectArchos(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectSonyMylo:",$m-&gt;DetectSonyMylo(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectSonyMylo:",$m-&gt;DetectSonyMylo(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectMobileQuick:",$m-&gt;DetectMobileQuick(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectMobileLong:",$m-&gt;DetectMobileLong(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectGameConsole:",$m-&gt;DetectGameConsole(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectTierTablet:",$m-&gt;DetectTierTablet(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectTierIphone:",$m-&gt;DetectTierIphone(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectTierRichCss:",$m-&gt;DetectTierRichCss(),"&lt;br&gt;";&lt;br /&gt;
echo  "DetectTierOtherPhones:",$m-&gt;DetectTierOtherPhones(),"&lt;br&gt;";&lt;/textarea&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-9030605246055653823?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/9030605246055653823/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=9030605246055653823' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/9030605246055653823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/9030605246055653823'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2012/01/ios-mobileesp.html' title='携帯、iOS端末、スマートフォン、モバイル端末の判別ライブラリ - MobileESP'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-7293433320107233851</id><published>2012-01-25T12:05:00.003+09:00</published><updated>2012-01-25T12:05:40.962+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><title type='text'>【XOOPS】Gnaviモジュールカスタマイズ - 新着の投稿タイトルを丸めない</title><content type='html'>&lt;p&gt;新規投稿を最新の5件まで表示とかするブロックの、タイトルが長いとき○文字までで切り捨て（この投稿でいう『【XOOPS】Gnaviモジュールカスタ…』のような）とかしないようにカスタム。デフォルトで20文字。&lt;br /&gt;
&lt;/p&gt;&lt;pre&gt;∟&amp;nbsp;/xoops_trust_path/modules/gnavi/blocks/
&amp;emsp;∟&amp;nbsp;block_function.php
&lt;/pre&gt;&lt;pre&gt;/* 変更前 */
&lt;code title="Gnaviモジュール - block_function.php:L.113～"&gt;$photo['title'] = xoops_substr( $myts-&gt;makeTboxData4Show( $photo['title'] ) , 0 , $title_max_length+3 );&lt;/code&gt;
/* 変更後 */
&lt;code title="Gnaviモジュール - block_function.php:L.113～"&gt;$photo['title'] = &lt;strong&gt;($title_max_length === -1) ? $myts-&amp;gt;makeTboxData4Show( $photo['title'] ) :&lt;/strong&gt; xoops_substr( $myts-&gt;makeTboxData4Show( $photo['title'] ) , 0 , $title_max_length+3 );&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;a href="http://dev.xoofoo.org/dev_xoops_2018/d0/d65/a00360_7a338c9e810cbb8a9d4c09d16a4adc05.html" title="XOOPS: xoops_substr"&gt;functions.php&lt;/a&gt;&lt;/div&gt;&lt;p&gt;文字の丸め込みは「&lt;code&gt; xoops_substr()&lt;/code&gt;」が行っており、「&lt;em&gt;xoops/include/function.php&lt;/em&gt;」に定義されている。&lt;br /&gt;&lt;br /&gt;
管理画面の『&lt;em&gt;Gnavi&lt;/em&gt;』の『ブロック管理』などで設定できる『ブロックオプション-&amp;gt;画像名の最大表示文字数』が「&lt;var&gt;-1&lt;/var&gt;」のときは丸めない設定。値「&lt;var&gt;0&lt;/var&gt;」は無効になる様子。&lt;br /&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-7293433320107233851?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/7293433320107233851/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=7293433320107233851' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/7293433320107233851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/7293433320107233851'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2012/01/xoopsgnavi.html' title='【XOOPS】Gnaviモジュールカスタマイズ - 新着の投稿タイトルを丸めない'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-2212937076093830930</id><published>2012-01-21T11:43:00.000+09:00</published><updated>2012-01-21T12:01:19.617+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><title type='text'>【XOOPS】トップページにだけ表示【Smarty】</title><content type='html'>&lt;pre&gt;&lt;code title="トップページのみ表示させるテンプレートカスタマイズその１"&gt;
&amp;lt;{if !$xoops_dirname}&amp;gt;
    &amp;lt;!-- 中身 --&amp;gt;
{/if}&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;アクセスしたURLのディレクトリで判定。&lt;br /&gt;&lt;br /&gt;
トップページ以外だと使用してるモジュールのディレクトリになる様子。&lt;br /&gt;&lt;br /&gt;
(「/&lt;em&gt;pico&lt;/em&gt;」とか「/&lt;em&gt;gnavi&lt;/em&gt;」とか)&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;pre&gt;&lt;code title="トップページのみ表示させるテンプレートカスタマイズその１"&gt;
&amp;lt;!--{if $smarty.server.PHP_SELF == &amp;quot;/index.php&amp;quot;}--&amp;gt;
    &amp;lt;!--  IF コンテンツ  --&amp;gt;
&amp;lt;!--{else}--&amp;gt;
    &amp;lt;!--  ELSE コンテンツ  --&amp;gt;
&amp;lt;!--{/if}--&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;p&gt;こちらは実行しているファイルで判定。&lt;br /&gt;&lt;br /&gt;
トップページ以外だと、クエリが付いたりモジュールのディレクトリ以下になるので。&lt;br /&gt;&lt;br /&gt;
サブディレクトリにXOOPSをインストールしてる場合は注意かも。&lt;br /&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-2212937076093830930?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/2212937076093830930/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=2212937076093830930' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/2212937076093830930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/2212937076093830930'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2012/01/xoopssmarty.html' title='【XOOPS】トップページにだけ表示【Smarty】'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-2185386862677159921</id><published>2011-02-02T11:34:00.000+09:00</published><updated>2011-02-02T11:34:54.794+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='オープンソース'/><title type='text'>Twitterライクなマイクロブログ－OpenMicroBlogger</title><content type='html'>&lt;div&gt;&lt;cite&gt;&lt;a href="http://openmicroblogger.org/" title="OpenMicroblogger"&gt;OpenMicroblogger&lt;/a&gt;&lt;/cite&gt;
&lt;p&gt;PHP製のマイクロブログ・OpenMicroBlogger。Twitterライク。認証をOpenIDで行う。&lt;/p&gt;&lt;/div&gt;

&lt;p&gt;
&lt;strong&gt;ファイル入手&lt;/strong&gt;&lt;br /&gt;
以下からダウンロードして展開、サーバにアップロードする。&lt;br /&gt;
&lt;a href="https://github.com/voitto/openmicroblogger/archives/master" title="Secure source code hosting and collaborative development - GitHub"&gt;Downloads for voitto/openmicroblogger&lt;/a&gt; - &lt;cite&gt;GitHub&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;インストールファイルにアクセス&lt;/strong&gt;&lt;br /&gt;
アップしたディレクトリの「install.php」にアクセスする。
&lt;/p&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/_YFplKtVt_v4/TUi1Ccm84SI/AAAAAAAAAgM/jxoWUtuP58I/s1600/installation00.gif" imageanchor="1" style=""&gt;&lt;img border="0" height="196" width="400" src="http://4.bp.blogspot.com/_YFplKtVt_v4/TUi1Ccm84SI/AAAAAAAAAgM/jxoWUtuP58I/s400/installation00.gif" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;
&lt;strong&gt;権限の変更&lt;/strong&gt;&lt;br /&gt;
表示にしたがって以下のディレクトリの権限を「0777」変更する。
&lt;/p&gt;
&lt;pre&gt;
cache/
uploads/
config/
&lt;/pre&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/_YFplKtVt_v4/TUi2PdOGjwI/AAAAAAAAAgU/IBbLQoQcmTQ/s1600/installation01.gif" imageanchor="1" style=""&gt;&lt;img border="0" height="269" width="400" src="http://2.bp.blogspot.com/_YFplKtVt_v4/TUi2PdOGjwI/AAAAAAAAAgU/IBbLQoQcmTQ/s400/installation01.gif" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;
&lt;strong&gt;データベースの設定&lt;/strong&gt;&lt;br /&gt;
データベース名、ユーザ名、パスワードを入力する。
&lt;/p&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/_YFplKtVt_v4/TUi6InEhVgI/AAAAAAAAAhM/RTHsfiJqueo/s1600/installation02.gif" imageanchor="1" style=""&gt;&lt;img border="0" height="258" width="320" src="http://2.bp.blogspot.com/_YFplKtVt_v4/TUi6InEhVgI/AAAAAAAAAhM/RTHsfiJqueo/s320/installation02.gif" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;
エラーが出る。&lt;br /&gt;
ディレクトリ直下の「config.php」を編集して設定する。
&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;&amp;lt;?php
// database settings
define(       "DB_NAME", "[db_name]"      ); // name of database
define(       "DB_USER", "[user_name]"      ); // user name
define(   "DB_PASSWORD", "[password]"      ); // user password&lt;/code&gt;
…&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;ディレクトリの権限を戻す&lt;/strong&gt;&lt;br /&gt;
表示にしたがって「conf/」ディレクトリの権限を「0755」に戻す。
&lt;/p&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/_YFplKtVt_v4/TUi5xKXrEfI/AAAAAAAAAhE/SIUJ7QOtEF4/s1600/installation03.gif" imageanchor="1" style=""&gt;&lt;img border="0" height="136" width="320" src="http://2.bp.blogspot.com/_YFplKtVt_v4/TUi5xKXrEfI/AAAAAAAAAhE/SIUJ7QOtEF4/s320/installation03.gif" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;完了&lt;/strong&gt;&lt;br /&gt;
OpenIDを使ってログインする。
&lt;/p&gt;
&lt;/p&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/_YFplKtVt_v4/TUi8Z1ocXVI/AAAAAAAAAh8/6OjcHZWPBMs/s1600/installation04.gif" imageanchor="1" style=""&gt;&lt;img border="0" height="134" width="200" src="http://2.bp.blogspot.com/_YFplKtVt_v4/TUi8Z1ocXVI/AAAAAAAAAh8/6OjcHZWPBMs/s200/installation04.gif" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h4&gt;参考&lt;/h4&gt;
&lt;a href="http://www04.gine.jp/post/OpenMicroBlogger-e381aee382a4e383b3e382b9e38388e383bce383ab.aspx" title="INSTALL MANIAX 3 | OpenMicroBlogger のインストール"&gt;OpenMicroBlogger のインストール&lt;/a&gt; - &lt;cite&gt;INSTALL MANIAX 3&lt;/cite&gt;&lt;br /&gt;
&lt;a href="http://www.moongift.jp/2008/09/openmicroblogger/" title="PHP製のマイクロブログサービス「OpenMicroBlogger」 | MOONGIFT | オープンソース・ソフトウェア紹介を中心としたITエンジニア/Webデザイナー向けブログ"&gt;PHP製のマイクロブログサービス「OpenMicroBlogger」&lt;/a&gt; - &lt;cite&gt;MOONGIFT&lt;/cite&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-2185386862677159921?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/2185386862677159921/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=2185386862677159921' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/2185386862677159921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/2185386862677159921'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2011/02/twitteropenmicroblogger.html' title='Twitterライクなマイクロブログ－OpenMicroBlogger'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_YFplKtVt_v4/TUi1Ccm84SI/AAAAAAAAAgM/jxoWUtuP58I/s72-c/installation00.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-5593679240894834001</id><published>2010-11-19T16:28:00.001+09:00</published><updated>2010-11-19T16:28:25.133+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WordPress'/><title type='text'>【WordPress】ギャラリー機能を便利に使うメモ</title><content type='html'>&lt;div&gt;&lt;a href="http://webdesignrecipes.com/how-to-customize-wordpress-gallery/" title="使いづらいWordPressのギャラリーをけっこう使えるギャラリーにする方法"&gt;使いづらいWordPressのギャラリーをけっこう使えるギャラリーにする方法&lt;/a&gt; - &lt;cite&gt;Web Design Recipes&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;使い方とパラメータなど。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-5593679240894834001?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/5593679240894834001/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=5593679240894834001' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5593679240894834001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5593679240894834001'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/11/wordpress.html' title='【WordPress】ギャラリー機能を便利に使うメモ'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-5798643292571900982</id><published>2010-11-19T10:07:00.000+09:00</published><updated>2010-11-19T10:07:13.335+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WordPress'/><title type='text'>【WordPress】プラグイン－WP Custom Fields Search で全角スペースの複数ワード検索</title><content type='html'>&lt;h4&gt;テンプレートを変更する方法&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://ja.forums.wordpress.org/topic/3090" title="WordPress &amp;gt; フォーラム &amp;raquo; [WP Custom Fields Search] で全角スペースでも検索できるようにしたい"&gt;[WP Custom Fields Search] で全角スペースでも検索できるようにしたい&lt;/a&gt; - &lt;cite&gt;WordPress&lt;/cite&gt; &amp;gt; フォーラム&lt;/div&gt;
&lt;pre&gt;/* テンプレート「function.php」追加 */
&lt;code title="WordPress › フォーラム » [WP Custom Fields Search] で全角スペースでも検索できるようにしたい"&gt;function replace_double_byte_space_cs_query_string() {
    $_REQUEST['cs-all-1'] = str_replace( '　', ' ', $_REQUEST['cs-all-1'] );
}
add_action( 'init', 'replace_double_byte_space_cs_query_string' );
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;リンク先では、テンプレートに関数を追加してフォームの全角スペースを半角スペースに置換して対応してます。&lt;br /&gt;
「&lt;code&gt;$_REQUEST['cs-all-1']&lt;/code&gt;」はWP Custom Fields Searchのフォーム要素の「&lt;code&gt;name&lt;/code&gt;」。&lt;br /&gt;
(全てのカスタム・フィールドを対象に、ボックスの０から始まるフォーム要素数:cs-all-1)
&lt;/p&gt;
&lt;h4&gt;プラグインを変更する方法&lt;/h4&gt;
&lt;p&gt;
上記の方法だとテキストフォームが複数あったら、その分だけ追加しなくてはいけないので、WP Custom Fields Searchのファイルを変更するようにしました。
&lt;/p&gt;
&lt;pre&gt;/* プラグイン「wp-custom-fields-search」ディレクトリ内「extra_search_fields.php」 */
&lt;code&gt;class WordsLikeComparison extends LikeComparison {
    function addSQLWhere($field,$value) {
        $value = trim(mb_convert_kana($value,'s','UTF-8'));
        $words = explode(" ",preg_replace('/\s+/u', ' ', $value));
        $like = array(1);
        foreach($words as $word) {
            $like[] = $this-&gt;getLikeString($field,$word);
        }
        return "(".join(" AND ",$like).")";
    }
    function describeSearch($value){
        $value = trim(mb_convert_kana($value,'s','UTF-8'));
        return sprintf(__(' contains "%1$s"','wp-custom-fields-search'),join('"'.__(" and ",'wp-custom-fields-search').'"',explode(" ",preg_replace('/\s+/u', ' ', $value))));
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
「&lt;code&gt;preg_replace('/\s+/u', ' ', $value)&lt;/code&gt;」で空白文字（連続した場合も）を半角スペースに変換します。&lt;br /&gt;
「&lt;code&gt;trim()&lt;/code&gt;」で先頭と末尾の空白文字を削除します。&lt;br /&gt;
「&lt;code&gt;mb_convert_kana()&lt;/code&gt;」はテンプレートの文字エンコードがUTF-8でプラグインはShift-JISなので空白を発見できなくなるため。&lt;br /&gt;
「&lt;code&gt;preg_replace()&lt;/code&gt;」は１つ以上の連続した空白文字を半角スペースに置換します。
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-5798643292571900982?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/5798643292571900982/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=5798643292571900982' title='1 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5798643292571900982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5798643292571900982'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/11/wordpresswp-custom-fields-search.html' title='【WordPress】プラグイン－WP Custom Fields Search で全角スペースの複数ワード検索'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-8356219994645130401</id><published>2010-11-13T09:58:00.001+09:00</published><updated>2010-11-13T09:58:52.777+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='モバイル'/><title type='text'>【PHP】携帯でセッション【モバイル】</title><content type='html'>&lt;div&gt;&lt;a href="http://gihyo.jp/dev/serial/01/mobilesite-php/0005" title="【PHPで作る】初めての携帯サイト構築：第5回　携帯サイトでセッションを取り扱う｜gihyo.jp … 技術評論社"&gt;第5回　携帯サイトでセッションを取り扱う&lt;/a&gt; - &lt;cite&gt;gihyo.jp&lt;/cite&gt; &amp;gt; 初めての携帯サイト構築&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.plusmb.jp/2008/11/06/1137.html" title="携帯でuse_trans_sidを使ったセッションの扱い 前編 | 携帯サイトをつくろう。"&gt;携帯でuse_trans_sidを使ったセッションの扱い 前編&lt;/a&gt; - &lt;cite&gt;携帯サイトをつくろう。&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://ke-tai.org/blog/2007/12/12/php_session_new/" title="PHPでケータイからセッションを使う場合の設定方法 | ke-tai.org"&gt;PHPでケータイからセッションを使う場合の設定方法&lt;/a&gt; - &lt;cite&gt;ke-tai.org&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;リンクの内容は大体同じです。&lt;/p&gt;
&lt;h4&gt;方針&lt;/h4&gt;
&lt;p&gt;
・Cookie未対応の携帯(Docomoとか)を考慮してURLにセッションIDを付加する&lt;br /&gt;
・セッションIDはアクセスごとに変更する
&lt;/p&gt;
&lt;h4&gt;セッションの設定&lt;/h4&gt;
&lt;h5&gt;「.htaccess」で設定する場合&lt;/h5&gt;
&lt;pre&gt;&lt;code&gt;php_flag session.use_only_cookies Off
php_flag session.use_trans_sid On&lt;/code&gt;&lt;/pre&gt;
&lt;h5&gt;「php.ini」で設定する場合&lt;/h5&gt;
&lt;pre&gt;&lt;code&gt;session.use_only_cookies= 0
session.use_trans_sid = 1&lt;/code&gt;&lt;/pre&gt;
&lt;h5&gt;PHPファイルで設定する場合&lt;/h5&gt;
&lt;p&gt;コードの一番最初に記述します(「&lt;code&gt;session_start()&lt;/code&gt;」より前)。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ini_set('use_only_cookies' , '0');
ini_set('session.use_trans_sid', '1');&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;セッションIDの再生成&lt;/h4&gt;
&lt;p&gt;
続いて、PHPのコードは以下のようにします。&lt;br /&gt;
これによりセッションののっとりを防ぎます。
&lt;/p&gt;
&lt;h5&gt;PHP5の場合&lt;/h5&gt;
&lt;pre&gt;&lt;code&gt;session_start();
session_regenerate_id(true);&lt;/code&gt;&lt;/pre&gt;
&lt;h5&gt;PHP4の場合&lt;/h5&gt;
&lt;pre&gt;&lt;code&gt;session_start();
// セッションを退避
$sess_tmp = $_SESSION;

session_destroy();
// セッションIDを再生成
session_start();
session_regenerate_id();
// セッションを元に戻す 
$_SESSION = $sess_tmp;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
ini_set(‘session.use_trans_sid’, 1)とすると全てのフォームもリンクもセッションIDを付加してくれるが、URLをhttp://～の絶対パスで記述すると付加してくれません。外部サーバは不可。&lt;br /&gt;
同様にSSLを使ってhttp://～とhttps://～を行き来することも出来ません。サイトの全てをどちらかで作る必要が有ります。
&lt;/p&gt;
&lt;div&gt;&lt;a href="http://pochi.orz.ne.jp/oasis/archive_278.htm" title="-OASIS- - 今日のメモ「携帯におけるセッションとセキュリティ（PHP）」"&gt;今日のメモ「携帯におけるセッションとセキュリティ（PHP）」&lt;/a&gt; - &lt;cite&gt;-OASIS-&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/ockeghem/20090714/p1" title="携帯電話向けWebアプリのセッション管理はどうなっているか - ockeghem(徳丸浩)の日記"&gt;携帯電話向けWebアプリのセッション管理はどうなっているか&lt;/a&gt; - &lt;cite&gt; ockeghem(徳丸浩)の日記&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;
「&lt;code&gt;session_regenerate_id()&lt;/code&gt;」を使うと通信が途切れたり、戻るボタンでセッションが継続出来ないデメリットも有ります。&lt;br /&gt;
その場合、セッションIDの再発行は行わず、Zend FrameworkやPEAR::Net_UserAgent_Mobileで判別して、Cookieが使えない場合は上記の方法を取ります。
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-8356219994645130401?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/8356219994645130401/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=8356219994645130401' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/8356219994645130401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/8356219994645130401'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/11/php.html' title='【PHP】携帯でセッション【モバイル】'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-8055313123904668217</id><published>2010-11-09T15:26:00.046+09:00</published><updated>2010-11-19T13:36:52.381+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WordPress'/><title type='text'>【WordPress】プラグイン－More Fields</title><content type='html'>&lt;div&gt;&lt;a href="http://wordpress.org/extend/plugins/more-fields/" title="WordPress › More Fields « WordPress Plugins"&gt;More Fields&lt;/a&gt; - &lt;cite&gt;WordPress&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.gnnk.net/20080407215857/" title="[WordPress]More Fields - www.gnnk.net"&gt;[WordPress]More Fields&lt;/a&gt; - &lt;cite&gt;www.gnnk.net&lt;/cite&gt;&lt;br /&gt;
・日本語化ファイル&lt;/div&gt;

&lt;div&gt;&lt;a href="http://zyonta.webege.com/wordpress_blog/?cat=7" title="プラグイン | wordpressを極メル Heaven"&gt;More Fieldsの使い方&lt;/a&gt; - &lt;cite&gt;wordpressを極メル Heaven&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;
&lt;a href="http://1.bp.blogspot.com/_YFplKtVt_v4/TNjLG0WvbsI/AAAAAAAAAfI/6zJb9ZOMFJ8/s1600/More%2BFields2.png" imageanchor="1"&gt;&lt;img border="0" height="313" width="400" src="http://1.bp.blogspot.com/_YFplKtVt_v4/TNjLG0WvbsI/AAAAAAAAAfI/6zJb9ZOMFJ8/s400/More%2BFields2.png" /&gt;&lt;/a&gt;&lt;br /&gt;
カスタムフィールドを『ボックス』というグループとして纏めて扱います。『Detail』と『more-fields』のボックスが有ります。
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://2.bp.blogspot.com/_YFplKtVt_v4/TNjLG0VAOBI/AAAAAAAAAfA/CHzmJNgEFt4/s1600/More%2BFields.png" imageanchor="1" &gt;&lt;img border="0" height="216" width="400" src="http://2.bp.blogspot.com/_YFplKtVt_v4/TNjLG0VAOBI/AAAAAAAAAfA/CHzmJNgEFt4/s400/More%2BFields.png"/&gt;&lt;/a&gt;&lt;br /&gt;
『Add new input box』で追加する画面です。カスタムフィールドを投稿用・ページ用、又は両方に使うか選べます。ボックス名はテンプレートで使うかもしれないので、日本語ではない方が良いのかもしれません。
&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://2.bp.blogspot.com/_YFplKtVt_v4/TNjLHTOun0I/AAAAAAAAAfQ/wSPjXiPJNn4/s1600/More%2BFields3.png" imageanchor="1" &gt;&lt;img border="0" height="272" width="400" src="http://2.bp.blogspot.com/_YFplKtVt_v4/TNjLHTOun0I/AAAAAAAAAfQ/wSPjXiPJNn4/s400/More%2BFields3.png" /&gt;&lt;/a&gt;&lt;br /&gt;
『edit』でカスタムフィールドを編集します。『Add new Field』で追加します。
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://2.bp.blogspot.com/_YFplKtVt_v4/TNjR3ctaMvI/AAAAAAAAAfo/cd-rQdurVCo/s1600/More%2BFields4.png" imageanchor="1"&gt;&lt;img border="0" height="400" width="202" src="http://2.bp.blogspot.com/_YFplKtVt_v4/TNjR3ctaMvI/AAAAAAAAAfo/cd-rQdurVCo/s400/More%2BFields4.png" /&gt;&lt;/a&gt;&lt;br /&gt;
カスタムフィールドの設定をします。
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://1.bp.blogspot.com/_YFplKtVt_v4/TNjLHaU5WDI/AAAAAAAAAfY/ulQMThkasHw/s1600/More%2BFields5.png" imageanchor="1"&gt;&lt;img border="0" height="242" width="400" src="http://1.bp.blogspot.com/_YFplKtVt_v4/TNjLHaU5WDI/AAAAAAAAAfY/ulQMThkasHw/s400/More%2BFields5.png" /&gt;&lt;/a&gt;&lt;br /&gt;
『Field title』はフォームのラベルの様なものです。『Custom field key』はテンプレートで値を取得する時に使うかもしれないので、日本語ではない方が良いかもしれません。『Caption』はフィールドの説明です。フォーム要素の下に表示されます。
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://2.bp.blogspot.com/_YFplKtVt_v4/TNjLH6D4yzI/AAAAAAAAAfg/-tqb91npcmQ/s1600/More%2BFields6.png" imageanchor="1"&gt;&lt;img border="0" height="97" width="400" src="http://2.bp.blogspot.com/_YFplKtVt_v4/TNjLH6D4yzI/AAAAAAAAAfg/-tqb91npcmQ/s400/More%2BFields6.png" /&gt;&lt;/a&gt;&lt;br /&gt;
セレクト・ラジオ・チェックボックスの選択要素は「,」で区切って、デフォルト値には「*」をつけます。
&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://3.bp.blogspot.com/_YFplKtVt_v4/TNjlCsNSZEI/AAAAAAAAAfw/AGgjQ4pe35I/s1600/More%2BFields7.png" imageanchor="1" &gt;&lt;img border="0" height="306" width="400" src="http://3.bp.blogspot.com/_YFplKtVt_v4/TNjlCsNSZEI/AAAAAAAAAfw/AGgjQ4pe35I/s400/More%2BFields7.png" /&gt;&lt;/a&gt;&lt;br /&gt;
ボックスにカスタムフィールドが追加されました。
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://4.bp.blogspot.com/_YFplKtVt_v4/TNjlC2Yu8gI/AAAAAAAAAgA/se_yExFNM0Y/s1600/More%2BFields9.png" imageanchor="1" &gt;&lt;img border="0" height="168" width="400" src="http://4.bp.blogspot.com/_YFplKtVt_v4/TNjlC2Yu8gI/AAAAAAAAAgA/se_yExFNM0Y/s400/More%2BFields9.png" /&gt;&lt;/a&gt;&lt;br /&gt;
ページの新規追加ではこのように表示されます。ボックス名の『more-fields』、『Field title』の『所在地』、『Field type』はセレクト、『Caption』が表示されてます。
&lt;a href="http://4.bp.blogspot.com/_YFplKtVt_v4/TNjlC2leoqI/AAAAAAAAAf4/MZIurBRuYYQ/s1600/More%2BFields8.png" imageanchor="1" &gt;&lt;img border="0" height="193" width="400" src="http://4.bp.blogspot.com/_YFplKtVt_v4/TNjlC2leoqI/AAAAAAAAAf4/MZIurBRuYYQ/s400/More%2BFields8.png" /&gt;&lt;/a&gt;&lt;br /&gt;
『Values』に入力したリストが選択出来ます。デフォルト値は『関東』です。
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;テンプレートでの使い方&lt;/strong&gt;&lt;br /&gt;
設定した日本語の『Field title』を使いたいので、このようになります。&lt;br /&gt;
テンプレートを編集するのが苦でなく、キーと値だけ使うのであれば普通のカスタムフィールドの使い方で良いと思います。&lt;br /&gt;
「More Fields」の関数がいくつか有りますが、クラスの仕様が変わったのか、そのままでは使えませんでした。
&lt;/p&gt;
&lt;pre&gt;/* テンプレートファイル */
  &lt;code&gt;$mf =$more_fields-&gt;data_loaded[_plugin]['more-fields'];
  foreach ($mf[fields] as  $value ) {
    $fields[$value['key']]=$value;
  }
    more_fields($fields['address']['key'],"&amp;lt;p&amp;gt;$fields['address']['label']:","&amp;lt;/p&amp;gt;");&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;/* 出力例 */
&lt;samp&gt;&amp;lt;p&amp;gt;所在地:関東&amp;lt;/p&amp;gt;&lt;/samp&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-8055313123904668217?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/8055313123904668217/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=8055313123904668217' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/8055313123904668217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/8055313123904668217'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/11/wordpressmore-fields.html' title='【WordPress】プラグイン－More Fields'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_YFplKtVt_v4/TNjLG0WvbsI/AAAAAAAAAfI/6zJb9ZOMFJ8/s72-c/More%2BFields2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-8060680995061684561</id><published>2010-11-08T11:47:00.001+09:00</published><updated>2010-11-08T11:51:07.519+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>【PHP】HTMLパーサ関数</title><content type='html'>&lt;div&gt;&lt;a href="http://digit.que.ne.jp/work/wiki.cgi?PHP%E3%83%A1%E3%83%A2%2FHTML%E3%81%AE%E8%A7%A3%E6%9E%90" title="PHPメモ/HTMLの解析 - Walrus, Digit."&gt;PHPメモ/HTMLの解析&lt;/a&gt; - &lt;cite&gt;Walrus, Digit&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;色々なHTMLパーサ関数は有りますが、依存なしで、ただ解析するシンプルな関数です。&lt;/p&gt;
&lt;pre&gt;/* HTMLパーサの動作例 */
&lt;code&gt;$html = "&amp;lt;p&amp;gt;Hello, World!&amp;lt;/p&amp;gt;";
$result = parse_html($html);
print_r($result);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;第1引数がHTMLソースで、第2引数が要素を分ける最大数。&lt;br /&gt;
返り値は、タグなら配列で、文字列はそのまま入ります。&lt;/p&gt;
&lt;pre&gt;/* 出力 */
&lt;samp&gt;Array
(
    [0] =&amp;lt; Array
    (
        [string] =&amp;gt; &amp;lt;p&amp;gt;
        [tag] =&amp;gt; p
        [is_tag] =&amp;gt; 1
        [is_start] =&amp;gt; 1
        [is_end] =&amp;gt; 
    )
    [1] =&amp;gt; Hello, World!
    [2] =&amp;gt; Array
    (
        [string] =&amp;gt; &amp;lt;/p&amp;gt;
        [tag] =&amp;gt; p
        [is_tag] =&amp;gt; 1
        [is_start] =&amp;gt; 
        [is_end] =&amp;gt; 1
    )
)&lt;/samp&gt;&lt;/pre&gt;
&lt;p&gt;タグごとに処理とかは以下のような感じでしょうか。&lt;/p&gt;
&lt;pre&gt;/* HTMLパーサの動作例 */
$html = "&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Hello, World!&amp;lt;/b&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;i&amp;gt;Hello, World!&amp;lt;/i&amp;gt;&amp;lt;/p&amp;gt;";
$result = parse_html($html);
$allow_tag = array('b', 'br');
foreach ($result as $parse ) {
    if (is_array($parse) !== true)
        $str .= $parse;
    else if( in_array($parse['tag'], $allow_tag) === true)
        $str .=  strtr($parse['string'], array("'" =&amp;gt; "&amp;amp;#039;", '"' =&amp;gt; "&amp;amp;quot;")) ;
    else
        $str .= htmlspecialchars($parse['string'], ENT_QUOTES, 'UTF-8');
}
echo $str;&lt;/code&gt;&lt;/pre&gt;

&lt;pre&gt;/* 出力 */
&lt;samp&gt;&amp;amp;lt;p&amp;amp;gt;&amp;lt;b&amp;gt;Hello, World!&amp;lt;/b&amp;gt;&amp;lt;br /&amp;gt;&amp;amp;lt;i&amp;amp;gt;Hello, World!&amp;amp;lt;/i&amp;amp;gt;&amp;amp;lt;/p&amp;amp;gt;&lt;/samp&gt;&lt;/pre&gt;
&lt;p&gt;「&lt;code&gt;&amp;gt;br /&amp;lt;&lt;/code&gt;」の解析結果は次の様になります。&lt;/p&gt;
&lt;pre&gt;&lt;samp&gt;Array
(
    [string] =&amp;gt; &amp;gt;br /&amp;lt;
    [tag] =&amp;gt; br
    [is_tag] =&amp;gt; 1
    [is_start] =&amp;gt; 1
    [is_end] =&amp;gt; 1
)&lt;/samp&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-8060680995061684561?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/8060680995061684561/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=8060680995061684561' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/8060680995061684561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/8060680995061684561'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/11/phphtml.html' title='【PHP】HTMLパーサ関数'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-5224037454920363565</id><published>2010-10-27T10:57:00.000+09:00</published><updated>2010-10-27T10:57:47.462+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WordPress'/><title type='text'>【WordPress】メモリ・オーバー時エラー『PHP Fatal error: Allowed memory size of ～』対処</title><content type='html'>&lt;p&gt;
これはPHPを実行する時に“サーバメモリ設定制限値を超える割り当てを要求した場合に出される”エラーで、
メモリ割り当て設定を増やして対応する。
&lt;/p&gt;
&lt;div&gt;&lt;a href="http://word-express.net/kowaza-5/" title="PHP Fatal error: Allowed memory size of XXXX bytes exhausted　対処について | 初めてのWordPress&amp;amp;PC"&gt;PHP Fatal error: Allowed memory size of XXXX bytes exhausted　対処について&lt;/a&gt; - &lt;cite&gt;初めてのWordPress&amp;amp;PC&lt;/cite&gt;&lt;/div&gt;

&lt;h4&gt;「php.ini」の編集で対処する場合&lt;/h4&gt;
&lt;h5&gt;その１－「php.ini」を編集する&lt;/h5&gt;
&lt;pre&gt;/* php.ini */
&lt;code title="メモリ・オーバーエラー対処法「php.ini」"&gt;
memory_limit = ○○M ;&lt;/code&gt;&lt;/pre&gt;
&lt;h5&gt;その２－「wp-config.php」を編集する&lt;/h5&gt;
&lt;pre&gt;/* wp-config.php */
&lt;code title="メモリ・オーバーエラー対処法「wp-config.php」"&gt;define('WP_MEMORY_LIMIT', '○○M');&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;「&lt;var&gt;WP_MEMORY_LIMIT&lt;/var&gt;」の定義があれば数値を増やす。無ければ追記。&lt;/p&gt;
&lt;p&gt;apacheの再起動も行う。&lt;/p&gt;
&lt;h4&gt;「.htaccess」の編集で対処する場合&lt;/h4&gt;
&lt;p&gt;「php.ini」が編集できない場合は「.htaccess」でメモリの割り当てを増やす。&lt;/p&gt;
&lt;pre&gt;/* .htaccess */
&lt;code title="メモリ・オーバーエラー対処法「.htaccess」"&gt;php_value memory_limit "○○M"&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;あとは同様に「wp-config.php」を編集する。&lt;/p&gt;
&lt;p&gt;余談ではありますが、「&lt;em&gt;More Fields&lt;/em&gt;」というカスタム・フィールドを管理できる様にするプラグインで「file list」というタイプのフィールドを使用したら一気にメモリ・オーバーエラーが出ました。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-5224037454920363565?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/5224037454920363565/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=5224037454920363565' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5224037454920363565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5224037454920363565'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/10/wordpressphp-fatal-error-allowed-memory.html' title='【WordPress】メモリ・オーバー時エラー『PHP Fatal error: Allowed memory size of ～』対処'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-5901091282472259859</id><published>2010-06-19T15:12:00.009+09:00</published><updated>2010-06-21T18:27:46.376+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>【PHP】KohanaをXREAにインストール～CodeIgniter派生の軽量フレームワーク</title><content type='html'>&lt;div&gt;&lt;a href="http://kohanaframework.org/guide/about.install" title="Installation | Kohana User Guide"&gt;Installation&lt;/a&gt; - &lt;cite&gt;Kohana User Guide&lt;/cite&gt;&lt;/div&gt;
&lt;h5&gt;ダウンロード&lt;/h5&gt;
&lt;p&gt;公式サイトからダウンロード。現時点で最新の安定版「kohana-3.0.6.zip」。&lt;/p&gt;
&lt;h5&gt;解凍＆アップロード&lt;/h5&gt;
&lt;p&gt;ダウンロードしたファイルを解凍、展開されたディレクトリ『kohana/』をサーバにアップロード。ここでは『public_html/』直下。&lt;/p&gt;
&lt;h5&gt;インストール&lt;/h5&gt;
&lt;p&gt;アップロードしたディレクトリにアクセス。「http://www.example.com/kohana/」など。&lt;/p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_YFplKtVt_v4/TB8txsYnv9I/AAAAAAAAAeI/UGLRArXz9pY/s1600/1.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 310px;" src="http://3.bp.blogspot.com/_YFplKtVt_v4/TB8txsYnv9I/AAAAAAAAAeI/UGLRArXz9pY/s320/1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5485153202911821778" /&gt;&lt;/a&gt;
&lt;p&gt;画面にしたがって権限を変更。『application/logs/』と『application/cache/』の属性を『0707』にする。&lt;br /&gt;
画像の下にもステータスがあったが、パスしてたので省略した。
&lt;/p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_YFplKtVt_v4/TB8t_JleCzI/AAAAAAAAAeQ/2TFKrs2f0b0/s1600/2.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 315px;" src="http://4.bp.blogspot.com/_YFplKtVt_v4/TB8t_JleCzI/AAAAAAAAAeQ/2TFKrs2f0b0/s320/2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5485153434088639282" /&gt;&lt;/a&gt;
&lt;p&gt;『install.php』を削除して、アクセスし直すと「hello, world!」なはずだがクラスが無いとかエラーが表示される。&lt;/p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_YFplKtVt_v4/TB8wU2MXNgI/AAAAAAAAAew/hBFyguLLw_M/s1600/4.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 187px;" src="http://4.bp.blogspot.com/_YFplKtVt_v4/TB8wU2MXNgI/AAAAAAAAAew/hBFyguLLw_M/s320/4.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5485156005863437826" /&gt;&lt;/a&gt;
&lt;div&gt;&lt;a href="http://forum.kohanaframework.org/comments.php?DiscussionID=4256" title="Kohana Forums - Installation KO3"&gt;Community Support: Installation KO3&lt;/a&gt; - &lt;cite&gt;Kohana Forums&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;リンクを参考にして「Controller_Kohana」クラスを作ってみる。&lt;/p&gt;
&lt;pre&gt;
変更１ 名前の変更
『classes/controller/』
∟welcome.php→kohana.php
変更２ コントローラ名の変更
『kohana.php』内
「&lt;code&gt;Controller_Welcome&lt;/code&gt;」→「&lt;code&gt;Controller_Kohana&lt;/code&gt;」
&lt;/pre&gt;
&lt;p&gt;設定ファイル『bootstrap.php』は以下のようになっていた。&lt;/p&gt;
&lt;pre&gt;/* bootstrap.php */
&lt;code&gt;Kohana::init(array(
 'base_url'   =&amp;gt; '/virtual/[ユーザ名]/public_html/kohana/',
 'index_file' =&amp;gt; FALSE,
));&lt;/code&gt;&lt;/pre&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YFplKtVt_v4/TB8ugKugo0I/AAAAAAAAAeY/-b-32bsICzU/s1600/3.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_YFplKtVt_v4/TB8ugKugo0I/AAAAAAAAAeY/-b-32bsICzU/s320/3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5485154001330676546" /&gt;&lt;/a&gt;
&lt;p&gt;成功。&lt;/p&gt;
&lt;p&gt;ちなみに、『welcome.php』「&lt;code&gt;Controller_Welcome&lt;/code&gt;」に戻して、「&lt;code&gt;'base_url'   =&amp;gt; '/kohana/'&lt;/code&gt;」にしてもエラーは出なかった。こっちがデフォルトだった気がするが、なんだったのか。&lt;br /&gt;
CGIモードPHPを指定してる時もエラーが出る模様。
&lt;/p&gt;
&lt;h5&gt;おまけ - Kohana2のインストール&lt;/h5&gt;
&lt;p&gt;解凍したのをアップするだけでインストールできた。&lt;/p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_YFplKtVt_v4/TB8vCpZFZ6I/AAAAAAAAAeg/a2FE_MVeOuY/s1600/a.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 301px; height: 320px;" src="http://1.bp.blogspot.com/_YFplKtVt_v4/TB8vCpZFZ6I/AAAAAAAAAeg/a2FE_MVeOuY/s320/a.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5485154593677862818" /&gt;&lt;/a&gt;
&lt;p&gt;『install.php』を削除。&lt;/p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YFplKtVt_v4/TB8vDDgc15I/AAAAAAAAAeo/-7dJfiXw-rM/s1600/b.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 310px;" src="http://2.bp.blogspot.com/_YFplKtVt_v4/TB8vDDgc15I/AAAAAAAAAeo/-7dJfiXw-rM/s320/b.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5485154600688080786" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-5901091282472259859?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/5901091282472259859/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=5901091282472259859' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5901091282472259859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5901091282472259859'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/06/phpkohanaxreacodeigniter.html' title='【PHP】KohanaをXREAにインストール～CodeIgniter派生の軽量フレームワーク'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_YFplKtVt_v4/TB8txsYnv9I/AAAAAAAAAeI/UGLRArXz9pY/s72-c/1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-7146082831053748910</id><published>2010-06-18T17:30:00.002+09:00</published><updated>2010-06-18T18:41:15.656+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>【フレームワーク】Kohana【ＰＨＰ】</title><content type='html'>&lt;p&gt;
PHPフレームワークとしてシンプルで軽量な&lt;em&gt;Guesswork&lt;/em&gt;を気に入っているが、DBを絡めて開発となるとバリデーションなど心許無い。&lt;em&gt;CakePHP&lt;/em&gt;が無難かと思ってたが&lt;em&gt;Kohana&lt;/em&gt;も良さそうだ。
&lt;/p&gt;
&lt;div&gt;&lt;a href="http://kohanaframework.org/" title="Kohana: The Swift PHP Framework"&gt;&lt;cite&gt;Kohana&lt;/cite&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;CodeIgniter&lt;/em&gt;派生の軽量なフレームワーク。PHP 5.2。&lt;em&gt;HMVC&lt;/em&gt;(Hierachial MVC:階層構造MVC)。&lt;br /&gt;
&lt;q cite="http://bsn.river.tc/kohana/basic/module.html" title="Kohanaの基本動作覚書:HMVC：モジュールの作り方"&gt;モジュール・ディレクトリだけでアプリケーションの作成が出来るようになっている。この機能をLayered MVC -- &lt;a href="http://www.javaworld.com/javaworld/jw-07-2000/jw-0721-hmvc.html?page=2" title="HMVC: The layered pattern for developing strong client tiers - JavaWorld"&gt;HMVC&lt;/a&gt;というらしい。&lt;/q&gt;
&lt;/p&gt;
&lt;div&gt;&lt;a href="http://clinic.mond.jp/kohana/" title="Welcome to Kohana!"&gt;Welcome to Kohana! 初心者向け日本語マニュアル&lt;/a&gt;&lt;br /&gt;
&lt;em&gt;Kohana 3&lt;/em&gt;以降と、それ以前のマニュアル。ＰＤＦ。
&lt;/div&gt;
&lt;div&gt;&lt;a href="http://bsn.river.tc/kohana/index.html" title="PHP FW Kohanaを使う:'Kohana'というフレームワーク"&gt;PHP FW Kohanaを使う&lt;/a&gt; - &lt;cite&gt;both sides now&lt;/cite&gt;&lt;br /&gt;
概要、インストール・マニュアル、アプリケーション・サンプル。2.2.3 以前。
&lt;/div&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/ele_eel/searchdiary?word=%2A%5BKohana%5D" title="[Kohana] - ele_eelの日記"&gt;[Kohana]&lt;/a&gt; - &lt;cite&gt;ele_eelの日記&lt;/cite&gt;&lt;br /&gt;
&lt;em&gt;Kohana 3&lt;/em&gt;のサンプルやさくらサーバへのインストール、&lt;em&gt;Kohana 2&lt;/em&gt;でのログイン認証や日本語化など。
&lt;/div&gt;
&lt;div&gt;&lt;a href="http://hero-kick.com/php/entry-812.html" title="Kohana PHPでPCと携帯サイトのテンプレートを入れ替える » 決まらないタイトル。決まるスケジュール。"&gt;Kohana PHPでPCと携帯サイトのテンプレートを入れ替える&lt;/a&gt; - &lt;cite&gt;決まらないタイトル。決まるスケジュール。&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://blog.setunai.net/20080125/kohana%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%A7phptal%E3%82%92%E5%88%A9%E7%94%A8%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F/" title="KohanaフレームワークでPHPTALを利用してみた - せつないぶろぐ"&gt;KohanaフレームワークでPHPTALを利用してみた&lt;/a&gt; - &lt;cite&gt;せつないぶろぐ&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;CodeIgniter&lt;/em&gt;の欠点に関する以下のエントリから、&lt;em&gt;Kohana&lt;/em&gt;に派生してどう改善されたのか等、特徴が掴めると思います。
&lt;/p&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/tanakahisateru/20081016/1224097512" title="そうか、Kohanaが急激によくなっているんだ - なんたらノート 第二期"&gt;そうか、Kohanaが急激によくなっているんだ&lt;/a&gt; - &lt;cite&gt;なんたらノート 第二期&lt;/cite&gt;&lt;br /&gt;
&lt;em&gt;CodeIgniter&lt;/em&gt;との比較など。
&lt;/div&gt;
&lt;div&gt;
&lt;a href="http://oddwit.com/blog/2007/coming-to-hate-code-igniter" title="CodeIgniterの嫌な部分 | Oddwit"&gt;CodeIgniterの嫌な部分&lt;/a&gt; - &lt;cite&gt;Oddwit&lt;/cite&gt;&lt;br /&gt;
&amp;gt;&lt;a href="http://d.hatena.ne.jp/tanakahisateru/20080924/1222190229" title="CodeIgniterが急激によくなってきた - なんたらノート 第二期"&gt;CodeIgniterが急激によくなってきた&lt;/a&gt; - &lt;cite&gt;なんたらノート 第二期&lt;/cite&gt;&lt;br /&gt;
&amp;gt;&amp;gt;&lt;a href="http://angelicwing.net/diary/5012.html" title="AngelicWing Diary - [毒 php] 「CodeIgniterが急激によくなってきた」というエントリが良くなってきている点を全く指摘していない件について"&gt;「CodeIgniterが急激によくなってきた」というエントリが良くなってきている点を全く指摘していない件について&lt;/a&gt; - &lt;cite&gt;AngelicWing Diary&lt;/cite&gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;a href="http://d.hatena.ne.jp/tanakahisateru/20081011/1223671270" title="宣伝に偽りありで申し訳ございません -- CodeIgniter自体は急激に変わっていない - なんたらノート 第二期"&gt;宣伝に偽りありで申し訳ございません -- CodeIgniter自体は急激に変わっていない&lt;/a&gt; - &lt;cite&gt;なんたらノート 第二期&lt;/cite&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-7146082831053748910?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/7146082831053748910/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=7146082831053748910' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/7146082831053748910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/7146082831053748910'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/06/kohana.html' title='【フレームワーク】Kohana【ＰＨＰ】'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-611243154062721135</id><published>2010-06-16T18:10:00.005+09:00</published><updated>2010-06-17T16:01:39.605+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='jQuery'/><title type='text'>【Javascript】Edit In PlaceとかInPlaceEditとか【jQuery】</title><content type='html'>&lt;p&gt;
HTMLのクリックした要素をテキストエリアにして、その場で編集出来るようにするライブラリ。
&lt;/p&gt;
&lt;h4&gt;script.aculo.us&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://hwat.sakura.ne.jp/hpod/200610/25-200000/" title="Ajax しない Ajax.InPlaceEditor (hPod)"&gt;Ajax しない Ajax.InPlaceEditor&lt;/a&gt; - &lt;cite&gt;hPod&lt;/cite&gt;&lt;br /&gt;
サーバと通信しないように修正。
&lt;/div&gt;

&lt;h4&gt;jQuery.js&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://www.vkazoo.com/?p=290" title="Textをクリックしてその場編集できるjavascript(Edit In Place) | 日々是好日"&gt;Textをクリックしてその場編集できるjavascript(Edit In Place)&lt;/a&gt; - &lt;cite&gt;&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/cyokodog/20091115/jquery_inplace_editor" title="In-Place-Editor (その場で編集するUI) の実装方法を考えてみた - Cyokodog :: Diary"&gt;In-Place-Editor (その場で編集するUI) の実装方法を考えてみたComments&lt;/a&gt; - &lt;cite&gt; Cyokodog :: Diary&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.hakkaku.net/articles/20100221-595" title="八角研究所 : jQuery の In Place Editor プラグイン作ってみた"&gt;jQuery の In Place Editor プラグイン作ってみた&lt;/a&gt; - &lt;cite&gt;八角研究所&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/banzan/20080116" title="ｊQuery　Edit in place - ｊQuery メモ帳"&gt;テキストをクリックするとテキストエリアになるjQuery&lt;/a&gt; - &lt;cite&gt; ｊQuery メモ帳&lt;/cite&gt;&lt;br /&gt;
&amp;gt;&amp;gt;&lt;a href="http://text2html.s321.xrea.com/jquery/edit_inplace/" title="Edit in place Samples"&gt;サンプル&lt;/a&gt;
&lt;/div&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/hkhumanoid/20091031/1256959423" title="inplace edit で始める DOM スクリプティング - 脱エンタープライズ志向"&gt;inplace edit で始める DOM スクリプティング&lt;/a&gt; - &lt;cite&gt; 脱エンタープライズ志向&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.zentense.com/zenweb/es/zentable/jquery-plugin-open-source" title="Zentense: Zentable"&gt;Zentable&lt;/a&gt; - &lt;cite&gt;Zentense&lt;/cite&gt;&lt;br /&gt;
テーブルに、その場編集とソート機能をつける。
&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.ideaxidea.com/archives/2009/06/jquery_edit_in_place.html" title="jQueryでEdit-In-Place（その場編集）を実現するためのプラグイン＆チュートリアルいろいろ - IDEA*IDEA ～ 百式管理人のライフハックブログ"&gt;jQueryでEdit-In-Place（その場編集）を実現するためのプラグイン＆チュートリアルいろいろ&lt;/a&gt; - &lt;cite&gt;IDEA*IDEA&lt;/cite&gt;&lt;/div&gt;
&lt;h4&gt;Prototype.js&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://www.millstream.com.au/upload/code/tablekit/" title="TableKit"&gt;TableKit&lt;/a&gt; - &lt;cite&gt;TableKit&lt;/cite&gt;&lt;br /&gt;
テーブルに、その場編集とソート機能をつける。編集エリアをテキストフォームだけでなく、セレクトボックスも可能。
&lt;/div&gt;

&lt;h4&gt;mootool.js&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://www.skuare.net/test/mooEditInPlace.html" title="高機能な文字書き換えjavascript「class.editInPlace.js」"&gt;高機能な文字書き換えjavascript「class.editInPlace.js」&lt;/a&gt; - &lt;cite&gt;skuare.net&lt;/cite&gt;&lt;/div&gt;
&lt;h4&gt;その他&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://www.ideaxidea.com/archives/2008/07/post_590.html" title="たった一行でどんなサイトでも編集可能にする小技 - IDEA*IDEA ～ 百式管理人のライフハックブログ"&gt;たった一行でどんなサイトでも編集可能にする小技&lt;/a&gt; - &lt;cite&gt;IDEA*IDEA&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.popxpop.com/archives/2007/01/javascript.html" title="ブラウザ上で画像やテキストを自由に編集する方法 - POP*POP ～ 世界のニュースをクオリティ重視で"&gt;ブラウザ上で画像やテキストを自由に編集する方法&lt;/a&gt; - &lt;cite&gt;POP*POP&lt;/cite&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-611243154062721135?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/611243154062721135/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=611243154062721135' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/611243154062721135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/611243154062721135'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/06/javascriptedit-in-placeinplaceeditjquer.html' title='【Javascript】Edit In PlaceとかInPlaceEditとか【jQuery】'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-8588267553960719662</id><published>2010-05-12T10:58:00.002+09:00</published><updated>2010-05-12T12:08:08.061+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>【Python】XREAにVirtual-PythonでPDFminerをインストールしてUnicodeの変換に失敗した</title><content type='html'>&lt;h4&gt;virtual-python.pyのインストール&lt;/h4&gt;

&lt;pre&gt;
$ &lt;code&gt;wget http://peak.telecommunity.com/dist/virtual-python.py&lt;/code&gt;
$ &lt;code&gt;python virtual-python.py&lt;/code&gt;
$ &lt;code&gt;wget http://peak.telecommunity.com/dist/ez_setup.py  /virtual/[ユーザ名]/bin/python ez_setup.py&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;エンコーディングの設定&lt;/h4&gt;
&lt;p&gt;「lib/python2.4/site-packages」に「sitecustomize.py」を作成してPythonのデフォルトエンコーディングをUTF-8にする。&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;
$ &lt;code&gt;cd ~/lib/python2.4/site-packages&lt;/code&gt;
$ &lt;code&gt;vi sitecustomize.py&lt;/code&gt;
&lt;/pre&gt;
&lt;pre&gt;/* lib/python2.4/site-packages/sitecustomize.py */
  &lt;code&gt;import sys&lt;/code&gt;
  &lt;code&gt;sys.setdefaultencoding('utf-8')&lt;/code&gt;
&lt;code&gt;:wq!&lt;/code&gt; // 保存して終了
&lt;/pre&gt;
&lt;p&gt;権限の変更。&lt;/p&gt;
&lt;pre&gt;  $ &lt;code&gt;chmod 755 sitecustomize.py&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;環境変数の設定&lt;/h4&gt;
&lt;pre&gt;  $ &lt;code&gt;vi .bashrc&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;/* .bashrc */
  &lt;code&gt;export PYTHONPATH=~/usr/lib/python2.4/site-packages&lt;/code&gt;
  &lt;code&gt;export PATH=&amp;quot;~/usr/bin:${PATH}&amp;quot;&lt;/code&gt;
&lt;code&gt;:wq!&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;PDFminerのインストール&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://www.unixuser.org/~euske/python/pdfminer/index.html" title="PDFMiner"&gt;&lt;cite&gt;PDFMiner&lt;/cite&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;
ダウンロードして（pdfminer-20100424.tar.gz）解凍。（任意でディレクトリ名を「pdfminer」に変更。）&lt;br /&gt;
ディレクトリ内にある全ての「*.py」ファイルの一行目、Pythonパスをローカルに変更。
&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;#!/usr/bin/python&lt;/code&gt;
&lt;code&gt;#!/usr/bin/env python&lt;/code&gt;
↓変更
&lt;code&gt;#!/virtual/[ユーザ名]/bin/python&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;アップロード。&lt;br /&gt;
インストール。&lt;/p&gt;
&lt;pre&gt;
$ &lt;code&gt;cd public_html/pdfminer/&lt;/code&gt;
$ &lt;code&gt;make cmap&lt;/code&gt;
$ &lt;code&gt;python setup.py install&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;virtual-pythonでする必要があると思うので、参照が上手くされてなかったらパス指定。&lt;/p&gt;
&lt;pre&gt;$ &lt;code&gt;/virtual/[ユーザ名]/bin/python setup.py install&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;これで日本語が使われてない「sample/」ディレクトリ内のPDFからテキスト抽出は成功。&lt;/p&gt;
&lt;p&gt;日本語のPDFを処理しようとするとエラーになる。&lt;/p&gt;
&lt;pre&gt;/* エラー */
&lt;samp&gt;Traceback (most recent call last):
  File "/virtual/[ユーザ名]/bin/pdf2txt.py", line 94, in ?
    if __name__ == '__main__': sys.exit(main(sys.argv))
  File "/virtual/[ユーザ名]/bin/pdf2txt.py", line 88, in main
    process_pdf(rsrcmgr, device, fp, pagenos, maxpages=maxpages, password=password)
  File "/virtual/[ユーザ名]/lib/python2.4/site-packages/pdfminer/pdfinterp.py", line 822, in process_pdf
    interpreter.process_page(page)
  File "/virtual/[ユーザ名]/lib/python2.4/site-packages/pdfminer/pdfinterp.py", line 756, in process_page
    self.render_contents(page.resources, page.contents, ctm=ctm)
  File "/virtual/[ユーザ名]/lib/python2.4/site-packages/pdfminer/pdfinterp.py", line 767, in render_contents
    self.init_resources(resources)
  File "/virtual/[ユーザ名]/lib/python2.4/site-packages/pdfminer/pdfinterp.py", line 338, in init_resources
    self.fontmap[fontid] = self.rsrcmgr.get_font(objid, spec)
  File "/virtual/[ユーザ名]/lib/python2.4/site-packages/pdfminer/pdfinterp.py", line 192, in get_font
    font = self.get_font(None, subspec)
  File "/virtual/[ユーザ名]/lib/python2.4/site-packages/pdfminer/pdfinterp.py", line 183, in get_font
    font = PDFCIDFont(self, spec)
  File "/virtual/[ユーザ名]/lib/python2.4/site-packages/pdfminer/pdffont.py", line 521, in __init__
    self.unicode_map = CMapDB.get_unicode_map(self.cidcoding, self.cmap.is_vertical())
  File "/virtual/[ユーザ名]/lib/python2.4/site-packages/pdfminer/cmapdb.py", line 237, in get_unicode_map
    module = __import__(modname, fromlist=['pdfminer.cmap'])
TypeError: __import__() takes no keyword arguments
&lt;/samp&gt;&lt;/pre&gt;
&lt;p&gt;cmapが上手く使えてないのか、参考できるところもないので別のライブラリを試すことにする。&lt;/p&gt;
&lt;p&gt;Pythonファイルのパスを変更しないでもインストールは出来た気がする。&lt;br /&gt;
その場合「/public_html/pdfminer/build/scripts-2.4/pdf2txt.py」のパスは変更が必要だったのと「&lt;code&gt;make cmap&lt;/code&gt;」が失敗した気がする。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-8588267553960719662?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/8588267553960719662/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=8588267553960719662' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/8588267553960719662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/8588267553960719662'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/05/pythonxreavirtual-pythonpdfminerunicode.html' title='【Python】XREAにVirtual-PythonでPDFminerをインストールしてUnicodeの変換に失敗した'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-3847701660226644044</id><published>2010-05-07T12:57:00.002+09:00</published><updated>2010-05-07T13:15:59.509+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='その他'/><title type='text'>XREAのシェルをrbashからbashに変更する</title><content type='html'>&lt;p&gt;
XREAレンタルサーバで、SSH接続するとシェルは制限付きのrbashになります。&lt;br /&gt;
「&lt;code&gt;ls&lt;/code&gt;」も「&lt;code&gt;cd&lt;/code&gt;」も使えません。
&lt;/p&gt;
&lt;pre&gt;/* rbashの動作 */
$ &lt;code&gt;ls&lt;/code&gt;
&lt;samp&gt;-rbash: /bin/ls: restricted: cannot specify `/' in command names&lt;/samp&gt;
$ &lt;code&gt;cd&lt;/code&gt;
&lt;samp&gt;-rbash: cd: restricted&lt;/samp&gt;
&lt;/pre&gt;
&lt;p&gt;これでは困りますので、シェルを「&lt;code&gt;chsh&lt;/code&gt;」でbashに変更します。&lt;/p&gt;

&lt;pre&gt;/* シェルをbashに変更する */
$ &lt;code&gt;chsh&lt;/code&gt;
&lt;samp&gt;Changing login shell for pdf2.&lt;/samp&gt;
&lt;samp&gt;Password:&lt;samp&gt;
// パスワードを入力（画面には何も反映されないので注意）
&lt;samp&gt;Enter the new value, or press return for the default.&lt;/samp&gt;
&lt;samp&gt;        Login Shell [/bin/rbash]: &lt;samp&gt;/bin/bash
// bashに変更
&lt;samp&gt;Shell changed.&lt;/samp&gt;
// 完了
&lt;/pre&gt;
&lt;p&gt;XREAを使ってきて初めて遭遇したトラブルです。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-3847701660226644044?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/3847701660226644044/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=3847701660226644044' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/3847701660226644044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/3847701660226644044'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/05/xrearbashbash.html' title='XREAのシェルをrbashからbashに変更する'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-422214765834087683</id><published>2010-05-06T11:43:00.005+09:00</published><updated>2010-05-06T16:25:12.006+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='プログラミング'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>【PHP】PDFからテキストを抜き出すメモ【Python】</title><content type='html'>&lt;p&gt;
何でもPDFで送ってくる人は止めて欲しいです。&lt;br /&gt;
Office系のファイルで送るのも控えて欲しいものです。テキストがコピーできるだけ後者の方がほんの少しだけマシでしょうか。
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.foolabs.com/xpdf/" title="Xpdf"&gt;&lt;cite&gt;Xpdf&lt;/cite&gt;&lt;/a&gt;に含まれる&lt;em&gt;pdftotext&lt;/em&gt;というものを使う方法。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://mylinux.blog42.fc2.com/blog-entry-149.html" title="個人的Linux: pdftotext:pdfファイルから文字抽出"&gt;pdftotext:pdfファイルから文字抽出&lt;/a&gt; - &lt;cite&gt;個人的Linux&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://www.unixuser.org/~euske/python/pdfminer/index.html" title="PDFMiner"&gt;&lt;cite&gt;PDFMiner&lt;/cite&gt;&lt;/a&gt;というPythonライブラリもあります。&lt;q cite="http://www.unixuser.org/~euske/python/index-j.html" title="Python おもちゃばこ (敬称)"&gt;純Pythonで書かれた PDFパーザとインタプリタ。PDFの解析とテキスト抽出に。 ほぼ PDF-1.7準拠。日本語縦書きと暗号化に対応。&lt;/q&gt;&lt;/p&gt;
&lt;div&gt;&lt;a href="http://boxheadroom.com/2009/03/22/python_pdfminer" title="BoxHeadRoom » Blog Archive » 「PDFMiner」を使ってテキストを抽出"&gt;「PDFMiner」を使ってテキストを抽出&lt;/a&gt; - &lt;cite&gt;BoxHeadRoom &lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;Pythonには&lt;a href="http://pybrary.net/pyPdf/" title="pyPdf"&gt;&lt;cite&gt;pyPdf&lt;/cite&gt;&lt;/a&gt;というライブラリもあります。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://code.activestate.com/recipes/511465/" title="Pure Python PDF to text converter « Python recipes « ActiveState Code"&gt;Pure Python PDF to text converter&lt;/a&gt; - &lt;cite&gt;ActiveState Code&lt;/cite&gt;&lt;/div&gt;
&lt;ins datetime="2010-05-06T16:22:00+09:00" style="text-decoration:none;"&gt;
&lt;div&gt;&lt;strong&gt;追記:2010/05/09&lt;/strong&gt;&lt;/div&gt;
&lt;p&gt;PHPではライブラリ見つけられませんでした。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/kusakari/20080201/1201854258" title="php で pdf 内のテキストを抽出するモジュールを作った - 夜の Discovery"&gt;php で pdf 内のテキストを抽出するモジュールを作った&lt;/a&gt; - &lt;cite&gt;夜の Discovery&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;以下リンクは&lt;em&gt;pdftotext&lt;/em&gt;を「&lt;code&gt;exec&lt;/code&gt;」や「&lt;code&gt;system&lt;/code&gt;」で実行しています。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://aqua.sun.ddns.vc/blog/index.php?entry-id=4b70fe4109a6a&amp;amp;view_c=Blog::Entry.html" title="PHPで PDFファイルをテキストファイルに変換 --- AquaSunネットサービス ブログ"&gt;PHPで PDFファイルをテキストファイルに変換&lt;/a&gt; - &lt;cite&gt;AquaSunネットサービス ブログ&lt;/cite&gt;&lt;/div&gt;
&lt;/ins&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-422214765834087683?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/422214765834087683/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=422214765834087683' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/422214765834087683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/422214765834087683'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/05/pdfpython.html' title='【PHP】PDFからテキストを抜き出すメモ【Python】'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-6833199927265815278</id><published>2010-05-06T11:30:00.002+09:00</published><updated>2010-05-06T11:43:06.769+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>【ImageMagick】PDFを画像ファイルに変換するメモ</title><content type='html'>&lt;p&gt;
PDFファイルをJPGやPNGなど画像ファイルにするには「&lt;code&gt;convert&lt;/code&gt;」コマンドで出来る。&lt;br /&gt;
&lt;em&gt;Adobe&lt;/em&gt;が配布している&lt;em&gt;Ghostscript&lt;/em&gt;が必要。印刷などで使用するものらしい。
&lt;/p&gt;
&lt;div&gt;&lt;a href="http://nekokamuri.exblog.jp/9433695/" title="わすれないうちにメモしよう : ghostscriptのインストール"&gt;ghostscriptのインストール&lt;/a&gt; - &lt;cite&gt;わすれないうちにメモしよう&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/khiker/20100121/ghostscript" title="ghostscript 8.70 のビルドとインストール - とりあえず暇だったし何となく始めたブログ"&gt;ghostscript 8.70 のビルドとインストール&lt;/a&gt; - &lt;cite&gt;とりあえず暇だったし何となく始めたブログ&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Ghostscrip&lt;/em&gt;を利用する「&lt;code&gt;gs&lt;/code&gt;」コマンドを参照できない場合がある。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://shin2.mogtan.net/?p=412" title="【ImageMagick】PDF→JPGへの変換エラー | 週刊しんチャンネル"&gt;PDF→JPGへの変換エラー&lt;/a&gt; - &lt;cite&gt;週刊しんチャンネル&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;&lt;em&gt;Imagick&lt;/em&gt;からも&lt;em&gt;Ghostscrip&lt;/em&gt;があれば利用できる。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://code.nanigac.com/source/view/808" title="codeなにがし::【PHP】PECL::Imagick メソッドメモ(サンプル付き)"&gt;PECL::Imagick メソッドメモ(サンプル付き)&lt;/a&gt; - &lt;cite&gt;codeなにがし&lt;/cite&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-6833199927265815278?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/6833199927265815278/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=6833199927265815278' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/6833199927265815278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/6833199927265815278'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/05/imagemagickpdf.html' title='【ImageMagick】PDFを画像ファイルに変換するメモ'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-3823946252473457341</id><published>2010-04-23T10:36:00.003+09:00</published><updated>2010-04-23T11:32:44.359+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>【Imagick】Fisheye(魚眼レンズ)エフェクト</title><content type='html'>&lt;p&gt;失敗の記録。&lt;br /&gt;
・コマンド実行、「&lt;samp&gt;convert: unable to parse expression `@fisheye.fx'&lt;/samp&gt;」と出る。&lt;br /&gt;
・数式をそのまま「"(ダブルクォーテーション)」で括って実行。&lt;br /&gt;
・エラー「&lt;samp&gt;convert: unable to parse expression `kk&lt;/samp&gt;」。&lt;br /&gt;
・セミコロンが不味いという推測の基に式を代入して一つにする。&lt;br /&gt;
・エラー「&lt;samp&gt;convert: unable to parse expression `hypot&lt;/samp&gt;」。&lt;br /&gt;
・「&lt;code&gt;hypot(x,y)&lt;/code&gt;」を「&lt;code&gt;sqrt(x*x+y*y)&lt;/code&gt;」に置き換える。&lt;br /&gt;
・画像生成、失敗。&lt;br /&gt;
のようなことを各式について行ってはコレジャナイ・エフェクトがかかった画像が出来上がったので手詰まり。&lt;br /&gt;
成功した方教えてくださると助かります。
&lt;/p&gt;
&lt;h4&gt;参考&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://blog.suz-lab.com/2010/01/imagemagickfisheye.html" title="suz-lab - blog: ImageMagickでFisheyeエフェクト"&gt;ImageMagickでFisheyeエフェクト&lt;/a&gt; - &lt;cite&gt;suz-lab - blog&lt;/cite&gt;&lt;/div&gt;
&lt;pre&gt;&lt;code title="suz-lab - blog: ImageMagickでFisheyeエフェクト"&gt;convert -fx @fisheye.fx input.jpg output.jpg&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;fisheye.fx
&lt;code title="suz-lab - blog: ImageMagickでFisheyeエフェクト"&gt;kk=w*0.5;ll=h*0.5;dx=(i-kk);dy=(j-ll);aa=atan2(dy,dx);rr=hypot(dy,dx);rs=rr*rr/hypot(kk,ll);px=kk+rs*cos(aa);py=ll+rs*sin(aa);p{px,py}&lt;/code&gt;&lt;/pre&gt;

&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/ku-ma-me/20071102/p1" title="fisheye view の計算式とプログラム - まめめも"&gt;fisheye view の計算式とプログラム&lt;/a&gt; - &lt;cite&gt;まめめも&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/tokuhirom/20081104/1225814545" title="Imager で魚眼っぽいフィルタつくった - TokuLog 改メ Perlを極めて起業する日記"&gt;Imager で魚眼っぽいフィルタつくった&lt;/a&gt; - &lt;cite&gt;TokuLog 改メ Perlを極めて起業する日記&lt;/cite&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-3823946252473457341?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/3823946252473457341/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=3823946252473457341' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/3823946252473457341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/3823946252473457341'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/04/imagickfisheye.html' title='【Imagick】Fisheye(魚眼レンズ)エフェクト'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-8609993616155748348</id><published>2010-04-14T12:15:00.007+09:00</published><updated>2010-04-14T14:23:03.538+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>【PHP】PHPmailerのメールアドレスバリデータ</title><content type='html'>&lt;p&gt;
簡単にメール送信が出来るライブラリ&lt;em&gt;PHPmailer&lt;/em&gt;。&lt;br /&gt;
アドレスのバリデータ関数は「&lt;code&gt;filter_var()&lt;/code&gt;」を使用するか、独自の正規表現を「&lt;code&gt;preg_match()&lt;/code&gt;」でチェックしている。
&lt;/p&gt;
&lt;pre&gt;/* class.phpmailer.php L.523～ */
&lt;code&gt;public static function ValidateAddress($address) {
    if (function_exists('filter_var')) { //Introduced in PHP 5.2
      if(&lt;strong&gt;filter_var($address, FILTER_VALIDATE_EMAIL)&lt;/strong&gt; === FALSE) {
        return false;
      } else {
        return true;
      }
    } else {
      return &lt;strong&gt;preg_match(&lt;/strong&gt;'/^(?:[\w\!\#\$\%\&amp;\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&amp;\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $address&lt;strong&gt;)&lt;/strong&gt;;
    }
  }&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
「&lt;code&gt;filter_var()&lt;/code&gt;」はPHP5.2.0以降に導入された、もとは&lt;em&gt;PECL&lt;/em&gt;にあった関数。&lt;br /&gt;
定義してあるフィルターを指定して、値をチェックする。
&lt;/p&gt;
&lt;div&gt;&lt;a href="http://php.net/manual/ja/function.filter-var.php" title="PHP: filter_var - Manual"&gt;filter_var&lt;/a&gt; - &lt;cite&gt;PHP マニュアル&lt;/cite&gt;&lt;br /&gt;
&lt;a href="http://php.morva.net/manual/ja/filter.filters.validate.php" title="PHP: 検証フィルタ - Manual"&gt;検証フィルタ&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;&lt;em&gt;PHPmailer&lt;/em&gt;のバリデータはPHP 5.2以降で関数があれば「&lt;code&gt;filter_var()&lt;/code&gt;」を使うようになっている。&lt;br /&gt;
これの「&lt;var&gt;FILTER_VALIDATE_EMAIL&lt;/var&gt;」オプションは次のような正規表現でチェックされている&lt;/p&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/moriyoshi/20090319/1237486066" title="filter_var()関数の真価を見極める - muddy brown thang"&gt;filter_var()関数の真価を見極める&lt;/a&gt; - &lt;cite&gt;muddy brown thang&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://firegoby.theta.ne.jp/archives/607" title="firegoby » PHPのfilter_var()で入力チェック"&gt;PHPのfilter_var()で入力チェック&lt;/a&gt; - &lt;cite&gt;firegoby&lt;/cite&gt;&lt;/div&gt;
&lt;pre&gt;/* filter_var() の FILTER_VALIDATE_EMAIL オプションのフィルター */
&lt;code title="filter_var()関数の真価を見極める - muddy brown thang"&gt;
void php_filter_validate_email(PHP_INPUT_FILTER_PARAM_DECL) /* {{{ */
{ /* From http://cvs.php.net/co.php/pear/HTML_QuickForm/QuickForm/Rule/Email.php?r=1.4 */
    const char regexp[] = &amp;quot;/^((\\\&amp;quot;[^\\\&amp;quot;\\f\\n\\r\\t\\b]+\\\&amp;quot;)|([A-Za-z0-9_\\!\\#\\$\\%\\&amp;amp;\\'\\*\\+\\-\\~\\/\\^\\`\\|\\{\\}]+(\\.[A-Za-z0-9_\\!\\#\\$\\%\\&amp;amp;\\'\\*\\+\\-\\~\\/\\^\\`\\|\\{\\}]*)*))@((\\[(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\\])|(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|((([A-Za-z0-9])(([A-Za-z0-9\\-])*([A-Za-z0-9]))?\\.?)+[A-Za-z\\-]*))$/D&amp;quot;;&lt;/code&gt;
…
&lt;/pre&gt;
&lt;p&gt;
コメントを見るに&lt;em&gt;PEAR::HTML_QuickForm&lt;/em&gt;のバリデータを使っている様子。&lt;br /&gt;この正規表現の意味や解説などはリンク先を見て頂くとして、この正規表現は以下のアドレスを通す。&lt;/p&gt;
&lt;pre&gt;/* filter_var() の動作 - フィルタリングされないアドレス */
&lt;code&gt;filter_var(&amp;quot;a@a.b.c-&amp;quot;, FILTER_VALIDATE_EMAIL);
filter_var(&amp;quot;a@123x&amp;quot;, FILTER_VALIDATE_EMAIL);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;そして以下のアドレスを通さない。&lt;/p&gt;
&lt;pre&gt;/* filter_var() の動作 - フィルタリングされるアドレス */
&lt;code&gt;filter_var('docomo.@example.com' FILTER_VALIDATE_EMAIL);
filter_var('ntt...docomo@example.com' FILTER_VALIDATE_EMAIL);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;つまり日本の携帯メールアドレスをチェックするには適さない。
&lt;/p&gt;
&lt;p&gt;PHP 5.2より前のバージョンで「&lt;code&gt;filter_var()&lt;/code&gt;」が無い場合の正規表現によるバリデータも同様に、日本の携帯メールアドレスに存在するものを通さない。&lt;br /&gt;
もし&lt;em&gt;PHPmailer&lt;/em&gt;を使うのであれば、携帯ユーザのアクセスがある場合は「&lt;code&gt;PHPmailer::ValidateAddress()&lt;/code&gt;」を変更する必要があるだろう。
&lt;/p&gt;
&lt;pre&gt;/* class.phpmailer.php  PHPmailer::ValidateAddress() の変更*/
  &lt;code&gt;public static function ValidateAddress($address) {
      return preg_match('/^([a-z0-9_]|\-|\.|\+)+@(([a-z0-9_]|\-)+\.)+[a-z]{2,6}$/i', $address); 
  }&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
有名なメールライブラリ&lt;em&gt;Qdmail&lt;/em&gt;があるが、そちらを使うのも手かもしれない。&lt;br /&gt;
&lt;em&gt;Qdmail&lt;/em&gt;のバリデータは、&lt;a href="http://hal456.net/qdmail/validation" title="メールアドレスのバリデーション - Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte"&gt;デフォルトで「&lt;code&gt;/[^@]+@[^@]+/&lt;/code&gt;」のみのチェックでユーザが定義する&lt;/a&gt;ことになってるし、マルチバイト対応で絵文字も使える。
&lt;/p&gt;
&lt;h4&gt;関連&lt;/h4&gt;
&lt;div&gt;
&lt;p&gt;正規表現チェッカー&lt;/p&gt;
&lt;a href="http://strfriend.com/" title="strfriend"&gt;&lt;cite&gt;strfriend&lt;/cite&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.rubular.com/" title="Rubular: a Ruby regular expression editor and tester"&gt;&lt;cite&gt;Rubular&lt;/cite&gt;&lt;/a&gt;&lt;/div&gt;

&lt;div&gt;&lt;a href="http://saboten009.blogspot.com/2009/02/phpmailerxajax.html" title="さぼてん: メールフォーム - PHPmailer+xajax"&gt;メールフォーム - PHPmailer+xajax&lt;/a&gt; - &lt;cite&gt;さぼてん&lt;/cite&gt;:2009年2月14日記事&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-8609993616155748348?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/8609993616155748348/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=8609993616155748348' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/8609993616155748348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/8609993616155748348'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/04/phpphpmailer.html' title='【PHP】PHPmailerのメールアドレスバリデータ'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-1155784537044062933</id><published>2010-04-03T19:49:00.020+09:00</published><updated>2010-04-07T10:04:24.232+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='オープンソース'/><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><title type='text'>【CMS】サーバインストール型tumblog - Chyrp【オープンソース】</title><content type='html'>&lt;div&gt;
&lt;a href="http://chyrp.net/" title="Chyrp"&gt;&lt;cite&gt;Chyrp&lt;/cite&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;pre&gt;環境
PHP &gt;= 5.1.3
MySQL 4.1+, or SQLite 3+ with PDO
&lt;/pre&gt;
&lt;ins datetime="2010-04-07T09:50:00+09:00" style="text-decoration: none;"&gt;
&lt;div&gt;&lt;strong&gt;追記&lt;/strong&gt;:2010/04/07&lt;/div&gt;
&lt;blockquote cite="http://www.downloadsquad.com/2009/09/14/build-your-own-tumblog-with-chryp/" title="Build your own Tumblog with Chyrp"&gt;Chyrp is available under the GNU General Public Licence (version 3) for your hacking pleasure,
&lt;div style="text-align:right;"&gt;&lt;a href="http://www.downloadsquad.com/2009/09/14/build-your-own-tumblog-with-chryp/" title="Build your own Tumblog with Chyrp"&gt;Build your own Tumblog with Chyrp&lt;/a&gt; - &lt;cite&gt;Download Squad&lt;/cite&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;ライセンスはGPL３のようなので商用も可能のよう。&lt;/p&gt;
&lt;/ins&gt;
&lt;p&gt;以下のリンクの方が分りやすいので参照。&lt;br /&gt;
XREAレンタルサーバにインストールしたので、それ対応の解決策は最後に。&lt;/p&gt;
&lt;div&gt;
&lt;a href="http://az-store.nrym.org/tips/chyrp/" title=""&gt;Chyrp備忘録（バージョン2.0）&lt;/a&gt; - &lt;cite&gt;AZ store&lt;/cite&gt;&lt;/div&gt;
&lt;h4&gt;ダウンロード&lt;/h4&gt;
&lt;div&gt;
&lt;a href="http://chyrp.net/download/"  title="Download &amp;mdash; Chyrp"&gt;Download&lt;/a&gt; - &lt;cite&gt;Chyrp&lt;/cite&gt;
&lt;/div&gt;
&lt;p&gt;現在、ver.2.0が最新。&lt;/p&gt;
&lt;h4&gt;アップロード&lt;/h4&gt;
&lt;p&gt;解凍したディレクトリをサーバにアップロード。&lt;br /&gt;
(「public_html/」直下など)&lt;br /&gt;
同じディレクトリに「uploads/」ディレクトリを作成。
&lt;/p&gt;

&lt;h4&gt;インストール&lt;/h4&gt;
&lt;p&gt;アップロードしたディレクトリの「install.php」にアクセスする。&lt;br /&gt;
(「http://example.com/install.php」など)&lt;/p&gt;
&lt;h5&gt;「.htaccess」の作成&lt;/h5&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YFplKtVt_v4/S7dqX6e53AI/AAAAAAAAAdQ/gXcFcEFSQvo/s1600/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+1.png"&gt;&lt;img style="width: 320px; height: 156px;" src="http://2.bp.blogspot.com/_YFplKtVt_v4/S7dqX6e53AI/AAAAAAAAAdQ/gXcFcEFSQvo/s320/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5455946432651058178" /&gt;&lt;/a&gt;
&lt;p&gt;
表示された内容を「.htaccess」として作成し、他のファイルと同じディレクトリにアップロード。
&lt;/p&gt;
&lt;h5&gt;属性の変更&lt;/h5&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YFplKtVt_v4/S7drNyIVbaI/AAAAAAAAAdY/h8s0NZr3eJ4/s1600/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+4.png"&gt;&lt;img style="width: 320px; height: 157px;" src="http://2.bp.blogspot.com/_YFplKtVt_v4/S7drNyIVbaI/AAAAAAAAAdY/h8s0NZr3eJ4/s320/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+4.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5455947358121848226" /&gt;&lt;/a&gt;
&lt;p&gt;
以下のディレクトリの属性を「0777」に変更する。
&lt;/p&gt;
&lt;pre&gt;
includes/
includes/caches
uploads/
&lt;/pre&gt;
&lt;h5&gt;データベースの設定 - 『Database Setup』&lt;/h5&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_YFplKtVt_v4/S7dr7I5p8PI/AAAAAAAAAdg/uUajmnThKls/s1600/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+5.png"&gt;&lt;img style="width: 320px; height: 158px;" src="http://3.bp.blogspot.com/_YFplKtVt_v4/S7dr7I5p8PI/AAAAAAAAAdg/uUajmnThKls/s320/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+5.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5455948137328406770" /&gt;&lt;/a&gt;
&lt;p&gt;
データベース接続の情報を入力。
&lt;/P&gt;
&lt;h5&gt;サイトの設定 - 『Website Setup』&lt;/h5&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_YFplKtVt_v4/S7dss4AUyoI/AAAAAAAAAdo/tHiPUmyeWt8/s1600/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+6.png"&gt;&lt;img style="width: 320px; height: 88px;" src="http://1.bp.blogspot.com/_YFplKtVt_v4/S7dss4AUyoI/AAAAAAAAAdo/tHiPUmyeWt8/s320/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+6.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5455948991786437250" /&gt;&lt;/a&gt;
&lt;p&gt;サイトのタイトル、説明、ロケーションを入力。&lt;/p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_YFplKtVt_v4/S7ds3dUNngI/AAAAAAAAAdw/68SHiNIpUJ4/s1600/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+7.png"&gt;&lt;img style="width: 320px; height: 158px;" src="http://4.bp.blogspot.com/_YFplKtVt_v4/S7ds3dUNngI/AAAAAAAAAdw/68SHiNIpUJ4/s320/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+7.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5455949173600656898" /&gt;&lt;/a&gt;

&lt;h5&gt;サイト管理者の設定 - 『Admin Account』&lt;/h5&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_YFplKtVt_v4/S7dtNqtfgsI/AAAAAAAAAeA/4s_CnQzHoxA/s1600/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+8.png"&gt;&lt;img style="width: 320px; height: 110px;" src="http://3.bp.blogspot.com/_YFplKtVt_v4/S7dtNqtfgsI/AAAAAAAAAeA/4s_CnQzHoxA/s320/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+8.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5455949555153470146" /&gt;&lt;/a&gt;
&lt;p&gt;サイト管理者のアカウント、パスワード、メールアドレスを入力する。&lt;/p&gt;
&lt;h5&gt;完了&lt;/h5&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_YFplKtVt_v4/S7dtCqg9YtI/AAAAAAAAAd4/NhU281e3ZWs/s1600/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+9.png"&gt;&lt;img style="width: 320px; height: 138px;" src="http://1.bp.blogspot.com/_YFplKtVt_v4/S7dtCqg9YtI/AAAAAAAAAd4/NhU281e3ZWs/s320/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+9.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5455949366122341074" /&gt;&lt;/a&gt;
&lt;p&gt;インストールの完了。「install.php」を削除。&lt;br /&gt;
画像は「includes/caches/」に権限を与えてない時の警告。&lt;/p&gt;
&lt;p&gt;あとは管理画面にログインして、テーマやモジュールをインストールしたり「&lt;cite&gt;tumblr&lt;/cite&gt;」と同様の投稿フォーマットにする「feather」を有効にしたりする。&lt;br /&gt;
いくつかの「module」と「feather」は一緒にアップロードされている。&lt;/p&gt;
&lt;h4&gt;XREAレンタルサーバ用の対策&lt;/h4&gt;
&lt;h5&gt;Zlib(gzip)の無効化&lt;/h5&gt;
&lt;p&gt;インストールしてサイトを開いたら、&lt;q&gt;&lt;samp&gt;&amp;lt;&lt;/samp&gt;&lt;/q&gt;だけが表示され真っ白な状態になった。&lt;br /&gt;
以下の部分をコメントアウトして対応。
&lt;/p&gt;
&lt;div&gt;&lt;strong&gt;「includes/common.php」&lt;/strong&gt;&lt;/div&gt;
&lt;pre&gt;/* includes/common.php */
&lt;code&gt;/*
    if (!AJAX and
        extension_loaded("zlib") and
        !ini_get("zlib.output_compression") and
        isset($_SERVER['HTTP_ACCEPT_ENCODING']) and
        substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], "gzip")) {
        ob_start("ob_gzhandler");
        header("Content-Encoding: gzip");
    } else
*/
        ob_start();
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
ChyrpではZlib(gzip)対応していれば、出力を圧縮して処理を軽くする様になっている。&lt;br /&gt;
XREAではZlibが存在するので&lt;code&gt;if&lt;/code&gt;文に従い「&lt;code&gt;ob_start("ob_gzhandler")&lt;/code&gt;」が処理されるが、使えないようになっているようで、エラーになり表示されないと予想。&lt;/p&gt;
&lt;div&gt;&lt;strong&gt;「includes/lib/gz.php」&lt;/strong&gt;&lt;/div&gt;
&lt;p&gt;
次に、jsファイルの読込みをする「includes/lib/gz.php」も「&lt;code&gt;extension_loaded("zlib")&lt;/code&gt;」の&lt;code&gt;if&lt;/code&gt;文をコメントアウトする。&lt;br /&gt;
jsファイルが読み込めず、管理画面で『Modules』『Feathers』『Themes』のインストールが出来ない。&lt;br /&gt;
(無効のプラグイン一覧から有効にドラッグ＆ドロップする)
&lt;/p&gt;
&lt;pre&gt;/* includes/lib/gz.php L.9〜 */
&lt;code&gt;/*
    if (extension_loaded('zlib')) {
        ob_start("ob_gzhandler");
        header("Content-Encoding: gzip");
    } else
*/
        ob_start();&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Zlibが有効なら、jsファイルを圧縮して送る処理のよう。&lt;/p&gt;
&lt;ins datetime="2010-04-05T23:28:00+09:00" style="text-decoration:none;"&gt;
&lt;div&gt;&lt;strong&gt;追記:2010/04/05&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;「includes/helper.php」&lt;/strong&gt;&lt;/div&gt;
&lt;pre&gt;/* includes/helper.php L.4〜 */
    # Since the header might already be set to gzip, start output buffering again.
&lt;code&gt;/*
    if (extension_loaded("zlib") and !ini_get("zlib.output_compression") and
        isset($_SERVER['HTTP_ACCEPT_ENCODING']) and
        substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], "gzip")) {
      ob_start("ob_gzhandler");
      header("Content-Encoding: gzip");
    } else
*/
      ob_start();&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;改めて全ディレクトリ検索して「&lt;code&gt;ob_start("ob_gzhandler")&lt;/code&gt;」をコメントアウト。&lt;br /&gt;
ログイン・ログアウト時のページ遷移が上手くいかない。
&lt;/p&gt;
&lt;/ins&gt;
&lt;h5&gt;セーフティーモード&lt;/h5&gt;
&lt;p&gt;サイトの設定ファイル「includes/config.yaml.php」が、インストール後に作成される。所有者がApacheの為、セーフティーモードでは編集できないので、管理画面からの設定変更でエラーになる。&lt;br /&gt;
なので、「.htaccess」にCGI版の設定をするか、「config.yaml.php」をダウンロードして削除し、アップロードし直せば良い。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-1155784537044062933?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/1155784537044062933/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=1155784537044062933' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/1155784537044062933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/1155784537044062933'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/04/cmstumblog-chyrp.html' title='【CMS】サーバインストール型tumblog - Chyrp【オープンソース】'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_YFplKtVt_v4/S7dqX6e53AI/AAAAAAAAAdQ/gXcFcEFSQvo/s72-c/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-1765634398841851005</id><published>2010-04-02T15:06:00.013+09:00</published><updated>2010-04-02T17:39:10.849+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='オープンソース'/><title type='text'>オープンソースのショッピングカートシステム OpenCart Ver1.4.0　日本語版をインストールしてみる</title><content type='html'>&lt;p&gt;以前、チェックだけしてが、日本語版リリースというお知らせが届いたので試してみる。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://www.opencart.jp/" title="OpenCart日本ユーザー会"&gt;&lt;cite&gt;OpenCart日本ユーザー会&lt;/cite&gt;&lt;/a&gt;&lt;/div&gt;
&lt;pre&gt;
動作環境
   ＭｙＳＱＬ5.0以上
   ＰＨＰ5.0以上
   Apache ウェブサーバー
   共用SSL非対応 
&lt;/pre&gt;
&lt;div&gt;&lt;a href="http://www.opencart.jp/opencart142/" title="Your Store"&gt;デモ&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;&lt;q&gt;S安くなってるので専用SSL買いましょう&lt;/q&gt;てことのよう。EC-CUBEもコミュニティで取り組んで実用には無理だということらしいし。&lt;br /&gt;
サーバはXREAレンタルサーバ。
&lt;/p&gt;

&lt;h4&gt;ダウンロード&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://sourceforge.jp/projects/opencart-jp/releases/" title="ダウンロード - OpenCart日本語版 - SourceForge.JP"&gt;OpenCart1.4.2日本語版beta&lt;/a&gt; - &lt;cite&gt;SourceForge.JP&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;
現在、公開されてる「opencart_v1_4_2jp_7.zip」をダウンロード。&lt;/p&gt;

&lt;h4&gt;アップロード&lt;/h4&gt;
&lt;p&gt;解凍したディレクトリ内の「upload/」の中をサーバにアップロードする。&lt;br /&gt;
(「public_html/」以下に)&lt;/p&gt;
&lt;h4&gt;インストール&lt;/h4&gt;
&lt;p&gt;アップロードしたURLにアクセスしてインストールを開始する。&lt;br /&gt;(「http://example.com/」など)&lt;/p&gt;
&lt;h5&gt;STEP 1&lt;/h5&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_YFplKtVt_v4/S7Wj9uC2irI/AAAAAAAAAcY/a7-B845VwPQ/s1600/OpenCart1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px 10px;width: 320px; height: 214px;" src="http://4.bp.blogspot.com/_YFplKtVt_v4/S7Wj9uC2irI/AAAAAAAAAcY/a7-B845VwPQ/s320/OpenCart1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5455446804356565682" /&gt;&lt;/a&gt;
&lt;p&gt;ライセンスに同意して次へ進む。&lt;/p&gt;
&lt;h5&gt;STEP 2&lt;/h5&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_YFplKtVt_v4/S7Wk4lTLLjI/AAAAAAAAAcg/i0NT12ksnuo/s1600/OpenCart2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px 10px;width: 320px; height: 214px;" src="http://1.bp.blogspot.com/_YFplKtVt_v4/S7Wk4lTLLjI/AAAAAAAAAcg/i0NT12ksnuo/s320/OpenCart2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5455447815621389874" /&gt;&lt;/a&gt;
&lt;p&gt;ファイルとディレクトリの設定をする。&lt;br /&gt;
書き込み権限が必要なもののステータスが表示される。&lt;/p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YFplKtVt_v4/S7WliQPBlfI/AAAAAAAAAco/jMmdlMNAPOQ/s1600/OpenCart21.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px 10px; width: 320px; height: 214px;" src="http://2.bp.blogspot.com/_YFplKtVt_v4/S7WliQPBlfI/AAAAAAAAAco/jMmdlMNAPOQ/s320/OpenCart21.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5455448531521345010" /&gt;&lt;/a&gt;
&lt;p&gt;次のファイルとディレクトリの属性を変更する。「0777」にする。&lt;/p&gt;
&lt;pre&gt;
/virtual/[ユーザ名]/public_html/config.php 
/virtual/[ユーザ名]/public_html/admin/config.php

/virtual/[ユーザ名]/public_html/system/cache/
/virtual/[ユーザ名]/public_html/system/logs/
/virtual/[ユーザ名]/public_html/image/
/virtual/[ユーザ名]/public_html/image/cache/
/virtual/[ユーザ名]/public_html/image/cache/data/
/virtual/[ユーザ名]/public_html/image/data/
/virtual/[ユーザ名]/public_html/download/
&lt;/pre&gt;
&lt;h5&gt;STEP 3&lt;/h5&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_YFplKtVt_v4/S7WnRFC1CHI/AAAAAAAAAcw/uoPdk1n-ljc/s1600/OpenCart3.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px 10px; width: 320px; height: 214px;" src="http://1.bp.blogspot.com/_YFplKtVt_v4/S7WnRFC1CHI/AAAAAAAAAcw/uoPdk1n-ljc/s320/OpenCart3.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5455450435482880114" /&gt;&lt;/a&gt;
&lt;p&gt;データベースの接続情報とサイト管理者のアカウントを設定する。&lt;/p&gt;
&lt;h5&gt;STEP 4&lt;/h5&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_YFplKtVt_v4/S7Wn-GFnDKI/AAAAAAAAAc4/vILybtfjmr0/s1600/OpenCart4.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px 10px;width: 320px; height: 214px;" src="http://3.bp.blogspot.com/_YFplKtVt_v4/S7Wn-GFnDKI/AAAAAAAAAc4/vILybtfjmr0/s320/OpenCart4.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5455451208857095330" /&gt;&lt;/a&gt;
&lt;p&gt;
インストール完了。&lt;br /&gt;
「install/」ディレクトリを削除する。
&lt;/p&gt;
&lt;h5&gt;OpenCartの管理画面&lt;/h5&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YFplKtVt_v4/S7WpWaNtobI/AAAAAAAAAdA/TrTax-KQQXw/s1600/login.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px 10px;width: 320px; height: 155px;" src="http://2.bp.blogspot.com/_YFplKtVt_v4/S7WpWaNtobI/AAAAAAAAAdA/TrTax-KQQXw/s320/login.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5455452726088278450" /&gt;&lt;/a&gt;
&lt;p&gt;ログイン画面。&lt;/p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YFplKtVt_v4/S7Wp70xHdOI/AAAAAAAAAdI/gwEBEwA6YZo/s1600/dashboad.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px 10px;width: 320px; height: 158px;" src="http://2.bp.blogspot.com/_YFplKtVt_v4/S7Wp70xHdOI/AAAAAAAAAdI/gwEBEwA6YZo/s320/dashboad.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5455453368871253218" /&gt;&lt;/a&gt;
&lt;p&gt;管理画面のダッシュボード。&lt;/p&gt;
&lt;p&gt;デモが公開されているので詳しくはそちらを見て頂くということで、雰囲気だけでも。&lt;br /&gt;
メニューは次のよう。
&lt;/p&gt;
&lt;pre&gt;
∟ダッシュボード
∟カタログ
    o カテゴリ登録
    o 商品登録
    o メーカー登録
    o ダウンロード商品登録
    o レビュー管理
    o インフォメーション登録
∟機能拡張
    o 各種モジュールの設定
    o 配送業者設定
    o 支払方法設定
    o 注文合計項目設定
    o 登録済みフィード一覧
    o 登録済みアフェリエイト一覧
∟販売関係処理
    o 顧客注文管理
    o 顧客管理
    o 顧客グループ
    o クーポン
    o メール
∟システム
    o ストアフロント
    o 設定
    o 管理者の編集＆登録
        + 管理者
        + 管理者グループの権限
    o 地域設定
        + 言語の編集＆登録
        + 通貨の編集＆登録
        + 在庫ステータス名登録
        + 注文ステータス名登録
        + 各国特有の編集＆登録
        + 地域範囲の設定の編集＆登録
        + ジオゾーン
        + 課税クラス
        + 長さの単位の編集＆登録
        + 重さの単位の編集＆登録
    o エラーログ
    o バックアップ / 復元
∟レポート
    o 販売状況レポート
    o 閲覧された商品
    o 購入された商品
∟ヘルプ
    o （本家）公式サイトへ
    o （本家）マニュアル
    o （本家）サポートフォーラム
    o （日本）ユーザー会サイトへ
    o （日本）サポートフォーラ
&lt;/pre&gt;

&lt;p&gt;簡単にインストール出来て、デフォルトのデザインもシンプルで見やすく、管理画面も使い易そう。&lt;br /&gt;
実際に運用しないと見えない部分もあるだろうし、リリースされたばかりなので今後期待したいところ。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-1765634398841851005?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/1765634398841851005/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=1765634398841851005' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/1765634398841851005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/1765634398841851005'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/04/opencart-ver140.html' title='オープンソースのショッピングカートシステム OpenCart Ver1.4.0　日本語版をインストールしてみる'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_YFplKtVt_v4/S7Wj9uC2irI/AAAAAAAAAcY/a7-B845VwPQ/s72-c/OpenCart1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-5560912499080489465</id><published>2010-03-31T15:49:00.004+09:00</published><updated>2010-03-31T16:27:26.632+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='オープンソース'/><title type='text'>【EC-CUBE】管理ページテンプレートのカスタム</title><content type='html'>&lt;h4&gt;在庫の「無制限」を全選択する&lt;/h4&gt;
&lt;p&gt;
商品の規格ごとの価格や在庫の変更は、『管理ページ -&amp;gt; 商品マスタ』から商品個別の『規格』から行う。『編集』ではない。&lt;br /&gt;
選択した規格の全項目が表示されて、『登録』にチェック入れたり在庫を設定したり価格を設定する。&lt;br /&gt;
全項目の在庫を無制限にしたい時、『登録』のチェックのように「全選択」「全解除」をJavascriptで行う。
&lt;/p&gt;
&lt;p&gt;
『登録』の「全選択」「全解除」を実行するスクリプト「&lt;code&gt;fnAllCheck()&lt;/code&gt;」「&lt;code&gt;fnAllUnCheck()&lt;/code&gt;」を参考に同じファイルに作った。
&lt;/p&gt;
&lt;pre&gt;/* user_data/packages/default/js/admin.js */
&lt;code&gt;function fnStockUnlimitAllCheck() {
 cnt = 1;
 name = "stock_unlimited:" + cnt;
 while (document.form1[name]) {
  document.form1[name].checked = true;
          document.form1["stock:" + cnt].disabled = true;
  cnt++;
  name = "stock_unlimited:" + cnt;
 }
}
function fnStockUnlimitAllUnCheck() {
 cnt = 1;
 name = "stock_unlimited:" + cnt;
 while (document.form1[name]) {
  document.form1[name].checked = false;
          document.form1["stock:" + cnt].disabled = false;
  cnt++;
  name = "stock_unlimited:" + cnt;
 }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
規格登録のテンプレートに次の様に記述。
&lt;/p&gt;
&lt;pre&gt;/* data/Smarty/templates/default/admin/products/product_class.tpl*/
&lt;code&gt;&amp;lt;a href="&amp;lt;!--{$smarty.const.URL_DIR}--&amp;gt;" onclick="fnStockUnlimitAllCheck(); return false;"&amp;gt;全選択&amp;lt;/a&amp;gt;
&amp;lt;a href="&amp;lt;!--{$smarty.const.URL_DIR}--&amp;gt;" onclick="fnStockUnlimitAllUnCheck(); return false;"&amp;gt;全解除&amp;lt;/a&amp;gt;　
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;「検索結果に戻る」ボタン&lt;/h4&gt;
&lt;p&gt;
商品を検索して、その情報の編集を完了すると『→続けて商品の登録を行う』とリンクが表示される。&lt;br /&gt;
続けて検索結果から商品の編集をしたい場合、不便なので『→検索結果に戻る』リンクを作る。
&lt;/p&gt;
&lt;p&gt;
「data/Smarty/templates/default/admin/products/product_class.tpl」に『検索結果へ戻る』ボタンがあるので利用する。
&lt;/p&gt;
&lt;pre&gt;/* data/Smarty/templates/default/admin/products/product_class.tpl */
&lt;code&gt;&amp;lt;form name="form1" id="form1" method="post" action=""&amp;gt;
&amp;lt;!--{foreach key=key item=item from=$arrSearchHidden}--&amp;gt;
&amp;lt;input type="hidden" name="&amp;lt;!--{$key}--&amp;gt;" value="&amp;lt;!--{$item|escape}--&amp;gt;"&amp;gt;
&amp;lt;!--{/foreach}--&amp;gt;&lt;/code&gt;
 // ～ 略 ～
&lt;code&gt;&amp;lt;input type="button" value="検索結果へ戻る" onclick="fnChangeAction('&amp;lt;!--{$smarty.const.URL_SEARCH_TOP}--&amp;gt;'); fnModeSubmit('search','',''); return false;" &amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
上のhiddenに検索クエリ。&lt;br /&gt;
これらを登録完了のテンプレートに追加。「&lt;code&gt;input&lt;/code&gt;」ボタンを「&lt;code&gt;a&lt;/code&gt;」タグに変更。
&lt;/p&gt;

&lt;pre&gt;/* data/Smarty/templates/default/admin/products/product_class_complete.tpl */
&lt;code&gt;&amp;lt;td height="150" bgcolor="#ffffff" class="fs18n" align="center"&amp;gt;登録が完了いたしました。&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;
&amp;lt;form name="form1" id="form1" method="post" action=""&amp;gt;
&amp;lt;!--{foreach key=key item=item from=$arrSearchHidden}--&amp;gt;
&amp;lt;input type="hidden" name="&amp;lt;!--{$key}--&amp;gt;" value="&amp;lt;!--{$item|escape}--&amp;gt;"&amp;gt;
&amp;lt;!--{/foreach}--&amp;gt;
&amp;lt;a href="&amp;lt;!--{$smarty.const.URL_DIR}--&amp;gt;" onclick="fnChangeAction('&amp;lt;!--{$smarty.const.URL_SEARCH_TOP}--&amp;gt;'); fnModeSubmit('search','',''); return false;" &amp;gt;→検索結果へ戻る&amp;lt;/a&amp;gt;&amp;lt;/form&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;
&amp;lt;a href="./product.php"&amp;gt;→続けて商品の登録を行う&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-5560912499080489465?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/5560912499080489465/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=5560912499080489465' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5560912499080489465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5560912499080489465'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/03/ec-cube.html' title='【EC-CUBE】管理ページテンプレートのカスタム'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-5504777241113409301</id><published>2010-03-30T18:26:00.003+09:00</published><updated>2010-03-30T18:55:19.451+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>【Perl】外部サーバとのファイル入出力</title><content type='html'>&lt;p&gt;
PHPには「&lt;code&gt;file_put_contents()&lt;/code&gt;」と「&lt;code&gt;file_get_contents()&lt;/code&gt;」があるから簡単ですが、Perlでファイルを読み書きする「&lt;code&gt;open()&lt;/code&gt;」が扱えるのはローカルのファイルのみです。&lt;br /&gt;
調べると、「libwww-perl」を使ってアクセスするか「Net::FTP」を使ってファイルのやり取りをするのが簡単に出来ました。
&lt;/p&gt;
&lt;h4&gt;LWP - libwww-perl&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://qz.tsugumi.org/Perl_LWP.html" title="qzのメモ帳 - Perl - LWP"&gt;Perl - LWP&lt;/a&gt; - &lt;cite&gt;qzのメモ帳&lt;/cite&gt;&lt;/div&gt;
&lt;pre&gt;/* 外部サーバからファイルを取得しローカルに保存 */
&lt;code&gt;use LWP::Simple;&lt;/code&gt;
&lt;code&gt;getstore("http://www.example.com/data/sample.csv", "data01.csv");&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
外部ファイルの内容の取得や、GETリクエストを送る「LWP::Simple」や、ヘッダを解析したりPOSTリクエストを遅れる「LWP::UserAgent」が有ります。
&lt;/p&gt;
&lt;h4&gt;Net::FTP&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/perlcodesample/20091115/1246679588" title="Net::FTPでファイルのダウンロード・アップロードを自動化する - サンプルコードによるPerl入門"&gt;Net::FTPでファイルのダウンロード・アップロードを自動化する&lt;/a&gt; - &lt;cite&gt;サンプルコードによるPerl入門&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;
FTP通信をするモジュールです。ホスト名、ユーザ名、パスワードを使い、ファイルのダウンロードやアップロードが可能です。
&lt;/p&gt;
&lt;pre&gt;/* 「Net::FTP」のサンプル */
&lt;code&gt;use Net::FTP;&lt;/code&gt;

# FTPサーバへの接続(ホスト名、又はIPアドレス)
&lt;code&gt;my $ftp = Net::FTP-&gt;new('www.example.com');&lt;/code&gt;

# ユーザ名とパスワードを指定してログイン
&lt;code&gt;$ftp-&gt;login('user01', 'pass0123');&lt;/code&gt;

# getコマンドを使ってファイルをダウンロード
&lt;code&gt;$ftp-&gt;get('public_html/data/sample.csv');&lt;/code&gt;
# putコマンドを使ってファイルをアップロード
&lt;code&gt;$ftp-&gt;put('./data.log', 'public_html/data/data01.log');&lt;/code&gt;

# 接続を終了する
&lt;code&gt;$ftp-&gt;quit;&lt;/code&gt;
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-5504777241113409301?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/5504777241113409301/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=5504777241113409301' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5504777241113409301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5504777241113409301'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/03/perl.html' title='【Perl】外部サーバとのファイル入出力'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-2001405707229735983</id><published>2010-03-25T11:23:00.005+09:00</published><updated>2010-03-31T11:42:33.971+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='オープンソース'/><title type='text'>【EC-CUBE】MySQLのVIEWで商品管理の規格表示を改善する</title><content type='html'>&lt;ins datetime="2010-03-31T11:42:00+09:00" style="text-decoration:none;"&gt;
&lt;p&gt;&lt;strong&gt;追記:2010/03/31&lt;/strong&gt;&lt;br /&gt;
商品管理ページの規格が表示できずタイムアウトしていたのが（サイト自体が接続不可能になることもしばしば）、数秒で表示できるようになったので劇的な変化と言えると思う。&lt;br /&gt;
規格登録してる商品の価格を変更するには「商品マスタ」で商品個々の「規格」から編集するしかない。
&lt;/p&gt;
&lt;/ins&gt;
&lt;div&gt;&lt;a href="http://nayuzak.blog50.fc2.com/blog-entry-37.html" title="EC-CUBE：商品管理で規格の多い商品の表示が遅い - 神宮球場近くで働くSEのブログ"&gt;EC-CUBE：商品管理で規格の多い商品の表示が遅い&lt;/a&gt; - &lt;cite&gt;神宮球場近くで働くSEのブログ&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;「/data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.php」の「&lt;var&gt;vw_cross_class&lt;/var&gt;」と「&lt;var&gt;vw_cross_products_class&lt;/var&gt;」がボトルネックになるようで、ビューを作成して処理を軽くする。&lt;/p&gt;
&lt;pre&gt;/* view_cross_class */
&lt;code title="EC-CUBE：商品管理で規格の多い商品の表示が遅い - 神宮球場近くで働くSEのブログ"&gt;create view view_cross_class as 
  SELECT
      T1.class_id AS class_id1,
      T2.class_id AS class_id2,
      T1.classcategory_id AS classcategory_id1,
      T2.classcategory_id AS classcategory_id2,
      T1.name AS name1,
      T2.name AS name2,
      T1.rank AS rank1,
      T2.rank AS rank2
    FROM dtb_classcategory AS T1, dtb_classcategory AS T2;&lt;/code&gt;&lt;/pre&gt;

&lt;pre&gt;/* view_cross_products_class で利用する view_cross_products_class_sub */&lt;code title="EC-CUBE：商品管理で規格の多い商品の表示が遅い - 神宮球場近くで働くSEのブログ"&gt;
create view view_cross_products_class_sub as
  SELECT
      T1.class_id AS class_id1,
      T2.class_id AS class_id2,
      T1.classcategory_id AS classcategory_id1,
      T2.classcategory_id AS classcategory_id2,
      T1.name AS name1,
      T2.name AS name2,
      T1.rank AS rank1,
      T2.rank AS rank2
    FROM dtb_classcategory AS T1, dtb_classcategory AS T2;&lt;/code&gt;&lt;/pre&gt;

&lt;pre&gt;/* view_cross_products_class */
&lt;code title="EC-CUBE：商品管理で規格の多い商品の表示が遅い - 神宮球場近くで働くSEのブログ"&gt;
create view view_cross_products_class as
  SELECT T1.class_id1, T1.class_id2, T1.classcategory_id1, T1.classcategory_id2, T2.product_id, T1.name1, T1.name2, T2.product_code, T2.stock, T2.price01, T2.price02, T1.rank1, T1.rank2
    FROM view_cross_products_class_sub AS
      T1 LEFT JOIN dtb_products_class AS
        T2 ON T1.classcategory_id1 = T2.classcategory_id1 AND T1.classcategory_id2 = T2.classcategory_id2;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;これらを使って「/data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.php」の「&lt;var&gt;vw_cross_class&lt;/var&gt;」と「&lt;var&gt;vw_cross_products_class&lt;/var&gt;」を修正する。&lt;/p&gt;
&lt;pre&gt;/* 「/data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.php」の修正「vw_cross_class」 */
// 修正前
&lt;code title="EC-CUBE：商品管理で規格の多い商品の表示が遅い - 神宮球場近くで働くSEのブログ"&gt;
&amp;quot;vw_cross_class&amp;quot; =&amp;gt; '(
    SELECT
      T1.class_id AS class_id1,
      T2.class_id AS class_id2,
      T1.classcategory_id AS classcategory_id1,
      T2.classcategory_id AS classcategory_id2,
      T1.name AS name1,
      T2.name AS name2,
      T1.rank AS rank1,
      T2.rank AS rank2
    FROM dtb_classcategory AS T1, dtb_classcategory AS T2
)'&lt;/code&gt;
// 修正後
&lt;code title="EC-CUBE：商品管理で規格の多い商品の表示が遅い - 神宮球場近くで働くSEのブログ"&gt;
&amp;quot;vw_cross_class&amp;quot; =&amp;gt; 'view_cross_class'&lt;/code&gt;
&lt;/pre&gt;

&lt;pre&gt;/* 「/data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.php」の修正「vw_cross_products_class」 */
// 修正前
&lt;code title="EC-CUBE：商品管理で規格の多い商品の表示が遅い - 神宮球場近くで働くSEのブログ"&gt;
&amp;quot;vw_cross_products_class&amp;quot; =&amp;gt;'(
      SELECT T1.class_id1, T1.class_id2, T1.classcategory_id1, T1.classcategory_id2, T2.product_id, T1.name1, T1.name2, T2.product_code, T2.stock, T2.price01, T2.price02, T1.rank1, T1.rank2
        FROM ( 
            SELECT
                  T1.class_id AS class_id1,
                  T2.class_id AS class_id2,
                  T1.classcategory_id AS classcategory_id1,
                  T2.classcategory_id AS classcategory_id2,
                  T1.name AS name1,
                  T2.name AS name2,
                  T1.rank AS rank1,
                  T2.rank AS rank2
             FROM dtb_classcategory AS T1, dtb_classcategory AS T2 
        ) AS
        T1 LEFT JOIN dtb_products_class AS T2 ON
             T1.classcategory_id1 = T2.classcategory_id1
               AND T1.classcategory_id2 = T2.classcategory_id2) '&lt;/code&gt;
// 修正後
&lt;code title="EC-CUBE：商品管理で規格の多い商品の表示が遅い - 神宮球場近くで働くSEのブログ"&gt;
&amp;quot;vw_cross_products_class&amp;quot; =&amp;gt; 'view_cross_products_class'&lt;/code&gt;
&lt;/pre&gt;
&lt;h4&gt;関連&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://saboten009.blogspot.com/2009/04/ec-cubesql.html" title="さぼてん: 【EC-CUBE】商品表示のSQLクエリを改善する"&gt;【EC-CUBE】商品表示のSQLクエリを改善する&lt;/a&gt; - &lt;cite&gt;さぼてん&lt;/cite&gt;[2009/04/03]&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-2001405707229735983?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/2001405707229735983/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=2001405707229735983' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/2001405707229735983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/2001405707229735983'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/03/ec-cubemysqlview.html' title='【EC-CUBE】MySQLのVIEWで商品管理の規格表示を改善する'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-4695259019283621770</id><published>2010-03-23T17:07:00.003+09:00</published><updated>2010-03-23T17:42:15.156+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>【PHP】動的に生成した画像を保存する時に指定したファイル名にする</title><content type='html'>&lt;p&gt;
GDとかImagickとかで画像を動的に作って表示させる時、PHPファイルが、例えば「image.php」だとユーザが右クリックして画像を保存しようとするとファイル名もそのままで困る。リネームすれば大丈夫だろうけど優しくない。&lt;br /&gt;
「&lt;code&gt;header()&lt;/code&gt;」で以下の様に指定できる。
&lt;/p&gt;
&lt;pre&gt;/* PHPファイルで画像データを出力する時のヘッダ */
&lt;code title="phpで、動的に画像を生成した場合（ファイルとして保存せずに生成・表示）、 その画像をブラウザで保存しようとすると、 本来の形式ではない形式で保存されてしまいます。 .. - 人力検索はてな"&gt;
header(&amp;quot;Content-Type: image/jpeg&amp;quot;);
header(&amp;quot;Content-Disposition: inline; filename=foo.jpg&amp;quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
当然のようにIE６だと駄目らしい。&lt;q cite="http://q.hatena.ne.jp/1193899526" title="phpで、動的に画像を生成した場合（ファイルとして保存せずに生成・表示）、 その画像をブラウザで保存しようとすると、 本来の形式ではない形式で保存されてしまいます。 .. - 人力検索はてな"&gt;E6 は、Content-Type: ヘッダーではなくファイル名（拡張子）でファイルの種別を判断するというバグがある&lt;/q&gt;ということで、偽装すると大方は上手くいく。
&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;img src="http://example.com/image.php/foo.jpg?id=1"&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;「&lt;code&gt;foo.jpg&lt;/code&gt;」以下は「&lt;code&gt;$_SERVER['PATH_INFO']&lt;/code&gt;」 で取得可能。&lt;/p&gt;
&lt;p&gt;「.htaccess」でファイル名をリネームする方法。&lt;/p&gt;
&lt;pre&gt;/* PHPファイルを画像ファイルにリネームする「.htaccess」 */
&lt;code title="phpで、動的に画像を生成した場合（ファイルとして保存せずに生成・表示）、 その画像をブラウザで保存しようとすると、 本来の形式ではない形式で保存されてしまいます。 .. - 人力検索はてな"&gt;
RewriteEngine on
RewriteBase /
RewriteRule ^gazou_([0-9]+)¥.jpg gazou.php?id=$1 [L]&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
参考元の質問者は解決してないので、バージョン等にもよるのだろう。&lt;br /&gt;
「&lt;code&gt;header()&lt;/code&gt;」の前に出力があると、画像として認識されずテキストが表示される。なのでXREAサーバ（広告有）だと無理。
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-4695259019283621770?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/4695259019283621770/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=4695259019283621770' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/4695259019283621770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/4695259019283621770'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/03/php.html' title='【PHP】動的に生成した画像を保存する時に指定したファイル名にする'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-3849175405597120298</id><published>2010-02-11T11:13:00.002+09:00</published><updated>2010-02-11T11:36:25.564+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='オープンソース'/><title type='text'>【Xoops】メールモジュール</title><content type='html'>&lt;dl&gt;
&lt;dt&gt;&lt;a href="http://xoops.peak.ne.jp/md/news/index.php?page=article&amp;amp;storyid=437" title="PEAK XOOPS - HTMLでValidateするフォームメール (1)"&gt;HTMLでValidateするフォームメール (1)&lt;/a&gt; - &lt;cite&gt;PEAK XOOPS&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;
「pico」モジュールを使ったメールフォーム。Smartyテンプレート。
&lt;/dd&gt;

&lt;dt&gt;&lt;a href="http://xoops.sourceforge.jp/wiki/xoops2/index?ETC%2F%A5%E2%A5%B8%A5%E5%A1%BC%A5%EB%BE%F0%CA%F3%2F%A5%E1%A1%BC%A5%EB" title="ETC/モジュール情報/メール - xoops2 wiki"&gt;ETC/モジュール情報/メール&lt;/a&gt; - &lt;cite&gt;xoops2 wiki&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;
メールモジュール集。
&lt;/dd&gt;
&lt;/dl&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-3849175405597120298?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/3849175405597120298/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=3849175405597120298' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/3849175405597120298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/3849175405597120298'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/02/xoops_11.html' title='【Xoops】メールモジュール'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-2940305046530976243</id><published>2010-02-11T09:54:00.004+09:00</published><updated>2010-02-12T15:55:22.476+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='オープンソース'/><title type='text'>【Xoops】仮想パス</title><content type='html'>&lt;h4&gt;「http://[Xoopsパス]/xoops/modules/pico/index.php?content_id=1」（デフォルト）などを「http://[Xoopsパス]/modules/pico/content0001.html」などにする&lt;/h4&gt;
&lt;p&gt;
『管理メニュー』-&amp;gt;『pico』-&amp;gt;『一般設定』&lt;br /&gt;
『wrapsモードを有効にする』と『mod_rewriteモードを有効にする』を『はい』にする。
&lt;/p&gt;

&lt;h4&gt;
「http://[Xoopsパス]/modules/pico/content0001.html」などを「http://[Xoopsパス]/modules/pico/contact」などにする&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;『管理メニュー』-&amp;gt;『pico』-&amp;gt;『一般設定』&lt;br /&gt;
『wrapsモードを有効にする』と『mod_rewriteモードを有効にする』を『はい』にする。
&lt;/li&gt;
&lt;li&gt;「/[xoopsインストールディレクトリ]/xoops/modules/pico」ディレクトリ&lt;br /&gt;
「.htaccess.rewrite_wraps」のファイル名を「.htaccess」に変更。（「.htaccess.rewrite_normal」ではないので注意）

&lt;/li&gt;
&lt;li&gt;『管理メニュー』-&amp;gt;『pico』-&amp;gt;『コンテンツ一括管理』又は『コンテンツ作成』&lt;br /&gt;
『仮想パス』の欄に「&lt;samp&gt;/contact&lt;/samp&gt;」（バックスラッシュ必須）などと入力すると、その記事へのパスが「http://[Xoopsパス]/modules/pico/contact」になる。&lt;br /&gt;
「&lt;samp&gt;/contact.html&lt;/samp&gt;」も可能。
&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;参考&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://usadeki.jp/modules/d3forum/index.php?topic_id=69" title="うさぎにもできるXOOPS Cube入門♪ - picoでの仮想ﾊﾟｽ"&gt;picoでの仮想ﾊﾟｽ&lt;/a&gt; - &lt;cite&gt;うさぎにもできるXOOPS Cube入門♪&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://xfield.info/modules/tautech/content0007.html" title="pico｜リファレンス - Wander Wonder xField"&gt;pico｜リファレンス&lt;/a&gt; - &lt;cite&gt;Wander Wonder xField&lt;/cite&gt;&lt;/div&gt;
&lt;h4&gt;参考書&lt;/h4&gt;
&lt;div&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4881664425/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;XOOPSでつくる!最強のコミュニティサイト&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4881664425/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/41EB6MTCK7L._SL160_.jpg" alt="XOOPSでつくる!最強のコミュニティサイト" style="border: none;" /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4798010472/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;XOOPSによるポータルサイト構築―オープンソース徹底活用 (オープンソース徹底活用)&lt;/a&gt;
&lt;br /&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4798010472/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/419ZJHR63PL._SL160_.jpg" alt="XOOPSによるポータルサイト構築―オープンソース徹底活用 (オープンソース徹底活用)" style="border: none;" /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4798106186/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;XOOPS入門 ―― ひとが集まるWebをつくる。&lt;/a&gt;
&lt;br /&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4798106186/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;&lt;img src="http://images-jp.amazon.com/images/G/09/icons/books/comingsoon_books.gif" alt="XOOPS入門 ―― ひとが集まるWebをつくる。" style="border: none;" alt="no image" /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4797340487/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;XOOPS Cube Legacy デベロッパーズ・バイブル&lt;/a&gt;
&lt;br /&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4797340487/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/51TsSWOEwXL._SL160_.jpg" alt="XOOPS Cube Legacy デベロッパーズ・バイブル" style="border: none;" /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4839917795/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;Customizing XOOPS ~自由にデザイン・自在にHack&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4839917795/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/51MBQ5WGZ3L._SL160_.jpg" alt="Customizing XOOPS ~自由にデザイン・自在にHack" style="border: none;" /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-2940305046530976243?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/2940305046530976243/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=2940305046530976243' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/2940305046530976243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/2940305046530976243'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/02/xoops.html' title='【Xoops】仮想パス'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-5540709878979466969</id><published>2010-02-05T10:29:00.002+09:00</published><updated>2010-02-05T11:56:37.529+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='その他'/><title type='text'>FFFTPとGumblarとSFTP</title><content type='html'>&lt;ins&gt;&lt;strong&gt;追記&lt;/strong&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/FukayaAruto/20100130/ftp_ffftp_sftp_Gambler_lolipop_webdav" title="GamblerでFTPが危ないっていうけど、結局どうすればいいんだよ！ - TWILIGHT TWINKLE STAR ☆"&gt;GamblerでFTPが危ないっていうけど、結局どうすればいいんだよ！&lt;/a&gt; - &lt;cite&gt;TWILIGHT TWINKLE STAR ☆&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;まとまってて解りやすい。&lt;/p&gt;
&lt;/ins&gt;
&lt;p&gt;
FTPソフトで保存しているホスト情報（パスワード含め）がレジストリから盗まれてサイトを改ざんされる。
そのマルウェアがGumblar。
今回、日本で圧倒的な使用率のFFFTPを狙ってきたので大騒ぎ。
&lt;/p&gt;
&lt;p&gt;
まず、感染してるかどうかを確認。
どこも「アップデートしろ」と「SFTP使え」しか書いてないけど感染してるかどうかと駆除は普通のアンチウィルスソフトで大丈夫なのか。
&lt;/p&gt;
&lt;div&gt;&lt;a href="http://anond.hatelabo.jp/20100131082751" title="感染対策くらいかけよ！そっちの方が重要じゃねーのか？"&gt;感染対策くらいかけよ！そっちの方が重要じゃねーのか？&lt;/a&gt; - &lt;cite&gt;はてな匿名ダイアリー&lt;/cite&gt;&lt;/div&gt;
&lt;blockquote cite="http://anond.hatelabo.jp/20100131082751" title="感染対策くらいかけよ！そっちの方が重要じゃねーのか？"&gt;セーフモードから起動してレジストリエディタでRunエントリ
 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] から &amp;quot;sysgif32&amp;quot;=&amp;quot;C:\\WINDOWS\\TEMP\\~TMD.tmp&amp;quot; &amp;quot;~TM6.tmp&amp;quot;=&amp;quot;C:\\WINDOWS\\TEMP\\~TM6.tmp&amp;quot; 
等の登録があれば感染済&lt;/blockquote&gt;

&lt;p&gt;
今後の対策。
そもそもFTPでサーバとやり取りするのが駄目（平文でパスワードを送るから）。
でSFTPを使えるソフトを使うと安心。
「FFFTPではSFTPが使えない」から「FFFTPは駄目だ」が、
「FFFTPを使わなければ安心」のように広がってるが間違い。
&lt;/p&gt;
&lt;p&gt;
SFTPが使えるソフトとしてWinSCPとFilezillaがどっちもパスワードを平文で保存するので危険なのは変わらない。
&lt;/p&gt;
&lt;blockquote cite="http://mag.matrix.jp/mag/queen/log/soft/eid744.html" title="にょろぷにらん | 他のFTPクライアントは安全なのか"&gt;マルウェアにねらわれるソフトのリストを挙げてあるページがあった．
&lt;div&gt;&lt;a href="http://blog.unmaskparasites.com/2009/09/23/10-ftp-clients-malware-steals-credentials-from/" title="10 FTP Clients Malware Steals Credentials From | Unmask Parasites. Blog."&gt;10 FTP Clients Malware Steals Credentials From&lt;/a&gt;&lt;/div&gt;
&lt;pre&gt;
CoffeeCup Direct FTP
TransSoft FTP Control 4
Core FTP
GlobalScape CuteFTP
Far Manager (with FTP plugin)
FileZilla
FlashFXP
SmartFTP
FTP Navigator
Total Commander
&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;
FTPソフトからホスト情報が盗まれる危険性と、以前から問題だったFTP通信の危険性が合わさってよく解らなくなっている。&lt;br /&gt;
さらにSFTPの設定がややこしいしサーバごとに解りやすくアナウンスとかすれば良い。
&lt;/p&gt;
&lt;div&gt;&lt;a href="http://mag.matrix.jp/mag/queen/log/soft/eid743.html" title="にょろぷにらん | FFFTPパスワード漏れ対処版作ってみた"&gt;FFFTPパスワード漏れ対処版作ってみた&lt;/a&gt; - &lt;cite&gt;にょろぷにらん&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/wadap/20080202/1201921424" title="ffftpでsftpが使える、tunnelier - Unix的なアレ"&gt;ffftpでsftpが使える、tunnelier&lt;/a&gt; - &lt;cite&gt;Unix的なアレ&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;
個人的な感想。
&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;Filezilla&lt;/dt&gt;
&lt;dd&gt;パスワードを平文で保存するので危険。起動する時にハードからガガッと読み取り音みたいなのがする。転送が遅い。ファイル一覧やエクスプローラなどでウィンドウが分割されまくり。FFFTPになれてると見づらい。ファイルの移動がドラッグで自由に出来るのでたまに行方不明になる。&lt;/dd&gt;
&lt;dt&gt;WinSCP&lt;/dt&gt;
&lt;dd&gt;パスワードを平文で保存するので危険。FFFTPに見た目は似てる。SFTPの鍵を作る「PuTTY」が同梱されている。ファイル上書きの確認ウィンドウが長い。&lt;/dd&gt;
&lt;dt&gt;ALFTP&lt;/dt&gt;
&lt;dd&gt;ウィンドウが分割されまくり。なんかいろいろ合わない。アイコンとか。&lt;/dd&gt;
&lt;dt&gt;RootFTP&lt;/dt&gt;
&lt;dd&gt;FFFTPに似た見た目。FTPしか使えない。良い感じ。&lt;/dd&gt;
&lt;dt&gt;SmartFTP&lt;/dt&gt;
&lt;dd&gt;ウィンドウが分割されまくり。&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;&lt;a href="http://www.value-domain.com/xrea.php" title="VALUE DOMAIN:バリュードメイン"&gt;XREAでは無料でも使える&lt;/a&gt;ようだが&lt;a href="http://support.sakura.ad.jp/support/manual/rs/tech_server.shtml#ftp" title="SAKURA Internet // サポート - オンラインマニュアル - さくらのレンタルサーバ　：　さくらのレンタルサーバの主な仕様"&gt;さくらサーバはスタンダード以上から使える&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;
末端IT制作者としては、安いレンタルサーバを使わざるを得ないし既に契約してるサーバを使わなくてはいけないからSFTPが使えるとは限らない。&lt;br /&gt;
あと客が自分でいじりたいってなったときFFFTPを薦めとくのが無難ってのはあるよね。サーバサポートさんもそうだろうけど。&lt;br /&gt;
レジストリから削除して、パスワードも保存せずログインするたびに入力する。パスワードをどう管理するかは結局問題だが。
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-5540709878979466969?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/5540709878979466969/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=5540709878979466969' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5540709878979466969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5540709878979466969'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/02/ffftpgumblarsftp.html' title='FFFTPとGumblarとSFTP'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-6223841414913792461</id><published>2010-01-28T17:48:00.005+09:00</published><updated>2010-01-28T18:26:48.329+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='オープンソース'/><title type='text'>【Xoops】記事投稿フォーム「submit.php」のJavascriptバリデータ「xoopsFormValidate_uploadphoto()」に要素を追加して必須にする【gNavi】</title><content type='html'>&lt;p&gt;
「GNavi」で、記事投稿のタイトル（title）とメインカテゴリ（cid）のように、フォームが空白だと「&lt;code&gt;alert()&lt;/code&gt;」が表示される項目を追加する。&lt;br /&gt;
&lt;code&gt;$form-&amp;gt;setRequired()&lt;/code&gt;にフォームの要素を与えれば良いようだ。&lt;br /&gt;
Javascriptを無効にしたら無意味だけど。
&lt;/p&gt;
&lt;pre&gt;/* gnavi/main/submit.php */
&lt;code&gt;$title_text = new XoopsFormText( _MD_GNAV_ITM_TITLE, "title" , 50 , 255 , $myts-&amp;gt;makeTboxData4Edit( $photo['title'] ) ) ;&lt;/code&gt;
…
&lt;code&gt;$form-&amp;gt;addElement( $title_text ) ;
$form-&amp;gt;setRequired( $title_text ) ;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;このコード部分が以下のように表示される。&lt;/p&gt;
&lt;pre&gt;/* 「index.php?page=submit」のソース */
  &lt;code&gt;&amp;lt;script type='text/javascript'&amp;gt;
  &amp;lt;!--//
  function xoopsFormValidate_uploadphoto() {
      myform = window.document.uploadphoto;
          if (myform.title.value == "") {
              window.alert("記事を入力してください");
              myform.title.focus();
              return false;
          }&lt;/code&gt;
…
      &lt;code&gt;return true;
  }
  //--&amp;gt;
  &amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;なので、以下のように追加すると&lt;/p&gt;
&lt;pre&gt;/* alert追加 */
&lt;code&gt;$form-&amp;gt;setRequired( $tel_text ) ;&lt;/code&gt;&lt;/pre&gt;

&lt;pre&gt;/* 表示 */
  &lt;code&gt;&amp;lt;script type='text/javascript'&amp;gt;
  &amp;lt;!--//
  function xoopsFormValidate_uploadphoto() {&lt;/code&gt;
…
          &lt;code&gt;if (myform.tel.value == "") {
              window.alert("電話を入力してください");
              myform.tel.focus();
              return false;
          }&lt;/code&gt;
…
      &lt;code&gt;return true;
  }
  //--&amp;gt;
  &amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;みたいになるはず。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-6223841414913792461?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/6223841414913792461/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=6223841414913792461' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/6223841414913792461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/6223841414913792461'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/01/xoopssubmitphpjavascriptxoopsformvalida.html' title='【Xoops】記事投稿フォーム「submit.php」のJavascriptバリデータ「xoopsFormValidate_uploadphoto()」に要素を追加して必須にする【gNavi】'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-2810324237758787219</id><published>2010-01-25T10:06:00.010+09:00</published><updated>2010-01-25T11:04:49.196+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='*参考'/><title type='text'>UI（ユーザ・インタフェース）に関する参考文献</title><content type='html'>&lt;h4&gt;ネット上のもの&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/ja-jp/library/aa139781.aspx" title="ユーザー インターフェイス デザインおよび開発"&gt;ユーザー インターフェイス デザインおよび開発&lt;/a&gt; -&amp;gt; &lt;a href="http://msdn.microsoft.com/ja-jp/library/aa511258.aspx" title="Windows ユーザー エクスペリエンス ガイドライン"&gt;Windows ユーザー エクスペリエンス ガイドライン&lt;/a&gt; -&amp;gt; &lt;a href="http://msdn.microsoft.com/ja-jp/library/bb328626.aspx" title="ビジュアル索引"&gt;ビジュアル索引&lt;/a&gt; - &lt;cite&gt;MSDN&lt;/cite&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://potting.syuriken.jp/potting_conv/XHIG_J/XHIGIntro/chapter_1.html" title="アップル ヒューマンインタフェースガイドライン"&gt;アップル ヒューマンインタフェースガイドライン&lt;/a&gt; - &lt;cite&gt;ポッチンルーム&lt;/cite&gt;&lt;br /&gt;
Apple Computer, Inc.が公開している開発者向け資料の日本語訳。 &lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.phenomena.co.jp/phenomena/uid_lab/index.html" title="ユーザーインターフェースデザイン研究室"&gt;研究室&lt;/a&gt; - &lt;cite&gt;ユーザーインターフェース・デザイン&lt;/cite&gt;&lt;br /&gt;
ソフトウェア開発やUIデザイン設計の業務をしているフェノメナエンターテインメント（Phenomena）のサイト。&lt;/li&gt;
&lt;li&gt;&lt;a href="http://techblog.yahoo.co.jp/cat207/how_to/post_12/" title="エンジニアにもわかる「ユーザーインターフェース設計」 (Yahoo! JAPAN Tech Blog)"&gt;エンジニアにもわかる「ユーザーインターフェース設計」&lt;/a&gt; - &lt;cite&gt;Yahoo! JAPAN Tech Blog&lt;/cite&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.geocities.co.jp/SiliconValley-Oakland/8192/" title="ダメなユーザインタフェイス講座"&gt;ダメなユーザインタフェイス講座&lt;/a&gt;&lt;br /&gt;
アプリケーションのUI設計。（最終更新：2001年）
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://coliss.com/articles/build-websites/architectonics/usability/8-characteristics-of-successful-user-interfaces-2.html" title="優れたユーザインタフェースを設計する際に考慮する8つのポイント | コリス"&gt;優れたユーザインタフェースを設計する際に考慮する8つのポイント&lt;/a&gt; - &lt;cite&gt;コリス&lt;/cite&gt;&lt;br /&gt;
海外のサイトの意訳。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;WebサイトのUI集&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.designwalker.com/2009/08/user-interface.html" title="ウェブデザインのユーザーインターフェースに使えるサイトまとめ | DesignWalker"&gt;ウェブデザインのユーザーインターフェースに使えるサイトまとめ&lt;/a&gt; - &lt;cite&gt;DesignWalker&lt;/cite&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;書籍&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873113164/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;デザイニング・インターフェース ―パターンによる実践的インタラクションデザイン&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873113164/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/51xwxPUCp0L._SL160_.jpg" alt="デザイニング・インターフェース ―パターンによる実践的インタラクションデザイン" style="border: none;padding:1em;" /&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873114101/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;デザイニング・ウェブナビゲーション ―最適なユーザーエクスペリエンスの設計&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873114101/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/51hJv2ygkpL._SL160_.jpg" alt="デザイニング・ウェブナビゲーション ―最適なユーザーエクスペリエンスの設計" style="border: none;padding:1em;" /&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/478850362X/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;誰のためのデザイン?―認知科学者のデザイン原論 (新曜社認知科学選書)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/478850362X/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/412Z7VZFGDL._SL160_.jpg" alt="誰のためのデザイン?―認知科学者のデザイン原論 (新曜社認知科学選書)" style="border: none;padding:1em;" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4797339098/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;ウェブユーザビリティの法則 改訂第2版&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4797339098/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/51uraZ6CddL._SL160_.jpg" alt="ウェブユーザビリティの法則 改訂第2版" style="border: none;padding:1em;" /&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4582850960/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;情報デザイン入門―インターネット時代の表現術 (平凡社新書)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4582850960/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/41P0ADHG0AL._SL160_.jpg" alt="情報デザイン入門―インターネット時代の表現術 (平凡社新書)" style="border: none;padding:1em;" /&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4844356097/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;それは「情報」ではない。―無情報爆発時代を生き抜くためのコミュニケーション・デザイン&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4844356097/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/417G3QD5RZL._SL160_.jpg" alt="それは「情報」ではない。―無情報爆発時代を生き抜くためのコミュニケーション・デザイン" style="border: none;padding:1em;" /&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4501532009/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;ユーザビリティエンジニアリング原論―ユーザーのためのインタフェースデザイン (情報デザインシリーズ)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4501532009/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/5134VP2JSNL._SL160_.jpg" alt="ユーザビリティエンジニアリング原論―ユーザーのためのインタフェースデザイン (情報デザインシリーズ)" style="border: none;padding:1em;" /&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274201449/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;ユーザビリティエンジニアリング―ユーザ調査とユーザビリティ評価実践テクニック&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274201449/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/41HBM5VVCZL._SL160_.jpg" alt="ユーザビリティエンジニアリング―ユーザ調査とユーザビリティ評価実践テクニック" style="border: none;padding:1em;" /&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4894714205/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;ヒューメイン・インタフェース―人に優しいシステムへの新たな指針&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4894714205/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/512G69S0JCL._SL160_.jpg" alt="ヒューメイン・インタフェース―人に優しいシステムへの新たな指針" style="border: none;padding:1em;" /&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-2810324237758787219?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/2810324237758787219/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=2810324237758787219' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/2810324237758787219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/2810324237758787219'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/01/ui.html' title='UI（ユーザ・インタフェース）に関する参考文献'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-653370520325427540</id><published>2010-01-19T17:19:00.003+09:00</published><updated>2010-01-19T17:49:39.679+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>【Progression】フォトギャラリーサンプル</title><content type='html'>&lt;dl&gt;
&lt;dt&gt;&lt;a href="http://web.dimension-maker.info/archives/2009/04/28120606.html" title="Progression 3 に挑戦してみました : web dimension maker"&gt;Progression 3 に挑戦してみました&lt;/a&gt; - &lt;cite&gt;web dimension maker&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;a href="http://web.dimension-maker.info/sample/2009/04/index.html"&gt;サンプル&lt;/a&gt;&lt;br /&gt;
ソース無し。完成度高い。
&lt;/dd&gt;
&lt;dt&gt;&lt;a href="http://flabaka.com/blog/?p=109" title="flabaka - PhotoSlideを作ってみました"&gt;PhotoSlideを作ってみました&lt;/a&gt; - &lt;cite&gt;flabaka&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;a href="http://flabaka.com/Progression/sample3/index.html"&gt;サンプル&lt;/a&gt;&lt;br /&gt;
「&lt;code&gt;URLRequest&lt;/code&gt;」と「&lt;code&gt;CastLoader&lt;/code&gt;」を使う。
&lt;/dd&gt;

&lt;dt&gt;&lt;a href="http://blog.quall.net/program/actionscript-program/1350/" title="Progressionを使ったフォトギャラリーのサンプル[as3] | Web＆MUSICブログ　QUALL"&gt;Progressionを使ったフォトギャラリーのサンプル&lt;/a&gt; - &lt;cite&gt;Web＆MUSICブログ　QUALL&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;a href="http://blog.quall.net/sampleDemo/progression/photo_gallery"&gt;サンプル&lt;/a&gt;&lt;br /&gt;
&lt;em&gt;Progression&lt;/em&gt;の「&lt;code&gt;addSceneFromXML&lt;/code&gt;」を使う。
&lt;/dd&gt;

&lt;dt&gt;&lt;a href="http://narayama.heteml.jp/2008/10/addscenefromxmlxml.html" title="addSceneFromXMLでXMLからシーン作成 - Is It So Easy?"&gt;addSceneFromXMLでXMLからシーン作成&lt;/a&gt; - &lt;cite&gt;Is It So Easy?&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;a href="http://narayama.heteml.jp/progression_test/ImageGallery/"&gt;サンプル&lt;/a&gt;&lt;br /&gt;
「&lt;code&gt;addSceneFromXML&lt;/code&gt;」で、XMLファイルからシーン構造を作成する。
&lt;/dd&gt;

&lt;dt&gt;&lt;a href="http://kanariia.com/blog/archives/182" title="kanariia.com blog - [progression勉強]CastImageLoaderで他サイトの画像を読み込みリサイズできない件"&gt;CastImageLoaderで他サイトの画像を読み込みリサイズできない件&lt;/a&gt; - &lt;cite&gt;kanariia.com blog&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;a href="http://kanariia.com/blog/sample/081130/index.html"&gt;サンプル&lt;/a&gt;&lt;br /&gt;
「&lt;code&gt;CastImageLoader&lt;/code&gt;」を使う。以下を改良。&lt;br /&gt;
&lt;a href="http://kanariia.com/blog/archives/141" title="kanariia.com blog - [progression勉強]外部画像データをXMLで読み込んでシーンに貼り付け"&gt;外部画像データをXMLで読み込んでシーンに貼り付け&lt;/a&gt; - &lt;cite&gt;kanariia.com blog&lt;/cite&gt;&lt;/dd&gt;
&lt;dd&gt;
「&lt;code&gt;CastImageLoader&lt;/code&gt;」はリンク先参考。&lt;br /&gt;
&lt;a href="http://narayama.heteml.jp/2008/10/castimageloader.html" title="CastImageLoaderを使ってみる - Is It So Easy?"&gt;CastImageLoaderを使ってみる&lt;/a&gt; - &lt;cite&gt;Is It So Easy?&lt;/cite&gt;&lt;br /&gt;
&lt;/dd&gt;

&lt;/dl&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-653370520325427540?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/653370520325427540/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=653370520325427540' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/653370520325427540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/653370520325427540'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/01/progression_19.html' title='【Progression】フォトギャラリーサンプル'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-7824048753347195553</id><published>2010-01-19T11:59:00.002+09:00</published><updated>2010-01-19T12:16:07.507+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>【ActionScript】お絵描きアプリケーションFlash【Flex】</title><content type='html'>&lt;dl&gt;
&lt;dt&gt;&lt;a href="http://blog.takeda-soft.jp/blog/show/79" title="Flash ひっかき絵 | ブログ.武田ソフト.jp"&gt;Flash ひっかき絵&lt;/a&gt; - &lt;cite&gt;ブログ.武田ソフト.jp&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;クレヨンとひっかき絵。マスクレイヤー。&lt;/dd&gt;

&lt;dt&gt;&lt;a href="http://itpro.nikkeibp.co.jp/article/COLUMN/20070309/264369/?ST=webdesign&amp;amp;P=1" title="第39回　Flashでお絵かきアプリケーションを作ってみよう - Flash 8 入門講座：ITpro"&gt;第39回　Flashでお絵かきアプリケーションを作ってみよう&lt;/a&gt; - &lt;cite&gt;ITpro&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;ベクターベース。Flash 8。&lt;/dd&gt;
&lt;dt&gt;&lt;a href="http://itpro.nikkeibp.co.jp/article/COLUMN/20070316/265422/?ST=swd-tech" title="第40回　ビットマップベースのお絵かきアプリを作ってみよう - Flash 8 入門講座：ITpro"&gt;第40回　ビットマップベースのお絵かきアプリを作ってみよう&lt;/a&gt; - &lt;cite&gt;ITpro&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;Flash 8。&lt;/dd&gt;
&lt;dt&gt;&lt;a href="http://www.trick7.com/blog/2006/12/06-234019.php" title="trick7 - Flashで筆順再生のflaソース配布します"&gt;Flashで筆順再生のflaソース配布します&lt;/a&gt; - &lt;cite&gt;trick7&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;描いた通りにリプレイする。『黒板.in』の様に。&lt;/dd&gt;

&lt;dt&gt;&lt;a href="http://d.hatena.ne.jp/haru-komugi/20080228/1210664481" title="Flexでお絵かき（ソース付き） - PHP,MySQL,Flexな日々＋イラストとか"&gt;Flexでお絵かき（ソース付き）&lt;/a&gt; - &lt;cite&gt;PHP,MySQL,Flexな日々＋イラストとか&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;ブラシと消しゴムツールのみ。ブラシサイズの変更可能。デモとソース。&lt;/dd&gt;
&lt;dt&gt;&lt;a href="http://labo.iix.co.jp/?p=1133" title="ActionScript 3.0でお絵かきアプリ – Flash/ActionScript入門 – イクケン"&gt;ActionScript 3.0でお絵かきアプリ&lt;/a&gt; - &lt;cite&gt;イクケン&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;クリックした軌跡が描かれるシンプルなアプリケーション。&lt;/dd&gt;
&lt;dt&gt;&lt;a href="http://tech.ironhearts.com/blog/archives/22" title="Flash中のBitmapをJPG/PNGで保存するには » TECH Matari"&gt;Flash中のBitmapをJPG/PNGで保存するには&lt;/a&gt; - &lt;cite&gt; TECH Matari&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;描いたものを保存するために。&lt;/dd&gt;
&lt;/dl&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-7824048753347195553?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/7824048753347195553/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=7824048753347195553' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/7824048753347195553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/7824048753347195553'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/01/actionscriptflashflex.html' title='【ActionScript】お絵描きアプリケーションFlash【Flex】'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-8493228335776950232</id><published>2010-01-19T11:44:00.003+09:00</published><updated>2010-01-19T11:57:45.801+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>【Progression】プリローダーのサンプル</title><content type='html'>&lt;p&gt;クラススタイル。&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;a href="http://progression.jp/ja/doc/tutorial/class/#item-preloader" title="Progression - Framework for Flash &amp;gt;&amp;gt;&amp;gt; クラススタイルガイド"&gt;プリローダーを作成する&lt;/a&gt; - &lt;cite&gt;Progression - Framework for Flash&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;公式サイト。&lt;/dd&gt;

&lt;dt&gt;&lt;a href="http://blog.seyself.com/2008/04/post_2008040318.html" title="Progressionのpreloader.flaを使ってみる - blog.seyself.com"&gt;Progressionのpreloader.flaを使ってみる&lt;/a&gt; - &lt;cite&gt;blog.seyself.com&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;ソースと&lt;a href="http://demo.seyself.com/20080403_prog/index.html"&gt;デモ&lt;/a&gt;有り。&lt;/dd&gt;

&lt;dt&gt;&lt;a href="http://miraigyo.com/blog/archives/57.html" title="Progression でなめらかなローダーを作成する。 « ActionscriptとかFlashとか| futurefish"&gt;Progression でなめらかなローダーを作成する。&lt;/a&gt; - &lt;cite&gt;futurefish&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;ローディングバーアニメーション。ソースと&lt;a href="http://miraigyo.com/blog/archives/57.html" title=""&gt;デモ&lt;/a&gt;。&lt;/dd&gt;
&lt;dt&gt;&lt;a href="http://miraigyo.com/blog/archives/62.html" title="Progressionで丸いローダーを作ってみたよ。 « ActionscriptとかFlashとか| futurefish"&gt;Progressionで丸いローダーを作ってみたよ。&lt;/a&gt; - &lt;cite&gt;futurefish&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;ソースと&lt;a href="http://miraigyo.com/blog/contents/swf/loader1/preloader.swf"&gt;デモ&lt;/a&gt;。&lt;/dd&gt;
&lt;/dl&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-8493228335776950232?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/8493228335776950232/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=8493228335776950232' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/8493228335776950232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/8493228335776950232'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/01/progression.html' title='【Progression】プリローダーのサンプル'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-4920488468079876018</id><published>2010-01-14T16:28:00.005+09:00</published><updated>2010-01-14T17:55:41.145+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>【Progression】SceneObject、ページなどMyCastSpriteインスタンスからstageを参照する</title><content type='html'>&lt;div&gt;&lt;a href="http://selflash.jp/blog/%E6%9C%AA%E5%88%86%E9%A1%9E/progression%E3%81%A7%E3%81%84%E3%82%8D%E3%81%84%E3%82%8D%E3%81%A4%E3%81%BE%E3%81%A5%E3%81%84%E3%81%9F%E4%BA%8B/comment-page-1/" title="selflash.jp(改装中) - Progressionでいろいろつまづいた事"&gt;Progressionでいろいろつまづいた事&lt;/a&gt; - &lt;cite&gt;selflash.jp&lt;/cite&gt;&lt;/div&gt;
&lt;blockquote cite="http://selflash.jp/blog/%E6%9C%AA%E5%88%86%E9%A1%9E/progression%E3%81%A7%E3%81%84%E3%82%8D%E3%81%84%E3%82%8D%E3%81%A4%E3%81%BE%E3%81%A5%E3%81%84%E3%81%9F%E4%BA%8B/comment-page-1/" title="selflash.jp(改装中) - Progressionでいろいろつまづいた事"&gt;SceneObject内ではstageの参照はできない。&lt;br /&gt;CastObject内でもAdded以降でしかstageの参照はできない。&lt;/blockquote&gt;
&lt;p&gt;
中央に配置したい時に困る。&lt;br /&gt;
引数として渡せば使える。&lt;br /&gt;
自分はFlashDevelopで以下のテンプレートを使っているのでメソッド名など違いに注意。
&lt;/p&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/ActionScript/20090921/fd_progression4_project" title="FlashDevelopの使い方 (16)Flash無しでProgression 4を使用するためのプロジェクトテンプレート - 独学ActionScript"&gt;FlashDevelopの使い方 (16)Flash無しでProgression 4を使用するためのプロジェクトテンプレート&lt;/a&gt; - &lt;cite&gt;独学ActionScript&lt;/cite&gt;&lt;/div&gt;

&lt;pre title="SceneObjectでstageを参照する"&gt;/* IndexScene.as */
    &lt;code&gt;public class IndexScene extends SceneObject 
    {
        public var page:IndexPage;

        /**
         * 新しい IndexScene インスタンスを作成します。
         */
        public function IndexScene() 
        {
            // シーンタイトルを設定します。
            title = "Index - Progression";
            // ContentsScene を作成します。
            var contents:ContentsScene = new ContentsScene(&lt;strong&gt;stage&lt;/strong&gt;);
            contents.name = "contents";
            addScene( contents );
        }&lt;/code&gt;
        …
    &lt;code&gt;}&lt;/code&gt;&lt;/pre&gt;
&lt;pre title="SceneObjectでstageを参照する"&gt;/* ContentsScene.as */
    &lt;code&gt;public class ContentsScene extends SceneObject 
    {
        public var page:ContentsPage;

        public function ContentsScene(&lt;strong&gt;stage:Stage&lt;/strong&gt;, name:String = null, initObject:Object = null ) 
        {

            // シーンタイトルを設定します。
            title = "Contents - Progression";

            page = new ContentsPage(&lt;strong&gt;stage&lt;/strong&gt;);

        }&lt;/code&gt;
        …
    &lt;code&gt;}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
MyCastSpriteインスタンスでも。
&lt;/p&gt;
&lt;pre title="MyCastSpriteインスタンスでstageを参照する"&gt;/* IndexPage.as */
    &lt;code&gt;public class ContentsPage extends CastSprite 
    {
        private var _stage:Stage;

        public function ContentsPage(&lt;strong&gt;stage:Stage&lt;/strong&gt;, initObject:Object = null ) 
        {
            // 親クラスを初期化します。
            super( initObject );
            &lt;strong&gt;_stage = stage;&lt;/strong&gt;
            var tf:TextField = addChild( new TextField() ) as TextField;
            tf.defaultTextFormat = new TextFormat("Verdana", 18, 0x000000);
            tf.text = "Text";
            tf.autoSize = TextFieldAutoSize.LEFT;
            tf.selectable = false;
            tf.x = ( &lt;strong&gt;_stage.stageWidth&lt;/strong&gt; - tf.width ) / 2;
            tf.y = ( &lt;strong&gt;_stage.stageHeight&lt;/strong&gt; - tf.height ) / 2;
        }&lt;/code&gt;
               .…
    &lt;code&gt;}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
「Text」と中央に表示される。
&lt;/p&gt;
&lt;p&gt;
&lt;code&gt;_onCastAdded()&lt;/code&gt;からなら可能らしい。または&lt;code&gt;atCastAdded()&lt;/code&gt;かな。
&lt;/p&gt;
&lt;div&gt;&lt;a href="http://kanariia.com/blog/archives/447" title="kanariia.com blog - [progression勉強]実制作でつまづいたとこをQ&amp;amp;A形式でまとめてみた"&gt;実制作でつまづいたとこをQ&amp;amp;A形式でまとめてみた&lt;/a&gt; - &lt;cite&gt;kanariia.com blog&lt;/cite&gt;&lt;/div&gt;Q.Castのコンストラクタからステージを参照できない
&lt;pre&gt;/* MyCastSpriteインスタンスでstageを参照する */
    …
    &lt;code title="kanariia.com blog - [progression勉強]実制作でつまづいたとこをQ&amp;amp;A形式でまとめてみた"&gt;protected override function _onCastAdded():void {
        stage.addEventListener( Event.RESIZE, onResizeHandler);
        onResizeHandler(null);
        addCommand(
            // 任意のコマンドを記述してください。
            new Trace(stage.stageWidth);
        );
    }&lt;/code&gt;
    …
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-4920488468079876018?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/4920488468079876018/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=4920488468079876018' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/4920488468079876018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/4920488468079876018'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/01/progressionsceneobjectpageobjectstage.html' title='【Progression】SceneObject、ページなどMyCastSpriteインスタンスからstageを参照する'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-7355618158315839578</id><published>2010-01-09T15:58:00.001+09:00</published><updated>2010-01-09T16:04:02.795+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='オープンソース'/><title type='text'>【Xoops】テンプレートの“正しい”カスタマイズ方法</title><content type='html'>&lt;div&gt;&lt;a href="http://www.xugj.org/modules/QandA/index.php?post_id=6227" title="Xoops Users Group Japan - Re: PICOで表示コンテンツのカテゴリーのみコンテンツリスト表示"&gt;Re: PICOで表示コンテンツのカテゴリーのみコンテンツリスト表示&lt;/a&gt; - &lt;cite&gt;Xoops Users Group Japan&lt;/cite&gt;&lt;/div&gt;

&lt;blockquote cite="http://www.xugj.org/modules/QandA/index.php?post_id=6227" title="Xoops Users Group Japan - Re: PICOで表示コンテンツのカテゴリーのみコンテンツリスト表示"&gt;「テンプレートをカスタマイズするときには、まずテンプレートセットを複製する」  …なんて、X2以来の誤った手順が書いてあるサイト/書籍ばかりですから。  そんなことをしたら、必要もないテンプレートまで、全部複製されてしまい、以降のアップデートで非常に手間取ることは明らかです。&lt;/blockquote&gt;

&lt;blockquote cite="http://www.xugj.org/modules/QandA/index.php?post_id=6227" title="Xoops Users Group Japan - Re: PICOで表示コンテンツのカテゴリーのみコンテンツリスト表示"&gt;正しいDBテンプレートカスタマイズ手順はこうです。
  ・altsysで空のテンプレートセットを作る
  ・一般設定で、空のテンプレートセットを「表示されるテンプレートセット」とする
  ・変更したいテンプレートをaltsysでコピーして、カスタマイズする&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-7355618158315839578?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/7355618158315839578/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=7355618158315839578' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/7355618158315839578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/7355618158315839578'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/01/xoops.html' title='【Xoops】テンプレートの“正しい”カスタマイズ方法'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-5118968833569072350</id><published>2010-01-09T15:36:00.002+09:00</published><updated>2010-01-09T15:55:38.075+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>【PHP】PHP 5.3以降の三項演算子</title><content type='html'>&lt;h5&gt;参考&lt;/h5&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/camelmasa/20090731/1249045059" title="phpの三項演算子を書いてていつも思っていた事を書きます。 - camelmasaの開発日記"&gt;phpの三項演算子を書いてていつも思っていた事を書きます。&lt;/a&gt; - &lt;cite&gt;camelmasaの開発日記&lt;/cite&gt;&lt;/div&gt;
&lt;pre title="PHPの三項演算子の例"&gt;/* PHPの三項演算子の例 */
&lt;code&gt;(($a) ? $a : $b);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;この式が以下の様に省略出来る。&lt;/p&gt;
&lt;pre title="PHP 5.3 以降の三項演算子の例"&gt;/* PHP 5.3 以降の三項演算子の例 */
&lt;code&gt;(($a) ?: $b);&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;&lt;a href="http://php.net/manual/ja/language.operators.comparison.php" title="PHP: 比較演算子 - Manual"&gt;比較演算子&lt;/a&gt; - &lt;cite&gt;PHP マニュアル&lt;/cite&gt;&lt;/div&gt;
&lt;blockquote cite="http://php.net/manual/ja/language.operators.comparison.php" title="PHP: 比較演算子 - Manual"&gt;PHP 5.3 以降では、三項演算子のまんなかの部分をなくすこともできるようになりました。 式 expr1 ?: expr3 の結果は、expr1 が TRUE と同等の場合は expr1、 それ以外の場合は expr3 となります。&lt;/blockquote&gt;
&lt;p&gt;ちなみにperlは右結合、phpは左結合なので評価結果が異なったりするので、ネストには注意。&lt;/p&gt;
&lt;pre&gt;/* 三項演算の評価の違い */
&lt;code&gt;(true?'true':false?'t':'f');&lt;/code&gt;
// Perlの結果： 'true'
// PHPの結果：'t'
 ※PHPでの評価順
 &lt;code&gt;((true ? 'true' : 'false') ? 't' : 'f');&lt;/code&gt;&lt;/pre&gt;

&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/omoon/20071127/1196174396" title="perlとphpで三項演算子の挙動が違う件 - A Small, Good Thing - diary"&gt;perlとphpで三項演算子の挙動が違う件Comments&lt;/a&gt; - &lt;cite&gt;A Small, Good Thing - diary&lt;/cite&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-5118968833569072350?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/5118968833569072350/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=5118968833569072350' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5118968833569072350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5118968833569072350'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2010/01/phpphp-53.html' title='【PHP】PHP 5.3以降の三項演算子'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-1923412570677315927</id><published>2009-12-01T14:54:00.005+09:00</published><updated>2010-01-11T10:05:01.657+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='オープンソース'/><title type='text'>【Xoops】PHPデバックモードで「Notice[PHP]: Undefined variable:～」エラーの対処</title><content type='html'>&lt;p&gt;以下の様なエラーが出る場合の対処。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Notice [PHP]: Undefined variable: global_perms in file xoops_trust_path/modules/gnavi/include/common_prepend.inc.php line 46
Notice [PHP]: Undefined variable: global_perms in file xoops_trust_path/modules/gnavi/include/common_prepend.inc.php line 47
Notice [PHP]: Undefined variable: global_perms in file xoops_trust_path/modules/gnavi/main/category.php line 47&lt;/code&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;code&gt;Notice [PHP]: Undefined variable: orgfile_name in file xoops_trust_path/modules/gnavi/main/submit.php line 447
Notice [PHP]: Undefined variable: orgfile_name1 in file xoops_trust_path/modules/gnavi/main/submit.php line 448
Notice [PHP]: Undefined variable: orgfile_name2 in file xoops_trust_path/modules/gnavi/main/submit.php line 449&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;次の様に修正する。「/xoops_trust_path/modules/gnavi/include/common_prepend.inc.php」を変更。&lt;/p&gt;
&lt;pre title="Xoops Users Group Japan - HD1.0.2 for XCL2.1 に update後GNAVIで投稿できなくなりました"&gt;/* 「/xoops_trust_path/modules/gnavi/include/common_prepend.inc.php」 */
// 変更前
&lt;code&gt;&amp;lt;?php
 //include files require_once dirname(dirname(__FILE__)).'/include/read_configs.php' ;
 require_once dirname(dirname(__FILE__)).'/include/get_perms.php' ;
 require_once dirname(dirname(__FILE__)).'/include/draw_functions.php' ;
 require_once dirname(dirname(__FILE__)).'/include/common_functions.php' ;
 require_once dirname(dirname(__FILE__)).'/include/common_javalang.inc.php' ;
 require_once XOOPS_ROOT_PATH.&amp;quot;/class/xoopstree.php&amp;quot; ;&lt;/code&gt;

// 変更後
&lt;code&gt;&amp;lt;?php
 //include files require dirname(dirname(__FILE__)).'/include/read_configs.php' ;
 &lt;strong&gt;require&lt;/strong&gt; dirname(dirname(__FILE__)).'/include/get_perms.php' ;
 require_once dirname(dirname(__FILE__)).'/include/draw_functions.php' ;
 require_once dirname(dirname(__FILE__)).'/include/common_functions.php' ;
 require_once dirname(dirname(__FILE__)).'/include/common_javalang.inc.php' ;
 require_once XOOPS_ROOT_PATH.&amp;quot;/class/xoopstree.php&amp;quot; ;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;または、モジュール「XANHTEユーティリティ」をアンインストール。&lt;br /&gt;モジュール「XANHTEユーティリティ」とバッティングしている為、エラーが出る模様。&lt;/p&gt;
&lt;h5&gt;参考&lt;/h5&gt;
&lt;div&gt;&lt;a href="http://www.xugj.org/modules/QandA/index.php?topic_id=941" title="Xoops Users Group Japan - HD1.0.2 for XCL2.1 に update後GNAVIで投稿できなくなりました"&gt;HD1.0.2 for XCL2.1 に update後GNAVIで投稿できなくなりました&lt;/a&gt; - &lt;cite&gt;Xoops Users Group Japan&lt;/cite&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-1923412570677315927?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/1923412570677315927/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=1923412570677315927' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/1923412570677315927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/1923412570677315927'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/12/xoopsphpnoticephp-undefined-variable.html' title='【Xoops】PHPデバックモードで「Notice[PHP]: Undefined variable:～」エラーの対処'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-2059535823653203480</id><published>2009-11-24T13:43:00.002+09:00</published><updated>2009-11-24T13:51:06.132+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>【PHP】ファイルダウンロード</title><content type='html'>&lt;p&gt;
リンククリックで「ファイルを保存する」ウィンドウを開くようにする。&lt;br /&gt;
PHPファイルにリンクして、PHPからダウンロードさせるファイルの情報をヘッダとして渡す。&lt;br /&gt;
直接、ファイルにリンクしてもブラウザで開くだけだから。
&lt;/p&gt;
&lt;div&gt;&lt;a href="http://pear.php.net/package/File_Archive" title="File_Archive"&gt;File_Archive&lt;/a&gt; - &lt;cite&gt;PEAR&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;
PEARライブラリ使うと楽らしい。圧縮も出来る様子。
&lt;/p&gt;
&lt;h5&gt;参考&lt;/h5&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/litt/20070905/p1" title="PHPでファイルダウンロードさせる方法 - ゆるゆると"&gt;PHPでファイルダウンロードさせる方法&lt;/a&gt; - &lt;cite&gt;ゆるゆると&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://opqr.jp/2007/09/php.html" title="PHPでクリックした時にファイルをダウンロードさせる設定 (OPQR.jp : WebサービスとWebデザインについて考えてみる;)"&gt;PHPでクリックした時にファイルをダウンロードさせる設定&lt;/a&gt; - &lt;cite&gt;OPQR.jp&lt;/cite&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-2059535823653203480?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/2059535823653203480/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=2059535823653203480' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/2059535823653203480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/2059535823653203480'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/11/php.html' title='【PHP】ファイルダウンロード'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-3459768800839539294</id><published>2009-11-24T13:31:00.003+09:00</published><updated>2009-11-24T13:42:54.118+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='その他'/><title type='text'>Basic認証</title><content type='html'>&lt;h5&gt;注意点&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;暗号化パスワードは復号化出来ないので同じでなくて良い&lt;/li&gt;
&lt;li&gt;ASCIIモードでFTP転送する&lt;/li&gt;
&lt;li&gt;改行コードはLFに&lt;/li&gt;
&lt;li&gt;最後に改行入れてみる&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;参考&lt;/h5&gt;
&lt;div&gt;&lt;a href="http://w3g.jp/others/htaccess/basic_authentication" title="Basic認証 Others .htaccess"&gt;Basic認証&lt;/a&gt; - &lt;cite&gt;W3G - World Wide Web Guide&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://xreafaq.com/hp_build.html#10" title="XREA FAQ[私設応援団] - hp_build"&gt;.htaccessを使ってアクセス制限するにはどうした&lt;span style="font-style:italic;"&gt;&lt;/span&gt;らいいのでしょうか？&lt;/a&gt; - &lt;cite&gt;XREA FAQ[私設応援団]&lt;/cite&gt;&lt;br /&gt;
暗号化CGIあり。
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-3459768800839539294?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/3459768800839539294/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=3459768800839539294' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/3459768800839539294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/3459768800839539294'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/11/basic.html' title='Basic認証'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-3538067384634485388</id><published>2009-11-19T13:35:00.002+09:00</published><updated>2009-11-19T14:34:12.719+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>【PHP】cronでメールを受信したら返信するプログラム</title><content type='html'>&lt;p&gt;
PHPからメールを取得するのは以下を参考。PEAR::Net_POP3でメールを取得、PEAR::Mail_mimeDecodeで解析。
&lt;/p&gt;
&lt;div&gt;&lt;a href="http://blog.longkey1.net/archives/0000000032" title="Mail_mimeDecodeとNet_POP3でメールで更新 - blog@longkey1.net"&gt;Mail_mimeDecodeとNet_POP3でメールで更新&lt;/a&gt; - &lt;cite&gt;blog@longkey1.net&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;XREAサーバでcronの設定は以下を参考。実行するプログラムファイルを「～.sh」にUTF-8、改行コードLFで記述して、管理画面から実行時間とshファイルを指定する。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://jutememo.blogspot.com/2008/11/xrea-cron.html" title="XREA で cron の設定 | すぐに忘れる脳みそのためのメモ"&gt;XREA で cron の設定&lt;/a&gt; - &lt;cite&gt;すぐに忘れる脳みそのためのメモ&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;XREAの管理画面からの設定では最小実行時間は毎時間ごとでしか指定できない。&lt;br /&gt;
cronの設定欄は10個ほどあるので「分」の項目を変えて10分ごとくらいは可能だが、メールに自動返信したい時などはもっと短い時間でメールの受信を調べたい。&lt;br /&gt;
その場合はSSHで接続し、「&lt;code&gt;crontab&lt;/code&gt;」コマンドで直接記述する。
&lt;/p&gt;
&lt;pre&gt;/* cronを編集するコマンド */
&lt;code&gt;$ crontab -e&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
エディタが起動するので編集。
&lt;/p&gt;
&lt;pre&gt;/* 毎分cronを実行する設定 */
* * * * * /bin/sh /virtual/[ユーザ名]/public_html/cron.sh
&lt;/pre&gt;
&lt;p&gt;これで完了。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://github.com/m4i/xrea-cron" title="m4i's xrea-cron at master - GitHub"&gt;m4i / xrea-cron&lt;/a&gt; - &lt;cite&gt;GitHub&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;
XREAでcronを毎分ごとに実行するRubyスクリプト。
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-3538067384634485388?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/3538067384634485388/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=3538067384634485388' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/3538067384634485388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/3538067384634485388'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/11/phpcron.html' title='【PHP】cronでメールを受信したら返信するプログラム'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-6538139566649445512</id><published>2009-11-14T07:00:00.005+09:00</published><updated>2009-11-26T18:07:05.684+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='*参考'/><title type='text'>Processing 入門メモ</title><content type='html'>&lt;div&gt;&lt;a href="http://processing.org/" title="Processing 1.0"&gt;&lt;cite&gt;Processing&lt;/cite&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://processing.jp/" title="Processing.jp"&gt;&lt;cite&gt;Processing.jp&lt;/cite&gt;&lt;/a&gt;&lt;br /&gt;
-&lt;a href="http://pripro.org/p5ref/index.html" title="Language"&gt;Processing日本語リファレンス(PriPro.org)&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.d-improvement.jp/learning/processing/" title="Processing 学習ノート"&gt;&lt;cite&gt;Processing 学習ノート&lt;/cite&gt;&lt;/a&gt;&lt;/div&gt;

&lt;div&gt;&lt;a href="http://processing.unlekker.net/" title="processing.unlekker.net - Sketches and code"&gt;&lt;cite&gt;processing.unlekker.net&lt;/cite&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://blog.8maki.jp/2007/09/processing.html" title="デザイン用プログラミング環境Processing // CIOを目指しつつの8makiのアレ"&gt;デザイン用プログラミング環境Processing&lt;/a&gt; - &lt;cite&gt;CIOを目指しつつの8makiのアレ&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.atmarkit.co.jp/fwcr/design/tool/processing01/01.html" title="芸術の秋にProcessingでスケッチプログラミングを始めてみよう（1/3） - ＠IT"&gt;芸術の秋にProcessingで  スケッチプログラミングを始めてみよう&lt;/a&gt; - &lt;cite&gt;＠IT - アットマーク・アイティ&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.zero-out.com/sugi/processing/" title="魅惑のProcessing"&gt;&lt;cite&gt;魅惑のProcessing&lt;/cite&gt;&lt;/a&gt;&lt;/div&gt;

&lt;div&gt;&lt;cite&gt;速攻下校&lt;/cite&gt;&lt;br /&gt;
&lt;a href="http://sokogeko.seesaa.net/article/104224522.html" title="速攻下校 ―そして手段は目的へ。: Processingで遊んでみた"&gt;Processingで遊んでみた&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://sokogeko.seesaa.net/article/104283365.html" title="速攻下校 ―そして手段は目的へ。: Processing作品その2"&gt;Processing作品その2&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://sokogeko.seesaa.net/article/106745142.html" title="速攻下校 ―そして手段は目的へ。: Processing作品その3"&gt;Processing作品その3&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.geocities.jp/nbdemo/canvas.html" title="Canvasで遊ぶ"&gt;Canvasで遊ぶ&lt;/a&gt; &lt;/div&gt;
&lt;ins datetime="2009-11-26T18:05:00+09:00"&gt;&lt;strong&gt;追記：2009/11/26&lt;/strong&gt;&lt;br /&gt;
&lt;div&gt;&lt;a href="http://wiki.bmoon.jp/wiki.cgi/Programming?page=FrontPage" title="FrontPage - 小学校教員のためのプログラミング入門"&gt;&lt;cite&gt;小学校教員のためのプログラミング入門&lt;/cite&gt;&lt;/a&gt;&lt;br /&gt;
－東京学芸大学教育学部の講義用サイト。
&lt;/div&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/shrkw/20080910/processing_2" title="Processingのサンプルもろもろ - Bouldering &amp;amp; Com."&gt;Processingのサンプルもろもろ&lt;/a&gt; - &lt;cite&gt;Bouldering &amp; Com.&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1232059647" title="processingで、クリックするとその場所に水面の波紋が出るプログラムを作りたいの... - Yahoo!知恵袋"&gt;processingで、クリックするとその場所に水面の波紋が出るプログラムを作りたいの...&lt;/a&gt; - &lt;cite&gt;Yahoo!知恵袋&lt;/cite&gt;&lt;br /&gt;
－Processingに付属するサンプルプログラムを変更してクリックすると波紋が広がるプログラム。
&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.scratchbrain.net/blog/ver2/processing/index.php" title="Processingカテゴリー | SCRATCHBRAIN.BLOG v2"&gt;Processing カテゴリー&lt;/a&gt; - &lt;cite&gt;SCRATCHBRAIN.BLOG v2&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://processing.org/learning/topics/" title="Topics \ Processing 1.0"&gt;Topics&lt;/a&gt; &amp;lt;- Learning - &lt;cite&gt;Processing 1.0&lt;/cite&gt;&lt;br /&gt;
－Processingのサンプルとコードを見れる。
&lt;/div&gt;
&lt;div&gt;&lt;a href="http://lem-on.net/flashaction-script/processing/" title="Processing｜Webデザイナー・Webクリエイターの為のNews・求人情報"&gt;Processing&lt;/a&gt; - &lt;cite&gt;Webデザイナー・Webクリエイターの為のNews・求人情報&lt;/cite&gt;&lt;br /&gt;
－Processingに関するニュース･トピック、サイト紹介など。
&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.openprocessing.org/" title="OpenProcessing - Share Your Sketches!"&gt;&lt;cite&gt;OpenProcessing&lt;/cite&gt;&lt;/a&gt;&lt;br /&gt;
－作品とソースのサンプル。
&lt;/div&gt;
&lt;div&gt;&lt;cite&gt;flight404 dot com&lt;/cite&gt;
&lt;a href="http://www.flight404.com/blog/?p=113" title="SRC: Particle Emitter « all manner of distractions"&gt;SRC: Particle Emitter&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.flight404.com/blog/?p=115" title="SRC: Particle Emitter, pt. 2 « all manner of distractions"&gt;SRC: Particle Emitter, pt. 2&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.harukit.com/p5skch.html" title="[ harukit ] - proce55ing sketchbook"&gt;&lt;cite&gt;[ harukit ] - proce55ing sketchbook&lt;/cite&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.literaturdoener.de/" title="Reclam"&gt;&lt;cite&gt;Reclam&lt;/cite&gt;&lt;/a&gt;&lt;br /&gt;
フルProcessingサイト。&lt;/div&gt;
&lt;/ins&gt;

&lt;h5&gt;Processing.js&lt;/h5&gt;
&lt;div&gt;&lt;a href="http://dev.jquery.com/~john/processing.js/" title="John Resig - Processing.js"&gt;&lt;cite&gt;Processing.js&lt;/cite&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/amachang/20080509/1210355674" title="ブラウザでお絵描きプログラミング！ Processing.js 登場！ - IT戦記"&gt;ブラウザでお絵描きプログラミング！ Processing.js 登場！&lt;/a&gt; - &lt;cite&gt;IT戦記&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://lethain.com/entry/2008/may/26/processing-js-no-tsukaikata/" title="Processing.jsの使い方 @ Irrational Exuberance"&gt;Processing.jsの使い方&lt;/a&gt; - &lt;cite&gt;Irrational Exuberanc&lt;/cite&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-6538139566649445512?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/6538139566649445512/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=6538139566649445512' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/6538139566649445512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/6538139566649445512'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/11/processing.html' title='Processing 入門メモ'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-4078694537166641136</id><published>2009-11-11T10:24:00.005+09:00</published><updated>2009-11-26T17:36:30.543+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>【PHP】guesswork - “薄っぺらなフレームワーク”</title><content type='html'>&lt;div&gt;&lt;a href="http://classic.guesswork.jp/" title="guesswork"&gt;guesswork classic&lt;/a&gt; - &lt;cite&gt;guesswork&lt;/cite&gt;&lt;/div&gt;
&lt;blockquote cite="http://classic.guesswork.jp/" title="guesswork"&gt;guesswork classicは、「ややこしいフレームワークは使いたくない」けど「なんでもありになりがちなPHPスクリプトをスッキリさせる指針が欲しい」と考えている人のための軽量なPHP4用フレームワークです。&lt;/blockquote&gt;

&lt;div&gt;&lt;a href="http://classic.guesswork.jp/documents/gettingstarted.php" title="guesswork - とりあえず触ってみる"&gt;とりあえず触ってみる&lt;/a&gt; &amp;lt;- Documents &amp;lt;- &lt;cite&gt;guesswork&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;
解凍したディレクトリ内の「lib/」を任意の場所にアップロードし「lib/Guesswork.php」を読み込んで使う。
&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;require_once '(ディレクトリパス)/lib/Guesswork.php';
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Smartyの設定は次の通り。&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;
class SampleController extends Controller
{
    var $_gw_default_action = "index";
    var $_gw_template_class = "(ディレクトリパス)/smarty/Smarty.class.php";
    var $_gw_template_templates_dir = 'templates';
    var $_gw_template_compile_dir = 'templates_c';
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;アクションとテンプレートの呼び出しは次の通り。他のフレームワークとも似ている。&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;
    function executeIndex()
    {
            return $this-&gt;render('sample/index');
    }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;「templates/」内に、この場合「sample/」ディレクトリを作ってテンプレートを置いている。&lt;br /&gt;
この様にコントローラ・クラス名と同名のディレクトリ内に置かないと上手くいかないようだ。&lt;br /&gt;
ただ、テンプレート内からSmartyタグでファイルを読み込む時は「templates/」直下が基準のよう。
&lt;/p&gt;
&lt;pre&gt;/* Smartyテンプレートファイルからヘッダファイルの読込み */
&lt;code&gt;{include file="./head.tpl"}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;アクションの振り分けはフォームのhidden要素で決まる。&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;&amp;lt;input type="hidden" name="action" value="sending" /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;この場合、フォームからPOSTされるとSendingアクション（executeSending()）が実行される。&lt;br /&gt;
「(コントローラ・クラス名)Validator.class.php」にアクション毎のバリデーションを定義しないとエラーになる（「SampleValidator.class.php」内に「validateSending()」を記述）&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;
class MailFormValidator extends Validator
{
    /**
     * 確認アクションでの検証。
     * @access public
     * @param array $values
     */
    function validateStaffName($values)
    {
       // バリデータ定義
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;他のフレームワークだと「sample_mail.html」テンプレートと「executeSampleMail()」は関連付けられたりするが、guessworkはしてくれないようなので以下のようにすると可能。&lt;/p&gt;
&lt;pre&gt;
// テンプレート
&lt;code&gt;&amp;lt;input type="hidden" name="action" value="SampleMail" /&amp;gt;&lt;/code&gt;
// コントローラ
&lt;code&gt;return $this-&gt;render('sample/sample_mail');&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;最小限フレームワークなのでバリデーション関数は「lib/Guesswork/Validate.php」に「isEmpty()」だけでE-mailチェックも英数字チェックもない。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-4078694537166641136?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/4078694537166641136/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=4078694537166641136' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/4078694537166641136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/4078694537166641136'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/11/phpguesswork.html' title='【PHP】guesswork - “薄っぺらなフレームワーク”'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-6167101377388285683</id><published>2009-10-28T11:18:00.004+09:00</published><updated>2009-10-28T11:44:38.492+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='オープンソース'/><title type='text'>【XOOPS】gnaviモジュールを基にした不動産物件サイト構築モジュール - ielog</title><content type='html'>&lt;div&gt;&lt;a href="http://xoopscube.jp/news/622#nodeBody" title="ニュース | XOOPS Cube日本サイト"&gt;gnaviモジュールを不動産屋向けに改造さえてもらいました。画像・項目追加版&lt;/a&gt; - &lt;cite&gt;XOOPS Cube日本サイト&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;デモ：&lt;a href="http://ielog.jp/xoops/modules/gnavi/" title="ielog xoops　モジュール・テーマ配布　デモサイト - gnavi"&gt;家log&lt;/a&gt;&lt;br /&gt;
配布サイト：&lt;a href="http://ielog.jp/xoops-module-theme/3/" title="住まいの総合データ・口コミ・口コミVOTE集　イエログ - Xoopsの不動産会社向けモジュールや、テーマのご紹介ページです。"&gt;Xoopsの不動産会社向けモジュールや、テーマのご紹介ページです。&lt;/a&gt;&lt;/div&gt;
&lt;h4&gt;インストール&lt;/h4&gt;
&lt;p&gt;
配布サイトからモジュールをダウンロード。既にGnaviが導入されていれば「xoops_trust_path モジュール名 IELOG」の方をダウンロード。&lt;br /&gt;
解凍して出来たディレクトリ（「Gnavi-plus-ielog-turu-ielog.」など）内のディレクトリを２つアップロードする。
&lt;/p&gt;
&lt;pre&gt;
・「html/modules/ielog/」ディレクトリ
　→「xoops/modules/」ディレクトリ以下にアップ
・「xoops_trust_path/modules/ielog/」ディレクトリ
　→「xoops_trust_path/modules/」」ディレクトリ以下にアップ
&lt;/pre&gt;
&lt;p&gt;
管理メニューからモジュールをインストールする。
&lt;/p&gt;

&lt;blockquote cite="http://xoopscube.jp/news/622#nodeBody" title="ニュース | XOOPS Cube日本サイト"&gt;正式版がでるまでのつなぎとしてお考えくださればOKです。&lt;/blockquote&gt;
&lt;p&gt;
と仰ってますが使用に十分耐え得ると思う。Gnaviカスタマイズの参考にもなる。&lt;br /&gt;
もしかしたら、テンプレート・ファイルの文字コードによるエラーが出たり、ディレクトリが存在しないエラーが出るかもしれない。&lt;br /&gt;
エラーログを参考にファイルの修正や権限の変更など適宜対応。
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-6167101377388285683?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/6167101377388285683/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=6167101377388285683' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/6167101377388285683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/6167101377388285683'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/10/xoopsgnavi-ielog.html' title='【XOOPS】gnaviモジュールを基にした不動産物件サイト構築モジュール - ielog'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-5084150798518515779</id><published>2009-10-28T11:12:00.001+09:00</published><updated>2009-10-28T11:16:12.670+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='オープンソース'/><title type='text'>【XOOPS】picoカスタマイズ - 入力項目の追加</title><content type='html'>&lt;div&gt;&lt;a href="http://www.xugj.org/modules/xpwiki/?ModuleManuals%2F%E2%80%8Bpico%2Fextra_fields" title="Xoops Users Group Japan - ModuleManuals/​pico/extra_fields [pico の 任意追加フィールド機能（extra_fields）] - XUGJ Wiki"&gt;pico の 任意追加フィールド機能（extra_fields）&lt;/a&gt; - &lt;cite&gt;Xoops Users Group Japan&lt;/cite&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-5084150798518515779?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/5084150798518515779/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=5084150798518515779' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5084150798518515779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5084150798518515779'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/10/xoopspico.html' title='【XOOPS】picoカスタマイズ - 入力項目の追加'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-84254260690702919</id><published>2009-10-28T10:35:00.004+09:00</published><updated>2009-10-28T11:11:59.128+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='オープンソース'/><title type='text'>【XOOPS】グルメなどリンク集サイトを運営するためのモジュール</title><content type='html'>&lt;p&gt;
WEBリンク集サイトを構築するモジュール。GoogleMapの連動やリンク切れチェック、RSS管理なども可能。
&lt;/p&gt;
&lt;h4&gt;インストール&lt;/h4&gt;
&lt;p&gt;
以下リンク先から、ダウンロード・解凍して出来た「weblinks/」ディレクトリを「xoops/modules」にアップロードして管理画面からモジュールインストール。&lt;br /&gt;
同サイトで配布している「HappyLinux モジュール」が必須。
&lt;/p&gt;
&lt;div&gt;&lt;a href="http://linux.ohwada.jp/modules/wfdownloads/singlefile.php?cid=1&amp;amp;lid=99" title="はっぴぃ・りなっくす - WFダウンロード"&gt;WebLinks モジュール 1.95&lt;/a&gt; - &lt;cite&gt;はっぴぃ・りなっくす&lt;/cite&gt;&lt;br /&gt;
必須：&lt;a href="http://linux.ohwada.jp/modules/wfdownloads/singlefile.php?cid=1&amp;amp;lid=65" title="はっぴぃ・りなっくす - WFダウンロード"&gt;XOOPS HappyLinux モジュール 1.50&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;
設定が凄い多い。カスタマイズすれば可能だろうが、WEBリンク集モジュールなので投稿にURLが必須で、飲食店ポータルサイトにそのまま使うことは出来ない。&lt;br /&gt;
画像アップロード機能がないので、画像を使いたい場合は工夫が必要。&lt;br /&gt;
他の画像管理モジュール等を利用して、リンクの投稿記事内に「&amp;lt;img&amp;gt;」タグで埋め込むといった方法など。
&lt;/p&gt;
&lt;h4&gt;構築事例&lt;/h4&gt;
&lt;div&gt;
&lt;cite&gt;&lt;a href="http://scuba-jp.net/" title="うい・らぶ・だいびんぐ - We Love Scuba Diving"&gt;うい・らぶ・だいびんぐ - We Love Scuba Diving&lt;/a&gt;&lt;/cite&gt;&lt;br /&gt;
&lt;cite&gt;&lt;a href="http://www.arukikata.li/" title="リヒテンシュタインの歩き方 - 街・観光・ホテル・レストラン情報、リヒテンシュタインの総合ポータル"&gt;リヒテンシュタインの歩き方&lt;/a&gt;&lt;/cite&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-84254260690702919?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/84254260690702919/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=84254260690702919' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/84254260690702919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/84254260690702919'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/10/xoops.html' title='【XOOPS】グルメなどリンク集サイトを運営するためのモジュール'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-2458527044622903849</id><published>2009-10-16T15:43:00.004+09:00</published><updated>2009-10-16T16:13:39.480+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='オープンソース'/><title type='text'>【EC-CUBE】“商品ごと”や“重量別”など送料カスタマイズ</title><content type='html'>&lt;p&gt;EC-CUBEには商品ごとの送料設定の項目が中途半端に実装されており、コメントアウトされているとのこと（管理画面のパラメータに設定するところはある）。&lt;br /&gt;
それを使用する。&lt;/p&gt;
&lt;p&gt;『商品送料』の項目は『商品管理』にはデフォルトで存在しないので、リンクの「EC-CUBE Trac」を順番に実装にしてから、その他リンクを参考に。&lt;br /&gt;
「チェンジセット 17970」には誤りがあるので「チェンジセット 18114」を参考に修正。&lt;br /&gt;
「data/class/helper/SC_Helper_DB.php」や「data/class_extends/helper_extends/SC_Helper_DB_Ex.php」を修正して送料を計算している。
&lt;/p&gt;
&lt;h4&gt;参考&lt;/h4&gt;
&lt;div&gt;&lt;cite&gt;EC-CUBE Trac&lt;/cite&gt;&lt;br /&gt;
&lt;a href="http://svn.ec-cube.net/open_trac/changeset/17970" title="チェンジセット 17970 - EC-CUBE Trac - Trac"&gt;チェンジセット 17970&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://svn.ec-cube.net/open_trac/changeset/17971" title="チェンジセット 17971 - EC-CUBE Trac - Trac"&gt;チェンジセット 17971&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://svn.ec-cube.net/open_trac/changeset/18114" title="チェンジセット 18114 - EC-CUBE Trac - Trac"&gt;チェンジセット 18114&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://seasoft.jp1.cx/ec/%E6%8B%A1%E5%BC%B5/%E9%83%BD%E9%81%93%E5%BA%9C%E7%9C%8C%E3%83%BB%E9%87%8D%E9%87%8F%E5%88%A5%E9%80%81%E6%96%99" title="都道府県・重量別送料 [EC-CUBE メモ]"&gt;都道府県・重量別送料&lt;/a&gt; - &lt;cite&gt;[EC-CUBE メモ]&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://aso-kugino.jp/shop/blog/eccube/20090726_43.html" title="送料カスタマイズ｜EC-CUBE覚え書き | あじわい館 - オンラインショップ担当日記"&gt;送料カスタマイズ｜EC-CUBE覚え書き&lt;/a&gt; - &lt;cite&gt;あじわい館 - オンラインショップ担当日記&lt;/cite&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-2458527044622903849?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/2458527044622903849/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=2458527044622903849' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/2458527044622903849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/2458527044622903849'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/10/ec-cube.html' title='【EC-CUBE】“商品ごと”や“重量別”など送料カスタマイズ'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-8979239743181516821</id><published>2009-10-08T10:32:00.005+09:00</published><updated>2009-10-08T10:39:34.373+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>【Python】外部モジュールの利用</title><content type='html'>&lt;p&gt;CGIとして使う場合。&lt;/p&gt;
&lt;h4&gt;その１&lt;/h4&gt;
&lt;p&gt;スクリプトの先頭付近で「&lt;code&gt;sys.path&lt;/code&gt;」に外部モジュールのインストール先のパスを追加してから「&lt;code&gt;import&lt;/code&gt;」する。&lt;/p&gt;
&lt;pre&gt;&lt;code title="「さくらのレンタルサーバ」で Python 外部モジュールを使う　改訂版"&gt;import sys
sys.path.append('/home/foo/lib/python')
import spam&lt;/code&gt;
…&lt;/pre&gt;
&lt;h4&gt;その２&lt;/h4&gt;
&lt;p&gt;環境変数 PYTHONPATH をセットする。&lt;/p&gt;
&lt;pre&gt;&lt;code title="「さくらのレンタルサーバ」で Python 外部モジュールを使う　改訂版"&gt;#!/usr/bin/env PYTHONPATH=/home/foo/lib/python python
import spam&lt;/code&gt;
…&lt;/pre&gt;
&lt;div&gt;&lt;a href="http://www.emptypage.jp/notes/pymods-on-sakura.html" title="「さくらのレンタルサーバ」で Python 外部モジュールを使う　改訂版"&gt;「さくらのレンタルサーバ」で Python 外部モジュールを使う　改訂版&lt;/a&gt; - &lt;cite&gt;&lt;/cite&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-8979239743181516821?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/8979239743181516821/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=8979239743181516821' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/8979239743181516821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/8979239743181516821'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/10/python.html' title='【Python】外部モジュールの利用'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-4026285723416325900</id><published>2009-10-08T09:41:00.004+09:00</published><updated>2009-10-08T10:31:15.462+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UTF-8'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>【Python】『UnicodeEncodeError』とUnicode型について【Unicode】</title><content type='html'>&lt;pre&gt;&lt;samp&gt;UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)&lt;/samp&gt;&lt;/pre&gt;
&lt;blockquote cite="http://lab.hde.co.jp/2008/08/pythonunicodeencodeerror.html" title="PythonのUnicodeEncodeErrorを知る - HDEラボ"&gt;これは、（unicode型である）u1と比較するために、（str型である）s1を文字コード'ascii'でデコードしてunicode型にしようとしたのですが、できませんでした、というエラー&lt;/blockquote&gt;
&lt;p&gt;以下のコードはUnicode型を宣言するものであって文字コードがUTF-8ではない。&lt;/p&gt;
&lt;pre&gt;/* Unicode型変換 */
&lt;code&gt;u'テスト'&lt;/code&gt;
&lt;code&gt;unicode(s1)&lt;/code&gt;
 // システムのデフォルト文字コード（ascii）になる
&lt;/pre&gt;
&lt;p&gt;文字コードを変換するならば次の様にする。&lt;/p&gt;
&lt;pre&gt;/* str型の変数を文字コードUTF-8に変換 */
&lt;code&gt;s1.encode('utf_8')&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;UTF-8にする場合は次のように明記する。&lt;/p&gt;
&lt;pre&gt;/* 文字コードがUTF-8のUnicode型に変換 */
&lt;code&gt;unicode(s1, 'utf_8')&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;unicode型を使わずに、str型に特定の文字コードのバイト列を格納してプログラムを書くことも可能だが、どの変数にどの文字コード列が格納されているのかを常に意識しなければならない。&lt;/p&gt;
&lt;pre title="PythonのUnicodeEncodeErrorを知る - HDEラボ"&gt;/* 文字コードによるバイト列の違いとUnicode型 */
# EUC-JPなソースコードでは
&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; len(&amp;quot;あ&amp;quot;)&lt;/code&gt;
&lt;samp&gt;2&lt;/samp&gt;
# UTF-8なソースコードでは
&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; len(&amp;quot;あ&amp;quot;)&lt;/code&gt;
&lt;samp&gt;3&lt;/samp&gt;
# unicode型なら
&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; len(u&amp;quot;あ&amp;quot;)&lt;/code&gt;
&lt;samp&gt;1&lt;/samp&gt;
&lt;/pre&gt;
&lt;p&gt;他にも正規表現の扱いや、文字コードの誤認識によるセキュリティなども気をつけなければならない。&lt;br /&gt;
Pythonでは国際化されているライブラリやアプリケーション等では、unicode型での入出力を前提にしている。&lt;/p&gt;
&lt;blockquote cite="http://lab.hde.co.jp/2008/08/pythonunicodeencodeerror.html" title="PythonのUnicodeEncodeErrorを知る - HDEラボ"&gt;入力された文字列はなるべく早い段階でunicode型に変換し、その文字列は出力されるぎりぎりまでunicode型で保持するようにこころがけ、上記のような暗黙に変換されるような処理を書かないよう工夫するのがベストだと私は思います。&lt;/blockquote&gt;
&lt;p&gt;詳しいことは以下を参考。よくあるはまりどころと解決策が載っている。&lt;/p&gt;
&lt;h4&gt;参考&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://lab.hde.co.jp/2008/08/pythonunicodeencodeerror.html" title="PythonのUnicodeEncodeErrorを知る - HDEラボ"&gt;PythonのUnicodeEncodeErrorを知る&lt;/a&gt; - &lt;cite&gt;HDEラボ&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/SumiTomohiko/20070120/1169300624" title="[Python] UnicodeEncodeErrorが発生した場合は、sitecustomize.pyでデフォルトのエンコーディングを指定する。 - SumiTomohikoの日記"&gt;UnicodeEncodeErrorが発生した場合は、sitecustomize.pyでデフォルトのエンコーディングを指定する。&lt;/a&gt; - &lt;cite&gt;SumiTomohikoの日記&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://weekbuild.blog39.fc2.com/blog-entry-27.html" title="WeekBuildのHACK日記 UnicodeとUTF-8の違い"&gt;UnicodeとUTF-8の違い&lt;/a&gt; - &lt;cite&gt;WeekBuildのHACK日記&lt;/cite&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-4026285723416325900?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/4026285723416325900/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=4026285723416325900' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/4026285723416325900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/4026285723416325900'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/10/pythonunicodeencodeerrorunicodeunicode.html' title='【Python】『UnicodeEncodeError』とUnicode型について【Unicode】'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-5693730722086140750</id><published>2009-09-14T15:19:00.001+09:00</published><updated>2009-09-14T15:22:43.490+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>【ActionScript】アニメーション・メモ</title><content type='html'>&lt;div&gt;&lt;a href="http://blog.garden-place.jp/oborobeer/item_176.html" title="Web　酒　肴 - Flex入門者がアニメーションを基礎から説明してみる #1"&gt;Flex入門者がアニメーションを基礎から説明してみる #1&lt;/a&gt; - &lt;cite&gt;Web　酒　肴&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/haru-komugi/20090420/1240167959" title="画像をバラバラに分解してアニメーション - PHP,MySQL,Flexな日々＋イラストとか"&gt;画像をバラバラに分解してアニメーションComments&lt;/a&gt; - &lt;cite&gt;PHP,MySQL,Flexな日々＋イラストとか&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://katapad.com/wp/2009/04/17/nice_loade/" title="超便利なローダーBulkLoaderの落とし穴にハマってきました | Katapad Design"&gt;超便利なローダーBulkLoaderの落とし穴にハマってきました&lt;/a&gt; - &lt;cite&gt;Katapad Design&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.scratchbrain.net/blog/ver2/entries/000420.html" title="BulkLoaderクラスの使い方 | (SCRATCHBRAIN.BLOG v2)"&gt;BulkLoaderクラスの使い方&lt;/a&gt; - &lt;cite&gt;SCRATCHBRAIN.BLOG v2&lt;/cite&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-5693730722086140750?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/5693730722086140750/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=5693730722086140750' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5693730722086140750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5693730722086140750'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/09/actionscript.html' title='【ActionScript】アニメーション・メモ'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-2259591269229278122</id><published>2009-09-14T15:15:00.000+09:00</published><updated>2009-09-14T15:17:52.711+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='オープンソース'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Flash Developのカスタマイズ・メモ</title><content type='html'>&lt;div&gt;&lt;a href="http://level0.kayac.com/2008/11/flashdevelop_custom.php" title="7つのステップで完成！FlashDevelopカスタマイズの奥義 | エントリー | _level0.KAYAC"&gt;7つのステップで完成！FlashDevelopカスタマイズの奥義&lt;/a&gt; - &lt;cite&gt;_level0.KAYAC&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://level0.kayac.com/2008/11/flashdevelop_plugin1.php" title="FlashDevelopのプラグインをいろいろ試してみた！ | エントリー | _level0.KAYAC"&gt;FlashDevelopのプラグインをいろいろ試してみた！&lt;/a&gt; - &lt;cite&gt;_level0.KAYAC&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://mtl.recruit.co.jp/blog/2008/11/flashdevelopswc.html" title="FlashDevelopでswcファイルを使う時の設定方法 : Media Technology Labs (MTL) : メディアテクノロジーラボ　ブログ"&gt;FlashDevelopでswcファイルを使う時の設定方法&lt;/a&gt; - &lt;cite&gt;Media Technology Labs (MTL) : メディアテクノロジーラボ　ブログ&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://cs3book.flashoop.jp/wiki/index.php?Flash%20Develop%20%2B%20CS3" title="Flash Develop + CS3 - Flash OOP Japan"&gt;Flash CS3 と FlashDevelop3 による開発&lt;/a&gt; - &lt;cite&gt;Flash OOP Japan&lt;/cite&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-2259591269229278122?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/2259591269229278122/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=2259591269229278122' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/2259591269229278122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/2259591269229278122'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/09/flash-develop.html' title='Flash Developのカスタマイズ・メモ'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-526013509551184995</id><published>2009-09-11T14:17:00.002+09:00</published><updated>2009-09-11T14:22:17.289+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='オープンソース'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>FlashDevelopでProgressionを使うメモ</title><content type='html'>&lt;div&gt;&lt;cite&gt;&lt;a href="http://progression.jp/ja/" title="Progression - Framework for Flash"&gt;Progression&lt;/a&gt;&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://plug.heteml.jp/motulog/2008/12/progression308.html" title="Progression(3.0.8) 基本サンプル - MotuLog"&gt;Progression(3.0.8) 基本サンプル&lt;/a&gt; - &lt;cite&gt;MotuLog&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://gihyo.jp/dev/feature/01/progression" title="特集：Flashのフレームワーク「Progression3」を始めてみよう！｜gihyo.jp … 技術評論社"&gt;Flashのフレームワーク「Progression3」を始めてみよう！&lt;/a&gt; - &lt;cite&gt;gihyo.jp … 技術評論社&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://blog.tarotaro.org/archives/45" title="タロタローグ ブログ | Progression Frameworkを、FlashDevelopだけで使ってしまおうと言う挑戦。"&gt;Progression Frameworkを、FlashDevelopだけで使ってしまおうと言う挑戦。&lt;/a&gt; - &lt;cite&gt;タロタローグ ブログ&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.northprint.net/2008/11/flashcs3progression.html" title="FlashCS3を使わないProgressionの環境を作成する - Is It So Easy?"&gt;FlashCS3を使わないProgressionの環境を作成する&lt;/a&gt; - &lt;cite&gt;Is It So Easy?&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://blog.seyself.com/2008/09/post_2008090511.html" title="Progression3プロジェクトテンプレートを正式リリースにあわせて変更しました - blog.seyself.com"&gt;Progression3プロジェクトテンプレートを正式リリースにあわせて変更しました&lt;/a&gt; - &lt;cite&gt;blog.seyself.com&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://minomix.net/blog/2008/09/12/97/" title="minomix blog » ProgressionのテンプレートファイルをFlashDevelopに組み込んでみた"&gt;ProgressionのテンプレートファイルをFlashDevelopに組み込んでみた&lt;/a&gt; - &lt;cite&gt;minomix blog&lt;/cite&gt;&lt;/div&gt;
&lt;h4&gt;関連&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://saboten009.blogspot.com/2009/09/flash-developflex-4-sdk.html" title="さぼてん: Flash DevelopとFlex 4 SDKをインストール"&gt;Flash DevelopとFlex 4 SDKをインストール&lt;/a&gt; - &lt;cite&gt;さぼてん&lt;/cite&gt;：2009年9月11日&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-526013509551184995?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/526013509551184995/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=526013509551184995' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/526013509551184995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/526013509551184995'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/09/flashdevelopprogression.html' title='FlashDevelopでProgressionを使うメモ'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-2945790791824333879</id><published>2009-09-11T13:48:00.003+09:00</published><updated>2009-09-12T12:18:51.896+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='オープンソース'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Flash DevelopとFlex 4 SDKをインストール(※追記：日本語化)</title><content type='html'>&lt;h4&gt;参考&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/ActionScript/20090320/fd_flex4_sdk_trace" title="FlashDevelopの使い方 (5)Flex 4 SDKでtraceを表示する [改訂版] - 独学ActionScript"&gt;FlashDevelopの使い方 (5)Flex 4 SDKでtraceを表示する [改訂版]&lt;/a&gt; - &lt;cite&gt;独学ActionScript&lt;/cite&gt;&lt;/div&gt;
&lt;h4&gt;インストールするもの&lt;/h4&gt;
&lt;p&gt;順番にインストール。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://msdn.microsoft.com/ja-jp/netframework/cc807036.aspx" title=".NET Framework Developer Center: ダウンロード"&gt;.NET Framework Developer Center: ダウンロード&lt;/a&gt; - &lt;cite&gt;.NET Framework デベロッパー センター&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.java.com/ja/download/" title="無料 Java ソフトウェアをダウンロード - Sun Microsystems"&gt;無料 Java のダウンロード&lt;/a&gt; - &lt;cite&gt;Java.com&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+4" title="Download Flex 4 - Flex SDK - Confluence"&gt;Gumbo Downloads&lt;/a&gt; - &lt;cite&gt;Adobe Open Source - Confluence&lt;/cite&gt;&lt;br /&gt;
Adobe Flex SDKのFlex 4-Beta 1（現在最新：4.0.0.7219）をダウンロード。&lt;br /&gt;
ファイルを任意の場所に（「C:\flex_sdk_4」など）解凍する。&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.flashdevelop.org/community/viewtopic.php?f=11&amp;amp;t=5339" title="FlashDevelop.org - View topic - FlashDevelop 3.0.3 RTM released"&gt;FlashDevelop 3.0.3 RTM released&lt;/a&gt; - &lt;cite&gt;FlashDevelop.org&lt;/cite&gt;&lt;/div&gt;
&lt;h4&gt;セットアップ&lt;/h4&gt;
&lt;p&gt;
インストールが終わったらFlashDevelopを起動してメニューから「Tools -&amp;gt; Program Settings」を開く。&lt;br /&gt;
左側の項目から「AS3Context」を選択し「Flex SDK Location」という項目にFlex 4 SDKのディレクトリ・パスを指定する。ここでは「 C:\flex_sdk_4」。
&lt;/p&gt;
&lt;p&gt;
続いて、左側の項目から「FlashViewer」を選択し「External Player Path」という項目に「C:\[Flex 4 SDKフォルダ]\runtimes\player\10\win\」にあるFlashPlayer.exeを指定する。ここでは「 C:\flex_sdk_4\runtimes\player\10\win\FlashPlayer.exe」。
&lt;/p&gt;
&lt;p&gt;完了。&lt;/p&gt;
&lt;h4&gt;テスト&lt;/h4&gt;
&lt;p&gt;リンク先には「&lt;code&gt;trace()&lt;/code&gt;」のテストがあるので参考に。&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;&lt;a href="http://progression.jp/ja/" title="Progression - Framework for Flash"&gt;Progression&lt;/a&gt;が使って見たかったので、後で入れる。&lt;/p&gt;
&lt;ins datetime="2009-09-12T12::18+09:00"&gt;
&lt;strong&gt;※追記：日本語化（2009年9月12日）&lt;/strong&gt;&lt;br /&gt;
&lt;div&gt;&lt;a href="http://www.logicalyze.net/blog/?p=2782" title="FlashDevelop 3.0.3RTMの日本語化ファイル | logicalyze::blog"&gt;FlashDevelop 3.0.3RTMの日本語化ファイル&lt;/a&gt; - &lt;cite&gt;logicalyze::blog&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;「FlashDevelop 3.0.3 RTMメニュー日本語化ファイル」をダウンロードして中のファイルを「C:\Documents and Settings\[ユーザ名]\Local Settings\Application Data/Settings/」に配置してFlashDevelopを再起動。&lt;br /&gt;
ファイル以下。
&lt;/p&gt;
&lt;pre&gt;/* 日本語化ファイル */
MainMenu.xml　（メインメニュー）
ScintillaMenu.xml　（ソースファイル内での右クリックメニュー）
TabMenu.xml　（タブでの右クリックメニュー）
ToolBar.xml　（メニュー下のアイコンにカーソルオーバーしたときのチップス表示）
&lt;/pre&gt;
&lt;p&gt;
これらを、FlashDevelopのメニューから「Tool -&amp;gt; Application Files」を選択するとエクスプローラが開くので、そこのディレクトリ「Settings/」に置く。
&lt;/p&gt;
&lt;/ins&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-2945790791824333879?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/2945790791824333879/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=2945790791824333879' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/2945790791824333879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/2945790791824333879'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/09/flash-developflex-4-sdk.html' title='Flash DevelopとFlex 4 SDKをインストール(※追記：日本語化)'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-189639267783396368</id><published>2009-08-17T10:07:00.003+09:00</published><updated>2010-10-13T11:50:25.612+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WordPress'/><title type='text'>WordPerss 2.8＋XREAでの管理画面レイアウト崩れの事</title><content type='html'>&lt;p&gt;
XREAやCoreServerで発生する、PHP-CGIモードの副作用。「header()」を使ってる為、CSSを読み込めない様。&lt;br /&gt;
なので、CGIモードの動作を限定的にする。&lt;br /&gt;
また、2.8以降でスクリプト処理のスピードを向上させた代わりにメモリ使用量が増え、CGIモードではメモリ不足になり正常に作動しなくなることも一因である。&lt;br /&gt;
これを「wp-config.php」で無効にする。&lt;br /&gt;
以下が設定の全てである。
&lt;/p&gt;
&lt;h4&gt;.htaccess&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://wpdocs.sourceforge.jp/%E3%82%BB%E3%83%BC%E3%83%95%E3%83%A2%E3%83%BC%E3%83%89%E3%81%AB%E3%82%88%E3%82%8B%E5%88%B6%E9%99%90%E3%81%A8%E5%AF%BE%E5%87%A6%E6%96%B9%E6%B3%95#XREA.E3.83.BBCORESERVER.JP_.E3.81.AB.E3.81.A6_CGI.E3.83.A2.E3.83.BC.E3.83.89.E3.81.A7.E5.8B.95.E3.81.8B.E3.81.99.E5.A0.B4.E5.90.88.EF.BC.88.E3.81.BE.E3.81.A8.E3.82.81.EF.BC.89" title="セーフモードによる制限と対処方法 - WordPress Codex 日本語版"&gt;XREA・CORESERVER.JP にて CGIモードで動かす場合（まとめ）&lt;/a&gt; - &lt;cite&gt;WordPress Codex 日本語版&lt;/cite&gt;&lt;/div&gt;
&lt;pre&gt;/* XREAサーバでWPディレクトリ内に配置する「.htaccess」 */
&lt;code title="セーフモードによる制限と対処方法 - WordPress Codex 日本語版"&gt;
&amp;lt;files async-upload.php&amp;gt;
AddHandler application/x-httpd-phpcgi .php
&amp;lt;/files&amp;gt;
&amp;lt;Files plugin-install.php&amp;gt;
AddHandler application/x-httpd-phpcgi .php
&amp;lt;/Files&amp;gt;
&amp;lt;Files update.php&amp;gt;
AddHandler application/x-httpd-phpcgi .php
&amp;lt;/Files&amp;gt;
&amp;lt;Files update-core.php&amp;gt;
AddHandler application/x-httpd-phpcgi .php
&amp;lt;/Files&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;wp-config.php&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://mage8.com/wordpress.html#safemode" title="WordPressをxreaにインストールする"&gt;セーフモード対策&lt;/a&gt; - &lt;cite&gt;WordPressをxreaにインストールする&lt;/cite&gt;&lt;/div&gt;
&lt;pre&gt;/* wp-config.php */
&lt;code title="WordPressをxreaにインストールする"&gt;define( 'CONCATENATE_SCRIPTS', false );&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
この「.htaccess」は、以前紹介した&lt;a href="http://saboten009.blogspot.com/2009/08/xreaphpcgihtaccesswordpress.html" title="さぼてん: 【XREA】PHPを個別にCGIモードで動作させ高速化する為の「.htaccess」【WordPress】"&gt;PHPを個別にCGIモードで動作させ高速化する為の「.htaccess」&lt;/a&gt;と共通部が多いのでそちらを採用。
&lt;/p&gt;
&lt;p&gt;
調べるに、「.htaccess」の方はすぐ見付かったがレイアウト崩れは解消されなかった。CGIモードのメモリ不足はレアケースなのだろうか。プラグインなどにも依存するのだろうか。
&lt;/p&gt;
&lt;h4&gt;参考&lt;/h4&gt;
&lt;del datetime="2010-10-13T11:50:00+09:00"&gt;&lt;div&gt;&lt;a href="http://www.djcom.jp/1671.html" title="xreaでWordPressを利用する時の.htaccess記述例 |デジコム"&gt;xreaでWordPressを利用する時の.htaccess記述例&lt;/a&gt; - &lt;cite&gt;デジコム&lt;/cite&gt;&lt;/div&gt;&lt;/del&gt;&lt;ins datetime="2010-10-13T11:50:00+09:00"&gt;※リンク切れ&lt;/ins&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-189639267783396368?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/189639267783396368/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=189639267783396368' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/189639267783396368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/189639267783396368'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/08/wordperss-28xrea.html' title='WordPerss 2.8＋XREAでの管理画面レイアウト崩れの事'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-6647987826667520512</id><published>2009-08-11T15:16:00.005+09:00</published><updated>2009-08-11T16:05:40.417+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>【PHP】cURLでCookieとかSSLサイトにログインや投稿</title><content type='html'>&lt;p&gt;
結論から言うと、自分がやりたいことは出来ませんでしたよー。&lt;br /&gt;
SSL領域のユーザ画面にログインして編集するのが目的だったが、取得できたページ内容はサイトの表示するエラーページだった。
USER_AGENT設定してみたりしたが、携帯アクセス禁止のサイトだからユーザのIPアドレスで振り分けてるのだろうか。&lt;br /&gt;
手詰まり。
&lt;/p&gt;
&lt;p&gt;以下の設定をつけるとSSLサイトでもいけるようだ。&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);&lt;/code&gt; // サーバ証明書検証をスキップ
&lt;code&gt;curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);&lt;/code&gt; // サーバ証明書検証をスキップ&lt;/pre&gt;
&lt;p&gt;OpenSSLが有効になってる必要があるらしいので&lt;code&gt;phpinfo()&lt;/code&gt;でパスが通ってるか確認。（XREAレンタルサーバは使える）&lt;/p&gt;
&lt;p&gt;Cookieを使ってログイン認証をしている場合は以下のような感じで出来たはず。&lt;/p&gt;
&lt;pre&gt;/* Cookie を使ったログイン認証 - ログイン*/
  &lt;code&gt;$params = array('user' =&amp;gt; 'UserName', 'password' =&amp;gt; 'pass0123');

  $fp = fopen("tmp", "w");
  $ch = curl_init("https://example.com");
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie");
  curl_setopt($ch, CURLOPT_POST, TRUE);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
  curl_setopt($ch, CURLOPT_WRITEHEADER, $fp);  
  $output = curl_exec($ch);
  fclose($fp);
  print_r(curl_getinfo($ch));
  curl_close($ch);

  print "CURL OUTPUT:\n{$output}\n";
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;ログイン後のページにPOST。&lt;/p&gt;
&lt;pre&gt;/* Cookie を使ったログイン認証 - 投稿 */
  &lt;code&gt;$params = array('title' =&amp;gt; 'Test', 'text' =&gt; 'Hello!');

  $ch = curl_init("https://example.com");
  curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
  curl_setopt($ch, CURLOPT_HEADER, TRUE);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  curl_setopt($ch, CURLOPT_COOKIEFILE, "tmp");
  curl_setopt($ch, CURLOPT_POST, TRUE);
  $output = curl_exec($ch);
  print_r(curl_getinfo($ch));
  curl_close($ch);
  print "CURL OUTPUT:\n{$output}\n"; &lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;「tmp」ファイルにCookieの内容が書き込まれる。セーフモードの場合は事前に作成して権限変更する。&lt;/p&gt;
&lt;pre&gt;/* その他cURLのオプション */
  &lt;code&gt;curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);&lt;/code&gt; // サーバが HTTP ヘッダの一部として送ってくる "Location: " ヘッダの内容をたどる
  &lt;code&gt;curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);&lt;/code&gt; // HTTP リクエストで使用される "User-Agent: "  ヘッダの内容。
  &lt;code&gt;curl_setopt($ch, CURLOPT_REFERER, 'http://example.com/');&lt;/code&gt; // HTTP リクエストで使用される "Referer: "  ヘッダの内容
&lt;/pre&gt;
&lt;h4&gt;参考&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://100rings.blogspot.com/2008/10/curlssl-sample.html" title="rings100's プログラミング: curlによるSSL sample"&gt;curlによるSSL sample&lt;/a&gt; - &lt;cite&gt;rings100's プログラミング&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.pahoo.org/e-soul/webtech/phpsec/phpsec-05-01.shtm" title="PHPセキュリティ対策：SSL通信を行う - ぱふぅ家のホームページ"&gt;PHPセキュリティ対策：SSL通信を行う&lt;/a&gt; - &lt;cite&gt;ぱふぅ家のホームページ&lt;/cite&gt;&lt;/div&gt;
&lt;h4&gt;関連&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://saboten009.blogspot.com/2009/03/apiwassr-apiphp.html" title="さぼてん: 【API】Wassr APIをPHPから"&gt;Wassr APIをPHPから&lt;/a&gt; - &lt;cite&gt;さぼてん&lt;/cite&gt;：2009年3月27日&lt;/div&gt;
&lt;div&gt;&lt;a href="http://saboten009.blogspot.com/2008/08/phpperl.html" title="さぼてん: 【PHP】クローラのためのライブラリ(追記:2008/08/21)【Perl】"&gt;クローラのためのライブラリ&lt;/a&gt; - &lt;cite&gt;さぼてん&lt;/cite&gt;：2008年8月20日&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-6647987826667520512?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/6647987826667520512/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=6647987826667520512' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/6647987826667520512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/6647987826667520512'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/08/phpcurlcookiessl.html' title='【PHP】cURLでCookieとかSSLサイトにログインや投稿'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-3565494073271478022</id><published>2009-08-05T17:49:00.002+09:00</published><updated>2009-08-05T17:55:53.339+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WordPress'/><title type='text'>【WordPress】カスタムフィールドを取得する関数 - get_post_meta()</title><content type='html'>&lt;pre title="カスタムフィールドを取得するWordPress関数 get_post_meta()"&gt;/* カスタムフィールドを取得する関数 get_post_meta() */
&lt;code&gt;get_post_meta($post_id, $key, $single);&lt;/code&gt;
&lt;var&gt;$post_id&lt;/var&gt;…投稿記事のID
&lt;var&gt;$key&lt;/var&gt;…カスタムフィールドで指定したキー文字列
&lt;var&gt;$single&lt;/var&gt;…&lt;var&gt;true&lt;/var&gt;：単一結果の文字列を取得 / &lt;var&gt;false&lt;/var&gt;(default)：カスタムフィールドの配列を取得&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-3565494073271478022?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/3565494073271478022/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=3565494073271478022' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/3565494073271478022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/3565494073271478022'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/08/wordpress-getpostmeta.html' title='【WordPress】カスタムフィールドを取得する関数 - get_post_meta()'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-6560774428354252470</id><published>2009-08-05T14:18:00.007+09:00</published><updated>2009-08-20T11:41:16.353+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='オープンソース'/><category scheme='http://www.blogger.com/atom/ns#' term='WordPress'/><title type='text'>【WordPress】不動産物件掲載サイトの構築（※追記）【オープンソース】</title><content type='html'>&lt;h4&gt;WordPress&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://ihouseflorida.com/?p=321" title="ワードプレス用のプラグイン | ihouseflorida.com"&gt;word press プラグイン&lt;/a&gt; - &lt;cite&gt;ihouseflorida.com&lt;/cite&gt;&lt;br /&gt;
&lt;span&gt;不動産サイトを作るプラグイン。&lt;/span&gt;&lt;br /&gt;
・&lt;a href="http://shinonon-web.net/wordpress-plugins/google-maps-for-wordpress-japanese/" title="Google Maps for WordPress日本語版 - ある日の小さなつぶやき"&gt;Google Maps for WordPress日本語版&lt;/a&gt; - &lt;cite&gt;ある日の小さなつぶやき&lt;/cite&gt;&lt;br /&gt;
・&lt;a href="http://wordpress.org/extend/plugins/dmsguestbook/" title="WordPress › DMSGuestbook « WordPress Plugins"&gt;DMSGuestbook&lt;/a&gt; - &lt;cite&gt;WordPress&lt;/cite&gt;&lt;br /&gt;
・&lt;a href="http://ideasilo.wordpress.com/2007/10/22/contact-form-7-in-japanese/" title="Contact Form 7 (日本語) « iDeasilo"&gt;Contact Form 7 (日本語)&lt;/a&gt; - &lt;cite&gt;iDeasilo&lt;/cite&gt;&lt;br /&gt;
・&lt;a href="http://wordpress.org/extend/plugins/great-real-estate/" title="WordPress › Great Real Estate « WordPress Plugins"&gt;Great Real Estate&lt;/a&gt; - &lt;cite&gt;WordPress&lt;/cite&gt;&lt;br /&gt;
&lt;span&gt;「Great Real Estate」に必要なプラグイン。&lt;/span&gt;&lt;br /&gt;
－&lt;a href="http://wordpress.org/extend/plugins/nextgen-gallery/" title="WordPress › NextGEN Gallery « WordPress Plugins"&gt;NextGEN Gallery&lt;/a&gt; - &lt;cite&gt;WordPress&lt;/cite&gt;&lt;br /&gt;
－&lt;a href="http://wordpress.org/extend/plugins/wordtube/" title="WordPress › wordTube « WordPress Plugins"&gt;wordTube&lt;/a&gt; - &lt;cite&gt;WordPress&lt;/cite&gt;&lt;br /&gt;
－&lt;a href="http://wordpress.org/extend/plugins/fpp-pano/" title="WordPress › FPP-Pano « WordPress Plugins"&gt;FPP-Pano&lt;/a&gt; - &lt;cite&gt;WordPress&lt;/cite&gt;&lt;br /&gt;
－&lt;a href="http://wordpress.org/extend/plugins/wp-downloadmanager/" title="WordPress › WP-DownloadManager « WordPress Plugins"&gt;WP-DownloadManager&lt;/a&gt; - &lt;cite&gt;WordPress&lt;/cite&gt;&lt;br /&gt;
・&lt;a href="http://wordpress.org/extend/plugins/all-in-one-seo-pack/" title="WordPress › All in One SEO Pack « WordPress Plugins"&gt;All in One SEO Pack&lt;/a&gt; - &lt;cite&gt;WordPress&lt;/cite&gt;
&lt;/div&gt;
&lt;div&gt;&lt;a href="http://ja.forums.wordpress.org/topic/1577" title="WordPress › フォーラム » 条件付検索を行うプラグイン"&gt;条件付検索を行うプラグイン&lt;/a&gt; - &lt;cite&gt;WordPress&lt;/cite&gt;&lt;/div&gt;
&lt;ins datetime="2009-08-17T13:11:00+09:00"&gt;
&lt;strong&gt;※追記:2009/08/17&lt;/strong&gt;&lt;br /&gt;
&lt;div&gt;
&lt;cite&gt;Great Real Estate&lt;/cite&gt;
∟&lt;a href="http://www.rogertheriault.com/agents/plugins/great-real-estate-plugin/" title="Great Real Estate » Great Real Estate plugin for WordPress"&gt;» WordPress Plugins » Great Real Estate plugin for WordPress  Great Real Estate plugin for WordPress&lt;/a&gt;&lt;br /&gt;
∟&lt;a href="http://www.rogertheriault.com/agents/plugins/great-real-estate-plugin/quick-start-guide/" title="Great Real Estate » Quick Start Guide"&gt;Quick Start Guide&lt;/a&gt;
&lt;/div&gt;
&lt;/ins&gt;
&lt;blockquote cite="http://ja.forums.wordpress.org/topic/1577" title="WordPress › フォーラム » 条件付検索を行うプラグイン"&gt;不動産だと複数のカスタムフィールドを検索対象にするかと思うので適さないかもしれません。&lt;br /&gt;
～(中略)～&lt;br /&gt;
WordPressの場合、検索対象のカスタムフィールドが複数ある場合、検索対象のカスタムフィールドの数の分LEFT JOINを繰り返すことになります。&lt;br /&gt;
～(中略)～&lt;br /&gt;
そのため速度や負荷の面でかなり疑問符が付くので、解決・検証に手間が掛かります。&lt;br /&gt;
～(中略)～&lt;br /&gt;
不動産モジュールの存在するXoopsを使う。どうしてもWordPressを使いたいのならば、別に不動産管理システムを作ってくっつけることを考えたほうが自分には良い気がします。
&lt;/blockquote&gt;
&lt;div&gt;&lt;a href="http://chintai-mitinoku.com/" title="気仙沼/みちのく建設・アパート＆マンション賃貸情報"&gt;&lt;cite&gt;気仙沼/みちのく建設・アパート＆マンション賃貸情報&lt;/cite&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span&gt;カスタマイズプラグインを使わないWordPressの機能だけで構築。&lt;/span&gt;&lt;/div&gt;
&lt;h4&gt;XOOPS&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://www.xoops.jp/xblog-index.page-article-storyid-514.htm" title="XOOPSでポータルサイト、コミュニティサイト、グループウェアを構築　XOOPS.JP - 不動産モジュールの作り方"&gt;不動産モジュールの作り方&lt;/a&gt; - &lt;cite&gt;XOOPS.JP&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://cosmodb.sourceforge.jp/jp/" title="CosmoDB Official"&gt;CosmoDB&lt;/a&gt; - &lt;cite&gt;CosmoDB Official&lt;/cite&gt;&lt;br /&gt;
&lt;span&gt;XOOPSモジュールCosmoDBは汎用データベースシステムで、データ項目での絞り込みなど検索機能を使って不動産DBを扱えるようカスタマイズする。&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://xoops.peak.ne.jp/modules/mydownloads/singlefile.php?cid=1&amp;amp;lid=96" title="PEAK XOOPS - pico 1.81b"&gt;pico 1.81b&lt;/a&gt; - &lt;cite&gt;PEAK XOOPS&lt;/cite&gt;&lt;br /&gt;
&lt;span&gt;静的ページコンテンツを作成するモジュール。&lt;/span&gt;
&lt;a href="http://xoops-manual.net/modules/manual2/index.php?page=article&amp;amp;storyid=13" title="XOOPSマニュアル.net - picoとは？　～インストール後～"&gt;picoとは？　～インストール後～&lt;/a&gt; - &lt;cite&gt;&lt;/cite&gt;&lt;br /&gt;
&lt;a href="http://usadeki.jp/modules/pico/index.php?content_id=32" title="うさぎにもできるXOOPS Cube入門♪ - picoって何？"&gt;picoって何？&lt;/a&gt; - &lt;cite&gt;うさぎにもできるXOOPS Cube入門♪&lt;/cite&gt;
&lt;/div&gt;
&lt;div&gt;&lt;a href="http://xoops.iko-ze.net/modules/gnavi/" title="+DA-Studio XTR - GnaviD3"&gt;GnaviD3&lt;/a&gt; - &lt;cite&gt;+DA-Studio XTR&lt;/cite&gt;&lt;br /&gt;
&lt;span&gt;GoogleMap APIをXOOPSに組み込むモジュール。GoogleMapと画像やテキスト、カテゴリの情報を組み合わせられる。(これをカスタマイズした不動産モジュールも開発中)&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://xoops.iko-ze.net/modules/d3downloads/index.php?cid=1" title="+DA-Studio XTR - GNAVI"&gt;Gnavi ダウンロード&lt;/a&gt;&lt;/div&gt;
&lt;h4&gt;CMS Drupal&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://drupal.jp/" title="≡ Drupal Japan ≡ | Drupal 日本サイト"&gt;&lt;cite&gt;Drupal（ドルーパル）公認日本サイト&lt;/cite&gt;&lt;/a&gt;&lt;br /&gt;
PHPのオープンソースのCMS。&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.cms-development.com/dp/node/52" title="新らしいコンテンツタイプの作成 | CMS、SEO、ホスティング情報など｜Drupalブック"&gt;新らしいコンテンツタイプの作成&lt;/a&gt; - &lt;cite&gt;Drupalブック&lt;/cite&gt;&lt;br /&gt;
Drupalで&lt;a href="http://drupal.org/project/cck" title="Content Construction Kit (CCK) | drupal.org"&gt;CCK&lt;/a&gt;モジュールを使って不動産DBにカスタマイズ。
&lt;/div&gt;
&lt;h4&gt;CGI AmigoDatabase&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://www.cgi-amigo.com/database.html" title="汎用データベースCGI"&gt;AmigoDatabase&lt;/a&gt; - &lt;cite&gt;CGI DE アミ～ゴ!!&lt;/cite&gt;&lt;br /&gt;
&lt;span&gt;不動産・賃貸物件で無料のCGIとしては一番カスタマイズ性や汎用性があるらしい。&lt;/span&gt;&lt;br /&gt;
・&lt;a href="http://www.core-p.com/cgi-search/amigo/" title="AmigoDatabaseカスタマイズノート"&gt;AmigoDatabaseカスタマイズノート&lt;/a&gt; - &lt;cite&gt;CGI-Search&lt;/cite&gt;
&lt;ins datetime="2009-08-20T11:40:00+09:00"&gt;
&lt;strong&gt;※追記:2009/08/20&lt;/strong&gt;&lt;br /&gt;
・&lt;a href="http://www.withyou-hp.com/" title="with_you あなたもHpを持とう"&gt;AmigoDatabase&lt;/a&gt; - &lt;cite&gt;with_you あなたもHpを持とう&lt;/cite&gt;&lt;br /&gt;
∟&lt;a href="http://www.withyou-hp.com/AmigoDatabase/0.htm"&gt;サンプル&lt;/a&gt;&lt;br /&gt;
・&lt;a href="http://www.higaitaisaku.com/amigodatabase.html" title="AmigoDatabase簡易設定法"&gt;&lt;cite&gt;AmigoDatabase簡易設定法&lt;/cite&gt;&lt;/a&gt;&lt;br /&gt;
∟&lt;a href="http://www.higaitaisaku.com/amigofiles.html" title="AmigoDatabaseの各ファイルの概略解説"&gt;AmigoDatabaseの各ファイルの概略解説&lt;/a&gt;&lt;br /&gt;
システムや変数など構成の説明があるのでカスタム時に参照。
&lt;/ins&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-6560774428354252470?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/6560774428354252470/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=6560774428354252470' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/6560774428354252470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/6560774428354252470'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/08/wordpress_05.html' title='【WordPress】不動産物件掲載サイトの構築（※追記）【オープンソース】'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-7361733738577015610</id><published>2009-08-05T12:07:00.002+09:00</published><updated>2009-08-05T12:15:49.150+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WordPress'/><title type='text'>【WordPress】カスタマイズ - データベースへアクセスする関数</title><content type='html'>&lt;p&gt;WordPressの関数を使ってDBにクエリを渡して結果を取得する。&lt;br /&gt;
テーブル「wp_test」から、カラム「test01～04」を取得。&lt;/p&gt;
&lt;pre&gt;/* DBからフィールドを取得 */
&lt;code title="CMSとしてのWordPress【WordPressカスタマイズメモ】"&gt;&amp;lt; ?php
  $sql = &amp;quot;SELECT * FROM wp_test&amp;quot;;
  $value =$wpdb-&amp;gt;get_results($sql);
  foreach($value as $data):
    echo $data-&amp;gt;test01;
    echo $data-&amp;gt;test02;
    echo $data-&amp;gt;test03;
    echo $data-&amp;gt;test04;
  endforeach;
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;WordPressに独自のテーブルを追加してカスタマイズする時なども簡単にはこれで可能。&lt;/p&gt;
&lt;h4&gt;参考&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://wordpress4cms.net/cms%E3%81%A8%E3%81%97%E3%81%A6%E3%81%AEwordpress/" title="CMSとしてのWordPress【WordPressカスタマイズメモ】"&gt;CMSとしてのWordPress&lt;/a&gt; - &lt;cite&gt;WordPressカスタマイズメモ&lt;/cite&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-7361733738577015610?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/7361733738577015610/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=7361733738577015610' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/7361733738577015610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/7361733738577015610'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/08/wordpress.html' title='【WordPress】カスタマイズ - データベースへアクセスする関数'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-4279180381647491241</id><published>2009-08-05T12:00:00.002+09:00</published><updated>2009-08-05T12:06:39.617+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WordPress'/><title type='text'>【XREA】PHPを個別にCGIモードで動作させ高速化する為の「.htaccess」【WordPress】</title><content type='html'>&lt;pre&gt;/* wp-admin/.htaccess */
&lt;code title="xreaでWordPressを利用する時の.htaccess記述例 |デジコム"&gt;
 &amp;lt;files setup-config.php&amp;gt;
 AddHandler application/x-httpd-phpcgi .php
 &amp;lt;/files&amp;gt;
 &amp;lt;files async-upload.php&amp;gt;
 AddHandler application/x-httpd-phpcgi .php
 &amp;lt;/files&amp;gt;
 &amp;lt;files update-core.php&amp;gt;
 AddHandler application/x-httpd-phpcgi .php
 &amp;lt;/files&amp;gt;
 &amp;lt;files admin.php&amp;gt;
 AddHandler application/x-httpd-phpcgi .php
 &amp;lt;/files&amp;gt;
 &amp;lt;files update.php&amp;gt;
 AddHandler application/x-httpd-phpcgi .php
 &amp;lt;/files&amp;gt;
 &amp;lt;files edit.php&amp;gt;
 AddHandler application/x-httpd-phpcgi .php
 &amp;lt;/files&amp;gt;
 &amp;lt;files plugin-install.php&amp;gt;
 AddHandler application/x-httpd-phpcgi .php
 &amp;lt;/files&amp;gt;
 &amp;lt;files plugins.php&amp;gt;
 AddHandler application/x-httpd-phpcgi .php
 &amp;lt;/files&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;参考&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://www.djcom.jp/1671.html" title="xreaでWordPressを利用する時の.htaccess記述例 |デジコム"&gt;xreaでWordPressを利用する時の.htaccess記述例&lt;/a&gt; - &lt;cite&gt;デジコム&lt;/cite&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-4279180381647491241?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/4279180381647491241/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=4279180381647491241' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/4279180381647491241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/4279180381647491241'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/08/xreaphpcgihtaccesswordpress.html' title='【XREA】PHPを個別にCGIモードで動作させ高速化する為の「.htaccess」【WordPress】'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-5658062603630342551</id><published>2009-08-03T13:20:00.002+09:00</published><updated>2009-08-03T13:37:56.796+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>【PHP】Qdmail</title><content type='html'>&lt;div&gt;&lt;a href="http://hal456.net/qdmail/" title="PHP高機能日本語メール送信ライブラリ・文字化けフリー - Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte"&gt;&lt;cite&gt;Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte&lt;/cite&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://hal456.net/qdmail/downloads" title="ダウンロードdownload - Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte"&gt;ダウンロード&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;日本語、又はそれ以外の言語のマルチバイトメール対応、携帯デコメール対応、オブジェクトによる簡単な操作、文字コード判別・MIME判定を自動で行う等々…&lt;br /&gt;
様々な機能が1つのファイルを読み込むだけで可能。各主要フレームワークにも対応。
&lt;/p&gt;


&lt;h4&gt;関連&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://www.akiyan.com/blog/archives/2009/03/qdmail-force-new-or-change-var-is_qmail.html" title="Qdmailは使うときだけnewするかvar $is_qmailを変更しよう (特にCakePHPで使う場合) : akiyan.com"&gt;Qdmailは使うときだけnewするかvar $is_qmailを変更しよう (特にCakePHPで使う場合)&lt;/a&gt; - &lt;cite&gt;akiyan.com&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://saboten009.blogspot.com/2009/07/symfony-jpsimplemailplugin.html" title="さぼてん: 【symfony】日本語メールを送信するためプラグイン - jpSimpleMailPlugin(※追記:2009/08/01)"&gt;日本語メールを送信するためプラグイン - jpSimpleMailPlugin&lt;/a&gt; - &lt;cite&gt;さぼてん&lt;/cite&gt;：2009年7月30日&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-5658062603630342551?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/5658062603630342551/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=5658062603630342551' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5658062603630342551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5658062603630342551'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/08/phpqdmail.html' title='【PHP】Qdmail'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-5301466864981199385</id><published>2009-08-01T10:46:00.003+09:00</published><updated>2009-08-01T11:03:14.612+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WordPress'/><title type='text'>【WordPress】カスタムフィールド・プラグイン - Custom Field GUI Utility</title><content type='html'>&lt;div&gt;&lt;a href="http://wpdocs.sourceforge.jp/%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9" title="カスタムフィールドの使い方 - WordPress Codex 日本語版"&gt;カスタムフィールドの使い方&lt;/a&gt; - &lt;cite&gt;WordPress Codex 日本語版&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;
カスタムフィールドとは、投稿記事に情報（メタデータ）を付加できる機能。&lt;br /&gt;
本文とは別に投稿記事に「タイトル」「URL」「評価」「コメント」「キャプチャ画像」などを登録できる。&lt;br /&gt;
これにより、投稿者が毎回レイアウトを調整することなく定型のレイアウト（テンプレート）を利用して投稿することができる。
&lt;/p&gt;
&lt;p&gt;
レシピブログやレビューブログなど役立ちそうだが、これをもっと簡単にプラグインを使って活用する。&lt;br /&gt;
&lt;/p&gt;
&lt;div&gt;&lt;a href="http://www.tinybeans.net/blog/download/wp-plugin/cfg-utility-100.html" title="Custom Field GUI Utility - WordPress プラグイン - かたつむりくんのWWW"&gt;Custom Field GUI Utility - WordPress プラグイン&lt;/a&gt; - &lt;cite&gt;かたつむりくんのWWW&lt;/cite&gt;&lt;br /&gt;
∟&lt;a href="http://www.tinybeans.net/blog/2009/07/08-055603.html" title="WordPressのカスタムフィールドで選択した大分類によって小分類の内容を変えるカスタマイズ - かたつむりくんのWWW"&gt;WordPressのカスタムフィールドで選択した大分類によって小分類の内容を変えるカスタマイズ&lt;/a&gt;&lt;br /&gt;
－カスタムフィールドにカテゴリ・サブカテゴリを追加する方法。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-5301466864981199385?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/5301466864981199385/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=5301466864981199385' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5301466864981199385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5301466864981199385'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/08/wordpress-custom-field-gui-utility.html' title='【WordPress】カスタムフィールド・プラグイン - Custom Field GUI Utility'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-2330808743827036024</id><published>2009-07-30T17:49:00.007+09:00</published><updated>2009-08-03T13:41:28.325+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Symfony'/><title type='text'>【symfony】日本語メールを送信するためプラグイン - jpSimpleMailPlugin(※追記:2009/08/01)</title><content type='html'>&lt;p&gt;どの方法が標準的なのか判らなかったので、日本人が日本語メール送れるように「jpMailPlugin」を踏まえて開発されたプラグイン「jpSimpleMailPlugin」を選択。&lt;/p&gt;
&lt;h4&gt;ソース&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://openpear.org/package/jpSimpleMailPlugin" title="jpSimpleMailPlugin - openpear"&gt;jpSimpleMailPlugin&lt;/a&gt; - &lt;cite&gt;openpear&lt;/cite&gt;&lt;/div&gt;
&lt;h4&gt;インストール&lt;/h4&gt;
&lt;pre title="jpSimpleMailPlugin - openpear"&gt;/* インストール・コマンド */
&lt;code&gt;$ ./symfony plugin:add-channel openpear.org&lt;/code&gt; // channel 登録
&lt;samp&gt;&amp;gt;&amp;gt; plugin    add channel "openpear.org"&lt;/samp&gt;
&lt;code&gt;$ ./symfony plugin:install --force-license --release=0.1.1 openpear.org/jpSimpleMailPlugin&lt;/code&gt;
&lt;samp&gt;&amp;gt;&amp;gt; plugin    installing plugin "openpear.org/jpSimpleMailPlugin"&lt;/samp&gt;
&lt;/pre&gt;
&lt;p&gt;&lt;del&gt;問題なくインストールできた。&lt;/del&gt;&lt;/p&gt;
&lt;ins datetime="2009-08-01T00:00:00+09:00" style="text-decoration:none;"&gt;
&lt;div&gt;&lt;strong style="color:#f00;"&gt;※追記：2009/08/01&lt;/strong&gt;&lt;/div&gt;
&lt;p&gt;「&lt;code&gt;symfony&lt;/code&gt;」コマンドでは取得できなかったので「&lt;code&gt;svn&lt;/code&gt;」で取得。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://blog.tic-toc.info/2008/12/04/how_to_send_email_with_jpsimplemailplugin/#more-329" title="tic-toc.info » Blog Archive » [symfony][openpear] jpSimpleMailPluginで簡単Eメール送信の巻"&gt;jpSimpleMailPluginで簡単Eメール送信の巻&lt;/a&gt; - &lt;cite&gt;tic-toc.info&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;「plugins/」ディレクトリで以下実行。&lt;/p&gt;
&lt;pre&gt;&lt;code title="tic-toc.info » Blog Archive » [symfony][openpear] jpSimpleMailPluginで簡単Eメール送信の巻"&gt;$ svn co http://svn.openpear.org/jpSimpleMailPlugin/tags/0.1.1-beta jpSimpleMailPlugin&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;symfony1.2では「sfMail」というクラスが無くなり、「PHPMail」がデフォルトで使えない上に、「setting.yml」に「&lt;code&gt;compat_10: on&lt;/code&gt;」にしないとActionから「&lt;code&gt;sendEmail()&lt;/code&gt;」が使えない様なので(&lt;a href="#link2"&gt;※&lt;/a&gt;)、この際「Qdmail」を使ってみる。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://saboten009.blogspot.com/2009/08/phpqdmail.html" title="さぼてん: 【PHP】Qdmail"&gt;Qdmail&lt;/a&gt; - &lt;cite&gt;さぼてん&lt;/cite&gt;：2009年8月3日&lt;/div&gt;
&lt;p&gt;
とりあえず呼び出すActionファイルと同じ「actions/」に置いてインクルード。
&lt;/p&gt;
&lt;pre&gt;/* apps/frontend/modules/sendmail/actions/actions.class.php */
&lt;code title="php:framework:symfony:plugin:jpsimplemailplugin [おやぢ組]"&gt;
&lt;strong&gt;include('qdmail.php');&lt;/strong&gt;
public function executeIndex(sfWebRequest $request) {
  try {
    $mailer = jpSimpleMail::create('Qdmail');

    $mailer-&amp;gt;setSubject('メール送信テストです');
    $mailer-&amp;gt;setSender('master@example.com');
    $mailer-&amp;gt;addTo(sprintf('%s &amp;lt;%s&amp;gt;', 'シンフォニー　太郎', 'symfony@example.com'));
    $mailer-&amp;gt;setFrom(sprintf('%s &amp;lt;%s&amp;gt;', '管理者', 'master@example.com'));
    // getComponentでsendmailモジュールのcreateMailBodyコンポーネントに値(name)を渡しつつ処理結果をsetBodyする
    $mailer-&amp;gt;setBody($this-&amp;gt;getComponent('sendmail', 'createMailBody', array('name' =&amp;gt; 'なまえ')));
    $rs = $mailer-&amp;gt;send();
  } catch (jpSendMailException $e) {
    // エラーの場合の処理
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;コンポーネント。「actions/」ディレクトリに作成。&lt;/p&gt;
&lt;pre&gt;/* apps/frontend/modules/sendmail/actions/components.class.php */
&lt;code title="php:framework:symfony:plugin:jpsimplemailplugin [おやぢ組]"&gt;
&amp;lt;?php class sendmailComponents extends sfComponents {
  public function executeCreateMailBody($request) {
    // ここで本文を作成するのに必要なロジックをコーディングする
    $this-&amp;gt;url = &amp;quot;http://www.example.com/&amp;quot;;
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;メール本文のテンプレート。&lt;/p&gt;
&lt;pre title="php:framework:symfony:plugin:jpsimplemailplugin [おやぢ組]"&gt;/* apps/frontend/modules/sendmail/templates/_createMailBody.php */
&lt;code&gt;&amp;lt;?php echo $name ?&amp;gt;&lt;/code&gt;
 ------------------
 テストです。
 どうでしょうか？
&lt;code&gt;&amp;lt;?php echo $url ?&amp;gt;&lt;/code&gt;
 -----&lt;/pre&gt;
&lt;p&gt;「qdmail.php」はどこに配置するのが良いのか。&lt;br /&gt;
コンポーネントにはどんな処理を担当させれば良いのか。
&lt;/p&gt;
&lt;/ins&gt;
&lt;h4&gt;参考&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://develop.ddo.jp/new-tech/php/framework/symfony/plugin/jpsimplemailplugin#%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%96%B9%E6%B3%95" title="php:framework:symfony:plugin:jpsimplemailplugin [おやぢ組]"&gt;jpSimpleMailPlugin&lt;/a&gt; - &lt;cite&gt;おやぢ組&lt;/cite&gt;&lt;/div&gt;
&lt;h4&gt;関連&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/zizizi/20090121/1232514235" title="メールを送るとなぜかOutlook系のメーラーでサブジェクトが文字化ける件 - 30歳の遺書"&gt;メールを送るとなぜかOutlook系のメーラーでサブジェクトが文字化ける件&lt;/a&gt; - &lt;cite&gt;30歳の遺書&lt;/cite&gt;&lt;/div&gt;
&lt;blockquote cite="http://d.hatena.ne.jp/zizizi/20090121/1232514235" title="メールを送るとなぜかOutlook系のメーラーでサブジェクトが文字化ける件 - 30歳の遺書"&gt;jpSimpleMailPluginというプラグイン～(中略)～早速インストールしてみたんだけど、まだ文字化けが続く。&lt;br /&gt;メールのヘッダを見ると、どうやらエンコーディングを二回やってしまっているらしい。&lt;/blockquote&gt;
&lt;div id="link2"&gt;&lt;a href="http://d.hatena.ne.jp/innx_hidenori/20090102/1230926208" title="symfony1.2では、standard_helpers設定はデフォルトで無効 - iNNX Life - real side"&gt;symfony1.2では、standard_helpers設定はデフォルトで無効&lt;/a&gt; - &lt;cite&gt;iNNX Life - real side&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://saboten009.blogspot.com/2009/07/symfony.html" title="さぼてん: 【symfony】メール送信"&gt;メール送信&lt;/a&gt; - &lt;cite&gt;さぼてん&lt;/cite&gt;(2009/07/27)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-2330808743827036024?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/2330808743827036024/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=2330808743827036024' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/2330808743827036024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/2330808743827036024'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/07/symfony-jpsimplemailplugin.html' title='【symfony】日本語メールを送信するためプラグイン - jpSimpleMailPlugin(※追記:2009/08/01)'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-5642006766264588145</id><published>2009-07-30T16:02:00.000+09:00</published><updated>2009-07-30T16:04:48.903+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Symfony'/><title type='text'>【symfony】サンプルサイト - TinyURL</title><content type='html'>&lt;div&gt;&lt;a href="http://pixiv.cc/mix3/archives/51286869.html" title="おっと萌えキャラの悪口はそこまでだ : symfonyでTinyURLを作ってみた"&gt;symfonyでTinyURLを作ってみた&lt;/a&gt; - &lt;cite&gt;おっと萌えキャラの悪口はそこまでだ&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;
ソースが全て公開している、デモサイトもある。
&lt;/p&gt;
&lt;p&gt;どんどん開発例が増えていくと良いよね。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-5642006766264588145?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/5642006766264588145/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=5642006766264588145' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5642006766264588145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5642006766264588145'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/07/symfony-tinyurl.html' title='【symfony】サンプルサイト - TinyURL'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-8259146537450696797</id><published>2009-07-30T14:53:00.008+09:00</published><updated>2009-07-30T15:44:26.656+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Symfony'/><title type='text'>【symfony】_csrf_tokenとsetWidgets()</title><content type='html'>&lt;p&gt;嵌ったので記録。&lt;/p&gt;
&lt;p&gt;フォームでカラム「user_id」を「&lt;code&gt;setWidgets()&lt;/code&gt;」で「hidden」にした。&lt;/p&gt;
&lt;pre&gt;/* lib/form/doctrine/MyModuleForm.class.php 修正前 */
&lt;code&gt;class MyModuleForm extends MyModuleForm
{
  public function configure()
  {
    $this-&amp;gt;setWidgets(array(
      'user_id' =&amp;gt; new sfWidgetFormInputHidden(),
      'name' =&amp;gt; new sfWidgetFormInput(),
      'email' =&amp;gt; new sfWidgetFormInput(),
    ));
    ～(略)～
   }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
そしたらフォームの値が上手く渡らなくなった。空っぽ。「&lt;var&gt;$request&lt;/var&gt;」にはあるのに「&lt;var&gt;$form&lt;/var&gt;」に渡ってない、validationで全部「&lt;samp&gt;Required&lt;/samp&gt;」エラー。ＣＳＲＦトークンまでエラーが出た。&lt;br /&gt;
Actionの書き方が悪いのか「&lt;code&gt;processForm()&lt;/code&gt;」か、テンプレートか「routing.yml」かとあれこれ四苦八苦。&lt;br /&gt;
次の様に修正。
&lt;/p&gt;
&lt;pre&gt;/* lib/form/doctrine/MyModuleForm.class.php 修正後 */
&lt;code&gt;class MyModuleForm extends MyModuleForm
{
  public function configure()
  {
    &lt;strong&gt;$this-&amp;gt;widgetSchema['user_id'] = new sfWidgetFormInputHidden();
    $this-&amp;gt;widgetSchema['name'] = new sfWidgetFormInput();
    $this-&amp;gt;widgetSchema['email'] = new sfWidgetFormInput();&lt;/strong&gt;

    ～(略)～
   }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
「&lt;code&gt;setWidgets()&lt;/code&gt;」に記述してないフォームはリセットされるからだと思う。&lt;br /&gt;
「&lt;code&gt;setWidgets()&lt;/code&gt;」でフォーム要素のWidgetを定義がないカラムは、フォーム画面で存在しないので気付くのだが、CSRFトークンは「&lt;code&gt;&amp;lt;input name="my_module[_csrf_token]" type="hidden" &amp;gt;&lt;/code&gt;」としてあったのでこのような事態に陥ってしまった。&lt;br /&gt;
自動の便利なヘルパーに足元を掬われた様な。
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-8259146537450696797?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/8259146537450696797/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=8259146537450696797' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/8259146537450696797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/8259146537450696797'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/07/symfonycsrftokensetwidgets.html' title='【symfony】_csrf_tokenとsetWidgets()'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-3700734704784547158</id><published>2009-07-27T17:09:00.003+09:00</published><updated>2009-07-27T17:45:58.560+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Symfony'/><title type='text'>【symfony】メール送信</title><content type='html'>&lt;div&gt;
&lt;h4&gt;Qdmail&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://hal456.net/qdmail/symfony" title="Symfonyで日本語メール送信(携帯デコメもOK) - Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte"&gt;Symfonyで日本語メール送信(携帯デコメもOK)&lt;/a&gt; - &lt;cite&gt;PHP::Mail Library , Quick and Detailed for Multibyte&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;携帯デコメ、添付ファイル、HTMLメールが簡単に扱えるQdmailの使い方。&lt;br /&gt;symfony 1.1.3から対応。&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h4&gt;sfMailView&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://blog.symfony.jp/2007/08/01/125" title="スマートなメールの送りかた « symfonyで開発日記"&gt;スマートなメールの送りかた&lt;/a&gt; - &lt;cite&gt;symfonyで開発日記&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;symfonyのアプリケーションからメールを送信する時、本文をテンプレートに書くsfMailViewの使い方と、メールアプリケーションのテストに便利なsfEmailプラグイン。&lt;br /&gt;
&lt;q cite="http://blog.symfony.jp/2007/08/01/125" title="スマートなメールの送りかた « symfonyで開発日記"&gt;sfEmailプラグインを使うと、prod環境以外ではメールを送らずウェブの画面で送信したメールを確認する事ができる&lt;/q&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h4&gt;jpMailPlugin&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://blog.asial.co.jp/425" title="symfonyのjpMailPlugin（メール送信プラグイン）の使い方のまとめ : アシアルブログ"&gt;symfonyのjpMailPlugin（メール送信プラグイン）の使い方のまとめ&lt;/a&gt; - &lt;cite&gt;アシアルブログ&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/brtRiver/20081126/1227701018" title="jpMailPluginをsymfony1.1以降で使う場合 - ぷぎがぽぎ"&gt;jpMailPluginをsymfony1.1以降で使う場合&lt;/a&gt; - &lt;cite&gt;ぷぎがぽぎ&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;1.1以降で使うための作業。&lt;br /&gt;
※簡単に使えるように開発したのが&lt;strong&gt;jpMailPlugin&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h4&gt;jpMailPlugin&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://openpear.org/package/jpSimpleMailPlugin" title="jpSimpleMailPlugin - openpear"&gt;jpSimpleMailPlugin&lt;/a&gt; - &lt;cite&gt;openpear&lt;/cite&gt;&lt;br /&gt;
∟&lt;a href="http://d.hatena.ne.jp/brtRiver/20081129/1227983528" title="jpSimpleMailPluginリリース - ぷぎがぽぎ"&gt;jpSimpleMailPluginリリース&lt;/a&gt; - &lt;cite&gt;ぷぎがぽぎ&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;
PHPMailer, Swift Mailer, Qdmailで簡単に日本語メールを送るためのプラグイン。
&lt;/p&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-3700734704784547158?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/3700734704784547158/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=3700734704784547158' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/3700734704784547158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/3700734704784547158'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/07/symfony.html' title='【symfony】メール送信'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-3337388894827958467</id><published>2009-06-25T15:39:00.004+09:00</published><updated>2010-06-17T16:03:30.334+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Symfony'/><title type='text'>【symofny】携帯サイト作成プラグイン - sfJpMobilePlugin</title><content type='html'>&lt;div&gt;&lt;a href="http://github.com/vectorxenon/sfJpMobilePlugin/tree/master" title="vectorxenon's sfJpMobilePlugin at master - GitHub"&gt;sfJpMobilePlugin&lt;/a&gt; - &lt;cite&gt;GitHub&lt;/cite&gt;&lt;/div&gt;
&lt;pre title="vectorxenon's sfJpMobilePlugin at master - GitHub"&gt;= sfJpMobilePlugin: 携帯サイト作成支援のsymfony用プラグイン

== こんなもの
symfonyで携帯サイトを作った際に作ったものをプラグインとして抜き出したもの。
自分の仕事で利用しているので、下位機種はもとより、中位機種の対応すら考慮されてません。
キャリア判別にはファイアーウォール側でIP判別を行っているので、IPによる判別機能はもっていません。

== 実装機能
* UserAgentによるキャリア判別
* 端末IDの取得
* 契約者番号の取得
* セッションへの対応
* 絵文字の相互変換
* テンプレートの自動振り分け&lt;/pre&gt;
&lt;p&gt;
リンク先の『設置方法』の通りなので難しいことはない。&lt;br /&gt;
設定ファイルのインデントを揃えること。
&lt;/p&gt;
&lt;h4&gt;準備&lt;/h4&gt;
&lt;p&gt;
「&lt;code&gt;git&lt;/code&gt;」を利用するか、『download』から取得してアップロードするかで、「plugins/」に配置する。
&lt;/p&gt;
&lt;h4&gt;設定ファイル&lt;/h4&gt;
&lt;p&gt;「apps/myapp/config/」以下のymlファイルを編集。&lt;/p&gt;
&lt;h5&gt;factories.yml&lt;/h5&gt;
&lt;p&gt;コントローラを変更する。&lt;/p&gt;
&lt;pre title="vectorxenon's sfJpMobilePlugin at master - GitHub"&gt;/* 利用するコントローラの変更 apps/*/config/factories.yml */
&lt;code&gt; all: controller: class: sfJpMobileController&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;セッションを使う為の設定。以下だと携帯でアクセスするとURLに「http://example.com?symfony=～」の様なセッションIDが付く。&lt;/p&gt;
&lt;pre title="vectorxenon's sfJpMobilePlugin at master - GitHub"&gt;/* セッションの利用 apps/*/config/factories.yml */
～(略)～
&lt;code&gt;all: storage:
 class: sfJpMobileSessionStorage
 param: session_name: symfony # ここはお好きな名前で&lt;/code&gt;
～(略)～&lt;/pre&gt;
&lt;h5&gt;filters.yml&lt;/h5&gt;
&lt;pre title="vectorxenon's sfJpMobilePlugin at master - GitHub"&gt;/* フィルタの追加 apps/*/config/filters.yml */
～(略)～
&lt;code&gt;# insert your own filters here
 &lt;strong&gt;jpmobile: 
   class: sfJpMobileFilter&lt;/strong&gt;&lt;/code&gt;
～(略)～&lt;/pre&gt;
&lt;h5&gt;app.yml&lt;/h5&gt;
&lt;p&gt;ビューの設定。&lt;/p&gt;
&lt;pre title="vectorxenon's sfJpMobilePlugin at master - GitHub"&gt;/* クラスの指定 apps/*/config/app.yml */
～(略)～
&lt;code&gt; all: view: class: sfJpMobile&lt;/code&gt;
～(略)～&lt;/pre&gt;
&lt;h5&gt;setting.yml&lt;/h5&gt;
&lt;p&gt;ビューの設定。&lt;/p&gt;
&lt;pre title="vectorxenon's sfJpMobilePlugin at master - GitHub"&gt;/* ヘルパーの利用 apps/*/config/settings.yml */
～(略)～
&lt;code&gt;  all: standard_helpers: [Partial, Cache, Form, JpMobileUrl]&lt;/code&gt;
～(略)～&lt;/pre&gt;
&lt;h4&gt;レイアウトの変更&lt;/h4&gt;
&lt;p&gt;
「app/my_app/templates/layout.php」のDOCTYPE宣言の部分を変更し、携帯キャリア毎に対応させる。
&lt;/p&gt;
&lt;pre title="vectorxenon's sfJpMobilePlugin at master - GitHub"&gt;/* apps/*/templates/layout.php */
// 変更前
&lt;code&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;/code&gt;
// 変更後
&lt;code&gt;&amp;lt;?php include_partial('jpmobile/dtd') ?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Firefoxアドオン・&lt;strong&gt;FireMobileSimulator&lt;/strong&gt;を使うとDOCTYPEは次の様になった。参考までに。&lt;/p&gt;
&lt;pre&gt;/* FireMobileSimulator で表示した時のDOCTYPE宣言比較 */
//docomo 機種
&lt;code&gt;&amp;lt;?xml version="1.0" encoding="Shift_JIS"?&amp;gt;&amp;lt;!DOCTYPE html PUBLIC "-//i-mode group (ja)//DTD XHTML i-XHTML(Locale/Ver.=ja/1.1) 1.0//EN" "i-xhtml_4ja_10.dtd"&amp;gt;&lt;code&gt;
// au 機種 
&lt;code&gt;&amp;lt;?xml version="1.0" encoding="Shift_JIS"?&amp;gt;&amp;lt;!DOCTYPE html PUBLIC "-//OPENWAVE//DTD XHTML 1.0//EN" "http://www.openwave.com/DTD/xhtml-basic.dtd"&amp;gt;&lt;/code&gt;
// Softbank 機種
&lt;code&gt;&amp;lt;?xml version="1.0" encoding="Shift_JIS"?&amp;gt;&amp;lt;!DOCTYPE html PUBLIC "-//JPHONE//DTD XHTML Basic 1.0 Plus//EN" "xhtml-basic10-plus.dtd"&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;HTML「&lt;code&gt;&amp;lt;head&amp;gt;&amp;lt;/head&amp;gt;&lt;/code&gt;」部分の「Content-Type」属性もdocomoのみ違いが有った。&lt;/p&gt;
&lt;pre&gt;/* FireMobileSimulator で表示した時のDOCTYPE宣言比較 */
// docomo 機種
&lt;code&gt;&amp;lt;meta http-equiv="Content-Type" content="application/xhtml+xml; charset=Shift_JIS" /&amp;gt;&lt;/code&gt;
// docomo 以外
&lt;code&gt;&amp;lt;meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /&amp;gt;&lt;/code&gt;
&lt;/pre&gt;
&lt;h4&gt;キャリアごとのテンプレート振り分け&lt;/h4&gt;
&lt;p&gt;「apps/my_app/modules/my_mod/templates/」以下に次の様なファイル名を付けることで、各キャリアごとのテンプレートが振り分けることが可能。&lt;/p&gt;
&lt;pre&gt;/* テンプレート・ファイル名と参照順 */
DoCoMo:   indexSuccessDocomo.php
KDDI:     indexSuccessKddi.php
SoftBank: indexSuccessSoftbank.php
PC:       indexSuccessPc.php
　∟携帯共通: indexSuccessMobile.php
　　　∟通常:     indexSuccess.php
例) docomo でアクセスした場合の参照順
indexSuccessDocomo.php → indexSuccessMobile.php → indexSuccess.php
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-3337388894827958467?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/3337388894827958467/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=3337388894827958467' title='2 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/3337388894827958467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/3337388894827958467'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/06/symofny-sfjpmobileplugin.html' title='【symofny】携帯サイト作成プラグイン - sfJpMobilePlugin'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-4350679365914424762</id><published>2009-06-16T13:54:00.003+09:00</published><updated>2009-06-17T09:40:47.518+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Symfony'/><title type='text'>【symfony】プラグインのインストール</title><content type='html'>&lt;pre&gt;/* symfony コマンドからインストール*/
&lt;code&gt;$ symfony plugin:install [PluginName]&lt;/code&gt;
// フルパス
&lt;code&gt;$ symfony plugin:install http://plugins.symfony-project.com/plugins/[PluginName]&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;参考元のリンクを見ると&lt;/p&gt;
&lt;pre title="プラグインのインストール方法のまとめ « symfonyで開発日記"&gt;&lt;code&gt;$ symfony &lt;em&gt;plugin-install&lt;/em&gt; symfony/sfNamePlugin&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;と言うのが有るが、&lt;q cite="http://d.hatena.ne.jp/Yukkuri/20081021/1224586791" title="symfony plugin:installでエラー - ゆっくり*ゆっくり"&gt;symfony/xxxPluginという形式でプラグインを指定してはいけないらしい。&lt;/q&gt;ともある。&lt;br /&gt;
「&lt;code&gt;plugin-install&lt;/code&gt;」の時は良くて「&lt;code&gt;plugin:install&lt;/code&gt;」で駄目になったのか、リンク先でインストールしようとしてる「sfFormExtraPlugin」で駄目なのか。
&lt;/p&gt;
&lt;pre&gt;&lt;code title="symfony plugin:installでエラー - ゆっくり*ゆっくり"&gt;$ symfony &lt;em&gt;plugin:install&lt;/em&gt; symfony/sfFormExtraPlugin&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;/* symfony プラグインを Subversion でインストール */
&lt;code&gt;$ svn co http://svn.symfony-project.com/plugins/[PluginName]&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;&lt;a href="http://svn.symfony-project.com/plugins/" title="Revision 19297: /plugins"&gt;plugins&lt;/a&gt;&lt;/div&gt;
&lt;h4&gt;参考&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://saboten009.blogspot.com/2008/09/subversion.html" title="さぼてん: さくらサーバにSubversionインストール(※追記:2009/06/16)"&gt;さくらサーバにSubversionインストール(※追記:2009/06/16)&lt;/a&gt; - &lt;cite&gt;さぼてん&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://blog.symfony.jp/2006/12/17/91" title="プラグインのインストール方法のまとめ « symfonyで開発日記"&gt;プラグインのインストール方法のまとめ&lt;/a&gt; - &lt;cite&gt;symfonyで開発日記&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/Yukkuri/20081021/1224586791" title="symfony plugin:installでエラー - ゆっくり*ゆっくり"&gt;symfony plugin:installでエラー&lt;/a&gt; - &lt;cite&gt;ゆっくり*ゆっくり&lt;/cite&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-4350679365914424762?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/4350679365914424762/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=4350679365914424762' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/4350679365914424762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/4350679365914424762'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/06/symfony.html' title='【symfony】プラグインのインストール'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-5500965360784619996</id><published>2009-05-29T16:06:00.006+09:00</published><updated>2009-05-29T16:35:29.804+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='オープンソース'/><title type='text'>【EC-CUBE】カレンダーカスタマイズ</title><content type='html'>&lt;h4&gt;当月のカレンダーだけ表示&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://www.materializing.net/archives/2008/06/10061416.php" title="EC-CUBEのカレンダー表示をひとつにしてみる｜Materializing"&gt;EC-CUBEのカレンダー表示をひとつにしてみる&lt;/a&gt; - &lt;cite&gt;Materializing&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;今月と来月の2つを表示しているところを１つにする。&lt;/p&gt;
&lt;pre&gt;「デザイン管理」-&amp;gt;「ブロック編集」-&amp;gt;「カレンダー」のブロック&lt;/pre&gt;
&lt;pre title="EC-CUBEのカレンダー表示をひとつにしてみる｜Materializing"&gt;/* カレンダーブロックの変更 */
// 変更前
&lt;code&gt;&amp;lt;!--{section name=num loop=$arrCalendar}--&amp;gt;&lt;/code&gt;
// 変更後
&lt;code&gt;&amp;lt;!--{section name=num loop=1}--&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;カレンダーの表示の自由度を高める&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://www.naviwave.com/blog_w/software/ec-cube-calendar/" title="EC-CUBE のカレンダーを便利にする - Wordpress Firefox オープンソース って(・∀・)イイ!!"&gt;EC-CUBE のカレンダーを便利にする&lt;/a&gt; - &lt;cite&gt;Wordpress Firefox オープンソース って(・∀・)イイ!!&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;リンク先を参考にカスタマイズすると以下のようなことが可能になる。&lt;/p&gt;
&lt;pre title="EC-CUBE のカレンダーを便利にする - Wordpress Firefox オープンソース って(・∀・)イイ!!"&gt;【機能改良項目】
・土曜日にスタイルシートクラスを付ける
・日曜・祝日は休業日ではない、あくまでもカレンダー上の「赤い日」
・休業日はさらにスタイルシートクラスを追加
・以上により、スタイルシートは４つとなり、クラスは以下のとおり
　１）日曜祝日　＝　sun
　２）土曜日　　＝　sat
　３）休業日　　＝　off
　４）その他　　＝　無指定
・休業日は別途ファイルを読み込む。設定可能は以下のとおり。
　１）毎週○○曜日休業　の設定追加
　２）第○の▲曜日休業　の設定追加
　３）上記該当日でも、特別に営業する日&lt;/pre&gt;
&lt;p&gt;CSSを追加して、「data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Calendar.php」を変更して設定ファイル「data/calendar_conf.php」を作る。&lt;/p&gt;
&lt;p&gt;
カレンダーが、日曜日を週始め・土曜日を週終わりにしている場合で、土日を休日にするだけなら以下のような変更だけで可能。（太字が変更部分）
&lt;/p&gt;
&lt;pre&gt;/* ECCUBE 2.3.2 「data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Calendar.php」 L.130～*/
～(略)～
  &lt;code&gt;if ($this-&amp;gt;lfCheckHoliday($month, $Day-&amp;gt;day) &lt;strong&gt;|| $Day-&amp;gt;first || $Day-&amp;gt;last&lt;/strong&gt;) {
    $arrCalendar[$j][$i]['holiday'] = true;
  } else {
    $arrCalendar[$j][$i]['holiday'] = false;
  }&lt;/code&gt;
～(略)～&lt;/pre&gt;
&lt;pre&gt;/* ECCUBE 2.4.0 「data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Calendar.php」 L.130～ */
～(略)～
  &lt;code&gt;if ($this-&gt;lfCheckHoliday($year, $month, $Day-&gt;day) &lt;strong&gt;|| $Day-&amp;gt;first || $Day-&amp;gt;last&lt;/strong&gt;) {
    $arrCalendar[$j][$i]['holiday'] = true;
  } else {
    $arrCalendar[$j][$i]['holiday'] = false;
  }&lt;/code&gt;
～(略)～&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-5500965360784619996?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/5500965360784619996/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=5500965360784619996' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5500965360784619996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5500965360784619996'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/05/ec-cube.html' title='【EC-CUBE】カレンダーカスタマイズ'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-5565616723336663889</id><published>2009-04-28T18:10:00.006+09:00</published><updated>2009-06-19T18:36:31.564+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Symfony'/><title type='text'>【symfony】携帯向けサイトの開発(※追記:2009/06/19)</title><content type='html'>&lt;div&gt;&lt;a href="http://trac.symfony-project.org/browser/plugins/sfMobileJPlugin/trunk/README_JP" title="/plugins/sfMobileJPlugin/trunk/README_JP - symfony - Trac"&gt;sfMobileJPlugin&lt;/a&gt; - &lt;cite&gt;symfony/trac/plugins&lt;/cite&gt;&lt;/div&gt;
&lt;blockquote cite="http://trac.symfony-project.org/browser/plugins/sfMobileJPlugin/trunk/README_JP" title="/plugins/sfMobileJPlugin/trunk/README_JP - symfony - Trac"&gt;&lt;p&gt;この&amp;quot;sfMobileJPlugin&amp;quot;は日本国内の3キャリア(DoCoMo/SoftBank/EZWeb)向けコンテンツをsymfony1.2xで作る際に便利なクラス郡になります。 &lt;/p&gt;
&lt;p&gt;主な機能は以下の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Net_UserAgent_Mobile をsymfony上から使用できるようになります&lt;/li&gt;
&lt;li&gt;URLを生成(link_to helper等)する場合、DoCoMo端末に対しては自動でUID取得のためのパラメータを付与します(imodeID or uid)&lt;/li&gt;
&lt;li&gt;テンプレートを切り分けることが可能になります。(モバイル共通、各キャリア毎に1テンプレート等)&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;div&gt;&lt;a href="http://www.centsys.jp/service/technical_information/symfony/mobile_development.html" title="【symfony】symfonyによる携帯向けサイト開発：株式会社センティリオンシステム"&gt;symfonyによる携帯向けサイト開発&lt;/a&gt; - &lt;cite&gt;symfony：株式会社センティリオンシステム&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;どちらも「PEAR::Net_UserAgent_Mobile」が必要。&lt;/p&gt;
&lt;ins datetime="2009-06-19T18:35:00+09:00" style="text-decoration:none;"&gt;
&lt;h4&gt;※追記:2009/06/19&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;a href="http://github.com/vectorxenon/sfJpMobilePlugin/tree/master" title="vectorxenon's sfJpMobilePlugin at master - GitHub"&gt;sfJpMobilePlugin&lt;/a&gt; - &lt;cite&gt;GitHub&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;携帯サイトの作成支援のsymfony用プラグイン。&lt;/p&gt;
&lt;pre&gt;== 実装機能
* UserAgentによるキャリア判別
* 端末IDの取得
* 契約者番号の取得
* セッションへの対応
* 絵文字の相互変換
* テンプレートの自動振り分け&lt;/pre&gt;
&lt;div&gt;&lt;strong&gt;開発者様サイト&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://d.hatena.ne.jp/vector_xenon/20090603/1244007358" title="sfJpMobilePluginを作りました。 - ぺちぱーのユウウツ"&gt;sfJpMobilePluginを作りました。&lt;/a&gt; - &lt;cite&gt;&lt;a href="http://d.hatena.ne.jp/vector_xenon/" title="ぺちぱーのユウウツ"&gt;ぺちぱーのユウウツ&lt;/a&gt;&lt;/cite&gt;&lt;/div&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;a href="http://blog.asial.co.jp/294" title="symfonyの携帯開発プラグイン作成 : アシアルブログ"&gt;アシアルの中の人が技術と思いのたけをつづるブログ  symfonyの携帯開発プラグイン作成&lt;/a&gt; - &lt;cite&gt;アシアルブログ&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;strong&gt;「sfMobileViewPlugin」&lt;/strong&gt;&lt;br /&gt;
&lt;p&gt;携帯キャリアごとに実行するタグ（[[i,e,s]][[/i,e,s]]）を作成し、1つのViewファイルテンプレートで携帯ごとに分けて表示させるViewプラグイン。&lt;br /&gt;
「PEAR::Net_UserAgent_Mobile」必要。&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;a href="http://it.kndb.jp/entry/show/id/2385" title="モバイルサイトで携帯キャリアのUserAgentに合わせてContentTypeを切り替えるsymfonyライブラリ sfMobileTool - Knowledge Database IT"&gt;モバイルサイトで携帯キャリアのUserAgentに合わせてContentTypeを切り替えるsymfonyライブラリ sfMobileTool&lt;/a&gt; - &lt;cite&gt;Knowledge Database IT&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;p&gt;ファイル1つだけで利用可能。&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;a href="http://d.hatena.ne.jp/ken39arg/20080506/1210097737" title="symfonyで携帯サイトを作る件 - 続・ken39arg"&gt;symfonyで携帯サイトを作る件&lt;/a&gt; - &lt;cite&gt;続・ken39arg&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;p&gt;
「templates/」以下に「m/」というモバイル用ディレクトリを作り各キャリア用テンプレートを置く。&lt;br /&gt;
「view.yml」もキャリア毎に分ける。絵文字も対応。
&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;a href="http://tech.kayac.com/archive/symfony-ip-filter.html" title="SymfonyでIP制限するフィルター作りました : tech.kayac.com - KAYAC engineers' blog"&gt;SymfonyでIP制限するフィルター作りました&lt;/a&gt; - &lt;cite&gt;KAYAC engineers' blog&lt;/cite&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;q cite="http://tech.kayac.com/archive/symfony-ip-filter.html" title="SymfonyでIP制限するフィルター作りました : tech.kayac.com - KAYAC engineers' blog"&gt;携帯サイトのキャリア判別は、おなじみのNet_UserAgent_Mobileを使うと簡単ですが、ユーザーエージェントだけでは簡単に偽装できてしまうので&lt;/q&gt;&lt;/dd&gt;
&lt;/dl&gt;

&lt;/ins&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-5565616723336663889?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/5565616723336663889/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=5565616723336663889' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5565616723336663889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5565616723336663889'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/04/symfony.html' title='【symfony】携帯向けサイトの開発(※追記:2009/06/19)'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-4948750730488682740</id><published>2009-04-27T18:08:00.004+09:00</published><updated>2009-04-27T18:27:26.273+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Symfony'/><title type='text'>【symfony】別々のテーブルのFormクラスを組み合わせたフォームとアクション - embedForm(), mergeForm()</title><content type='html'>&lt;div&gt;&lt;a href="http://www.ganchiku.com/2009/02/symfony12_embedform_fileupload.html" title="GANCHIKU.com » symfony1.2 embedFormでファイルアップロード"&gt;symfony1.2 embedFormでファイルアップロード&lt;/a&gt; - &lt;cite&gt;GANCHIKU.com&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;
リンク先では、日記のテーブルと画像のテーブルに、それぞれのFormクラスを使って一つのフォームから投稿できるようにしている。
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-4948750730488682740?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/4948750730488682740/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=4948750730488682740' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/4948750730488682740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/4948750730488682740'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/04/symfonyform-embedform-mergeform.html' title='【symfony】別々のテーブルのFormクラスを組み合わせたフォームとアクション - embedForm(), mergeForm()'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-5037241611727221586</id><published>2009-04-22T10:24:00.002+09:00</published><updated>2009-04-22T11:06:29.843+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><title type='text'>【JavaScript】数値の桁を"0"で埋めて揃える</title><content type='html'>&lt;h4&gt;関数&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://homepage3.nifty.com/aokura/jscript/format_num.html" title="足りない桁数を0で埋めた数値文字列を得る - by AOK"&gt;足りない桁数を 0 で埋めた数値文字列を得る&lt;/a&gt; - &lt;cite&gt;AOK's JavaScript Library&lt;/cite&gt;&lt;/div&gt;
&lt;pre&gt;&lt;code title="足りない桁数を0で埋めた数値文字列を得る - by AOK"&gt;
function formatNum(keta, num) {
  var src = new String(num);
  var cnt = keta - src.length;
  if (cnt &amp;lt;= 0) return src;
  while (cnt-- &amp;gt; 0) src = &amp;quot;0&amp;quot; + src; return src;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;プロトタイプ～その１&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/javascripter/20080514/1210791575" title="先頭を0で埋めて桁をそろえる（解説付き） - 素人がプログラミングを勉強するブログ"&gt;先頭を0で埋めて桁をそろえる（解説付き）&lt;/a&gt; - &lt;cite&gt;素人がプログラミングを勉強するブログ&lt;/cite&gt;&lt;/div&gt;
&lt;pre&gt;&lt;code title="先頭を0で埋めて桁をそろえる（解説付き） - 素人がプログラミングを勉強するブログ"&gt;
Number.prototype.fillZero=function(n){
  var zero=new Array(n).join('0');//0をn-1文字分つなげた文字列を作る。n==4だと'000'
  var str=zero+this;//zeroとthisをくっつけた文字列を作る。
  var result=str.substr(-n);//strの後ろから、n文字分の文字列を取ってくる。
  return result;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;「&lt;var&gt;n&lt;/var&gt;」より大きい桁の数値が切り捨てられるので注意。&lt;/p&gt;
&lt;h4&gt;プロトタイプ～その２&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/higeorange/20080515/1210817629" title="&amp;quot;先頭を0で埋めて桁をそろえる&amp;quot; を考えてみた - Higé au lait"&gt;&amp;quot;先頭を0で埋めて桁をそろえる&amp;quot; を考えてみた&lt;/a&gt; - &lt;cite&gt;Higé au lait&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;「&lt;var&gt;n&lt;/var&gt;」に足りない数値の桁数分の"0"を先頭に結合。（数値を配列として「&lt;code&gt;unshift()&lt;/code&gt;」）&lt;/p&gt;
&lt;pre&gt;&lt;code title="&amp;quot;先頭を0で埋めて桁をそろえる&amp;quot; を考えてみた - Higé au lait"&gt;Number.prototype.fillZero = function(n) {
  var r = this.toString().split('');
  while(r.length &amp;lt;= n) {
    r.unshift('0');
  }
  return r.join('');
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;「&lt;var&gt;n&lt;/var&gt;」から数値の桁数の足りない分の"0"を配列にして、「&lt;code&gt;join()&lt;/code&gt;」で文字列にして数値と結合。&lt;/p&gt;
&lt;pre&gt;&lt;code title="&amp;quot;先頭を0で埋めて桁をそろえる&amp;quot; を考えてみた - Higé au lait"&gt;Number.prototype.fillZero = function(n) {
  return Array((n+1) - this.toString().split('').length).join('0') + this;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;小数や負の数では、そのまま返す条件。&lt;/p&gt;
&lt;pre&gt;&lt;code title="&amp;quot;先頭を0で埋めて桁をそろえる&amp;quot; を考えてみた - Higé au lait"&gt;if(this &amp;lt; 0 || (this - Math.floor(this) != 0)) return this;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-5037241611727221586?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/5037241611727221586/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=5037241611727221586' title='1 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5037241611727221586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5037241611727221586'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/04/javascript0.html' title='【JavaScript】数値の桁を&quot;0&quot;で埋めて揃える'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-9133193561125196492</id><published>2009-04-14T15:26:00.002+09:00</published><updated>2009-04-14T17:51:08.034+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Symfony'/><title type='text'>【symfony】ユーザ認証プラグインsfGuardAuthのカスタマイズ</title><content type='html'>&lt;p&gt;
リンク先に有りますが、「modules/sfGuardAuth/」ディレクトリを作り「templates/」ディレクトリ内に「signinSuccess.php」「secureSuccess.php」を作るとこちらが呼ばれます。actionはデフォルトのものが呼ばれるので作らなくても問題ありません。
&lt;/p&gt;
&lt;pre&gt;/* テンプレートのカスタマイズ */
modules/
∟sfGuardAuth/
   ∟templates/
      ∟signinSuccess.php
      ∟secureSuccess.php 
※「action/」はなくても良い
&lt;/pre&gt;
&lt;p&gt;
アクションのカスタマイズをする場合、sfGuardPluginのアクションを継承します。&lt;br /&gt;
アクション・クラスのファイルを作ると「template/」ディレクトリのテンプレートが読み込まれます。ファイルがない場合はログインフォームは表示されません。
&lt;/p&gt;
&lt;pre&gt;/* アクションのカスタマイズ */
&lt;code title="sfGuardPlugin - symfony-doc-ja - 認証と権限の付与機能を追加する - Google Code"&gt;
&amp;lt;?php
  require_once(sfConfig::get('sf_plugins_dir').'/sfGuardPlugin/modules/sfGuardAuth/lib/BasesfGuardAuthActions.class.php'); 
  class sfGuardAuthActions extends &lt;strong&gt;BasesfGuardAuthActions&lt;/strong&gt;   {

    public function executeSignin(sfWebRequest $request)
    {
      parent::executeSignin($request);
    }
    public function executeSignout(sfWebRequest $request)
    {
      parent::executeSignout($request);
    }
    public function executeSecure()
    {
      parent::executeSecure();
    }
    public function executePassword()
    {
      parent::executePassword();
    }
  }&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;親クラスのある「sfGuardPlugin/modules/sfGuardAuth/lib/BasesfGuardAuthActions.class.php」には「&lt;code&gt;executeSignin()&lt;/code&gt;」「&lt;code&gt;executeSignout()&lt;/code&gt;」「&lt;code&gt;executeSecure()&lt;/code&gt;」「&lt;code&gt;executePassword()&lt;/code&gt;」が定義されてます。「&lt;code&gt;BasesfGuardAuthActions&lt;/code&gt;」クラスは「&lt;code&gt;sfActions&lt;/code&gt;」クラスを継承してます。&lt;br /&gt;
ログイン認証の為に「&lt;code&gt;$request&lt;/code&gt;」を渡します。&lt;br /&gt;
ログイン前後の処理を追加したりして、後は親クラスのメソッドに任せます。これでテンプレートファイルはデフォルトが読み込まれます。アクションも全て記述しなくて済みます。
&lt;/p&gt;
&lt;h4&gt;関連&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://saboten009.blogspot.com/2009/04/symfony-sfguardplugin.html" title="さぼてん: 【symfony】ユーザ認証プラグイン sfGuardPlugin"&gt;ユーザ認証プラグイン sfGuardPlugin&lt;/a&gt; - &lt;cite&gt;さぼてん&lt;/cite&gt;：2009年4月8日&lt;br /&gt;
&lt;a href="http://code.google.com/p/symfony-doc-ja/wiki/sfGuardPlugin" title="sfGuardPlugin - symfony-doc-ja - 認証と権限の付与機能を追加する - Google Code"&gt;sfGuard plugin&lt;/a&gt; - &lt;cite&gt;symfony-doc-ja&lt;/cite&gt;&lt;br /&gt;
&lt;a href="http://gomojp.blog77.fc2.com/blog-entry-34.html" title="[symfony] 既存のテーブルを利用する認証システムplugin"&gt;既存のテーブルを利用する認証システムplugin&lt;/a&gt; - &lt;cite&gt;symfonyはじめました&lt;/cite&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-9133193561125196492?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/9133193561125196492/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=9133193561125196492' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/9133193561125196492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/9133193561125196492'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/04/symfonysfguardauth.html' title='【symfony】ユーザ認証プラグインsfGuardAuthのカスタマイズ'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-4780985119448090204</id><published>2009-04-08T14:06:00.002+09:00</published><updated>2009-04-08T15:12:07.969+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Symfony'/><title type='text'>【symfony】ユーザ認証プラグイン sfGuardPlugin</title><content type='html'>&lt;h4&gt;参照&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/Kiske/20090313/1236951193" title="Jobeet - 13日目: ユーザ - Absolute Playing!"&gt;Jobeet - 13日目: ユーザ&lt;/a&gt; - &lt;cite&gt;Absolute Playing!&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;symfonyに備えてあるアクセス制限の設定。&lt;/p&gt;
&lt;p&gt;以下の設定で全てのアクセスをブロック。デフォルトでは「&lt;var&gt;off&lt;/var&gt;」になっている。&lt;/p&gt;
&lt;pre&gt;/* apps/myapp/config/security.yml */
&lt;code&gt;default:
  is_secure: &lt;strong&gt;on&lt;/strong&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;「&lt;code&gt;credentials&lt;/code&gt;」を設定してユーザごとの権限も分けることが出来る。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;default:
  is_secure:   off
  &lt;strong&gt;credentials: admin&lt;/strong&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;モジュールやアクションごとにアクセス制限を設定するには各モジュールに「config/」ディレクトリを作り「security.yml」を作成する。&lt;/p&gt;
&lt;pre&gt;/* apps/myapp/modules/mymodule/config/security.yml */
&lt;code&gt;index:
  is_secure: off
 
all:
  is_secure: on&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;アクセス制限書けた場合の設定や認証についての設定を「setting.yml」でします。「&lt;code&gt;all:&lt;/code&gt;」の部分を変更。&lt;/p&gt;
&lt;pre&gt;/* apps/myapp/config/setting.yml */
&lt;code&gt;all:
  .settings:
    # Form security secret (CSRF protection)
    csrf_secret:       UniqueSecret   
    # Output escaping settings
    escaping_strategy:      true           
    escaping_method:        ESC_SPECIALCHARS # Function or helper used for escaping. Accepted values: ESC_RAW, ESC_ENTITIES, ESC_JS, ESC_JS_NO_ENTITIES, and ESC_SPECIALCHARS.

    &lt;strong&gt;enabled_modules: [default, sfGuardAuth]&lt;/strong&gt;

  .actions:
    &lt;strong&gt;login_module:    sfGuardAuth&lt;/strong&gt;
    &lt;strong&gt;login_action:    signin&lt;/strong&gt;
    &lt;strong&gt;secure_module:          default&lt;/strong&gt;   # To be called when a user doesn't have
    &lt;strong&gt;secure_action:          secure&lt;/strong&gt;    # The credentials required for an action&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;これはsfGuardPluginを使って認証する為の設定です。&lt;/p&gt;

&lt;p&gt;symfonyでユーザ認証の処理をやってくれるプラグインが有ります。sfGuardPluginというもので、以下のようにsymfonyコマンドからインストールします。&lt;/p&gt;
&lt;h4&gt;インストール&lt;/h4&gt;
&lt;pre&gt;/* インストールコマンド */
&lt;code&gt;$ symfony plugin:install &lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;以下のコマンドでは自分の環境（さくら・スタンダード）はエラー。「&lt;q&gt;You try to install a symfony 1.0 plugin～&lt;/q&gt;」とか。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ symfony plugin-install http://plugins.symfony-project.com/sfGuardPlugin&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;モデルを再構築。DBが初期化されるので注意。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ php symfony propel:build-all-load --no-confirmation&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;モデルを再生成したのでキャッシュをクリア。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ php symfony cc&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;アカウント作成コマンド&lt;/h4&gt;
&lt;p&gt;ユーザアカウント作成を作成します。&lt;/p&gt;
&lt;pre&gt;/* アカウント作成 */
&lt;code&gt;$ php symfony guard:create-user admin password&lt;/code&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;code&gt;$ php symfony guard:promote admin&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;この上記コマンドでユーザを管理者として登録する模様。&lt;/p&gt;
&lt;pre&gt;原文）Promotes a user as a super administrator
訳文）最高の管理者としてユーザを昇進させます。&lt;/pre&gt;
&lt;p&gt;プラグインに関するオプションを見るコマンド。&lt;/p&gt;

&lt;pre&gt;/* オプション一覧コマンド */
&lt;code&gt;$ php symfony list guard&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;認証にプラグインを使うように変更。元の継承は「&lt;code&gt;sfBasicSecurityUser
&lt;/code&gt;」。&lt;/p&gt;
&lt;pre&gt;/* apps/myapp/lib/myUser.class.php */
&lt;code&gt;&lt;?php
  class myUser extends &lt;strong&gt;sfGuardSecurityUser&lt;/strong&gt;
  {
  }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;ここまでがsfGuardPluginを使うための工程。&lt;/p&gt;
&lt;p&gt;ログイン・ログアウトや認証時間などリンク先参照。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://code.google.com/p/symfony-doc-ja/wiki/sfGuardPlugin" title="sfGuardPlugin - symfony-doc-ja - 認証と権限の付与機能を追加する - Google Code"&gt;sfGuard plugin&lt;/a&gt; - &lt;cite&gt;symfony-doc-ja&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;sfGuardPlugin使った認証はテーブル作ってするようだ。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://gomojp.blog77.fc2.com/blog-entry-34.html" title="[symfony] 既存のテーブルを利用する認証システムplugin"&gt;既存のテーブルを利用する認証システムplugin&lt;/a&gt; - &lt;cite&gt;symfonyはじめました&lt;/cite&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-4780985119448090204?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/4780985119448090204/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=4780985119448090204' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/4780985119448090204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/4780985119448090204'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/04/symfony-sfguardplugin.html' title='【symfony】ユーザ認証プラグイン sfGuardPlugin'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-1540426555108884540</id><published>2009-04-03T15:09:00.005+09:00</published><updated>2010-03-25T12:58:01.098+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='オープンソース'/><title type='text'>【EC-CUBE】商品表示のSQLクエリを改善する</title><content type='html'>&lt;p&gt;&lt;span style="font-weight:bold;"&gt;使えるねっと&lt;/span&gt;の共有サーバでEC-CUBEを開設して幾日も経っていないのにサーバ負荷が酷いとお叱りを受け、&lt;q&gt;専サバに移りゃ&lt;/q&gt;とお達しがありました。&lt;br /&gt;
実際、商品の検索等の表示には数秒かかるにしてもそんなにアクセスがある訳でもありません。&lt;br /&gt;
「ああ、そういえば昨日&lt;q&gt;商品の規格&lt;/q&gt;を編集してたらタイムアウトしまくったが、それか」と考えつつ一大事なので調べました。
&lt;/p&gt;
&lt;p&gt;
EC-CUBEのDBはテーブルのリレーションが複雑で、データの取得時にサブクエリをたくさん発行するので処理が重くなるという印象が得られました。&lt;br /&gt;
改良されたSQLがありましたので、適応してみますとフォーラムに有ります通り、体感で判る程度の改善が見られました。&lt;br /&gt;
以下のファイルのメソッドを変更します。
&lt;/p&gt;
&lt;pre&gt;
　ファイル：data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.php
　- クラス：SC_DB_DBFactory_MYSQL
　- メソッド：viewToSubQuery()
&lt;/pre&gt;
&lt;pre title="EC-CUBE 開発コミュニティサイト - フォーラム"&gt;
    &lt;code&gt;function viewToSubQuery() {&lt;/code&gt;
     ～(略)～
&lt;code&gt;
&amp;quot;vw_products_allclass&amp;quot; =&amp;gt; '
( SELECT
T1.product_id,
product_code_min,
product_code_max,
price01_min,
price01_max,
price02_min,
price02_max,
stock_min,
stock_max,
stock_unlimited_min,
stock_unlimited_max,
T1.del_flg,
status,
name,
comment1,
comment2,
comment3,
main_list_comment,
main_image,
main_list_image,
product_flag,
deliv_date_id,
sale_limit,
point_rate,
sale_unlimited,
T1.create_date,
deliv_fee,
T1.rank,
T4.category_rank,
T4.category_id
FROM
(
SELECT *
FROM
(
SELECT
product_id,
MIN(product_code) AS product_code_min,
MAX(product_code) AS product_code_max,
MIN(price01) AS price01_min,
MAX(price01) AS price01_max,
MIN(price02) AS price02_min,
MAX(price02) AS price02_max,
MIN(stock) AS stock_min,
MAX(stock) AS stock_max,
MIN(stock_unlimited) AS stock_unlimited_min,
MAX(stock_unlimited) AS stock_unlimited_max
FROM dtb_products_class
GROUP BY product_id
) AS T0
LEFT JOIN dtb_products USING (product_id)
) AS T1
INNER JOIN
(
SELECT
T2.product_id,
MAX(T2.category_id) AS category_id,
MAX(T3.rank) AS category_rank
FROM dtb_product_categories T2
INNER JOIN dtb_category T3 USING (category_id)
GROUP BY product_id
) AS T4
USING (product_id)
)',&lt;/code&gt;
～(略)～
   }
&lt;/pre&gt;
&lt;p&gt;
根本的な話として&lt;strong&gt;MySQLを使わない&lt;/strong&gt;というのが一番良いようで、PostgressSQLに移行しただけでも数千倍の改善が見られ、20～30秒ほど要していたのが一瞬で検索結果が表示されるとのことです。&lt;br /&gt;
それにしても、こういったことであからさまに問題が生じているのは商品件数が1000件を優に超えている状態の様ですが、当方のサイトでは数百件レベルです。リレーションの事があるとなると&lt;q&gt;商品規格&lt;/q&gt;が多いからでしょうか。&lt;br /&gt;
そもそも共有サーバで運用することが無茶なのでしょうか。
&lt;/p&gt;
&lt;ins style="text-decoration:none;" datetime="2010-03-25T12:00:00+09:00"&gt;
&lt;strong&gt;追記&lt;/strong&gt;:2010/03/25
&lt;div&gt;&lt;a href="http://www28.atwiki.jp/lucier/pages/32.html" title="EC-CUBE開発Wiki - [EC-CUBE]MySQL の遅さをサブクエリの改善とコードの一部改良で手間暇かけずに解決する"&gt;MySQL の遅さをサブクエリの改善とコードの一部改良で手間暇かけずに解決する&lt;/a&gt; - &lt;cite&gt;EC-CUBE開発Wiki&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;こちらのクエリは微妙に違う。&lt;/p&gt;
&lt;h4&gt;関連&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://saboten009.blogspot.com/2010/03/ec-cubemysqlview.html" title="さぼてん: 【EC-CUBE】MySQLのVIEWで商品管理の規格表示を改善する"&gt;MySQLのVIEWで商品管理の規格表示を改善する&lt;/a&gt; - &lt;cite&gt;さぼてん&lt;/cite&gt;[2010/03/25]&lt;/div&gt;
&lt;/ins&gt;
&lt;h4&gt;参考&lt;/h4&gt;
&lt;div&gt;&lt;cite&gt;EC-CUBE 開発コミュニティサイト - フォーラム&lt;/cite&gt;
&lt;a href="http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=3041&amp;amp;forum=10" title="EC-CUBE 開発コミュニティサイト - フォーラム"&gt;商品一覧の表示が遅い&lt;/a&gt;&lt;br /&gt;
∟&lt;a href="http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=thread&amp;amp;topic_id=2709&amp;amp;forum=2&amp;amp;post_id=10207#forumpost10207" title="EC-CUBE 開発コミュニティサイト - フォーラム"&gt;EC CUBEの使用推奨環境に関してのご相談&lt;/a&gt;&lt;br /&gt;
　∟&lt;a href="http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=thread&amp;amp;topic_id=2262&amp;amp;forum=3&amp;amp;post_id=8779#forumpost8779" title="EC-CUBE 開発コミュニティサイト - フォーラム"&gt;もっとパフォーマンスのよいEC-CUBE&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-1540426555108884540?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/1540426555108884540/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=1540426555108884540' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/1540426555108884540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/1540426555108884540'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/04/ec-cubesql.html' title='【EC-CUBE】商品表示のSQLクエリを改善する'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-6106324923411549830</id><published>2009-03-31T15:44:00.002+09:00</published><updated>2009-03-31T16:03:12.381+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='オープンソース'/><title type='text'>【EC-CUBE】商品の規格2が表示される問題</title><content type='html'>&lt;div&gt;&lt;a href="http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=2127&amp;amp;forum=4&amp;amp;post_id=7435#forumpost7435" title="EC-CUBE 開発コミュニティサイト - フォーラム"&gt;規格管理で・・&lt;/a&gt; - &lt;cite&gt;EC-CUBE 開発コミュニティサイト&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;商品規格の2つ目が「&lt;q&gt;選択してください&lt;/q&gt;」のみの&lt;code&gt;&amp;lt;select&amp;gt;&lt;/code&gt;タグで表示され、購入できない件。&lt;br /&gt;
商品に関連付けられた規格が削除されると、DBの商品規格テーブルからは削除されるが、商品詳細テーブルにある規格2のリレーションだけが残って選択できない&lt;code&gt;&amp;lt;select&amp;gt;&lt;/code&gt;タグになるようだ。&lt;br /&gt;
なので、商品を登録しなおすか、DBにSQLを発行して削除されて無効な商品規格に関連付けられてる商品を探し出して修正する。
&lt;/p&gt;
&lt;pre&gt;
dtb_classcategory - 商品規格テーブル classcategory_id
dtb_products_class　- 商品と規格のリレーションテーブル product_id,classcategory_id1,classcategory_id2
&lt;/pre&gt;
&lt;p&gt;
「dtb_classcategory」テーブルで削除されてたりデータがNULLだったりする「classcategory_id」カラムを持つ「product_id」カラムを「dtb_products_class」テーブルから探して「classcategory_id1」カラムまたは「classcategory_id2」カラムを変更。
&lt;/p&gt;
&lt;pre&gt;&lt;code title="EC-CUBE 開発コミュニティサイト - フォーラム"&gt;
UPDATE dtb_products_class SET classcategory_id1 = 0 WHERE classcategory_id1 = {消去した規格ID};  UPDATE dtb_products_class SET classcategory_id2 = 0 WHERE classcategory_id2 = {消去した規格ID}
&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-6106324923411549830?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/6106324923411549830/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=6106324923411549830' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/6106324923411549830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/6106324923411549830'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/03/ec-cube2.html' title='【EC-CUBE】商品の規格2が表示される問題'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-6737104596388151573</id><published>2009-03-31T13:50:00.002+09:00</published><updated>2009-03-31T13:59:15.258+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='オープンソース'/><title type='text'>【EC-CUBE】ファイル構成</title><content type='html'>&lt;div&gt;
&lt;cite&gt;EC-CUBEマニュアルサイト&lt;/cite&gt;&lt;br /&gt;
∟&lt;a href="http://wiki.ec-cube.net/index.php?%B6%A6%C4%CC%2F3_%A5%AB%A5%B9%A5%BF%A5%DE%A5%A4%A5%BA%2F02_%A5%D5%A5%A1%A5%A4%A5%EB%B9%BD%C0%AE%2F01_data%A5%D5%A5%A9%A5%EB%A5%C0%C6%E2%A4%CE%A5%D5%A5%A1%A5%A4%A5%EB%B9%BD%C0%AE" title="EC-CUBEマニュアルサイト - 共通/3_カスタマイズ/02_ファイル構成/01_dataフォルダ内のファイル構成"&gt;dataフォルダ内のファイル構成&lt;/a&gt;&lt;br /&gt;
∟&lt;a href="http://wiki.ec-cube.net/index.php?%B6%A6%C4%CC%2F3_%A5%AB%A5%B9%A5%BF%A5%DE%A5%A4%A5%BA%2F02_%A5%D5%A5%A1%A5%A4%A5%EB%B9%BD%C0%AE%2F02_html%A5%D5%A5%A9%A5%EB%A5%C0%C6%E2%A4%CE%A5%D5%A5%A1%A5%A4%A5%EB%B9%BD%C0%AE" title="EC-CUBEマニュアルサイト - 共通/3_カスタマイズ/02_ファイル構成/02_htmlフォルダ内のファイル構成"&gt;htmlフォルダ内のファイル構成&lt;/a&gt;
&lt;/div&gt;
&lt;h4&gt;メール・テンプレートの追加&lt;/h4&gt;
&lt;p&gt;メールテンプレートは「data\Smarty\templates\」以下に「chmod:0666」で作る。&lt;br /&gt;
『管理画面』の「システム設定-&amp;gt;マスタデータ管理」から「mtb_mail_template」と「mtb_mail_tpl_path」を設定。
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-6737104596388151573?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/6737104596388151573/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=6737104596388151573' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/6737104596388151573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/6737104596388151573'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/03/ec-cube.html' title='【EC-CUBE】ファイル構成'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-3517311646348932135</id><published>2009-03-28T17:02:00.002+09:00</published><updated>2009-03-28T18:49:33.182+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Symfony'/><title type='text'>【symfony】formのsetDefaults</title><content type='html'>&lt;pre&gt;/* アクション内でフォームのデフォルト値 */
  &lt;code&gt;$this-&gt;form = new ModelForm();
  $this-&gt;form-&gt;setDefault('name', 'value'); &lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;setDefaults()&lt;/code&gt;を使えば連想配列で複数指定できるけど、リセットされるのでモデル内で設定したものが上書きされ無い様に、&lt;code&gt;getDefaults()&lt;/code&gt;してそれに追加してから渡すように注意。&lt;/p&gt;
&lt;p&gt;
と、いう事らしいんだが次のようにモデル、アクション両方で指定した場合、&lt;code&gt;input&lt;/code&gt;タグの&lt;code&gt;value&lt;/code&gt;属性値のデフォルトは空になった。
&lt;/p&gt;
&lt;pre&gt;/* フォームのデフォルト値 - 失敗 */
  // モデル
  &lt;code&gt;$this-&amp;gt;widgetSchema['user_id'] = new sfWidgetFormInputHidden(array(),array('value'=&amp;gt;'3'));&lt;/code&gt;
  // アクション
  &lt;code&gt;$this-&amp;gt;form-&gt;setDefault("user_id", "1");&lt;/code&gt;
  // 生成された
  &lt;code&gt;&amp;lt;input value="" type="hidden" name="model[user_id]" id="model_user_id" /&amp;gt;&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;以下であれば大丈夫。&lt;/p&gt;
&lt;pre&gt;/* フォームのデフォルト値 - アクション内 */
  // モデル
  &lt;code&gt;$this-&amp;gt;widgetSchema['user_id'] = new sfWidgetFormInputHidden();&lt;/code&gt;
  // アクション
  &lt;code&gt;$this-&amp;gt;form-&gt;setDefault("user_id", "1");&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;または&lt;/p&gt;
&lt;pre&gt;/* フォームのデフォルト値 - モデル内 */
  // アクション
  &lt;code&gt;$this-&amp;gt;widgetSchema['user_id'] = new sfWidgetFormInputHidden(array(),array('value'=&amp;gt;'3'));&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-3517311646348932135?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/3517311646348932135/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=3517311646348932135' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/3517311646348932135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/3517311646348932135'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/03/symfonyformsetdefaults.html' title='【symfony】formのsetDefaults'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-7711291135555691097</id><published>2009-03-27T15:28:00.001+09:00</published><updated>2009-03-27T15:28:04.014+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='API'/><title type='text'>【API】Wassr APIをPHPから</title><content type='html'>&lt;div&gt;&lt;a href="http://wassr.jp/help/api" title="Wassr API Document - Wassr [お気軽メッセージングハブ・ワッサー]"&gt;Wassr API Documents&lt;/a&gt; - &lt;cite&gt;Wassr&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;とっても判りにくく不親切な気がする仕様書ですが、以下のリンク先を参考にします。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://mp.i-revo.jp/user.php/wrckyapk/entry/7436.html" title="Wassr API"&gt;Wassr API&lt;/a&gt; - &lt;cite&gt;&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;流れにすると次の様なコードでしょうか。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://www.php.net/manual/ja/function.curl-setopt.php" title="PHP: curl_setopt - Manual"&gt;curl_setopt&lt;/a&gt; - &lt;cite&gt;PHP マニュアル&lt;/cite&gt;&lt;/div&gt;
&lt;pre&gt;/* Wassr APIからcURLでPOST */
&lt;code&gt;  $username = 'username';
  $password = 'password';
  $url = 'http://api.wassr.jp/statuses/update.json';
  $message = 'This is Test.';
  $userpwd = $username.':'.$password;
  $params = array('status' =&amp;gt; rawurlencode($message), 'image' =&amp;gt; "@image.jpg");

  $ch=curl_init();
  curl_setopt($ch,CURLOPT_URL, $url);
  curl_setopt($ch,CURLOPT_POST, 1);
  curl_setopt($ch,CURLOPT_USERPWD, $userpwd);
  curl_setopt($ch,CURLOPT_POSTFIELDS, $params); // ポストするデータ
  curl_setopt($ch,CURLOPT_HEADER, FALSE); // TRUEにするとヘッダも返す
  curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
  $result=curl_exec($ch);
  curl_close($ch);
  var_dump(json_decode($result));&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
画像は「multipart/form-data」として送らなくてはいけないようです。「&lt;code&gt;http_build_query()&lt;/code&gt;」をリンク先では使って「&lt;var&gt;$params&lt;/var&gt;」をPOSTしてますが、配列を渡すことで「multipart/form-data」POSTが出来るので使いません。画像の指定は「＠ファイルパス」です。&lt;br /&gt;
リンク先のコードはワサチャンネルへPOSTですがURLとパラメータを変えれば同じように出来るのではないでしょうか。
&lt;/p&gt;
&lt;p&gt;「cURL」を使わない場合のコードです。こちらは「&lt;code&gt;stream_context_create()&lt;/code&gt;」を使っております。&lt;/p&gt;
&lt;pre&gt;/* Wassr APIからストリーム関数でPOST */
&lt;code&gt;  $url = "http://api.wassr.jp/statuses/update.json?";
  $params = "status=". rawurlencode($message);
  $result = file_get_contents($url.$params , false, stream_context_create(array(
      "http" =&gt; array(
          "method" =&gt; "POST",
          "header" =&gt; "Authorization: Basic ". base64_encode($username. ":". $password)
      )
  )));&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;「&lt;code&gt;stream_context_create()&lt;/code&gt;」で「multipart/form-data」をヘッダに付けるには「&lt;var&gt;header&lt;/var&gt;」に指定するようです。&lt;br /&gt;
URLを変更して認証用のヘッダを付ければWassrにPOST出来るかも知れません。試してません。&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;
   $fileHandle = fopen("someImage.jpg", "rb");
   $fileContents = stream_get_contents($fileHandle);
   fclose($fileHandle);

   $params = array(
      'http' =&gt; array
      (
          'method' =&gt; 'POST',
          &lt;strong&gt;'header'=&gt;"Content-Type: multipart/form-data\r\n",&lt;/strong&gt;
          'content' =&gt; $fileContents
      )
   );
   $url = "http://somesite.somecompany.com?someParam=someValue";
   $ctx = stream_context_create($params);
   $fp = fopen($url, 'rb', false, $ctx);

   $response = stream_get_contents($fp);&lt;/code&gt;
&lt;div&gt;&lt;a href="http://jp.php.net/manual/ja/function.stream-context-create.php#89080" title="PHP: stream_context_create - Manual"&gt;stream_context_create&lt;/a&gt; - &lt;cite&gt;PHP マニュアル&lt;/cite&gt;&lt;/div&gt;&lt;/pre&gt;

&lt;h4&gt;関連&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://saboten009.blogspot.com/2009/03/apitumblrtwitterwassr-api.html" title="さぼてん: 【API】(はてな|Tumblr|Twitter|Wassr) APIクラス"&gt;(はてな|Tumblr|Twitter|Wassr) APIクラス&lt;/a&gt; - &lt;cite&gt;さぼてん&lt;/cite&gt;：2009年3月25日&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-7711291135555691097?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/7711291135555691097/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=7711291135555691097' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/7711291135555691097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/7711291135555691097'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/03/apiwassr-apiphp.html' title='【API】Wassr APIをPHPから'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-5265204400691308196</id><published>2009-03-25T13:01:00.005+09:00</published><updated>2009-03-25T13:53:08.174+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='API'/><title type='text'>【API】(はてな|Tumblr|Twitter|Wassr) APIクラス</title><content type='html'>&lt;h4&gt;はてな API&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/Kmusiclife/20090114" title="はてなAPIを利用するわかりやすいPHPクラス - JAPANOLOGY"&gt;はてなAPIを利用するわかりやすいPHPクラス&lt;/a&gt; - &lt;cite&gt;JAPANOLOGY&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;「PEAR_HTTP/Request」が必要。&lt;/p&gt;
&lt;h4&gt;Tumblr API&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/minorio/20080128/1201536438" title="Tumblr API を使った photo の POST に成功 - minorio のプログラミング・メモ"&gt;Tumblr API を使った photo の POST に成功&lt;/a&gt; - &lt;cite&gt;minorio のプログラミング・メモ&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;cURLを使用。&lt;br /&gt;openpearにもあるけどリリースされずに止まってるようだ。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://openpear.org/package/Services_Tumblr" title="Services_Tumblr - openpear"&gt;Services_Tumblr&lt;/a&gt; - &lt;cite&gt;openpear&lt;/cite&gt;&lt;/div&gt;
&lt;h4&gt;Twitter API&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://labs.transrain.net/products/services_twitter/" title="Services_Twitter"&gt;&lt;cite&gt;Services_Twitter&lt;/a&gt;&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://transrain.net/" title="Transrain"&gt;如月 悠希&lt;/a&gt;さんが開発したPHP4対応。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://pear.php.net/package/Services_Twitter" title="Services_Twitter"&gt;Package Information: Services_Twitter&lt;/a&gt; - &lt;cite&gt;pear&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;PEARライブラリ。PHP5以降。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/sotarok/20080807/1218114681" title="Services_Twitter-0.1.0 betaがリリースされたので日本のと比較してみた - 肉とご飯と甘いもの @ sotarok"&gt;Services_Twitter-0.1.0 betaがリリースされたので日本のと比較してみた&lt;/a&gt; - &lt;cite&gt;sotarok&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;PHPのバージョンによる書き方の違い以外は、PEARはcURLでリクエストして悠希さんのはsoket。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://dreaminess.info/2009/02/services-twitter.html" title="Services_Twitter - ゆめうつつ"&gt;Services_Twitter&lt;/a&gt; - &lt;cite&gt;ゆめうつつ&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;悠希さんの方のインストール･メモ。&lt;/p&gt;
&lt;h4&gt;Wassr API&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://mp.i-revo.jp/user.php/wrckyapk/entry/7436.html" title="Wassr API"&gt;Wassr API&lt;/a&gt; - &lt;cite&gt;よやのじっけんしつ&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;cURL使用。&lt;/p&gt;
&lt;h4&gt;関連&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://www.phppro.jp/news/228" title="cURLを使わずに、PHPでPOSTリクエストを送信する - PHPプロ！ニュース"&gt;cURLを使わずに、PHPでPOSTリクエストを送信する&lt;/a&gt; - &lt;cite&gt;PHPプロ！ニュース&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;「&lt;code&gt;stream_context_create()&lt;/code&gt;」を使う。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://saboten009.blogspot.com/2008/11/phptwitter-apibot.html" title="さぼてん: 【PHP】Twitter APIの利用とbot作成"&gt;Twitter APIの利用とbot作成&lt;/a&gt; - &lt;cite&gt;さぼてん&lt;/cite&gt;：2008年11月29日&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-5265204400691308196?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/5265204400691308196/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=5265204400691308196' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5265204400691308196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5265204400691308196'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/03/apitumblrtwitterwassr-api.html' title='【API】(はてな|Tumblr|Twitter|Wassr) APIクラス'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-8520238869119489878</id><published>2009-03-20T18:07:00.004+09:00</published><updated>2009-03-20T18:42:47.447+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Symfony'/><title type='text'>【symfony】</title><content type='html'>&lt;div&gt;&lt;a href="http://ueblog.natural-wave.com/2008/05/06/symfony-include/" title="symfonyのテンプレートコード断片化 - ueblog"&gt;symfonyのテンプレートコード断片化&lt;/a&gt; - &lt;cite&gt;ueblog&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;
スペニット?とか自作のヘルパーやコンポーネントの種類と使用法。
&lt;/p&gt;
&lt;h4&gt;インクルード(include)&lt;/h4&gt;
&lt;p&gt;
静的なHTMLやactionなどに依存しないテンプレート。
&lt;/p&gt;
&lt;pre&gt;/* テンプレート呼び出し */
&lt;code title="symfonyのテンプレートコード断片化 - ueblog"&gt;&amp;lt;?php include(sfConfig::get('sf_app_template_dir').'/footer.php')) ?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;「templates/」ディレクトリ配置。&lt;/p&gt;
&lt;h4&gt;パーシャル(partial)&lt;/h4&gt;
&lt;p&gt;
actionからの引数を渡せるテンプレート。&lt;br /&gt;
ファイル名は「_(アンダーバー)」をつける。
&lt;/p&gt;
&lt;pre&gt;/* パーシャル呼び出し */
&lt;code title="symfonyのテンプレートコード断片化 - ueblog"&gt;&amp;lt;?php include_partial('global/sidebar', array('site' =&amp;gt; $site)) ?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;例では「app/application/template/_sidebar.php」。moduleを生成した時に出来る「_form.php」はこれか。&lt;br /&gt;
呼び出されるファイルは以下のように変数を使える。
&lt;/p&gt;
&lt;pre&gt;/* 「_sidebar.php」 の例 */
&lt;code&gt;&amp;lt;h1&amp;gt;&amp;lt;php echo $site ?&amp;gt;&amp;lt;/h1&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;コンポーネント(component)&lt;/h4&gt;
&lt;p&gt;
パーシャルよりもさらに動的なロジックが必要な場合。action本来の処理とは関係ないプログラムを分ける。&lt;br /&gt;
テンプレートやレイアウトそのものじゃなく、それに関わるクラスとか処理。
&lt;/p&gt;
&lt;pre&gt;/* コンポーネント呼び出し */
&lt;code title="symfonyのテンプレートコード断片化 - ueblog"&gt;&amp;lt;?php include_component('news', 'headlines', array('user' =&amp;gt; $user)) ?&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;コンポーネントスロット(component_slot)&lt;/h4&gt;
&lt;p&gt;
コンポーネントを、呼び出すactionやmoduleによって変化させる。設定は「apps/myapp/config/view.yml」や「app/myapp/module/frontend/view.yml」などにする。（オーバーロードみたいなもんか）
&lt;/p&gt;
&lt;h4&gt;スロット(slot)&lt;/h4&gt;
&lt;p&gt;
テンプレートで部品を繰り返したい時に使う。同じ処理を2度しないで済む様、結果を変数を使わず呼び出せる。
&lt;/p&gt;
&lt;pre&gt;/* スロットの使い方 */
&lt;code title="symfonyのテンプレートコード断片化 - ueblog"&gt;
&amp;lt;?php slot('hoge') ?&amp;gt;
  hoge
&amp;lt;?php end_slot() ?&amp;gt;
&amp;lt;?php include_slot('hoge') ?&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-8520238869119489878?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/8520238869119489878/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=8520238869119489878' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/8520238869119489878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/8520238869119489878'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/03/symfony.html' title='【symfony】'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-5904710213517408198</id><published>2009-03-16T14:10:00.003+09:00</published><updated>2009-03-16T15:16:45.046+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Symfony'/><title type='text'>【symfony】CriteriaでBETWEEN句</title><content type='html'>&lt;p&gt;次の様な、"BETWEEN"句の条件付SQLをsymfonyで発行したい時。&lt;/p&gt;
&lt;pre&gt; /* BETWEEN句を使ったSQL文 */
&lt;code&gt;SELECT * FROM datas WHERE create_ad BETWEEN '2008-09-01 00:00:00' AND '2008-09-30 23:59:59'&lt;/code&gt;
// 2008年9月中に作成されたデータ&lt;/pre&gt;
&lt;p&gt;symfonyのサンプルだと2つの方法が載っている。サンプルは“「&lt;var&gt;$date1&lt;/var&gt;」と「&lt;var&gt;$date2&lt;/var&gt;」のどちらかがある期間内に含まれるか”という条件で複雑。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://snippets.symfony-project.org/snippet/219" title="Code Snippets"&gt;Simulating a BETWEEN construct&lt;/a&gt; - &lt;cite&gt;symfony&lt;/cite&gt; &amp;gt; Code Snippets&lt;/div&gt;
&lt;h4&gt;&lt;code&gt;Criteria::CUSTOM&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;一つは「&lt;code&gt;Criteria::CUSTOM&lt;/code&gt;」を使って条件文を直接記述する方法。&lt;/p&gt;
&lt;pre&gt; /* BETWEEN句 - Criteria::CUSTOMを使った方法 */
&lt;code title="Criteria::CUSTOMを使ってBETWEEN条件の指定"&gt;$c = new Criteria();
$date_from = '2008-09-01 00:00:00';
$date_to    = '2008-09-30 23:59:59';
$c-&amp;gt;add(TestPeer::CREATED_AT, TestPeer::CREATED_AT." between ".$date1." and ".$date2, Criteria::CUSTOM);&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;&lt;code&gt;getNewCriterion()&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;もう一つは「&lt;code&gt;getNewCriterion()&lt;/code&gt;」を使って複数の条件をカラムに指定する方法。&lt;/p&gt;
&lt;pre&gt; /* BETWEEN句 -  getNewCriterion()を使った方法 */
&lt;code title="getNewCriterion()を使ってBETWEEN条件の指定"&gt;$c = new Criteria();
$date1Criterion = $criteria-&gt;getNewCriterion(TestPeer::CREATED_AT, $date_from, Criteria::GREATER_EQUAL);
$date2Criterion = $criteria-&gt;getNewCriterion(TestPeer::CREATED_AT, $to_from, Criteria::LESS_EQUAL);
$date1Criterion-&gt;addAnd($date2Criterion);
$criteria-&gt;add($date1Criterion);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;こんなにも回りくどくなる理由は、&lt;code&gt;add()&lt;/code&gt;で一つのカラムに複数条件を指定しても最後のみ有効になる仕様だから。以下のリンクに詳しい。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://blog.gnetworks.co.jp/nk2/?p=51" title="Symfony Tips:同じカラムのAND条件を作る場合のCriteriaの罠"&gt;Symfony Tips:同じカラムのAND条件を作る場合のCriteriaの罠&lt;/a&gt; - &lt;cite&gt;開発人日記&lt;/cite&gt;&lt;/div&gt;
&lt;pre&gt; /* add()でBETWEEN条件指定がうまくいかない例 */
&lt;code&gt;$criteria-&gt;add(TestPeer::CREATED_AT, $date_from, Criteria::GREATER_EQUAL);
$criteria-&gt;add(TestPeer::CREATED_AT, $to_from, Criteria::LESS_EQUAL);&lt;/code&gt; // この条件だけ有効
&lt;/pre&gt;
&lt;h4&gt;&lt;code&gt;addAnd()&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;「&lt;code&gt;addAnd()&lt;/code&gt;」を使って複数条件を指定する方法でも可能。&lt;/p&gt;
&lt;pre&gt; /* BETWEEN句 -  addAnd()を使った方法 */
&lt;code title="addAnd()を使ってBETWEEN条件の指定"&gt;$criteria-&gt;add(TestPeer::CREATED_AT, $date_from, Criteria::GREATER_EQUAL);
$criteria-&gt;addAnd(TestPeer::CREATED_AT, $to_from, Criteria::LESS_EQUAL);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;getNewCriterion()&lt;/code&gt;との違いは判らないが、この方法が良さそうだ。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-5904710213517408198?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/5904710213517408198/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=5904710213517408198' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5904710213517408198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5904710213517408198'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/03/symfonycriteriabetween.html' title='【symfony】CriteriaでBETWEEN句'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-4046158095535609461</id><published>2009-02-21T10:17:00.005+09:00</published><updated>2010-02-08T16:53:07.486+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jQuery'/><title type='text'>【jQuery】トピック</title><content type='html'>&lt;h4&gt;イベント&lt;/h4&gt;

&lt;h5&gt;ready()&lt;/h5&gt;
&lt;p&gt;DOMがロードされて操作・解析が可能になったタイミングで関数を実行する。&lt;/p&gt;
&lt;pre&gt;&lt;code title="ready(fn) - jQuery 1.3.1 日本語リファレンス"&gt;/* DOMロード完了後に実行 */
$(document).ready(function(){
 // ここに実際の処理を記述します。
 });&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;「&lt;code&gt;onload()&lt;/code&gt;」イベントをBODYタグに指定すると動かないので注意。&lt;/p&gt;
&lt;p&gt;完全に「&lt;code&gt;onload()&lt;/code&gt;」イベントの代わりにはならないので、「&lt;code&gt;onload()&lt;/code&gt;」イベントのタイミングで実行したい処理は「&lt;code&gt;jQuery.event.add()&lt;/code&gt;」を使う。&lt;/p&gt;
&lt;pre&gt;&lt;code title="JavaScript/jQuery/readyじゃなくてonloadイベントに関数を追加したい - TOBY SOFT wiki"&gt;/* onloadイベントを追加 */
jQuery.event.add(window, &amp;quot;load&amp;quot;, function(){
/* ここに処理を書く*/
 });&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;たくさんイベント使うなら以下のようにちょっと楽する。&lt;/p&gt;
&lt;pre&gt;&lt;code title="JavaScript/jQuery/readyじゃなくてonloadイベントに関数を追加したい - TOBY SOFT wiki"&gt;/* jQuery.event.add()改善 */
function addOnLoadEvent(handler) {
  jQuery.event.add(window, &amp;quot;load&amp;quot;, handler);
}&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;&lt;a href="http://semooh.jp/jquery/api/events/ready/fn/" title="ready(fn) - jQuery 1.3.1 日本語リファレンス"&gt;ready(fn)&lt;/a&gt; - &lt;cite&gt;jQuery 1.3.1 日本語リファレンス&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://tobysoft.net/wiki/index.php?JavaScript%2FjQuery%2Fready%A4%B8%A4%E3%A4%CA%A4%AF%A4%C6onload%A5%A4%A5%D9%A5%F3%A5%C8%A4%CB%B4%D8%BF%F4%A4%F2%C4%C9%B2%C3%A4%B7%A4%BF%A4%A4" title="JavaScript/jQuery/readyじゃなくてonloadイベントに関数を追加したい - TOBY SOFT wiki"&gt;JavaScript/jQuery/readyじゃなくてonloadイベントに関数を追加したい&lt;/a&gt; - &lt;cite&gt;&lt;/cite&gt;&lt;/div&gt;



&lt;h5&gt;load()&lt;/h5&gt;
&lt;pre&gt;&lt;code title="jQuery 開発者向けメモ - 基本・サンプル"&gt;/* load()でhell.htmlを読み込む */
$(&amp;quot;#target_ajax_load&amp;quot;).load(&amp;quot;hello.html&amp;quot;);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;第2引数にPOSTの値を与えられる。省略されるとGETになる。&lt;/p&gt;
&lt;pre&gt;&lt;code title="jQuery 開発者向けメモ - 基本・サンプル"&gt;/* load()でPOSTリクエストをhell.cgiに与え結果を得る */
$(&amp;quot;#target_ajax_load&amp;quot;).load(&amp;quot;hello.cgi&amp;quot;, {
 name: &amp;quot;mikage&amp;quot;,
 pageid: 3
 });&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;自動でGETパラメータが付けられるので「&lt;code&gt;$.ajaxSetup()&lt;/code&gt;」メソッドでキャッシュしないように指定。&lt;/p&gt;
&lt;pre&gt;&lt;code title="jQuery 開発者向けメモ - 基本・サンプル"&gt;
$.ajaxSetup({ cache: false }); $(&amp;quot;#target_ajax_load&amp;quot;).load(&amp;quot;hello.html&amp;quot;);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;コールバック関数を指定することも出来る。ロード完了のタイミングで実行される。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://www.mikage.to/jquery/jquery_basic.html" title="jQuery 開発者向けメモ - 基本・サンプル"&gt;load()&lt;/a&gt; - &lt;cite&gt;jQuery 開発者向けメモ - 基本・サンプル&lt;/cite&gt;&lt;br /&gt;・デモあり&lt;/div&gt;

&lt;h4&gt;関数&lt;/h4&gt;

&lt;h5&gt;each()&lt;/h5&gt;
&lt;p&gt;全ての要素にコールバック関数を実行する。&lt;/p&gt;
&lt;pre&gt;&lt;code title="each(callback) - jQuery 1.3.1 日本語リファレンス"&gt;/* liタグにexampleクラスを追加する */
$(&amp;quot;li&amp;quot;).each(function(){
　 $(this).toggleClass(&amp;quot;example&amp;quot;);
});&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;&lt;a href="http://semooh.jp/jquery/api/core/each/callback/" title="each(callback) - jQuery 1.3.1 日本語リファレンス"&gt;each(callback)&lt;/a&gt; - &lt;cite&gt;Query 1.3.1 日本語リファレンス&lt;/cite&gt;&lt;/div&gt;
&lt;h5&gt;セレクトのリストを取得&lt;/h5&gt;
&lt;pre&gt;&lt;code title="jQueryを良くする25のTIPS[to-R]"&gt;/* select要素の取得 */
$('#selectList').val();&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;&lt;a href="http://blog.webcreativepark.net/2008/12/17-225630.html" title="jQueryを良くする25のTIPS[to-R]"&gt;jQueryを良くする25のTIPS &amp;gt; jQueryの関数を利用しよう&lt;/a&gt; - &lt;cite&gt;to-R&lt;/cite&gt;&lt;/div&gt;
&lt;h5&gt;data()&lt;/h5&gt;
&lt;p&gt;dataメソッドはDOM要素にデータをストレージしておく為のメソッド。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://blog.webcreativepark.net/2008/11/19-002414.html" title="jQueryのコードを良くする5つのTIPS[to-R]"&gt;Queryのコードを良くする5つのTIPS &amp;gt; DOM中にデータを保存できるdataメソッドを使おう&lt;/a&gt; - &lt;cite&gt;to-R&lt;/cite&gt;&lt;br /&gt;
&lt;a href="http://blog.webcreativepark.net/2008/12/17-225630.html" title="jQueryを良くする25のTIPS[to-R]"&gt;jQueryを良くする25のTIPS &amp;gt; dataメソッドを状態を保存し利用しよう&lt;/a&gt; - &lt;cite&gt;to-R&lt;/cite&gt;&lt;/div&gt;
&lt;h4&gt;ハック&lt;/h4&gt;
&lt;h5&gt;「,」区切りでセレクタ複数指定&lt;/h5&gt;
&lt;pre&gt;&lt;code title="Re:一晩で覚えるjQueryの逆引き基礎サンプル7つ (でぃべろっぱーず・さいど)"&gt;/* 改善前 */
function del(){
  $(&amp;quot;#ls1&amp;quot;).val(&amp;quot;&amp;quot;);
  $(&amp;quot;#ls2&amp;quot;).val(&amp;quot;&amp;quot;);
  $(&amp;quot;#ls3&amp;quot;).val(&amp;quot;&amp;quot;);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;以下のようにも書ける。&lt;/p&gt;
&lt;pre&gt;&lt;code title="Re:一晩で覚えるjQueryの逆引き基礎サンプル7つ (でぃべろっぱーず・さいど)"&gt;/*改善後 */
function del(){
  $(&amp;quot;#ls1,#ls2,#ls3&amp;quot;).val(&amp;quot;&amp;quot;);
}&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;&lt;a href="http://www.re-creators.jp/blog/2008/06/24_37.html" title="jQueryによるJavaScript入門-Re:Creator’s Kansai （リクリ）"&gt;jQueryによるJavaScript入門&lt;/a&gt; - &lt;cite&gt;Re:Creator’s Kansai&lt;/cite&gt;&lt;/div&gt;
&lt;h5&gt;ready()&lt;/h5&gt;
&lt;pre&gt;&lt;code title="Re:一晩で覚えるjQueryの逆引き基礎サンプル7つ (でぃべろっぱーず・さいど)"&gt;/* 改善前 */
$(document).ready(function(){alert('hoge');})&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;次の様に書ける。&lt;/p&gt;
&lt;pre&gt;&lt;code title="Re:一晩で覚えるjQueryの逆引き基礎サンプル7つ (でぃべろっぱーず・さいど)"&gt;/* 改善後 */
$(function(){alert('hoge');})&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;&lt;a href="http://dev.chrisryu.com/2008/04/re_jquery_sample.html" title="Re:一晩で覚えるjQueryの逆引き基礎サンプル7つ (でぃべろっぱーず・さいど)"&gt;Re:一晩で覚えるjQueryの逆引き基礎サンプル7つ&lt;/a&gt; - &lt;cite&gt;&lt;/cite&gt;&lt;/div&gt;
&lt;h5&gt;キャッシュを使う&lt;/h5&gt;
&lt;blockquote cite="http://d.hatena.ne.jp/nitoyon/20081211/jquery_fast_css" title="jQuery を高速に使う CSS セレクタの書き方 - てっく煮ブログ"&gt;
&lt;ol&gt;
&lt;li&gt;何度も同じセレクタを実行しない&lt;/li&gt;
&lt;li&gt;クラスだけを指定するのは禁止&lt;/li&gt;
&lt;li&gt;#idを積極的に使う&lt;/li&gt;
&lt;li&gt;途中までの結果を再利用する&lt;/li&gt;
&lt;li&gt;子供セレクタ(&amp;gt;)を使うと速くなることがある&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;無駄な検索をさせないという話。&lt;/p&gt;
&lt;pre&gt;&lt;code title="jQuery を高速に使う CSS セレクタの書き方 - てっく煮ブログ"&gt;/* 改善前 */
$(&amp;quot;div.foo&amp;quot;).addClass(&amp;quot;bar&amp;quot;);
$(&amp;quot;div.foo&amp;quot;).css(&amp;quot;background&amp;quot;, &amp;quot;#ffffff&amp;quot;);
$(&amp;quot;div.foo&amp;quot;).click(function(){alert('foo');});&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;3つのコードの前半にあるセレクタ部分は同じ処理を繰り返してるので無駄。&lt;/p&gt;
&lt;pre&gt;&lt;code title="jQuery を高速に使う CSS セレクタの書き方 - てっく煮ブログ"&gt;/* 改善後 */
var foos = $(&amp;quot;div.foo&amp;quot;);
foos.addClass(&amp;quot;bar&amp;quot;);
foos.css(&amp;quot;background&amp;quot;, &amp;quot;#ffffff&amp;quot;);
foos.click(function(){alert('foo');});&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;jQueryのメソッド・チェーンを使うと更に良い。&lt;/p&gt;
&lt;pre&gt;&lt;code title="jQuery を高速に使う CSS セレクタの書き方 - てっく煮ブログ"&gt;/* メソッド・チェーン */
$(&amp;quot;div.foo&amp;quot;)
 .addClass(&amp;quot;bar&amp;quot;)
 .css(&amp;quot;background&amp;quot;, &amp;quot;#ffffff&amp;quot;)
 .click(function(){alert('foo');});&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;「&lt;q&gt;子供セレクタ(&amp;gt;)を使うと速くなることがある&lt;/q&gt;」も必要なければ孫要素まで検索させないようするため。&lt;/p&gt;
&lt;p&gt;「&lt;q&gt;クラスだけを指定するのは禁止&lt;/q&gt;」「&lt;q&gt;#idを積極的に使う&lt;/q&gt;」はクラス指定の検索が遅いから。&lt;/p&gt;
&lt;pre&gt;&lt;code title="jQuery を高速に使う CSS セレクタの書き方 - てっく煮ブログ"&gt;/* 改善前 */
$(&amp;quot;.foo&amp;quot;).css(&amp;quot;display&amp;quot;, &amp;quot;none&amp;quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;全ての要素のクラス名を調べることになるので要素の指定もする。&lt;/p&gt;
&lt;pre&gt;&lt;code title="jQuery を高速に使う CSS セレクタの書き方 - てっく煮ブログ"&gt;/* 改善後 */
$(&amp;quot;div.foo&amp;quot;).css(&amp;quot;display&amp;quot;, &amp;quot;none&amp;quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;更に「#id」を使うともっと良い。「&lt;code&gt;getElementById()&lt;/code&gt;」があるし。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/nitoyon/20081211/jquery_fast_css" title="jQuery を高速に使う CSS セレクタの書き方 - てっく煮ブログ"&gt;jQuery を高速に使う CSS セレクタの書き方&lt;/a&gt; - &lt;cite&gt;てっく煮ブログ&lt;/cite&gt;&lt;/div&gt;
&lt;h5&gt;JSクラスを使ってJavascriptオフ環境に対応&lt;/h5&gt;
&lt;p&gt;HTML要素にJSというclassを追加する。&lt;/p&gt;
&lt;pre&gt;&lt;code title="jQueryを良くする25のTIPS[to-R]"&gt;/* JSクラス */
$('HTML').addClass('JS');&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;CSSで非表示にしておく。&lt;/p&gt;
&lt;pre&gt;&lt;code title="jQueryを良くする25のTIPS[to-R]"&gt;/* JSクラスのCSS */
.JS #myDiv{display:none;}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;そうするとJavaScriptがonの環境では「#myDiv」を閲覧できない。&lt;br /&gt;
「#myDiv」にはJavaScripがoffの場合でもすべてコンテンツが閲覧できるような内容にする。&lt;/p&gt;
&lt;h5&gt;画像の読み込み完了を知る&lt;/h5&gt;
&lt;pre&gt;&lt;code title="jQueryを良くする25のTIPS[to-R]"&gt;/* 画像ロード完了を通知 */
$('#myImage').attr('src', 'image.jpg').load(function() { alert('Image Loaded'); });&lt;/code&gt;&lt;/pre&gt;
&lt;h5&gt;noconflict設定でJSライブラリの共存&lt;/h5&gt;
&lt;p&gt;JSライブラリは「$」を使うので競合しないようnoconflict設定で変更する。&lt;/p&gt;
&lt;pre&gt;&lt;code title="jQueryを良くする25のTIPS[to-R]"&gt;/* $の代わりに$jを設定する */
var $j = jQuery.noConflict(); $j('#myDiv').hide();&lt;/code&gt;&lt;/pre&gt;

&lt;h5&gt;Google AJAX Libraries APIを利用&lt;/h5&gt;
&lt;pre&gt;&lt;code title="jQueryを良くする25のTIPS[to-R]"&gt;
&amp;lt;script src=&amp;quot;http://www.google.com/jsapi&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
 // Load jQuery
 google.load(&amp;quot;jquery&amp;quot;, &amp;quot;1.2.6&amp;quot;);
 google.setOnLoadCallback(function() {
 // Your code goes here. });
 &amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code title="jQueryを良くする25のTIPS[to-R]"&gt;&amp;lt;script src=&amp;quot;http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;&lt;a href="http://blog.webcreativepark.net/2008/12/17-225630.html" title="jQueryを良くする25のTIPS[to-R]"&gt;jQueryを良くする25のTIPS &amp;gt; Google AJAX Libraries APIを利用しよう&lt;/a&gt; - &lt;cite&gt;to-R&lt;/cite&gt;&lt;/div&gt;
&lt;h5&gt;処理結果をHTMLタグで囲む&lt;/h5&gt;
&lt;p&gt;早いらしい。&lt;/p&gt;
&lt;pre&gt;&lt;code title="jQueryを良くする25のTIPS[to-R]"&gt;/* liタグで囲む */
var myList = $('.myList');
var myListItems = '&amp;lt;ul&amp;gt;';
for (i = 0; i &amp;lt; 1000; i++) {
  myListItems += '&amp;lt;li&amp;gt;This is list item ' + i + '&amp;lt;/li&amp;gt;';
}
myListItems += '&amp;lt;/ul&amp;gt;';
myList.html(myListItems);&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;&lt;a href="http://blog.webcreativepark.net/2008/12/17-225630.html" title="jQueryを良くする25のTIPS[to-R]"&gt;jQueryを良くする25のTIPS &amp;gt; １つの要素でwrapする為のテクニック&lt;/a&gt; - &lt;cite&gt;to-R&lt;/cite&gt;&lt;/div&gt;
&lt;h5&gt;セレクタにコンテキストを与える&lt;/h5&gt;
&lt;p&gt;無駄な検索をしないように。&lt;/p&gt;
&lt;pre&gt;&lt;code title="jQueryを良くする25のTIPS[to-R]"&gt;/* 改善前 */
var selectedItem = $('#listItem' + i);&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code title="jQueryを良くする25のTIPS[to-R]"&gt;/* 改善後 */
var selectedItem = $('#listItem' + i, $('.myList'));&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;&lt;a href="http://blog.webcreativepark.net/2008/12/17-225630.html" title="jQueryを良くする25のTIPS[to-R]"&gt;jQueryを良くする25のTIPS &amp;gt; セレクタにコンテキストを与えよう&lt;/a&gt; - &lt;cite&gt;to-R&lt;/cite&gt;&lt;/div&gt;
&lt;h5&gt;eventデリゲート&lt;/h5&gt;
&lt;pre&gt;&lt;code title="jQueryを良くする25のTIPS[to-R]"&gt;/* 改善前 */
$('#myTable TD').click(function(){ $(this).css('background', 'red'); });&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;イベントが増えるとその分用意しなくちゃいけない。&lt;/p&gt;
&lt;pre&gt;&lt;code title="jQueryを良くする25のTIPS[to-R]"&gt;/* 改善後 */
$('#myTable').click(function(e) {
 var clicked = $(e.target); clicked.css('background', 'red');
});&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;eはクリックされた要素の情報を含むコンテンツ。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://blog.webcreativepark.net/2008/12/17-225630.html" title="jQueryを良くする25のTIPS[to-R]"&gt;jQueryを良くする25のTIPS &amp;gt; eventデリゲートについて学ぼう&lt;/a&gt; - &lt;cite&gt;to-R&lt;/cite&gt;&lt;/div&gt;
&lt;h5&gt;チェーン･メソッド&lt;/h5&gt;
&lt;pre&gt;&lt;code title="jQueryを良くする25のTIPS[to-R]"&gt;$('myDiv').removeClass('off').addClass('on');&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;異なる要素に指定を行いたい場合はfind()とend()を利用する。&lt;/p&gt;
&lt;pre&gt;&lt;code title="jQueryを良くする25のTIPS[to-R]"&gt;/*  */
$('#myTable')
 .find('.firstColumn')
       .css('background','red')
 .end()
 .find('.lastColumn')
        .css('background','blue');&lt;/code&gt;&lt;/pre&gt;

&lt;div&gt;&lt;a href="http://blog.webcreativepark.net/2008/12/17-225630.html" title="jQueryを良くする25のTIPS[to-R]"&gt;jQueryを良くする25のTIPS &amp;gt; チェーンメソッドを利用しよう&lt;/a&gt; - &lt;cite&gt;to-R&lt;/cite&gt;&lt;/div&gt;
&lt;h5&gt;HTMLのコンテンツの値をフラグにする&lt;/h5&gt;
&lt;div&gt;&lt;a href="http://blog.webcreativepark.net/2008/12/17-225630.html" title="jQueryを良くする25のTIPS[to-R]"&gt;classに情報を設定しておこう&lt;/a&gt; - &lt;cite&gt;to-R&lt;/cite&gt;&lt;/div&gt;
&lt;h5&gt;膨大なデータやフォームなどをjQueryで追加する&lt;/h5&gt;
&lt;div&gt;&lt;a href="http://blog.webcreativepark.net/2008/12/17-225630.html" title="jQueryを良くする25のTIPS[to-R]"&gt;jQueryを良くする25のTIPS&lt;/a&gt; - &lt;cite&gt;to-R&lt;/cite&gt;&lt;br /&gt;
&amp;gt; ページが読み込まれてからHTMLを修正する&lt;br /&gt;
&amp;gt; 読み込みが遅いコンテンツはSEO効果が薄い&lt;/div&gt;
&lt;h4&gt;参考書&lt;/h4&gt;
&lt;p&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/0596159773/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;jQuery Cookbook&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/0596159773/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/51xe%2B4f%2ByrL._SL160_.jpg" alt="jQuery Cookbook" style="border: none;" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4774134902/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;jQueryで作る Ajaxアプリケーション&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4774134902/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/517I%2Bb6q4kL._SL160_.jpg" alt="jQueryで作る Ajaxアプリケーション" style="border: none;" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4861006511/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;CSS + jQuery Webデザインテクニック&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4861006511/saboten009-22/ref=nosim/" name="amazletlink" target="_blank"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/41KDwa2Ag8L._SL160_.jpg" alt="CSS + jQuery Webデザインテクニック" style="border: none;" /&gt;&lt;/a&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-4046158095535609461?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/4046158095535609461/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=4046158095535609461' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/4046158095535609461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/4046158095535609461'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/02/jquery.html' title='【jQuery】トピック'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-1774560998489478238</id><published>2009-02-14T13:42:00.010+09:00</published><updated>2009-02-14T15:04:56.553+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>メールフォーム - PHPmailer+xajax</title><content type='html'>&lt;div&gt;Xajax : &lt;a href="http://www.xajaxproject.org/en/download/" title="Downloads| xajax PHP Class Library- The easiest way to develop asynchronous Ajax applications with PHP"&gt;Downloads&lt;/a&gt; - &lt;cite&gt;Xajax &lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;PHPMailer : &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=26031" title="SourceForge.net: PHPMailer: Files"&gt;Download&lt;/a&gt; - &lt;cite&gt;SourceForge.net&lt;/cite&gt;&lt;/div&gt;

&lt;h4&gt;Xajax&lt;/h4&gt;
&lt;div&gt;&lt;cite&gt;地方で活動するweb制作者の日々を綴るblog&lt;/cite&gt;&lt;br /&gt;&lt;a href="http://blog.livedoor.jp/loopus/archives/50181958.html" title="PHP+xajaxでお気軽Ajaxアプリケーション作成(1)　～インストール／Hello World 【ver 0.5対応版】：地方で活動するweb制作者の日々を綴るblog"&gt;PHP+xajaxでお気軽Ajaxアプリケーション作成(1)　～インストール／Hello World 【ver 0.5対応版】&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://blog.livedoor.jp/loopus/archives/50181959.html" title="PHP+xajaxでお気軽Ajaxアプリケーション作成(2)　～フォームの操作：地方で活動するweb制作者の日々を綴るblog"&gt;PHP+xajaxでお気軽Ajaxアプリケーション作成(2)　～フォームの操作&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;cite&gt;PHPプロ！ニュース&lt;/cite&gt;&lt;br /&gt;&lt;a href="http://www.phppro.jp/news/372" title="XajaxとPHPmailerを使用したお問い合わせフォーム - PHPプロ！ニュース"&gt;XajaxとPHPmailerを使用したお問い合わせフォーム&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;
ダウンロードしたら解凍したディレクトリから「xajax_core/」「xajax_js/」をアップする。&lt;br /&gt;
使い方はPHPファイルから「xajax.inc.php」を読み込む。「Xajax compiled」をダウンロードしたら「xajaxAIO.inc.php」。
&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;include './xajax_core/xajax.inc.php';&lt;/code&gt;
 // Xajax compiled Ver.
&lt;code&gt;include './xajax_core/xajaxAIO.inc.php';&lt;/code&gt;
&lt;/pre&gt;

&lt;pre&gt;/* PHP */
&lt;code title="xajaxサンプル"&gt;
&amp;lt;?php
function myFunc($post){
    $objResponse = new xajaxResponse();
    // HTML要素書き換え予約
    $objResponse-&amp;gt;assign('contents', 'value', $post['val'];
    // alert() 実行予約
    $objResponse-&amp;gt;alert('running!');
    // スクリプト実行
    return $objResponse;
}

$xajax = new xajax();
// 関数
$rqst =&amp; $xajax-&amp;gt;register(XAJAX_FUNCTION, 'myFunc');
// フォームの値をセット
$rqst-&amp;gt;setParameter(0, XAJAX_FORM_VALUES, 'myForm');
$xajax-&amp;gt;processRequest();&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;/* HTML */
&lt;code title="xajaxサンプル"&gt;
&amp;lt;form id=&amp;quot;myForm&amp;quot; &amp;gt;
  &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;val&amp;quot; id=&amp;quot;val&amp;quot; value=&amp;quot;39&amp;quot; size=&amp;quot;5&amp;quot; /&amp;gt; 
  &amp;lt;input tyle=&amp;quot;text&amp;quot; name=&amp;quot;answer&amp;quot; id=&amp;quot;answer&amp;quot; value=&amp;quot;&amp;quot; size=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;
  &amp;lt;input type=&amp;quot;button&amp;quot; onclick='&amp;lt;?php $rqst-&amp;gt;printScript(); ?&amp;gt;'  value=&amp;quot;CLICK&amp;quot; /&amp;gt;
&amp;lt;/form&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
「&lt;code&gt;$xajax-&amp;gt;processRequest&lt;span style="font-weight:bold;"&gt;s&lt;/span&gt;()&lt;/code&gt;」ではないので注意。&lt;br /&gt;
関数で最後に 「&lt;code&gt;return $objResponse;&lt;/code&gt;」が返されて初めて、Ajaxが実行される。ブラウザでエラーを確認しづらい。「&lt;code&gt;setFlag('debug', true);&lt;/code&gt;」という話もある。
&lt;/p&gt;
&lt;h4&gt;PHPmailer&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://techblog.ecstudio.jp/tech-tips/mail-japanese-advance.html" title="PHPで日本語メールを送る - 応用編 (添付ファイル、HTMLメール) - EC studio 技術ブログ"&gt;PHPで日本語メールを送る - 応用編 (添付ファイル、HTMLメール)&lt;/a&gt; - &lt;cite&gt;&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;ダウンロード、解凍したら「class.phpmailer.php」が入ってるディレクトリごとアップしてPHPから読み込む。&lt;/p&gt;
&lt;pre&gt;&lt;code title="PHPmailerサンプル"&gt;require(&amp;quot;./phpmailer/class.phpmailer.php&amp;quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;文字化けする時は「class.phpmailer.php」で文字コードセット。
&lt;/p&gt;
&lt;pre&gt;/* class.phpmailer.php */
&lt;code&gt;  public $CharSet           = 'UTF-8';&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
使い方は以下。XREAではコレで送信した。
&lt;/p&gt;
&lt;pre style="height:20em;"&gt;/* phpコード */
&lt;code title="PHPmailerサンプル"&gt; mb_language("japanese");
 mb_internal_encoding("UTF-8");

 $email = "test@example.com";
 $from = "test";
 $subject = "Subject";
 $msg = "message";
 $mail = new PHPMailer();

 $mail-&gt;From = "info@example.com";
 $mail-&gt;FromName = mb_encode_mimeheader(mb_convert_encoding("Webmaster","JIS","UTF-8"));
 $mail-&gt;AddAddress( $email);
 //  $mail-&gt;AddReplyTo($email, $from);
 $mail-&gt;Subject = mb_encode_mimeheader(mb_convert_encoding($subject,"JIS","UTF-8"));
 $mail-&gt;Body = mb_convert_encoding($msg"JIS","UTF-8");

 if ($mail-&gt;Send()) {
   $error = "送信完了";
   $show_form = false;
 } else {
   $error = "送信エラー:".$mail-&gt;ErrorInfo;
 }&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;「&lt;code&gt;$mail-&amp;gt;ErrorInfo&lt;/code&gt;」でエラー情報取得。&lt;br /&gt;
「&lt;code&gt;$mail-&amp;gt;CharSet&lt;/code&gt;」があるので、そっちでUTF-8をセットしてみたが「class.phpmailer.php」に設定しないと化ける様だ。&lt;br /&gt;
外部SMTP認証してメール送信する。試してないので注意。GmailのSMTP設定。
&lt;/p&gt;
&lt;pre style="height:20em;"&gt;/* SMTP認証 */
&lt;code title="PHPmailerサンプル"&gt; mb_language("japanese");
 mb_internal_encoding("UTF-8");
 $email = "test@example.com";
 $from = "test";
 $subject = "Subject";
 $msg = "message";
 $mail = new PHPMailer();

  &lt;strong&gt;$mail-&gt;IsSMTP();  
  $mail-&gt;Host = "smtp.gmail.com";  
  $mail-&gt;SMTPAuth = true;
  $mail-&gt;Username = "example＠gmail.com";
  $mail-&gt;Password = "password";&lt;/strong&gt;

 $mail-&gt;From = "info@example.com";
 $mail-&gt;FromName = mb_encode_mimeheader(mb_convert_encoding("Webmaster","JIS","UTF-8"));
 $mail-&gt;AddAddress( $email);
 //  $mail-&gt;AddReplyTo($email, $from);
 $mail-&gt;Subject = mb_encode_mimeheader(mb_convert_encoding($subject,"JIS","UTF-8"));
 $mail-&gt;Body = mb_convert_encoding($msg"JIS","UTF-8");

 if ($mail-&gt;Send()) {
   $error = "送信完了";
   $show_form = false;
 } else {
   $error = "送信エラー:".$mail-&gt;ErrorInfo;
 }&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;PHPmailer + Xajax&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://www.finalwebsites.com/tutorials/php_ajax_contact_form.php" title="Ajax Contact form using PHPmailer and Xajax"&gt;A (safe) contact form using Xajax and PHPmailer&lt;/a&gt; - &lt;cite&gt;Xajax&lt;/cite&gt;&lt;/div&gt;
&lt;pre style="height:20em;"&gt;/* PHPmailer + Xajax */
&lt;code title="メールフォーム・サンプル"&gt;&amp;lt;?php
include './xajax_core/xajax.inc.php';
include ('./phpmailer/class.phpmailer.php');
mb_language("japanese");

mb_internal_encoding("UTF-8");
$form = '&amp;lt;form id="myForm" name="myForm"&amp;gt;
            &amp;lt;div&amp;gt;
              &amp;lt;label for="name"&amp;gt;Name&amp;lt;/label&amp;gt;
              &amp;lt;input name="name" type="text" id="naam" value="" size="25" /&amp;gt;
            &amp;lt;/div&amp;gt;
            &amp;lt;div&amp;gt;
              &amp;lt;label for="email"&amp;gt;E-mail&amp;lt;/label&amp;gt;
              &amp;lt;input name="email" type="text" id="email" value="" size="25" /&amp;gt;
            &amp;lt;/div&amp;gt;
            &amp;lt;div&amp;gt;
              &amp;lt;label for="msg"&amp;gt;Message&amp;lt;/label&amp;gt;
              &amp;lt;textarea name="msg" id="msg" cols="45" rows="5"&amp;gt;&amp;lt;/textarea&amp;gt;
            &amp;lt;/div&amp;gt;
            &amp;lt;div style="border-top:1px solid #CCCCCC;padding-top:5px;"&amp;gt;
              &amp;lt;label for="subbtn" style="text-align:right;"&amp;gt;
              &amp;lt;input type="button" id="subbtn" value="Submit" onclick="xajax_myFunc(xajax.getFormValues(\'myForm\'));" /&amp;gt;&amp;lt;/label&amp;gt;
            &amp;lt;/div&amp;gt;
          &amp;lt;/form&amp;gt;';
function myFunct($get) {

    global $form, $error;
    $error = '';
    $objResponse = new xajaxResponse();

    $show_form = true;
    if (!empty($get['email']) &amp;amp;&amp;amp; !empty($get['msg']) &amp;amp;&amp;amp; !empty($get['name'])) {
        if (preg_match("/^[\w-]+(\.[\w-]+)*@([0-9a-z][0-9a-z-]*[0-9a-z]\.)+([a-z]{2,4})$/i", trim($get['email']))) {
            $email = preg_replace("/\r\n/", "", $get['email']);
            $from = preg_replace("/\r\n/", "", $get['name']);
            $mail = new PHPMailer();

            $mail-&amp;gt;From = "Webmaster@example.com";
            $mail-&amp;gt;FromName = mb_encode_mimeheader(mb_convert_encoding("Webmaster","JIS","UTF-8"));
            $mail-&amp;gt;AddAddress( $get['email']);
            $mail-&amp;gt;Subject = mb_encode_mimeheader(mb_convert_encoding($get['name'],"JIS","UTF-8"));
            $mail-&amp;gt;Body = mb_convert_encoding($get['msg'],"JIS","UTF-8");
            if ($mail-&amp;gt;Send()) {
                $error = "The form is submitted and the mail is send.";
                $show_form = false;
            } else {
                $error = "There was a problem while sending the mail, please try again".$mail-&amp;gt;ErrorInfo;
            }
        } else {
            $error = "The entered e-mail address is not valid.";
        }
    } else {
        $error = "At least one of the fields is empty...";
    }
    $data = ($show_form!=true) ? '&amp;lt;p class="contactMsg"&amp;gt;'.$error.'&amp;lt;/p&amp;gt;' : '&amp;lt;p class="contactMsg"&amp;gt;'.$error.'&amp;lt;/p&amp;gt;'.$form;
$objResponse-&amp;gt;alert($data);

    return $objResponse;
}
$xajax = new xajax();
//$xajax-&amp;gt;registerFunction('myFunc');
$rqst =&amp; $xajax-&amp;gt;register(XAJAX_FUNCTION, 'myFunc');
$rqst-&amp;gt;setParameter(0, XAJAX_FORM_VALUES, 'myform');

$xajax-&amp;gt;processRequest();
?&amp;gt;
&amp;lt;?='&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;' ?&amp;gt;
&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;
&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"&amp;gt;

&amp;lt;head&amp;gt;
&amp;lt;meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" /&amp;gt;

&amp;lt;?php $xajax-&amp;gt;printJavascript('./'); /* xajax_js のフォルダ位置を指定。&amp;lt;script&amp;gt;タグでwebページに読み込み*/ ?&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;?php echo '&amp;lt;div id="contact_result"&amp;gt;'.$form.'&amp;lt;/div&amp;gt;'; ?&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-1774560998489478238?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/1774560998489478238/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=1774560998489478238' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/1774560998489478238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/1774560998489478238'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/02/phpmailerxajax.html' title='メールフォーム - PHPmailer+xajax'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-6233612768244529439</id><published>2009-02-12T15:05:00.008+09:00</published><updated>2009-02-12T15:55:31.647+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Symfony'/><title type='text'>【symfony】テーブルの内部結合 - addJoin()</title><content type='html'>&lt;div&gt;&lt;a href="http://www.nextren-development.com/symfuldaze/criteria/addJoin2" title="symfonyでsymfuldaze"&gt;addJoin～テーブルを結合し、結合した先のカラムの条件でクエリを発行（2結合先まで）&lt;/a&gt; - &lt;cite&gt;symfonyでsymfuldaze&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://d.hatena.ne.jp/Kiske/20081204/1228389600" title="Jobeet - 3日目: データモデル - Absolute Playing!"&gt;JobeetのようなDB&lt;/a&gt;があった場合。&lt;br /&gt;
JobPeer.phpというモデルを生成した場合。
&lt;/p&gt;
&lt;pre&gt;/* lib/model/JobPeer.php */
&lt;code&gt;  static public function getWithCategory()
  {
    $criteria = new Criteria();
    $criteria-&amp;gt;addJoin(self::CATEGORY_ID, CategoryPeer::ID, Criteria::LEFT_JOIN);
    return self::doSelect($criteria);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;仕事情報と一緒にカテゴリ名も取得する。内部結合。&lt;br /&gt;
このメソッドをアクションから呼ぶ。
&lt;/p&gt;
&lt;pre&gt;/* apps/frontend/modules/job/actions/actions.class.php */
&lt;code&gt;&amp;lt;?php
public function executeIndex(sfWebRequest $request)
{
  $this-&gt;jobs = JobPeer::getWithCategory();
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;ビューでの使い方はおそらくこの様な。&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;
      &amp;lt;table&amp;gt;
        &amp;lt;?php foreach ($jobs as  $job): ?&amp;gt;
          &amp;lt;tr&amp;gt;
            &amp;lt;td&amp;gt;&amp;lt;?php echo $job-&amp;gt;getLocation() ?&amp;gt;&amp;lt;/td&amp;gt;
            &amp;lt;td&amp;gt;&amp;lt;?php echo $job-&amp;gt;getPosition() ?&amp;gt;&amp;lt;/td&amp;gt;
            &amp;lt;td&amp;gt;&amp;lt;?php echo $job-&amp;gt;getCompany() ?&gt;&amp;lt;/td&amp;gt;
            &amp;lt;td&amp;gt;&amp;lt;?php echo $job-&amp;gt;getCategory()-&amp;gt;getName() ?&gt;&amp;lt;/td&amp;gt;
          &amp;lt;/tr&amp;gt;
        &amp;lt;?php endforeach; ?&amp;gt;
      &amp;lt;/table&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
get[結合するモデル]()-&amp;gt;get[カラム]()な感じ。&lt;br /&gt;
更にテーブルを結合も可能だ。
&lt;/p&gt;
&lt;pre&gt;&lt;code title="symfonyでsymfuldaze"&gt;
 $c-&amp;gt;addJoin(ItemPeer::CATEGORY_ID, CategoryPeer::ID, Criteria::LEFT_JOIN);
 $c-&amp;gt;addJoin(CategoryPeer::BIG_CATEGORY_ID, BigCategoryPeer::ID, Criteria::LEFT_JOIN);
&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-6233612768244529439?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/6233612768244529439/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=6233612768244529439' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/6233612768244529439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/6233612768244529439'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/02/symfony-addjoin.html' title='【symfony】テーブルの内部結合 - addJoin()'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-5334130343379116347</id><published>2009-02-07T11:22:00.002+09:00</published><updated>2009-02-07T16:57:04.196+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Symfony'/><title type='text'>symfony1.2インストール - さくらサーバ・スタンダード</title><content type='html'>&lt;p&gt;XREAが絶不調なのでサクラだ。&lt;br /&gt;
今度はお試しだけじゃなく正式使用しようかな。
&lt;/p&gt;


&lt;p&gt;
コントロールパネルでPHPのバージョンを確認しておこう。デフォルトでPHP5(CGI版)だった。
&lt;/p&gt;
&lt;h4&gt;参照&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://ueblog.natural-wave.com/2008/06/15/sakura-symfony/" title="さくらインターネットでsymfonyをインストール - ueblog"&gt;さくらインターネットでsymfonyをインストール&lt;/a&gt; - &lt;cite&gt;ueblog&lt;/cite&gt;&lt;/div&gt;
&lt;h4&gt;PEARのローカルインストール&lt;/h4&gt;
&lt;p&gt;PEARをインストールするディレクトリを作成。&lt;/p&gt;
&lt;pre&gt;$ &lt;code&gt;mkdir local/&lt;/code&gt;
$ &lt;code&gt;cd local/&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;PEARをインストールするための「go-pear.php」をコピーして実行。&lt;/p&gt;
&lt;pre&gt;
$ &lt;code&gt;curl http://pear.php.net/go-pear &gt; go-pear.php&lt;/code&gt;
$ &lt;code&gt;php go-pear.php&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;すると&lt;/p&gt;
&lt;pre&gt;Welcome to go-pear!&lt;/pre&gt;
&lt;p&gt;とか出て、いくつか質問される。&lt;/p&gt;
&lt;pre&gt;If you wish to abort, press Control-C now, or press Enter to continue: &lt;/pre&gt;
&lt;p&gt;Enter!&lt;/p&gt;
&lt;pre&gt;HTTP proxy (http://user:password@proxy.myhost.com:port), or Enter for none::&lt;/pre&gt;
&lt;p&gt;ENTER!&lt;/p&gt;
&lt;p&gt;インストールするディレクトリとかパスの設定とか出てくる。&lt;/p&gt;
&lt;pre&gt;....
1. Installation prefix ($prefix) : /home/[account名]/local
2. Temporary files directory : $prefix/temp
3. Binaries directory : $prefix/bin
4. PHP code directory ($php_dir) : $prefix/PEAR
5. Documentation base directory : $php_dir/docs
6. Data base directory : $php_dir/data
7. Tests base directory : $php_dir/tests

1-7, 'all' or Enter to continue: &lt;/pre&gt;
&lt;p&gt;変更したかったら番号を入力。注意するのは“１”のインストール・ディレクトリ。&lt;br /&gt;
変更無しなのでENTER!&lt;/p&gt;

&lt;pre&gt;Would you like to install these as well? [Y/n] : &lt;/pre&gt;
&lt;p&gt;ヒット キー “Y”&lt;/p&gt;

&lt;pre&gt;Would you like to alter php.ini &lt;/usr/local/php/5.2.8/lib/php.ini&gt;? [Y/n] : &lt;/pre&gt;
&lt;p&gt;「php.ini」を編集しないので“n”を入力。&lt;br /&gt;
インストールが完了。&lt;/p&gt;
&lt;p&gt;
ローカルにインストールしたPEARにパスを通す。
&lt;/p&gt;
&lt;pre&gt;$ &lt;code&gt;set path = (/sbin /bin $HOME/local/bin $HOME/bin &lt;span style="font-weight:bold;"&gt;/usr/local/bin/&lt;/span&gt;)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;参照先の手順ではパスの最後「/usr/local/bin/」は無くて&lt;/p&gt;
&lt;pre title="さくらインターネットでsymfonyをインストール - ueblog"&gt;#bash,zshなら
  &lt;code&gt;export PATH=/bin:$HOME/local/bin:$PATH&lt;/code&gt;
#csh,tcshなら
  &lt;code&gt;set path = (/sbin /bin $HOME/local/bin $HOME/bin)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
「/usr/local/bin/」に元からのPEARコマンドがあるから読まないようしてるんだが、PHPコマンドもあるらしくこの後symfonyコマンドもPHPコマンドもエラーになったので後で追加した。
&lt;/p&gt;
&lt;p&gt;確認。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;%pear -V&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;PEAR Version: 1.7.2
PHP Version: 5.2.8
Zend Engine Version: 2.2.0
Running on: ....&lt;/pre&gt;
&lt;p&gt;PEARもPHPのバージョンも大丈夫。PEARのバージョンが1.4以上でないとだめとか。&lt;br /&gt;
続いてsymfonyインストール。&lt;/p&gt;

&lt;h4&gt;PEARからsymfonyインストール&lt;/h4&gt;
&lt;p&gt;PEARチャンネル使ってsymfonyインストールだよ。(XREAのPEARはsymfony1.1のチャンネルしかなかった気がするよ)&lt;/p&gt;
&lt;p&gt;symfonyのチャンネル追加。&lt;/p&gt;
&lt;pre&gt;$ &lt;code&gt;pear channel-discover pear.symfony-project.com&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;成功。&lt;/p&gt;
&lt;pre&gt;Adding Channel "pear.symfony-project.com" succeeded
Discovery of channel "pear.symfony-project.com" succeeded&lt;/pre&gt;
&lt;p&gt;symfonyインストール。&lt;/p&gt;
&lt;pre&gt;$ &lt;code&gt;pear install symfony/symfony&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;インストール中...&lt;/p&gt;
&lt;pre&gt;downloading symfony-1.2.4.tgz ...
Starting to download symfony-1.2.4.tgz (2,710,310 bytes)
........................................................done: 2,710,310 bytes

install ok: channel://pear.symfony-project.com/symfony-1.2.4&lt;/pre&gt;
&lt;p&gt;インストール成功。&lt;/p&gt;
&lt;p&gt;確認。&lt;/p&gt;
&lt;pre&gt;$ &lt;code&gt;symfony -V&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;symfony1.2が入ってた。&lt;/p&gt;
&lt;pre&gt;symfony version 1.2.4 (/home/[account名]/local/PEAR/symfony)&lt;/pre&gt;
&lt;p&gt;「~/local/bin/」にsymfonyコマンドがあるので先ほど設定したパスで読み込まれるはず。&lt;br /&gt;
もしエラーだったらもう一度同じ「&lt;code&gt;set&lt;/code&gt; ～」を実行してみる。&lt;/p&gt;
&lt;h4&gt;プロジェクト生成後&lt;/h4&gt;
&lt;p&gt;プロジェクトをsymfonyコマンドで作った後、プロジェクト・ディレクトリ内「web/」とWebルート・ディレクトリ「~/www/」にシンボリックリンク。&lt;/p&gt;
&lt;pre&gt;$ &lt;code&gt;ln -s ~/symfony/sample/web ~/www/sample&lt;code&gt;&lt;/pre&gt;
&lt;p&gt;さらにsfの画像やデバッグツールを利用するため、シンボリックリンクを作成。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ln -s ~/local/PEAR/data/symfony/web/sf ~/symfony/sample/web/sf&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;さくらサーバでは「.htaccess」の「&lt;code&gt;Options&lt;/code&gt;」が利用できないのでコメントアウトし、「&lt;code&gt;RewriteBase&lt;/code&gt;」のコメントを外す。&lt;/p&gt;
&lt;pre&gt;    #Options +FollowSymLinks +ExecCGI
    RewriteBase /&lt;/pre&gt;
&lt;p&gt;さくらサーバの「php.ini」が「magic_quotes_gpc=on」がデフォルトなので、コントロールパネルの「PHP設定の編集」でオフにする。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;magic_quotes_gpc=off&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;これで完了。ブラウザからアクセスするとsymfonyデフォルトページが表示される。&lt;/p&gt;
&lt;h4&gt;おまけ&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;which&lt;/code&gt; [コマンド]&lt;/pre&gt;
&lt;p&gt;コマンドのパス&lt;/p&gt;
&lt;pre&gt;$ &lt;code&gt;which symfony&lt;/code&gt;
  /home/[account名]/local/bin/symfony&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;echo $PATH&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;設定されたパスが表示される。&lt;/p&gt;
&lt;pre&gt;$ &lt;code&gt;echo $PATH&lt;/code&gt;
  /sbin:/bin:/home/[account名]/local/bin:/home/[account名]/bin:/usr/local/bin&lt;/pre&gt;
&lt;h4&gt;参考&lt;/h4&gt;
&lt;div&gt;&lt;cite&gt;あんまネットやらないのにWeb系の研究やってるっていうwww&lt;/cite&gt;&lt;br /&gt;
&lt;a href="http://d.hatena.ne.jp/audioswitch/20080326/1206491773" title="さくらサーバーにsymfonyを入れてみた - あんまネットやらないのにWeb系の研究やってるっていうwww"&gt;さくらサーバーにsymfonyを入れてみた&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://d.hatena.ne.jp/audioswitch/20080327/1206624688" title="さくらサーバーでsymfonyを動かしてみた - あんまネットやらないのにWeb系の研究やってるっていうwww"&gt;さくらサーバーでsymfonyを動かしてみた&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://develop.ddo.jp/new-tech/php/framework/symfony/memo/install/%E3%81%95%E3%81%8F%E3%82%89%E3%81%AE%E3%83%AC%E3%83%B3%E3%82%BF%E3%83%AB%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%ABsymfony%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB" title="php:framework:symfony:memo:install:さくらのレンタルサーバーにsymfonyをインストール [おやぢ組]"&gt;さくらのレンタルサーバーにsymfonyをインストール&lt;/a&gt; - &lt;cite&gt;おやぢ組&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://makingx.net/blog/2007/09/18/symfony-install-at-sakura/" title="Making The Road Blog - さくらでSymfony"&gt;さくらでSymfony&lt;/a&gt; - &lt;cite&gt;Making The Road Blog&lt;/cite&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-5334130343379116347?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/5334130343379116347/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=5334130343379116347' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5334130343379116347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5334130343379116347'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/02/symfony12_07.html' title='symfony1.2インストール - さくらサーバ・スタンダード'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-1158169530131507364</id><published>2009-02-04T11:18:00.002+09:00</published><updated>2009-02-04T11:22:00.802+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Symfony'/><title type='text'>【symfony】1.2系インストール　メモ</title><content type='html'>&lt;div&gt;&lt;a href="http://blog.77jp.net/symfony/%ef%bc%91%ef%bc%8esymfony%e3%80%8012%e3%80%80%e5%85%a5%e9%96%80%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e6%ba%96%e5%82%99.html" title="１．symfony　1.2　入門(インストール準備) | Linux LABS"&gt;１．symfony　1.2　入門(インストール準備)&lt;/a&gt; - &lt;cite&gt;Linux LABS&lt;/cite&gt;&lt;br /&gt;
PEARかtar.gzか。レンタルサーバなどroot 権限がない場合は tar.gz をダウンロードしてインストール。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-1158169530131507364?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/1158169530131507364/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=1158169530131507364' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/1158169530131507364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/1158169530131507364'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/02/symfony12.html' title='【symfony】1.2系インストール　メモ'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-9087550074535225175</id><published>2009-02-04T11:12:00.003+09:00</published><updated>2009-02-04T11:18:28.992+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Symfony'/><title type='text'>【symfony】チュートリアル - symfonyでTwitter</title><content type='html'>&lt;div&gt;&lt;cite&gt;Knowledge Database IT&lt;/cite&gt; - タグ[&lt;a href="http://it.kndb.jp/tag/symfony%E3%81%A7Twitter" title="symfonyでTwitterのタグのついた記事 - Knowledge Database IT"&gt;symfonyでTwitter&lt;/a&gt;]&lt;br /&gt;
&lt;q&gt;symfonyでTwitterを作ってみる&lt;/q&gt;連載。おそらく1.1系。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-9087550074535225175?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/9087550074535225175/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=9087550074535225175' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/9087550074535225175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/9087550074535225175'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/02/symfony-symfonytwitter.html' title='【symfony】チュートリアル - symfonyでTwitter'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-1295907428306377998</id><published>2009-02-03T11:10:00.003+09:00</published><updated>2009-02-03T13:26:55.248+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><category scheme='http://www.blogger.com/atom/ns#' term='WordPress'/><title type='text'>WORDPRESS MU インストール - land.toサーバ</title><content type='html'>&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/usukey/20080215/1203071726" title="ロリポップでWordpress muをインストールする - 人間学とコンピュータを極める。"&gt;ロリポップでWordpress muをインストールする&lt;/a&gt; - &lt;cite&gt;人間学とコンピュータを極める。&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/satake7/20090110" title="WordPress MUのインストール(1) - satake7’s memo"&gt;WordPress MUのインストール(1)Comments&lt;/a&gt; - &lt;cite&gt;satake7’s memo&lt;/cite&gt;&lt;/div&gt;
&lt;h4&gt;ダウンロード&lt;/h4&gt;
&lt;h5&gt;WordPress MU&lt;/h5&gt;
&lt;div&gt;&lt;a href="http://mu.wordpress.org/download/" title="WordPress MU › Download »"&gt;download&lt;/a&gt; - &lt;cite&gt;WordPress MU&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;ここからZIPファイルを取得。現在最新は2.7。&lt;/p&gt;
&lt;h5&gt;日本語化ファイル&lt;/h5&gt;
&lt;div&gt;&lt;a href="http://code.google.com/p/wpmu-ja/" title="wpmu-ja - Google Code"&gt;wpmu-ja&lt;/a&gt; - &lt;cite&gt;Google Code&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;現在、2.7の日本語リソースが作成中なので2.6.2 用で代用。&lt;br /&gt;
(この後、2.6.5をインストールし直したが、ざっと使った感じはエラーや表示のずれなどなかった。)&lt;/p&gt;
&lt;h4&gt;アップロード&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;ダウンロードしたファイルを解凍（「wordpress-mu/」）&lt;br /&gt;
※ここでは解凍して出来たディレクトリ「wordpress-mu/」を「wp-mu/」にリネーム
&lt;/li&gt;
&lt;li&gt;日本語リソース「wpmu-262-ja.zip」を解凍（「ja.mo」と「ja.po」が出来る）&lt;/li&gt;
&lt;li&gt;「wp-mu/wp-content/」ディレクトリ内に「languages/」ディレクトリを作成して「ja.mo」「ja.po」を配置&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PHPのセキュリティ対策&lt;/strong&gt;として「wp-mu/htaccess.dist」ファイルの先頭に以下を追加。&lt;a href="#wp-mu-note"&gt;*&lt;/a&gt;
&lt;pre&gt;/* wp-mu/htaccess.dist */
&lt;code&gt;php_flag register_globals 0
php_flag display_errors 0&lt;/code&gt;&lt;/pre&gt;
&lt;strong&gt;「エラーメッセージを表示しない」「グローバル変数を許可しない」&lt;/strong&gt;ということを設定している。&lt;br /&gt;
「500 internal error」になることもあるので、そのときはインストール後に生成された「wp-mu/.htaccess」から2行を削除して保存。&lt;br /&gt;
「php.ini」で設定する場合は以下。
&lt;pre&gt;/* php.ini */
&lt;code&gt;display_errors = Off
register_globals = Off
&lt;/code&gt;&lt;/pre&gt;
&lt;span style="color:#900;"&gt;MySQLのデータベースの文字コードがUTF-8じゃない場合は以下も追記。&lt;span&gt;
&lt;pre&gt;&lt;code&gt;php_flag mbstring.encoding_translation off
php_value default_charset "UTF-8"&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;land.toサーバのための設定&lt;/strong&gt;&lt;br /&gt;
ルートディレクトリの「php.ini」で文字コードがEUC-JPになっているのでUTF-8に変更（日本語が保存できない）。
&lt;pre&gt;/* /php.ini */
// L.1128～
&lt;code&gt;mbstring.internal_encoding = UTF-8&lt;/code&gt;
// L.1137～
&lt;code&gt;mbstring.http_output = UTF-8&lt;code&gt;
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;サーバにアップロードする。&lt;/li&gt;
&lt;li&gt;「wp-mu/wp-contents/」のパーミッションを「0777」に変更。&lt;br /&gt;
※インストール後「0755」に戻す&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;インストール&lt;/h4&gt;
&lt;p&gt;「http://www.example.com/wp-mu/」にアクセス。&lt;/p&gt;
&lt;h5&gt;ブログ アドレスの設定&lt;/h5&gt;
&lt;p&gt;「Blog Address」の設定を選択&lt;br /&gt;
・サブドメイン（blog.example.com）&lt;br /&gt;
・サブディレクトリ（example.com/blog/）&lt;br /&gt;
ここでは「http://www.example.com/wp-mu/」で表示するようにサブディレクトリを選択。
&lt;/p&gt;
&lt;h5&gt;データベースの設定&lt;/h5&gt;
&lt;p&gt;
「Database」の設定にデータベース名とDBユーザー名、DBパスワード、ホスト名（localhost）を入力。
&lt;/p&gt;
&lt;h5&gt;サーバアドレスの設定&lt;/h5&gt;
&lt;p&gt;
「Server Address」はそのまま。
&lt;/p&gt;
&lt;h5&gt;サイトの詳細&lt;/h5&gt;
&lt;p&gt;
「Site Details」にブログタイトルとE-mailを設定。
&lt;/p&gt;
&lt;p&gt;以上が入力したら「install」開始。&lt;br /&gt;
インストールが成功したら、忘れずにパスワードをコピーして「log in」ボタンからログインする。
&lt;/p&gt;
&lt;h4&gt;サイトの設定&lt;/h4&gt;
&lt;h5&gt;パーミッション変更&lt;/h5&gt;
&lt;p&gt;「wp-mu/wp-contents/」のパーミッションを「0755」に戻す。&lt;/p&gt;
&lt;h5&gt;サイトの日本語化&lt;/h5&gt;
&lt;p&gt;「Setings &amp;gt; General &amp;gt; Blog language:』で『japanese」を選択して「Save Changes」ボタンをクリック。&lt;br /&gt;
インストール時に生成された「wp-mu/wp-config.php」を編集。 &lt;/p&gt;
&lt;pre&gt;/* wp-mu/wp-config.php */
// L.35～
&lt;code&gt;define ('WPLANG', 'ja');&lt;/code&gt;&lt;/pre&gt;
&lt;h5&gt;パスワード変更&lt;/h5&gt;
&lt;p&gt;「ユーザー &amp;gt; あなたのプロフィール &amp;gt; パスワード」から変更。&lt;/p&gt;
&lt;div&gt;&lt;cite&gt;satake7’s memo&lt;/cite&gt;&lt;br /&gt;
&lt;a href="http://d.hatena.ne.jp/satake7/20090112" title="WordPress MUのインストール(3) - satake7’s memo"&gt;2009-01-12 WordPress MUのインストール(3)&lt;/a&gt;&lt;br /&gt;
マルチドメイン設定。&lt;br /&gt;
&lt;a href="http://d.hatena.ne.jp/satake7/20090113" title="WordPress MUのインストール(4) - satake7’s memo"&gt;2009-01-13 WordPress MUのインストール(4)&lt;/a&gt;&lt;br /&gt;
メールの設定。登録メールとか送られない。
&lt;/div&gt;
&lt;h4&gt;Wordpress MU 2.6.5&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://svn.automattic.com/wordpress-i18n/fr_FR/tags/" title="Revision 7365: /fr_FR/tags"&gt;Revision 7365: /fr_FR/tags&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;日本語リソースに合わせて2.6系を入れなおした。ファイルが見つからないので上記リンクから。フランス語だろうがWordPressもMUもおそらく全てのバージョンがある。「wordpress-mu/wp-contents/languages/」にあるリソース「fr.mo」などを削除すれば英語になる。&lt;/p&gt;
&lt;p&gt;
管理画面は2.7の方が格好良い。&lt;q&gt;使えるCoolなWordPressテーマ&lt;/q&gt;って感じ。&lt;br /&gt;
でも2.6.5の方が使いやすい気がした。リソースの対応のせいか。
&lt;/p&gt;
&lt;div&gt;&lt;a href="http://www.nire.com/2008/02/wordpress-mu-disadvantages/" title="Wordpress MU が使えない理由 - Nire.Com"&gt;Wordpress MU が使えない理由&lt;/a&gt; - &lt;cite&gt;Nire.Com&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Wordpress MU  2.3.3での問題&lt;/strong&gt;&lt;br /&gt;
・www. つきのドメインにインストールできない(www. なしドメインにリダイレクトされる)&lt;br /&gt;
・ カテゴリースラッグがない&lt;/p&gt;
&lt;div id="wp-mu-note"&gt;&lt;a href="http://tekapo.com/st/2006/12/09/wordpress-mu-readme-ja/" title="WordPress MUのReadMeの訳"&gt;WordPress MUのReadMeの訳&lt;/a&gt; - &lt;cite&gt;Standing Tall&lt;/cite&gt;&lt;/div&gt;
&lt;blockquote cite="http://tekapo.com/st/2006/12/09/wordpress-mu-readme-ja/" title="WordPress MUのReadMeの訳"&gt; PHP
===
安全上の理由のため、PHPが次のように設定されていることがとても重要です：

   1. エラーメッセージをブラウザーに表示させない。この機能はたいていの場合無効になっていますが、何かをテストするために有効にしてそのまま忘れてしまうことがあります。
   2. グローバル変数は必ず無効にする事。これはセキュリティに敏感な管理者が最初に行なう事の一つです。最近ではデフォルトで無効になっています。
   3. ブログの登録を制限する場合は、制限する登録用メールのドメインを管理画面で設定してください。

これの最も簡単な設定方法は、インストールで作成される.htaccessファイルを利用することです。まだWPMUをインストールしていないのなら、このディレクトリにあるhtaccess.distファイルを編集して、次の２行を一番上に追記します：
php_flag register_globals 0
php_flag display_errors 0

これはすべての環境で作動するわけではないのでデフォルトのファイルには含まれていません。作動しなければ、インストール後に不可解な”500 internal error”が表示されるでしょう。その場合はインストールしたディレクトリの”.htaccess”ファイルを開いて、一番上にある上記の２行を削除して保存してください。 詳細はこちらを参照してください：http://ie.php.net/configuration.changes

.htaccessファイルを編集したくない場合はphp.iniを変更する必要があります。それがサーバのどこにあるのかを説明するのはこの READMEの範囲を超えていますが、もし共有サーバをお使いなら、その変更にはrootもしくは管理者権限が必要なのでphp.iniにはアクセスできないかもしれません。

もしroot権限をお持ちなら”locate php.ini”を試すかチェックインします：
/etc/php4/apache2/php.ini /usr/local/lib/php.ini

php.iniを開いたらregister_globals とdisplay_errorsに関するセクションを探します。次のように両方ともオフになっていることを確認してください：
display_errors = Off
register_globals = Off
php.iniの設定を更新するには変更後にApache を再起動する必要があります。 
&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-1295907428306377998?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/1295907428306377998/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=1295907428306377998' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/1295907428306377998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/1295907428306377998'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/02/wordpress-mu-landto.html' title='WORDPRESS MU インストール - land.toサーバ'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-5328029820666285033</id><published>2009-01-31T10:36:00.002+09:00</published><updated>2009-11-26T17:35:07.355+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='オープンソース'/><title type='text'>ショッピングカート　- OpenCart</title><content type='html'>&lt;p&gt;GNUライセンスのオープンソース・プログラム。&lt;br /&gt;
Apache&lt;br /&gt;
PHP 5(PHP4対応ver.有)&lt;br /&gt;
MySQL&lt;br /&gt;
&lt;/p&gt;
&lt;blockquote cite="http://opencart.jp/" title="Opencart.jp(日本語)- 無料！で使えるショッピングカート"&gt;オープンカートは英国生まれのショッピングカートです。  PHPをベースとしたオープンカートは、コンパクトでパワフル。  雑貨や服などの発送を必要とするものから、オンラインで完結する  音楽やPDFなどのデジタルコンテンツの販売まで、多種多様の  ショッピングサイトを安価に、スピーディーにつくることができます。&lt;/blockquote&gt;
&lt;div&gt;&lt;a href="http://opencart.jp/" title="Opencart.jp(日本語)- 無料！で使えるショッピングカート"&gt;&lt;cite&gt;opencart.jp&lt;/cite&gt;&lt;/a&gt;&lt;br /&gt;
日本語化（準備中）&lt;br /&gt;
本家 - &lt;cite&gt;&lt;a href="http://www.opencart.com/index.php?route=common/home" title="OpenCart - Open Source Shopping"&gt;OpenCart&lt;/a&gt;&lt;/cite&gt;&lt;/div&gt;
&lt;h4&gt;インストール&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;ダウンロード
&lt;div&gt;&lt;a href="http://www.opencart.com/index.php?route=information/download" title="OpenCart - Download"&gt;Download&lt;/a&gt; - &lt;cite&gt;OpenCart&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;一番上の&lt;q&gt;the latest version&lt;/q&gt;(最新版)。&lt;q&gt;PHP4 version&lt;/q&gt;も有る。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;アップロード
解凍して「upload/」ディレクトリ内のファイルをアップロード。&lt;br /&gt;
今回は海外サーバ Zymicに「opencart/」ディレクトリを作成してアップ。
&lt;/li&gt;
&lt;li&gt;書き込み権限を与える
&lt;pre&gt;
cache/ [0777]
download/ [0777]
image/ [0777]
image/cache/ [0777]
config.php [0755]
admin/config.php [0755]
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;データベースの準備&lt;br /&gt;
&lt;p&gt;MySQLでデータベースを作成する。&lt;br /&gt;
DB名、DBユーザ名、DBパスワードが必要。
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;書き込み権限を変更
&lt;pre&gt;  opencart/config.php [0744]
  opencart/admin/config.php [0744]&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;インストール
アップロードしたディレクトリにアクセス。&lt;br /&gt;
ここでは「http://www.example.com/opencart/」&lt;/li&gt;
&lt;li&gt;「opencart/install」を削除
&lt;p&gt;インストールが完了したらセキュリティのため消す。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;日本語化&lt;/h4&gt;
&lt;p&gt;
日本語公式サイトより先に日本語化されているサイト。&lt;br /&gt;
こちらが本家サイトに投稿した日本語化ファイルを使用。
&lt;/p&gt;
&lt;div&gt;&lt;cite&gt;Development memo&lt;/cite&gt;&lt;br /&gt;
&lt;a href="http://officesoya.net/weblog/2008/11/12/opencart_japanese/" title="OpenCartの日本語化（バグフィックス）"&gt;OpenCartの日本語化（バグフィックス）&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://officesoya.net/weblog/2008/11/21/opencart_japanse/" title="OpenCartの日本語化"&gt;OpenCartの日本語化&lt;/a&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;ダウンロード
&lt;div&gt;&lt;a href="http://www.opencart.com/index.php?route=contribution/contribution/info&amp;amp;category_id=7&amp;amp;contribution_id=79" title="Contributions - Japanese language pack for v0.7.8"&gt;Japanese language pack for v0.7.8&lt;/a&gt; - &lt;cite&gt;OpenCart&lt;/cite&gt;&lt;/div&gt;
「Contributions」には他にもテンプレートやプラグインがある。
&lt;/li&gt;
&lt;li&gt;アップロード
&lt;p&gt;解凍して上書き。&lt;/p&gt;
&lt;pre&gt;  update/admin
  update/catalog&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;管理画面から日本語を選択
&lt;p&gt;adminで管理者ページにログインをして「Admin &amp;gt; Configration &amp;gt; Localisation &amp;gt; Language」
から上のアイコンの「Insert」ボタンを押し、以下の設定で「Save」ボタンを押して登録。
&lt;/p&gt;
&lt;pre&gt;Language Name:日本語
Code:ja
Image:ja.png
Directory:japanese
Filename:japanese.php&lt;/pre&gt;
&lt;p&gt;
本当はこれで登録できるはずですが、バグがあって登録できない。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;修正　その１
&lt;pre title="OpenCartの日本語化（バグフィックス）"&gt;/* /upload/library/environment/url.php L.80～ */
変更前
&lt;code&gt;return htmlspecialchars($server . $link);&lt;/code&gt;
変更後
&lt;code&gt;return $server . $link;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;コメントアウトなどして変更。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;修正　その２
&lt;pre title="OpenCartの日本語化（バグフィックス）"&gt;/* /upload/admin/template/default/content/product.tpl L.10～ */
// 変更前
&lt;code&gt;&amp;lt;div class=”enabled” onmouseover=”className=’hover’” onmouseout=”className=’enabled’” onclick=”location=’&amp;lt;?php echo $delete; ?&amp;gt;’&amp;gt;&lt;/code&gt;
// 変更後
&lt;code&gt;&amp;lt;div class=”enabled” onmouseover=”className=’hover’” onmouseout=”className=’enabled’” onclick=”location=’&amp;lt;?php echo $delete; ?&amp;gt;’”&amp;gt;&lt;/code&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;ダブルクォートを閉じる。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-5328029820666285033?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/5328029820666285033/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=5328029820666285033' title='2 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5328029820666285033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/5328029820666285033'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/01/opencart.html' title='ショッピングカート　- OpenCart'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-8634326613335404374</id><published>2009-01-31T09:55:00.003+09:00</published><updated>2009-01-31T10:00:15.194+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><title type='text'>【JavaScript】フォームに入力された全角英数字を自動的に半角変換する</title><content type='html'>&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/kokoromo/20090113/1231828845" title="フォームに入力された全角英数字を自動的に半角変換するJavascript - ＷＥＢ開発おさんぽブログ"&gt;フォームに入力された全角英数字を自動的に半角変換するJavascript&lt;/a&gt; - &lt;cite&gt;ＷＥＢ開発おさんぽブログ&lt;/cite&gt;&lt;/div&gt;
&lt;pre title="フォームに入力された全角英数字を自動的に半角変換するJavascript - ＷＥＢ開発おさんぽブログ"&gt;/* HTML */
&lt;code&gt;&amp;lt;input onkeyup=&amp;quot;zentohan(this)&amp;quot; type=&amp;quot;text&amp;quot; /&amp;gt;&lt;/code&gt;
/* Javascript */
&lt;code&gt;function zentohan(obj){
  if(typeof(obj.value)!=&amp;quot;string&amp;quot;)return false;
    var han= '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@-.,:';
    var zen= '１２３４５６７８９０ａｂｃｄｅｆｇｈｉｊｋｌｍｎｏｐｑｒｓｔｕｖｗｘｙｚＡＢＣＤＥＦＧＨＩＪＫＬＭＮＯＰＱＲＳＴＵＶＷＸＹＺ＠－．，：';
    var word = obj.value; for(i=0;i&amp;lt;zen.length;i++){ var regex = new RegExp(zen[i],&amp;quot;gm&amp;quot;);
    word = word.replace(regex,han[i]);
  }
  obj.value = word;
}&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-8634326613335404374?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/8634326613335404374/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=8634326613335404374' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/8634326613335404374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/8634326613335404374'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/01/javascript.html' title='【JavaScript】フォームに入力された全角英数字を自動的に半角変換する'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-1475502920566489114</id><published>2009-01-30T16:09:00.004+09:00</published><updated>2009-01-30T18:21:53.199+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><title type='text'>Zimplit インストール</title><content type='html'>&lt;div&gt;&lt;a href="http://www.zimplit.com/index.html" title="Home"&gt;Zimplit&lt;/a&gt; - &lt;cite&gt;&lt;/cite&gt;&lt;/div&gt;

&lt;div&gt;&lt;a href="http://www.zimplit.com/designs.php" title=""&gt;Choose template&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;
Zimplitは簡単に作られるCMS （コンテンツマネジメントシステム）。
非常に軽量、シンプルでカスタマイズ可能。 
It's easy to install, and easy to use via a simple web interface.
インストールも使用もWebインタフェースを介して簡単に出来る。
Zimplitはコアファイル1つだけで構成されている。無料。リンク表示すれば商用でも無料ぽい。要確認。http://www.zimplit.com/license.html
&lt;/p&gt;
&lt;div&gt;&lt;a href="http://www.moongift.jp/2008/12/zimplit/" title="MOONGIFT: » 必見！たった2ファイルからはじまる凄いWebサイト構築「Zimplit」:オープンソースを毎日紹介"&gt;必見！たった2ファイルからはじまる凄いWebサイト構築「Zimplit」&lt;/a&gt; - &lt;cite&gt;&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://blog.x28.jp/archives/97" title="CMS『Zimplit』をインストールしてみた。 | x28"&gt;CMS『Zimplit』をインストールしてみた。&lt;/a&gt; - &lt;cite&gt;&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.cmswave.com/2008/12/23/zimplit/" title="Zimplitは確かに「衝撃が走る」というにふさわしい・・・。 | CMSWAVE"&gt;Zimplitは確かに「衝撃が走る」というにふさわしい・・・。&lt;/a&gt; - &lt;cite&gt;&lt;/cite&gt;&lt;/div&gt;
&lt;h4&gt;インストール&lt;/h4&gt;
&lt;p&gt;Zymicという海外無料ホスティングサービスを使ってみる。PHP+MySQL（Database４つまで?）で大容量。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
ダウンロード
&lt;/li&gt;
&lt;li&gt;アップロード&lt;br /&gt;
http://example.com/zimplit/
&lt;/li&gt;
&lt;li&gt;権限変更&lt;br /&gt;
うまくいかなかったので全部777にした。&lt;br /&gt;
もしかしたらWebルートの権限変更できないと直下には展開できないのかも。&lt;br /&gt;
ファイル作るから。&lt;br /&gt;
zimplit/ [777]&lt;br /&gt;
zimplit/zimplit.php[777]&lt;br /&gt;
zimplit/Z-scripts/[777]&lt;br /&gt;

「Readme.txt」参照
chmod 775  [ドキュメントルート]&lt;br /&gt;
chmod 755  [ドキュメントルート]/zimplit.php&lt;br /&gt;
chmod 777 [ドキュメントルート]/Z-scripts/&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;http://example.com/zimplit/zimplit.phpにアクセス登録&lt;br /&gt;
ユーザ、パス、メールを入力
&lt;/li&gt;
&lt;li&gt;ログインしてテンプレート選択&lt;br /&gt;
…といきたいところだが、file_get_contents()が外部アクセスできない。&lt;br /&gt;
&lt;div&gt;&lt;a href="http://blog.ohgaki.net/allow_url_fopen" title="allow_url_fopen"&gt;allow_url_fopen&lt;/a&gt; - &lt;cite&gt;&lt;/cite&gt;&lt;/div&gt;
ここを参考に対策。※要curl関数
&lt;div&gt;&lt;a href="http://jp.php.net/fopen" title="PHP: fopen - Manual"&gt;fopen&lt;/a&gt; - &lt;cite&gt;&lt;/cite&gt;&lt;/div&gt;
curlもインストールされてないので直接テンプレートをダウンロードしてzimplit/にアップロードして権限変更。&lt;br /&gt;
index.html[766]
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
すごく簡単でDB要らずと評判に期待したのだが。動作重い。&lt;br /&gt;
ツールメニューアイコンが残念。&lt;br /&gt;
しかしDB要らないのとファイル少ないのはいいし、ユーザ画面を直接編集できるのは良いと思う。&lt;br /&gt;
XREAに入れてみようかな。
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-1475502920566489114?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/1475502920566489114/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=1475502920566489114' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/1475502920566489114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/1475502920566489114'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/01/zimplit.html' title='Zimplit インストール'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-1864166678512400024</id><published>2009-01-29T15:08:00.004+09:00</published><updated>2009-02-03T11:10:17.275+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><title type='text'>concrete5 日本語化と使用雑感</title><content type='html'>&lt;p&gt;
最新版はconcrete5.2のようなんだけど、どうも上手くない部分が多い。&lt;br /&gt;
日本語化の.moファイルを使ってみても中途半端。5.2と5.1だとダッシュボードのメニューとファイル構成が若干違うっぽい（「ページとテーマ」が別れてたり）。&lt;br /&gt;
日本語化ファイルは5.1以降と書いてあったのでconcrete5.1を探しだしてインストールしなおして。&lt;br /&gt;
それでも日本語化は途中の様。日本語プロジェクト・デモを見るといい感じなのでもう少しで公開されるかなぁ。
&lt;/p&gt;
&lt;h4&gt;日本語化参考サイト&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://www.1craft.ne.jp/blog/?p=39" title="下町のサーバー管理者ブログ » Concrete5 その2"&gt;Concrete5 その2&lt;/a&gt; - &lt;cite&gt;下町のサーバー管理者ブログ&lt;/cite&gt;&lt;/div&gt;
&lt;h4&gt;雑感&lt;/h4&gt;
&lt;p style="font-size:90%;"&gt;
「No input file specified.」エラーにならないように「.htaccess」作ったのに、テーマをインストールすると出るし5.2だとダッシュボードのリンクが変な感じ。他のディレクトリにも配置した方がいいのかどうか。&lt;br /&gt;
動作感はAjax多様なのでもっさり。bloggerよりモッサリ。&lt;br /&gt;
テーマも充実とまではいかなくても、あるので即席でサイト立ち上げるのには良いかも。公開できる一定レベルの完成度に達するスピードがすごく早い。&lt;br /&gt;
使い方は慣れが必要だが、WP程設定がないので気にかけず済む。編集画面が公開ページから離れないので良い。&lt;br /&gt;
リッチテキスト編集は、やはり融通が利かず厳密に細かくデザインしようとすると限度がありストレスも溜まる。&lt;br /&gt;
が、Webビギナーには良いだろう。自分で更新したいというサイトオーナーにWPの使用法を教育するよりは簡単な気がする。何度も校正させられたりデザイン案を変えられるのもこういうので対応できたら良いのに。
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-1864166678512400024?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/1864166678512400024/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=1864166678512400024' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/1864166678512400024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/1864166678512400024'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/01/concreet5.html' title='concrete5 日本語化と使用雑感'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-564702832818028001</id><published>2009-01-28T18:29:00.002+09:00</published><updated>2009-01-28T18:34:23.468+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='その他'/><title type='text'>フリーのSubversion &amp; Tracサービス - assembla</title><content type='html'>&lt;div&gt;&lt;a href="http://pools.jp/2008/01/08/%E3%83%95%E3%83%AA%E3%83%BC%E3%81%AEsubversion-trac%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9assembla%E3%82%92%E4%BD%BF%E3%81%86/" title="pools.jp | フリーのSubversion &amp;amp; Tracサービス(assembla)を使う"&gt;フリーのSubversion &amp;amp; Tracサービス(assembla)を使う&lt;/a&gt; - &lt;cite&gt;pools.jp&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;
プロジェクト管理ツールとして、Web制作や開発には必須っぽいTrac。&lt;br /&gt;
自分でインストールするのが良さげだが、無料ホスティングでは厳しそうなので。&lt;br /&gt;
使い心地を知ってから。こういうタスク管理とかを継続させるのが苦手だ。
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-564702832818028001?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/564702832818028001/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=564702832818028001' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/564702832818028001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/564702832818028001'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/01/subversion-trac-assembla.html' title='フリーのSubversion &amp;amp; Tracサービス - assembla'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-6639495180304527440</id><published>2009-01-28T17:07:00.003+09:00</published><updated>2009-01-29T15:51:07.120+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><title type='text'>Concrete5インストール - XREAサーバ</title><content type='html'>&lt;ins title="追記：2009/01/29" datetime="2009-01-29T15:55:00+09:00"&gt;
&lt;strong&gt;追記：2009/01/29&lt;/strong&gt;&lt;br /&gt;
concrete5.1をインストールしなおして日本語化パッチ入れました。&lt;br /&gt;
&lt;a href="http://saboten009.blogspot.com/2009/01/concreet5.html" title="さぼてん: concreet5 日本語化と使用雑感"&gt;2009年1月29日    concreet5 日本語化と使用雑感&lt;/a&gt; - &lt;cite&gt;&lt;/cite&gt;&lt;/ins&gt;

&lt;h4&gt;参考サイト&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://www.concrete5.jp/" title="Concrete5 Japan :: Home Page"&gt;Concrete5　日本語サポートサイトにようこそ&lt;/a&gt; - &lt;cite&gt;Concrete5 Japan&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/toytools/20081107" title="CMS「concrete5」を試してみた - toytools log"&gt;CMS「concrete5」を試してみた&lt;/a&gt; - &lt;cite&gt; toytools log&lt;/cite&gt;&lt;/div&gt;
&lt;h5&gt;.htaccess - XREA設定&lt;/h5&gt;
&lt;p&gt;セーフモードでないCGIモジュールPHPとかCookieとかセッションの設定。次の手順に記載。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/YOSIZO/20081207/1228579439" title="CORESERVER.JPでConcrete5日本語版を動かす - 飽きたら消すよ。"&gt;CORESERVER.JPでConcrete5日本語版を動かす&lt;/a&gt; - &lt;cite&gt;飽きたら消すよ。&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://one-one.biz/wordpress/?p=1415" title="ONE/ONE - Concrete5をXreaで動かしてみる日。"&gt;Concrete5をXreaで動かしてみる日。&lt;/a&gt; - &lt;cite&gt;ONE/ONE&lt;/cite&gt;&lt;/div&gt;
&lt;p&gt;.htaccess設定の根拠。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://walrus.vox.com/library/post/xrea%E3%81%ABconcrete5%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB.html" title="XREAにConcrete5をインストール - Vox"&gt;XREAにConcrete5をインストール&lt;/a&gt; - &lt;cite&gt;Vox&lt;/cite&gt;&lt;/div&gt;
&lt;h4&gt;インストール方法&lt;/h4&gt;
&lt;p&gt;一般的な手順。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;ダウンロード&lt;/strong&gt;&lt;br /&gt;
http://www.concrete5.org
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;解凍&lt;/strong&gt;&lt;br /&gt;
ダウンロードしたら解凍
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;サーバにアップロード&lt;/strong&gt;&lt;br /&gt;
ここでは「public_html/concrete/」にする
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;アクセス権限の設定変更&lt;/strong&gt;&lt;br /&gt;
書き込みを権限７７７に変更
&lt;pre&gt;config/
files
files/onstates
files/cache
files/trash
files/avatars
files/thumbnails
&lt;/pre&gt;
※「files/」以下のディレクトリは自分で作るか、SSHで&lt;code&gt;chmod&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;.htaccessの設定&lt;/strong&gt;&lt;br /&gt;
&lt;pre title="Concrete5をXREAにインストールするための.htaccess"&gt;/* .htaccess */
&lt;code&gt;
mod_gzip_on Off
AddHandler application/x-httpd-phpcgi .php
php_flag session.use_cookies On
php_flag session.use_trans_sid Off
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;インストール画面にアクセス&lt;/strong&gt;&lt;br /&gt;
ここでは「http://example.com/concrete/」
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;データベースの設定を入力&lt;/strong&gt;&lt;br /&gt;
サイト名とサーバとデータベース名とパスワードとデータベースユーザを入力。
※サーバは「localhost」で良い
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;インストール完了&lt;/strong&gt;&lt;br /&gt;
ログインIDとパスが表示されるので忘れないように
&lt;/li&gt;
&lt;/ol&gt;
&lt;h5&gt;自分の場合&lt;/h5&gt;
&lt;p&gt;
「.htaccess」が本当に必要かと一行ずつ追加してったり、エラーでてから権限とかも変更していったからか、四苦八苦。&lt;br /&gt;
&lt;q&gt;こんなに簡単でいいのか&lt;/q&gt;と各所で言われるインストールでエラーが消えず。&lt;br /&gt;
具体的には、インストール後にsession_start()エラーがずっと出てて、あれこれやって、仕方ないのでデータベース設定ファイル「config/site.php」を削除して、エラーが出てる「concrete/startup/session.php」の「&lt;code&gt;session_start()&lt;/code&gt;」をコメントアウトしてから再インストールして、その後コメントアウトを外した。
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-6639495180304527440?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/6639495180304527440/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=6639495180304527440' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/6639495180304527440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/6639495180304527440'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/01/concrete5-xrea.html' title='Concrete5インストール - XREAサーバ'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-4458329753176470</id><published>2009-01-28T13:07:00.005+09:00</published><updated>2009-01-28T17:50:16.400+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><title type='text'>Concrete5メモ</title><content type='html'>&lt;p&gt;CMS。ユーザ画面を直接編集できる。ブロック追加・編集。MITライセンス&lt;/p&gt;
&lt;div&gt;&lt;a href="http://www.concrete5.org/" title="Concrete5 :: Get Started"&gt;&lt;cite&gt;concrete5&lt;/cite&gt;&lt;/a&gt;&lt;br /&gt;
∟&lt;a href="http://sourceforge.net/project/showfiles.php?group_id=225586/" title="SourceForge.net: concrete5: Files"&gt;ダウンロード&lt;/a&gt;&lt;br /&gt;
∟&lt;a href="http://www.concrete5.org/index.php?cID=614" title="Concrete5 :: Themes"&gt;テーマ&lt;/a&gt;&lt;br /&gt;
∟&lt;a href="http://www.concrete5.org/index.php?cID=3208" title="Concrete5 :: Add-Ons"&gt;アドオン&lt;/a&gt;&lt;br /&gt;
ホスティングサービスもしてるようだ。&lt;br /&gt;
&lt;a href="https://www.getconcrete5.com/get_started/" title="Get Concrete5! :: Get Started"&gt;Choose Your concrete5 Hosting Package&lt;/a&gt;
&lt;/div&gt;
&lt;h4&gt;レビュー&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://www.moongift.jp/2008/11/concrete5/" title="MOONGIFT: » 必見！怖くなるくらい優秀なCMS「concrete5」:オープンソースを毎日紹介"&gt;必見！怖くなるくらい優秀なCMS「concrete5」&lt;/a&gt; - &lt;cite&gt;MOONGIFT&lt;/cite&gt;&lt;br /&gt;
&lt;a href="http://journal.mycom.co.jp/articles/2008/12/02/concrete5/index.html" title="【レビュー】ある意味CMSの理想型かも。『Concrete5』を試す! (1) 物足りなさを解消したCMS「Concrete5」 | ネット | マイコミジャーナル"&gt;ある意味CMSの理想型かも。『Concrete5』を試す!&lt;/a&gt; - &lt;cite&gt;マイコミジャーナル&lt;/cite&gt;&lt;br /&gt;
使い方や設定について詳しく&lt;/div&gt;
&lt;div&gt;&lt;a href="http://concrete.miningbrownie.org/" title="Concrete5.1日本語デモサイト :: ホーム"&gt;Concrete5.1日本語デモサイト&lt;/a&gt; - &lt;cite&gt;&lt;/cite&gt;&lt;/div&gt;
&lt;strong&gt;インストール&lt;/strong&gt;&lt;br /&gt;
&lt;div&gt;&lt;a href="http://www.concrete5.jp/" title="Concrete5 Japan :: Home Page"&gt;Concrete5　日本語サポートサイトにようこそ&lt;/a&gt; - &lt;cite&gt;Concrete5 Japan&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/toytools/20081107" title="CMS「concrete5」を試してみた - toytools log"&gt;CMS「concrete5」を試してみた&lt;/a&gt; - &lt;cite&gt;toytools log&lt;/cite&gt;&lt;br /&gt;
&lt;q&gt;イメージ的にはWEB上で作ってけるDreamWeaverとかそんなイメージ。&lt;/q&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/YOSIZO/20081207/1228579439" title="CORESERVER.JPでConcrete5日本語版を動かす - 飽きたら消すよ。"&gt;CORESERVER.JPでConcrete5日本語版を動かすCommentsAdd Star&lt;/a&gt; - &lt;cite&gt;飽きたら消すよ。&lt;/cite&gt;&lt;br /&gt;
・XREAサーバで動かすための.htaccess設定&lt;/div&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/matsuou1/20081203" title="2008-12-03 - matsuou1の日記"&gt;巷で噂の「Concrete5」をさくらでインストールしてみた。&lt;/a&gt; - &lt;cite&gt;matsuou1の日記&lt;/cite&gt;&lt;br /&gt;
・MｙSQL4や空じゃないDBにインストールするカスタマイズ。
&lt;/div&gt;
&lt;div&gt;&lt;a href="http://tech.ironhearts.com/blog/?p=141&amp;amp;c=1" title="話題のCMS Concrete5をインストールする際の３つの注意点 » TECH Matari"&gt;話題のCMS Concrete5をインストールする際の３つの注意点&lt;/a&gt; - &lt;cite&gt;TECH Matari&lt;/cite&gt;&lt;br /&gt;
1.空のデータベースが必要&lt;br /&gt;
2.動作環境&lt;br /&gt;
・PHP5（GDとSimpleXMLが必要)&lt;br /&gt;
・MySQL 4.1以上&lt;br /&gt;
・Lucene（ルシーン）があると全文検索が便利&lt;br /&gt;
・Python 2.2 があると、バージョン比較機能が便利&lt;br /&gt;
3.権限とかサーバ環境とかその辺&lt;/div&gt;
&lt;div&gt;&lt;a href="http://tech.ironhearts.com/blog/archives/144" title="[あえて]concrete5が残念な4つの理由"&gt;[あえて]concrete5が残念な4つの理由&lt;/a&gt; - &lt;cite&gt;TECH Matari&lt;/cite&gt;&lt;br /&gt;
1.テーマファイルの少なさ（皆無）&lt;br /&gt;
→現在はそれなりに&lt;br /&gt;
2.完全日本語対応がややこしい&lt;br /&gt;
→現在はそれなりに？&lt;br /&gt;
3.拡張性の低さ(プラグインが皆無)&lt;br /&gt;
→現在はそれなりに&lt;br /&gt;
4.直感的な編集操作が良い、とは限らない
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-4458329753176470?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/4458329753176470/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=4458329753176470' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/4458329753176470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/4458329753176470'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/01/concrete5.html' title='Concrete5メモ'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-1954894860124704902</id><published>2009-01-27T23:24:00.005+09:00</published><updated>2009-02-02T16:28:23.679+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='オープンソース'/><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><title type='text'>WordPress MU メモ</title><content type='html'>&lt;a href="http://code.google.com/p/wpmu-ja/"&gt;wpmu-ja&lt;/a&gt;&lt;br /&gt;
・ダウンロード&lt;br /&gt;
&lt;a href="http://wp.tekapo.com/2008/07/30/wordpress-mu-26/"&gt;WordPress MU 2.6&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://wpdocs.sourceforge.jp/WordPress_MU"&gt;WordPress MU&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://factory.theta.ne.jp/"&gt;WordPress MU &amp;amp; Smarty Factory&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://blog.pear.co.jp/archives/14"&gt;WordPress MUインストール&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://pc.watanet.com/?p=375"&gt;Wordpress MU 2.6.3のインストール&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://yonyon-blog.net/youmei/2008/10/18/wordpress-mu-262-%E3%81%ABupdate%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F/"&gt;WordPress MU 2.6.2 にUpdateしてみた&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://d.hatena.ne.jp/usukey/20080215/1203071726"&gt;ロリポップでWordpress muをインストールする&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://wb.corekuuma.com/archives/category/wpmu%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3"&gt;WPMUプラグイン&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://factory.theta.ne.jp/2007/03/28/wordpress-mu%E7%94%A8css%E7%B7%A8%E9%9B%86%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3/"&gt;WordPress MU用CSS編集プラグイン&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.nire.com/2008/02/wordpress-mu-disadvantages/"&gt;Wordpress MU が使えない理由&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://bull.sueki.net/articles/wordpressmu/122.html"&gt;WordPress MUでは、Javascriptなどのタグを投稿出来ない？&lt;/a&gt;&lt;br /&gt;
・対処するプラグイン&lt;br /&gt;
∟&lt;a href="http://wordpress.org/extend/plugins/unfiltered-mu/"&gt;Unfiltered MU&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.netagura.com/2008/03/08/110/"&gt;WordPress MUのユーザーに関するまとめ&lt;/a&gt;&lt;br /&gt;
・ユーザ権限のまとめ&lt;br /&gt;
&lt;a href="http://wpdocs.sourceforge.jp/%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%AE%E7%A8%AE%E9%A1%9E%E3%81%A8%E6%A8%A9%E9%99%90" title="ユーザーの種類と権限 - WordPress Codex 日本語版"&gt;ユーザーの種類と権限&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-1954894860124704902?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/1954894860124704902/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=1954894860124704902' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/1954894860124704902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/1954894860124704902'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/01/wordpress-mu.html' title='WordPress MU メモ'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-8472101471673252632</id><published>2009-01-27T23:07:00.002+09:00</published><updated>2009-01-27T23:23:57.369+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='オープンソース'/><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><title type='text'>bbPressメモ</title><content type='html'>&lt;a href="http://blog.poyo.jp/archives/id-1171905394"&gt;bbPressの翻訳をしてみた&lt;/a&gt;&lt;br /&gt;
∟&lt;a href="http://www.php-seed.net/blog/archives/368"&gt;オープンソースWebアプリに向いた設計&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://bono.s201.xrea.com/2008/01/619-bbpress_install/"&gt;bbPress: XREA サーバへの設置 1) インストール編&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://haaya.net/1051"&gt;*  bbPressをXrea s301サーバーにインストールしてみる。&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.moongift.jp/2007/12/bbpress/"&gt;WordPressをフォーラムに「bbPress」&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://wordpress.seesaa.net/article/92100227.html"&gt;bbPress 0.9 リリース&lt;/a&gt;&lt;br /&gt;

&lt;a href="http://www.orioa.com/bbpress-theme-k2-release/"&gt;bbPress Theme: K2 Release&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.orioa.com/bbpress-plugin-%EF%BC%9A-google-analytics/"&gt;BBPress Plugin ： Google Analytics&lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-8472101471673252632?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/8472101471673252632/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=8472101471673252632' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/8472101471673252632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/8472101471673252632'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/01/bbpress.html' title='bbPressメモ'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-3544096423788745930</id><published>2009-01-22T15:43:00.014+09:00</published><updated>2010-10-13T12:01:00.676+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>【PHP】ImageMagickとImagick - XREAサーバ</title><content type='html'>&lt;p&gt;画像の加工に豊富な機能を提供するImageMagickをXREAで使う方法と使い方サンプルのメモ。&lt;/p&gt;
&lt;ins datetime="2010-10-13T12:00:00+09:00"&gt;
&lt;p&gt;&lt;strong&gt;追々記:2010/10/13&lt;/strong&gt;&lt;br /&gt;
コメントで教えて頂きましたImagick3.0をインストールする方法。有難うございます。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://macs.o-ya.net/cboard/c-board.cgi?cmd=one;no=1056;id=bbs" title="携帯農薬検索実験室／研究会"&gt;〔1056〕XREA/CORESERVER で最新 ImageMagick と Imagick&lt;/a&gt; - &lt;cite&gt;携帯農薬検索実験室／研究会&lt;/cite&gt;&lt;/div&gt;
&lt;/ins&gt;
&lt;ins datetime="2010-02-16T11:52:00+09:00"&gt;
&lt;p&gt;
&lt;strong&gt;追記:2010/2/16&lt;/strong&gt;&lt;br /&gt;
XREAサーバはImageMagick 6.2.9なのでImageMageck 6.3以降でないと使えない機能が結構ある。XREAバージョンアップしてくれないかな。&lt;/p&gt;
&lt;p&gt;以下失敗メモ。&lt;br /&gt;Imagick最新にすれば良いかと「&lt;code&gt;pecl bundle imagick-3&lt;/code&gt;」とベータだけどやったが「&lt;code&gt;./configure&lt;/code&gt;」で失敗するしImageMagick自体は変わらないから意味ないと&lt;a href="http://www.imagemagick.org/script/install-source.php#unix" title="ImageMagick: Install from Source"&gt;ここを参考に&lt;/a&gt;ソースからインストール。「&lt;code&gt;tar&lt;/code&gt;」失敗。権限的に無理なんだろう。「&lt;code&gt;pecl install imagick&lt;/code&gt;」したら「ImageMagick6.5.9」ディレクトリが出来てた。「&lt;code&gt;./configure&lt;/code&gt;」で失敗。「cannot find input file: `Magick++/bin/Magick++-config.in」とかなんとか。&lt;/p&gt;
&lt;/ins&gt;
&lt;h4&gt;ImageMagick&lt;/h4&gt;
&lt;p&gt;CGIモジュール版PHPにする。&lt;/p&gt;
&lt;pre&gt;/* .htaccess */
&lt;code&gt;&amp;lt;files imagick.php&amp;gt;
      AddHandler application/x-httpd-phpcgi .php
&amp;lt;/files&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;PHPからは次の様にコマンドで実行。&lt;br /&gt;
以下の例は画像サイズ変換。縦横の比率は保持される模様。&lt;/p&gt;
&lt;pre&gt;/* imagick.php */
&lt;code&gt;exec('convert -geometry 30x30 photo01.jpg thumb.jpg');&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Imagick&lt;/h4&gt;
&lt;p&gt;ImageMagickを使いやすくするPHPライブラリPECL::Imagick。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;インストール&lt;/strong&gt;&lt;br /&gt;
SSHでPEARをインストール。
&lt;/p&gt;
&lt;pre&gt;&lt;code title="XREAにPHP-Imagickをインストールする方法 - とびだせハイウェイ"&gt;
$ pear config-create /virtual/[ユーザ名]/public_html .pearrc
$ pear install -o PEAR
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;PECLからImagickをダウンロードしてmake。&lt;/p&gt;
&lt;pre&gt;&lt;code title="XREAにPHP-Imagickをインストールする方法 - とびだせハイウェイ"&gt;
$ pecl bundle imagick-2.1.1
$ cd imagick
$ phpize
$ ./configure
$ make
$ cp modules/imagick.so /virtual/[ユーザ名]/extension/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;設定&lt;/strong&gt;&lt;br /&gt;
上記同様「.htaccess」を設定してPHPモジュール版として動かす。&lt;br /&gt;
Imagickを使うファイルと同ディレクトリに「php.ini」を配置。パスを設定。&lt;/p&gt;
&lt;pre&gt;/* php.ini */
&lt;code title="XREAにPHP-Imagickをインストールする方法 - とびだせハイウェイ"&gt;
extension_dir = &amp;quot;/virtual/username/extension/&amp;quot;
extension=imagick.so
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;動作確認&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code title="XREAにPHP-Imagickをインストールする方法 - とびだせハイウェイ"&gt;&amp;lt;?php
　 var_dump(class_exists('Imagick'));
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;参考&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/flyaway/20080321/1206102937" title="XREAにPHP-Imagickをインストールする方法 - とびだせハイウェイ"&gt;XREAにPHP-Imagickをインストールする方法&lt;/a&gt; - &lt;cite&gt;とびだせハイウェイ&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;cite&gt;画像処理についてあれこれ&lt;/cite&gt;&lt;br /&gt;
&lt;a href="http://kyle-in-jp.blogspot.com/2008/05/imagemagickphp_25.html" title="画像処理についてあれこれ: ImageMagickとPHPで画像の輪郭を影で浮かび上がらせた画像を生成する"&gt;ImageMagickとPHPで画像の輪郭を影で浮かび上がらせた画像を生成する&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://kyle-in-jp.blogspot.com/2009/01/imagemagickphp_04.html" title="画像処理についてあれこれ: ImageMagickとPHPで手でちぎったように画像を切り取る"&gt;ImageMagickとPHPで手でちぎったように画像を切り取る&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://kyle-in-jp.blogspot.com/2008/06/phpimagemagickgif.html" title="画像処理についてあれこれ: PHPとImageMagickでアニメーションGIFを生成する"&gt;PHPとImageMagickでアニメーションGIFを生成する&lt;/a&gt;
&lt;/div&gt;
&lt;div&gt;&lt;a href="http://blog.cyber-support.info/article/36714956.html" title="Cyber Support: PHPとImageMagicKで画像編集"&gt;PHPとImageMagicKで画像編集&lt;/a&gt; - &lt;cite&gt;Cyber Support&lt;/cite&gt;&lt;br /&gt;
リサイズ・テキスト合成。&lt;/div&gt;
&lt;div&gt;&lt;a href="http://labs.unoh.net/2008/12/imagemagickgif.html" title="ウノウラボ Unoh Labs: ImageMagickでGIFアニメをリサイズ"&gt;ImageMagickでGIFアニメをリサイズ&lt;/a&gt; - &lt;cite&gt;ウノウラボ Unoh Labs&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.linux-nantes.fr.eu.org/~fmonnier/doc/imagick/" title="Documentation PHP-Imagick"&gt;PHP-Imagick Exemples&lt;/a&gt;&lt;br /&gt;
Imagickのコード・サンプル&lt;/div&gt;
&lt;h4&gt;関連&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://hashi4.civil.tohoku.ac.jp/soft/node43.html" title="ImageMagick"&gt;ImageMagick&lt;/a&gt; - &lt;cite&gt;東北大学土木工学科構造強度学研究室&lt;/cite&gt;&lt;br /&gt;
ImageMagickのWindows移植版。コマンドの解説はおそらく共通。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-3544096423788745930?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/3544096423788745930/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=3544096423788745930' title='1 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/3544096423788745930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/3544096423788745930'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/01/phpimagemagickimagick-xrea.html' title='【PHP】ImageMagickとImagick - XREAサーバ'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-6619975369145568573</id><published>2009-01-15T18:08:00.002+09:00</published><updated>2009-01-15T18:14:34.323+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQLite'/><category scheme='http://www.blogger.com/atom/ns#' term='Symfony'/><title type='text'>【symfony】SQLiteの設定方法</title><content type='html'>&lt;p&gt;「config/propel.ini」「config/databases.yml」の設定。symfonyのバージョン古い。&lt;/p&gt;
&lt;div&gt;&lt;a href="http://tryout-lab.com/2008/05/06/26.html" title="SymfonyでDB接続 | トライアウト ラボラトリ！"&gt;SymfonyでDB接続&lt;/a&gt; - &lt;cite&gt;トライアウト ラボラトリ！&lt;/cite&gt;&lt;/div&gt;

&lt;div&gt;&lt;a href="http://d.hatena.ne.jp/audioswitch/20080331/1206909826" title="さくらサーバーのsymfonyでSQLiteを使う - あんまネットやらないのにWeb系の研究やってるっていうwww"&gt;さくらサーバーのsymfonyでSQLiteを使う&lt;/a&gt; - &lt;cite&gt;あんまネットやらないのにWeb系の研究やってるっていうwww&lt;/cite&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://symfony-jp.blogspot.com/2007/12/symfonymysqloraclesql-server.html" title="symfonyの奏でかた: SQLite用の設定方法"&gt;SQLite用の設定方法&lt;/a&gt; - &lt;cite&gt;symfonyの奏でかた&lt;/cite&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-6619975369145568573?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/6619975369145568573/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=6619975369145568573' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/6619975369145568573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/6619975369145568573'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/01/blog-post.html' title='【symfony】SQLiteの設定方法'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-9060528216963894175</id><published>2009-01-10T17:13:00.002+09:00</published><updated>2009-01-10T17:24:49.826+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Symfony'/><title type='text'>【symfony】レンタルサーバにsymfonyインストール～公開用設定</title><content type='html'>&lt;p&gt;本番の公開用に、設定ファイルやコアファイルなどをWebルート以外に配置して動作させる方法。&lt;br /&gt;
「webroot/」に「myproject/web/」へのリンクを作成する。&lt;br /&gt;
最新のバージョンではないが、サーバの設定は参考になるだろう。&lt;/p&gt;
&lt;div&gt;
&lt;a href="http://fundpoint.net/php/" title="CORESERVER.JP で symfony （ XREA　も）"&gt;CORESERVER.JP で symfony （ XREA　も）&lt;/a&gt;
&lt;/div&gt;
&lt;div&gt;&lt;a href="http://ueblog.natural-wave.com/2008/06/15/sakura-symfony/" title="さくらインターネットでsymfonyをインストール - ueblog"&gt;さくらインターネットでsymfonyをインストール&lt;/a&gt; - &lt;cite&gt;ueblog&lt;/cite&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/753083107210443599-9060528216963894175?l=saboten009.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saboten009.blogspot.com/feeds/9060528216963894175/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=753083107210443599&amp;postID=9060528216963894175' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/9060528216963894175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/753083107210443599/posts/default/9060528216963894175'/><link rel='alternate' type='text/html' href='http://saboten009.blogspot.com/2009/01/symfonysymfony.html' title='【symfony】レンタルサーバにsymfonyインストール～公開用設定'/><author><name>saboten009</name><uri>http://www.blogger.com/profile/05359225746693178427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-753083107210443599.post-8927103328016401823</id><published>2009-01-07T16:15:00.002+09:00</published><updated>2009-01-07T16:37:47.834+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Symfony'/><title type='text'>【symfony】1.2 チュートリアル・メモ</title><content type='html'>&lt;h4&gt;サイト&lt;/h4&gt;
&lt;div&gt;
&lt;a href="http://www.symfony-project.org/" title="symfony | Web PHP Framework"&gt;&lt;/cite&gt;Symfony&lt;cite&gt;&lt;/a&gt;&lt;br /&gt;
∟&lt;a href="http://www.symfony-project.org/jobeet/1_2/Propel/en/" title="symfony | Web PHP Framework | The Jobeet Tutorial"&gt;The Jobeet Tutorial&lt;/a&gt;&lt;br /&gt;
・チュートリアル：1日1時間、24日間&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.exgear.jp/blog/symfony_whats_new_12/" title="symfony 1.2では何が新しくなったの？ : エクスギア　Blog"&gt;symfony 1.2では何が新しくなったの？&lt;/a&gt; - &lt;cite&gt;株式会社エクスギア&lt;/cite&gt;&lt;/div&gt;
&lt;h4&gt;マニュアルの日本語訳&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://trajoin.1ms.jp/" title="TRAJOIN"
