2011年2月17日木曜日

cakephpでsmarty URLの引数を渡す、受け取る [未解決→中途半端に解決]

cakephp1.2.9

cakephpでURLの含まれる引数を渡す、受け取る方法。
cakephpでは、

http://hogehoge.com/hanage.php

というようなURLは

http://hogehoge.com/hanage

としてアクセスするらしい。
じゃあ、引数を持ったURLの場合どうするのか。

http://hogehoge.com/hanage.php?nagasa=100

とか

http://hogehoge.com/hanage.php?nagasa=100&color=bk

とかはどうすんだ?

インターネッツの情報では、


http://hogehoge.com/hanage/100

こんな風にしてアクセスして、Controller内で受け取れ、とか

http://hogehoge.com/hanage/nagasa:100/color:bk

とすればOKとか書いてあるんだけど、俺の環境では値を受け取る前にエラーページが表示されてしまう。
ついでに「:」でつなぐ方法は、URLには「:」を含めてはイカンというルールがあるらしく、携帯からのアクセスで問題を起こすらしい。
そこまでたどり着いていない俺には遠い話ですけども。

追記:
あまり綺麗ではないけども、一応解決。中途半端に。

  http://hogehoge.com/hanage/?nagasa=100

  function index(){
      $this->set('nagasa', $this->params['url']['nagasa']);
      $nagasa = $this->params['url']['nagasa'];
  }

こんな感じでアクセスできる。
ちなみにindex.phpじゃない場合はURLが若干違う。
たとえばmigiana.phpだった場合はこんな感じ。


http://hogehoge.com/hanage/migiana/?nagasa=100

もうちょっと綺麗にできるようになりたいと思う今日この頃。

cakephpでsmarty 別のテンプレートをインクルードする

smartyでは、別のテンプレートをインクルードして呼び出すことができる。
こんな感じ。


{include file='menu.tpl'}

値を渡すこともできる。

{include file='head.tpl' title=$title}

cakephpではこのように別のテンプレートを呼ぶ場合、viewsのelements内にファイルを置き、

$this->element('breadcrumb')

のように記述する。
この場合、breadcrum.btpというテンプレートファイルが、views/elementsディレクトリ内にあること。

記述例)
<?php echo $this->element('breadcrumb'); ?>

cakephpでsmarty smartyに値を渡す

ネイティブのphpではsmarty値を渡す時には以下のように書く。

$smarty->assign('name', $name);


cakephpではcontroller内に次の様に書くことでテンプレートで利用できる。


 $this->set('name',$name);

テンプレートではいずれも

 {$name}

で値を表示できる。

2011年2月15日火曜日

Skypeの自動起動をオフにする[Skype]

Skypeをインストールすると、ウインドウズ起動時にスカイプも起動するように設定されている。
これを自動で起動しないように変更する。



[ツール]-[設定]

で、設定ウインドウを表示、

[一般]-[一般設定]

から[コンピュータ起動時にSkypeを起動]のチェックを外して[保存]をクリック

SkypePMをオフにする[Skype]

スカイプを起動すると、SkypePM.exeが動く。
別にあってもなくてもいいのだけど、メモリを食われるのでオフにする。

[ツール]-[設定]

で、設定ウインドウを表示、

[詳細]-[詳細設定]

から[エクストラを自動的に開始]のチェックを外して[保存]

2011年2月7日月曜日

フッタのコピーライトを変更する[ZenCartPro-R]

インストール直後のフッタには、次のようなコピーライトが表示されている。
これを変更する。


 Copyright © 2011 ○×△. Powered by Zen Cart / bigmouse Inc.


この表示はlanguagesファイルに記述されているので、これを編集する。


 編集するファイル
 /includes/languages/japanese.php


10行目の「FOOTER_TEXT_BODY」を編集する。

パースタイム、クエリの表示・非表示[ZenCartPro-R]

