天狗大臣CSSが使えなかった頃と比べると、構造(HTML)と見た目(CSS)が分離されているので、かなり保守は楽になりました。それでも欲が出てくるもので、CSSは何かと面倒。入れ子になった要素に属性を指定するとき。・・・}↑のような記述を書いていると、イライラしてきます。後からクラス名やIDを変えた時に、全部変えないといけないのが嫌で嫌でたまらない。あとは、色とか文字の大きさを変えるとき。それこそ、あちこちに散らばっているので、面倒極まりない。試してみたSASSを使うと、上述のCSSは↓のように入れ子構造で書けます。}}他にも、変数が使えたり、関数(っぽい記述)が使えたりと、少しでもプログラムが組める人ならば、CSSに抱いていた不満がかなり解消されると思います。SASSの文法に関しては、「続きはWEBで」ってことで、ここではWordPressに導入した時の注意点を。SASSというプラグインを使いました。基本はプラグインの説明ページ(英語)の通りにやればいいのですが、なんだか改行が入っていなくて読みにくいのでそのままでは動きませんでした。説明ページに書いてあるコードは改行が入っていないので、そのままでは動きません。パーミッション説明ページには775にしろって書いてあるけど、環境によってはNG。今回導入したサーバでは、Apache君が書き込みできるようにしておく必要があります。今回入れたところはApacheが別のユーザで動いているので、所有者をApacheユーザにしたうえで、644。SASSの文法どうもSASSの記述法には何種類か(少なくとも2種類)あるみたい。初めにここの記述を試したがまったく動かない。設定が間違えているのかと思い、何度も見なおしたけど原因が分からなかった。ここの書き方だと、すんなりと動いた。世の中猫も杓子もスマートフォンのような風潮ですが、アクセス解析を見るかぎりではまだまだ携帯電話(いわゆるガラケー)が圧倒的に優勢です。サイトを作る際にも携帯電話を無視するわけにはいかないので、携帯用にもページを作ります。携帯用のページを切り替えるようにしているのですが・・・。困ったこと困ったことがいくつか出てきました。今回のケースでやりたいことを書いておきます。QRコードのページへリダイレクトする。携帯電話からのアクセスだったら、コンテンツを表示する。検索エンジンからも利用者を誘導する。振り分け、QRコード作成&リダイレクト、検索エンジンへの登録、を行ないました。PCでアクセスすると、期待通りQRコードのページへとリダイレクトされ、そのQRを使って携帯電話で目的のページにアクセスできました。携帯電話で、URLを入れてアクセスすると、これも期待通り目的のページが表示されました。ところが、検索すると思った通りになりません。検索結果の中身が、リダイレクト先(QRコード表示用ページ)になっていました。これでは中身に何を書いても検索キーワードに反映されません。(勝手に)携帯電話用に変換してしまう。下の方にある「ページを直接表示する」で、目的のページを表示できるものの、そんなことをしてくれる一般ユーザはまずいないだろう。問題点1つ目の問題点は「検索エンジンが(目的のページではなく)リダイレクト先のページをクロールしている」こと。2つ目は「元々携帯電話用に作ったページなのに、GoogleやYahooが携帯電話ように変換してしまう」こと。これは携帯用のページだ!2つ目はわりとあっさりと解決。説明があったので、コレの通りにしました。この指定は(同じエンジンを使っているから当然ですが)Yahooにも効果がありました。要素を使っていたのですが、どうやら検索エンジンはこの要素をたどってくれるらしい。ほとんどの場合はその方が好都合なのですが、今回のケースでは余計なお世話。リダイレクトするようにしました。以上の対策で、目的が達成できました。天狗大臣とあるお客様からの相談で、「(Webサイトの)画像をクリックしたら、声が流れるようにしたいけど、できるものですかね?」という案件をいただいていました。その当時は、私たちとは別の業者さんがサイト管理をされていたので、あまり深入りせずに「できますよ。今は私がサイトを触るわけにはいかないので、声の録音方法と、業者さんに送る方法を教えますね」程度の対応に留めておきました。数日後、件のお客様から「お陰さまでできました」と連絡があり、そのページを見せてもらいました。画像をクリックすると、別ページに遷移して殺風景なプレイヤーが表示されて声が流れ始めました。ファイルのダウンロード速度もやや気になる。タグでリンクを張っているだけでした。HTML5対応のブラウザならば内蔵プレイヤーで、そうでなければプラグインのプレイヤーで再生されるわけです。うーん、確かに「画像をクリックしたら声が流れる」という要求はクリアしているし、お客さんも文句はないみたいだけど・・・。本当にこれでいいのか?今回の要求の意図しているところって、「見ている人が画像(サイト主の顔のイラスト)をクリックしてみたら、声が出てきてびっくり」みたいな遊び心&いたずら心なんじゃないかと思うのですよ。少なくとも、私はそう受け取りました。それが、ページは遷移しちゃう(声の主のイラストが見えなくなる)わ戻るボタンを押さなきゃいけないわでは、仕掛けの魅力が半減ですよ。天狗大臣ある案件で、Excelシートを全自動で作る必要が出ました。その程度はVBAで解決・・・、と思ったら、条件付き書式に指定した式がずれてしまう・・・。初めは凡ミスかと思ってコードを確認しても、おかしな点は見当たらない。ネットで調べてみたら、マイクロソフト公認のExcelのバグでした。指定する選択したセル以外に条件付き書式を指定するというもの。詳細はマイクロソフトのページをみてください。今回の案件では、上の3つはどうしても回避できない項目でした。(マイクロソフトのページでは、「VBA使うな」とか「絶対参照で書け」なんて回避方法が紹介されてました)でも、最後の「選択したセル以外に~」という項目は回避できます。要は、「条件付き書式を指定したいセルを選択しておけばOK」ということです。実際、そのようにコードを組んだら、あっさりと解決しました。ちなみに、マイクロソフトのページにあったコードを、この方法で回避するとこうなります。Sub2,6,7,15行目が、Excelのバグを回避のために追加した行です。(ひっそりと)停止してしまうのが玉にキズです。そんな時の対処方法です。実際に使った小技などはこれから紹介していくとして、感想から。第一印象:なんか気持ち悪い第一印象は「なんか気持ち悪い」でした。「設定より規約」に慣れていなかったためです。使っていた私にとっては、PHPなどのスクリプト系言語で宣言しなくても変数が使えるというのが、元々とても気持が悪いものでした。それに加えて、ちょっとしたファイルを何個か書くだけでDBアプリができてしまうのです。SQL文どころか、テーブル名すら書く必要がありません。その規約も、「テーブル名は名詞の複数形」「クラス名は大文字で始まる単数形」とかその程度。宣言や定義なしで動くというのが、なんか恐ろしいような気持ちの悪いものでした。今の印象:これは楽しいしかし少し使ってみて仕組みが分かってくると、印象がガラリと変わりました。フィールドに格納したいですよね。それらを勝手にやってくれます。DBにはフォーム名と同じフィールドに入れてくれるし、型や名前にふさわしいGUI部品にしてくれるのです。したコーディング作業の時間が大幅に短縮され、モノづくり本来の楽しみ(人によって違うでしょうが・・・)に使えるな、と思います。これから少しずつでも、CakePHPの魅力を伝えていきます。習得に二の足を踏んでいる方の背中を押せたら嬉しいですね。使うためのサンプルを説明しています。載せていないことに気が付きました。ついでに、書き忘れていた注意点も。</body></html>ログインページのテンプレートです。今までのことで書き忘れていたことです。ディレクトリに置きます。作ると各ユーザの所有になります。読み書きできる必要がある)。文字コードサンプルはUnicode用にしています。EUC-JP)してください。パッケージPEARのパッケージは始めから全部はいっていないので、必要に応じてインストールしてください。インストールされているかの確認はコマンドラインから。パッケージが必要です。Authなどとして、インストールしてください。使うためのサンプルを説明しています。認証用のクラスを使ったページを作ります。使うためのサンプルを説明しています。今回はPEAR::Authを拡張して認証用のクラスを作ります。それと、ユーザ名とパスワードを保存するためのデータベースを作成し、テスト用のユーザを追加します。使うためのサンプルを説明しています。今回は、まだ本題には入らずに、定数定義やSmartyのお約束部分です。