Archives by date

You are browsing the site archives by date.

.htaccessでURLをwww無しに統一する。

1, wwwありでアクセスされた場合のルートディレクトリに.htaccessファイルを設置。
2, 以下を記述。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.net
RewriteRule ^(.*) http://example.net/$1 [R=301,L]

完了。

google-code-prettifyの導入。

1, まずはココからJSとCSSをダウンロード。
2, DLしたファイルを解凍して出てきたフォルダの中のdistrib/google-code-prettify/の中にあるprettify.jsとprettify.cssをサーバーにアップロード。
3, 以下のようにして読み込む。

<head>
<link rel="stylesheet" type="text/css" href="prettify.css" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="prettify.js"></script>
</head>
<body onload="prettyPrint()">
<!--bodyタグのonloadで上記関数を実行すること。-->
</body>

これで準備完了
あとは、コードとしてハイライトしたい部分を以下のようにpreタグで囲む。

<pre class="prettyprint linenums"></pre>
<!--linenumsクラスをはずすと左に行番号がでなくなる。-->

またtwitter bootstrapと併せて利用する場合はpretty.cssが競合を起こして表示が微妙におかしくなるので、その場合はpretty.cssの中身を以下にごっそり置き換えると治る。

.com { color: #93a1a1; }
.lit { color: #195f91; }
.pun, .opn, .clo { color: #93a1a1; }
.fun { color: #dc322f; }
.str, .atv { color: #D14; }
.kwd, .linenums .tag { color: #1e347b; }
.typ, .atn, .dec, .var { color: teal; }
.pln { color: #48484c; }
 
.prettyprint {
  padding: 8px;
  background-color: #f7f7f9;
  border: 1px solid #e1e1e8;
}
.prettyprint.linenums {
  -webkit-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
     -moz-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
          box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
}
 
/* Specify class=linenums on a pre to get line numbering */
ol.linenums {
  margin: 0 0 0 33px; /* IE indents via margin-left */
} 
ol.linenums li {
  padding-left: 12px;
  color: #bebec5;
  line-height: 18px;
  text-shadow: 0 1px 0 #fff;
}

以上完了。

apple-touch-iconの導入。

1, まずはiPhone用とiPad用のアイコンをそれぞれ用意。iPhone用は114x114px、iPad用は144x144pxで作成し、拡張子はPNGで保存する。
2, 次に公開ディレクトリに作成したPNGをアップロード。
3, 以下のようにheadタグ内にlinkタグを追加してやる。

<!--iPhone用-->
<link href="apple-touch-icon-114x114.png" type="image/x-icon" rel="apple-touch-icon" size="114x114" />
<!--iPad用-->
<link href="apple-touch-icon-144x144.png" type="image/x-icon" rel="apple-touch-icon" size="144x144" />

以上!
意外と簡単。

Cakephp2.2にDebugKitを導入する。

忘れないようにメモ。

ココからDebugKitをダウンロードして解凍。フォルダ名を”DebugKit”にリネーム。pluginsディレクトリにフォルダごとぶち込む。
次にAppController.phpに以下を記述。

class AppController extends Controller {
  public $components = array('DebugKit.Toolbar'); //この行を追加。
}

最後にapp/Config/bootstrap.phpのどこでもいいから以下を追加。

CakePlugin::load('DebugKit');

以上で完了。
core.phpでデバッグレベルが0とかになってると出てこないので注意。

Cakephp2.2のバリデーション。

いつも忘れるので書式をメモ。

public $validate = array(
  'title' => array(
    array(
      'rule' => 'notEmpty',
      'message' => '*[title]必須項目です。',
    ),
    array(
      'rule' => array('maxLength', '80'),
      'message' => '*[title]80文字以内で入力してください。',
    ),
  ),
  'body'=>array(
    array(
      'rule' => 'notEmpty',
      'message' => '*[body]必須項目です。',
    ),
    array(
      'rule' => array('maxLength', '20000'),
      'message' => '*[body]20000文字以内で入力してください。',
    ),
  ),
);

あとはコントローラーからモデルにset()してvalidates()。
エラーメッセージは$this->Model->validationErrorsに全部ぶち込んであるので便利。

特定のブラウザでCakephp2.2のSessionが消える問題。

現象の再現方法は以下の通り

・CSSや画像関連で実際に存在しないパス&URLを指定しているとSessionが切れる。
・favicon.icoのパス指定がおかしいとSessionが切れる。
・IE8でCakePHP使うとセッションが切れる。

以下、人によっては解決するかもしれない方法

・Layoutをデフォルトに戻す。
・CSS, JSで画像してる部分が正しいパスであるか全部確認。
・CSS, JSを切る。
・core.phpのSecurity.levelをlowにする。
・SessionCompornentとSessionHelperをAppControllerで読み込んでみる。
・Session変数の名前を変えてみる。
・webroot直下の.htaccessを以下に書き換える。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\.(cgi|css|gif|jp?g|png)$
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

ここまでやってもだめなら次の方法
core.phpに以下を貼っつける。

Configure::write('Security.cookie', 'cakephpfdebackend');
Configure::write('Session.cookieTimeout', 0);
Configure::write('Session.checkAgent', false);

これで治るよ!やったねたえt(ry

Hello world!

WordPress へようこそ俺。とりあえずインストール完了。まずは記事の移植作業からはじめてみようかね。

※ちなローカル環境