PHPで祝日/イベント対応のカレンダーを作成。

2012.05.12 / Labs

PHPではPEARなどのライブラリを利用すると簡単にカレンダーを作成できますが、CakePHPなどフレームワークをベースに開発している場合、あまり他のライブラリを利用したくないこともあります。
また祝日情報を含むイベント情報を簡単に組み込めるカレンダーとして、シンプルなカレンダーを作成してみました。
サンプルはこちら

 

機能としては指定月のカレンダーを生成し、イベント情報を配列として渡すことで、該当日にイベント内容を表示することができます。
祝日情報の取得の関数「getHolidays()」については、「Googleカレンダーから祝日情報を取得。」をご覧ください。

CakePHPで利用する場合には、コンポーネントとして登録しておくと使い勝手が良いかもしれません。

Googleカレンダーから祝日情報を取得。

2012.05.12 / Notes

PHPを使ってGoogleカレンダーが提供している祝日の情報を、配列として取得する方法です。

上記のコードで取得した祝日は、次の様に日にちをキーに格納されます。

ただしGoogleカレンダーの祝日は正確ではない部分もあるので、利用の際には注意が必要です。

CakePHPで作るシンプルなアップロードフォーム。

2012.05.08 / Labs

CakePHPでファイルをアップロードするための基本機能のみフォームのサンプルです。使用しているCakePHPのバージョンは2.1.2です。

 

データベースには「uploads」というテーブルを作り、ファイル名を保存するために「file_name」のカラムを設けています。

コントローラーの「UploadsController.php」には、アップロードされたファイル名の一覧のための「index」と、ファイルをアップロードするための「add」アクションを作ります。
(bakeで焼いたものをもとに、手を加えて作成してあります)

ファイルのアップロード処理自体はCakePHP特有のものではなく、通常のPHPの処理になります。途中の「WWW_ROOT」「DS」はCakePHPで用意されている定数で、詳しくはドキュメントページで確認できます。
ここではアップロードされたファイル名のみ、データベースに登録するようにしています。

 

ファイル名一覧のためのビュー「index.php」です。これもbakeで書き出されたものを、さらに簡略化しています。

ファイルをアップロードするためのビュー「add.php」では、フォームのタイプをファイル対応にして、アップロードのためのフォームパーツを出力しています。

モデルの「Upload.php」では、今回は特に処理を行っていません。

上記以外では、「AppController.php」の中で、「Html」と「Form」ヘルパーを読み込んできます。

以上、シンプルなファイルのアップロードフォームの作り方でした。

Drupal 7インストール時の「Standard」と「Minimal」の違い。

2012.05.04 / Notes

Drupal 7インストール時の「Standard」と「Minimal」で、アクティベートされるモジュールの数は大きく違います。
また「Standard」ではコンテンツタイプに「Article」「Page」の2種類がプリセットで作成されますが、「Minimal」ではこれらも作成されません。

 

これらのモジュールやコンテンツタイプの違いにともない、データベースに作成されるテーブルも「Standard」は74点、「Minimal」は49点となっています。

 

Standard Minimal
Aggregator
Block
Blog
Book
Color
Comment
Contact
Content translation
Contextual links
Dashboard
Database logging
Field
Field SQL storage
Field UI
File
Filter
Forum
Help
Image
List
Locale
Menu
Node
Number
OpenID
Options
Overlay
Path
PHP filter
Poll
RDF
Search
Shortcut
Statistics
Syslog
System
Taxonomy
Testing
Text
Toolbar
Tracker
Trigger
Update manager
User

CSS3のTransitionでダイナミックなページ遷移。

2012.04.22 / Labs

CSS3のTransitionによるアニメーションで、Flashのような動きのあるダイナミックなページ遷移のサンプルです。

 

実はこれは「impress.js」というプレゼンテーション用のスクリプトを拝見してとても興味を持ったので、理解する目的で自分なりに作成してみたものです。

 

CSS3のアニメーションには「jQuery Transit」というプラグインを使わせてもらっています。
サンプルはこちら

 

仕組み的には拡大・縮小と回転を取り入れて、ページ(コンテンツ)の移動の際にアニメーションを行います。キーボードはスペースキーでページを送り、また方向キーでそれぞれ進む/戻るを設定しています。
HTMLでは、外側のコンテナと内側のボックス、さらにその中に各コンテンツを並べています。

CSSでは各コンテンツのサイズを座標を指定しています。

JavaScriptは外部ファイルに記述しています。
コードの大部分は、各要素の座標を管理するためのものです。

習作用のためシンプルな構成ですが、これだけのコードでもCSS3を使ったダイナミックなコンテンツが可能になります。現在はIEがCSS3のアニメーションに対応していないのが残念ですが、今後は思い切ったデザインのサイトも増えていくように思います。