SSブログ
Lancers.jp

CakePHP その14 〜MobileHelper〜 [CakePHP]

というわけで、どうにか携帯用サイトのアドレスにうまく飛ばせないか考えた。
無い頭を降る回転させた結果、どうせ、すでに空のMobileHelperは作ってあるんだから、それを使おうという結論に落ちついた。

とりあえず、linkさえあればいいので、それをMobileつくる。
微妙な(気に入ってない)部分も多々あるけど、よくわからんちん。

MobileHelper
<?php
class MobileHelper extends AppHelper{
    var
$helpers = array('Html');
    
    function
link($title, $url = null, $htmlAttributes = array(), $confirmMessage = false, $escapeTitle = true) {

        if(!
is_array($url)){
        
            
$params = split("/",$url);
            if(!empty(
$params[0])){
                
array_unshift($params,"",$this->params['controller']);
            }
            
$url = join("/",$params);
            
$url = "/m".$url;
            
//
            
        
}else{
            
$url['plugin'] = "m";
        }

        return
$this->Html->link($title, $url, $htmlAttributes, $confirmMessage, $escapeTitle);
    }
}
?>

/cake/libs/view/helpers/paginator.php
45行目に'Mobile'を追加
var $helpers = array('Html', 'Ajax', 'Mobile');

257行目あたり
$obj = isset($options['update']) ? 'Ajax' : 'Html';
//追記2008.02.08-->
if($this->params['webservices'] == 'Mobile'){
    $obj = 'Mobile';
}
$obj = isset($options['update']) ? 'Ajax' : 'Html';
//-->追記2008.02.08

view
<html>
<head>
    <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=<?=$html
->charset()?>
    <title>携帯サイト</title>
</head>
<body>

<?php
    $url
= '/files/image.jpg';
    
$img = $html->image($url);
?>
<?=$mobile
->link($img, $url, array('alt'=>'画像','escape'=>false))?>

<ul>
<?=$mobile->link('<li>トップページへ</li>','/',array('escape'=>false))?>
<?=$paginator
->first('<li>先頭へ</li>',array('escape'=>false)) ?>
<?=$paginator
->prev('<li>前へ</li>',array('escape'=>false)) ?>
<?=$paginator
->next('<li>次へ</li>',array('escape'=>false)) ?>
<?=$paginator->last('<li>最後尾へ</li>',array('escape'=>false)) ?>
</li>

</body>
</html>

link()はMobileHelperで、それ以外はHtmlHelperで。住み分け。
個人的には、今のところ良いと思ってるんだけど、どうでしょう?




nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

トラックバックの受付は締め切りました

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。