cakePHPでURLパラメータを保持する

久しぶりにcakeの記事を書きます。

最近、cakePHP以外のフレームワークにも浮気しようとしているのですが勇気がでません。

要件は悩み | チャゲってる日々 – @tyageにて書いてあります。
一応解決したのですが、先ほどの記事を今読むと、かなり意味不明な内容になっているため、簡単にまとめてみます。
“cakePHPでURLパラメータを保持する”の続きを読む

悩み

いろいろと悩み事の多いお年頃なんですが、あまり人には聞くことがありません。

でもこれはどんだけ考えてもいい方法が思い浮かばないので、もし教えてくれる方がいれば教えてほしいという切実な願いです。

要件

view部分ををいじらずに、リンク等URLにパラメータを保持したい。
prefixを指定したときのように。

ただし、prefixを使って、呼び出すaction名をいちいち書き換える手間もかけたくない。
(__callメソッドを使えばいいのかもしれないですが・・・)

cakeのcoreを書き換えたくない。

詳細

現在作っているゲームで、iframeを通じてそのゲーム内のページを見れる機能があるのですが、iframeで見た場合のlayoutを変更したいと思っています。

iframeで見るページは、iframe以外でも見れ、そのときはiframeで見たときと異なるlayoutとなるため、layoutを動的に変更させる必要があります。

しかし、iframeかどうかの判別は、PHPからはできなさそうです。
(もし方法があるなら教えてください><)

そこでiframeに指定したURLにパラメータを付け(?iframe=trueみたく)、iframe内でページ遷移が起こった場合もそのパラメータを保持し続ければいいのではないかと考えました。

上に書いたように、呼び出すaction名を変更するprefix機能をそのまま使うこともできません。

またbeforeRenderなどaction名が決まった時点で、prefixを設定しようかとも考えましたがそれも上手くいきませんでした。

どうかこの私の至らない頭に解決法をお与えください。

要件が上手くまとまったら質問サイトにでも投げかけようかな。