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で。住み分け。
個人的には、今のところ良いと思ってるんだけど、どうでしょう?
コメント 0