2011/04/28

スマートフォンのユーザーエージェント

以下の文字列がUAに入っていれば、スマートフォンと判定できる

  'iPhone',         // Apple iPhone
    'iPod',           // Apple iPod touch
    'Android',        // 1.5+ Android
    'dream',          // Pre 1.5 Android
    'CUPCAKE',        // 1.5+ Android
    'blackberry9500', // Storm
    'blackberry9530', // Storm
    'blackberry9520', // Storm v2
    'blackberry9550', // Storm v2
    'blackberry9800', // Torch
    'webOS',          // Palm Pre Experimental
    'incognito',      // Other iPhone browser
    'webmate'         // Other iPhone browser

2011/04/19

モバイル振り分け

#携帯からのアクセスなら/mobile/サイトへ302
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^(DoCoMo|KDDI|DDIPOKET|UP.Browser|J-PHONE|Vodafone|SoftBank)
RewriteRule ^$ /mobile/ [R=302,L]

#/mobile/にPCからアクセスがあった場合トップページへ302
RewriteCond %{REQUEST_URI} /mobile/
RewriteCond %{HTTP_USER_AGENT} !^(DoCoMo|KDDI|DDIPOKET|UP.Browser|J-PHONE|Vodafone|SoftBank)
RewriteRule ^.*$ / [R=302,L]

わりと使うのでメモ。
忘れがちな最後の改行。

2011/04/14

必須フィールドにアラート

oscommerceの商品登録の際に、商品の数量と商品の型番のフィールドを
必ず埋めてもらうように伝えているが、どうも面倒がって入れてくれない。
全て入力されてこそSEO的にもカスタムショッピングカート的にも
100%の力を発揮するのに、、

ということで、入力しないと進めないように細工するか。
こういうことはjavascriptでも使う。

まずはアラートを出すところを作る。
function checkIfFilled() {
    if (document.forms[0].products_quantity.value=='') {
        window.alert('商品の数量が入力されておりません。');
        return(false);
        }
    if (document.forms[0].products_model.value=='') {
        window.alert('商品の型番が入力されておりません。');
        return(false);
        }
    return(true);
}
商品の数量はproducts_quantity 商品の型番はproducts_modelなので
こんな感じで良いかと。

これをcheck.jsというファイルにして保存。そしてアップロード。
(管理画面はEUCなので日本語混じったjsファイルなのでこれもEUCで保存。)
これは素直に/admin/categories.phpのhead内に記述。

次はフォーム側
/admin/function/html_output.phpに記述がある
// Output a form
  function tep_draw_form($name, $action, $parameters = '', $method = 'post', $params = '') { 〜〜〜〜〜〜〜

これのいちばん後ろあたりに  onsubmit="return(checkIfFilled());" と入れたい。
    $form .= '>';
    return $form;
  }
 これを
    $form .= ' onsubmit="return(checkIfFilled());">';

    return $form;
  }
 こんな感じにして完了。

2011/04/07

IEのセンタリング

センタリングするIDを#containerだとする。
CSSでは
#container {
width: 800px;
margin-left:auto;
margin-right:auto;
}
としていたが
確実なのは左にやって50%戻して来る。

#container {
    left50%;
    margin-left-400px;
    positionabsolute;
    width: 800px;