インストール直後に、画面最下段に表示されているパースタイム、ナンバーオブクエリーズ、クエリータイム(Parse Time、Number of Queries、Query Time)の表示・非表示設定を行う。


 一般設定-ログの設定-パースタイムの表示


true:表示
false:非表示

フッタのバナーを非表示にする[ZenCartPro-R]

インストール直後には画面最下段に「ZenCartPro-R」のバナーが表示されている。
これを非表示にする。

 一般設定-レイアウト設定-バナー表示グループ - フッタポジション3

「Wide-Banners」と入力されている部分を削除し、空白で[更新]する。

※バナーそのものを変更したい場合は、バナーの管理から行う。

アクセスIPの表示・非表示設定[ZenCartPro-R]

デフォルトでは、ページ下部に表示されているIPアドレスを表示・非表示する方法。

一般設定-レイアウト設定-フッタ - IPアドレスの表示・非表示


0:非表示
1:表示

2011年2月4日金曜日

ZenCartPro-RをCoreServerにインストールする時の注意点

CoreServerにZenCartPro-Rをインストールしたところ、管理画面に「register_globalsがOnになっています」の警告が表示された。


テスト環境なので特に問題ないだろうと放っておいたのだけど、これが、いろいろな不具合を起こすことになった。


不具合の症例
・管理画面でSimpleModeにならない
・携帯でのセッションが引き継げずにログイン画面に戻される
・携帯でログインできない(たまにログインできる)


【解決法】
管理ディレクトリにphp.iniを設置する。
php.ini
register_globals = Off

php.iniは下位ディレクトリも対象だと思っていたが、違うらしい。
管理ディレクトリに(も?)置いておく必要があるっぽい。


追記:
サーバーがphpをcgiとして動作させている場合にこのような現象が起こるらしい。
また、サーバーがsafemodeでなければ不具合も少ないようだけど、共有サーバだとどうにもならんもんね。
なので、こういうサーバでは、アクセスする各ディレクトリにphp.iniを置く必要がある、と。


サイトの一部にZenCartPro-Rをインストールして、会員情報を参照してログインを維持する場合も、ルートや、各ディレクトリにphp.iniの設置がないと、ログアウトしちゃうよ。

2011年2月1日火曜日

このブログのこと

最初に断っておくけど、俺の話は前置きが長いよ。肝心なコトは最後の三行だから、忙しい人は最後の三行だけ読めば、なんのブログかわかると思うんだ。もっと忙しい人は最後の三行目だけ読めばいい。残りの二行は読まなくても平気だ。

このブログはね、わすれっぽいヒト選手権があったら、静岡県チームの補欠ぐらいにはなれるんじゃねえか?という、物忘れ大好き人間な俺が、メモ的に書いているものですよ。
だから、すべての環境で役立つ情報ではないけども、もし、俺のメモが何かの役に立つなら、ぜひ使ってやってください。

そんで、ブログに対する指摘や訂正、助言も巨大歓迎。
きっと「知らねえよ、俺の環境では動くんだよ」とかなんとかブツクサいいながら確認してみたりしてみなかったりすると思うんだ。嘘。たぶん確認しねえよ。
でも、新しい情報があれば俺も嬉しいし、その後にやってきた人にも嬉しいと思うんだ。
君の優しさが誰かを助けるかも知れない。誰かを幸せにするかもしれないよ?

ちなみに俺は、どうせ助けてくれるんなら現金くれよ、というタイプの人間だ。現金をあげたいぜって人は、ぜひ俺に連絡とってくれ。いくらでも引き受けるぜ。
しかも、あっというまに遣い切ってみせるよ。誰か、日本の景気が上向くほどの大金を俺に渡してみないか?

このメモブログには、基本的にウェブに関するお仕事的なことを書いていくけども、俺のメモだから、そのうち土木とか料理とか新しいケツの拭き方とかおかしな方向に流れてっちゃうかもしれないけども、まあ、気にすんな。