CakePHP
app/config関連の権限設定を間違えていると、database.phpを作成する過程でエラーになります。 その付近のエラー検出追加と、ロールバック処理を追加しました。 app/config関連で必要な権限設定は以下の通り app/config (777) app/config/database.php.insta…
CakePHPベースのプロジェクト管理システム、 「CandyCane」 http://thechaw.com/candycane/ のソース(概ね2010/04時点)をベースとした、CakePHPでの「インストーラ実装方法」まとめです。私的残件課題:「多言語化対応」ができてない、という問題点が、残…
CandyCaneベースのインストーラで、core.phpの設定(Security.salt)をランダムハッシュで行なう改修です。この機能追加は、概ねCroogo ver.1.3の仕様ベースです。
CandyCaneのインストーラプラグインを改修してみます。 ベースソースは、昨日時点の http://thechaw.com/candycane/source/ です。 まずは、ふと気づいた 「コントローラで $this->Session->setFlash()してるはずのメッセージがテンプレートで表示されていな…
CandyCaneのインストーラプラグインを使ってみて、エラーになった箇所・私が勘違いしてた実仕様は以下の通り。 app/configディレクトリを読み書き可にしないとdatabase.phpを作成できない 権限を変えてないと、database.php.installをdatabase.phpにリネーム…
インストーラを作りたい。 できれば、サーバにソースをアップロード→ブラウザアクセス、一部データ(管理ID,パスワードなど)を入力→実行 で、できるだけ全てが済むようなインストーラを。 基本的なインストーラの作り方の一例を記載した記事を見つけたので、…
CakePHPには、テーブルを初期化・作成するSchema機能があります。 現在のDBからSchema設定を作成したり、 以前のSchemaとの差分を更新するSchema設定を作成したり、 database.phpのテーブル名prefixにも対応しているので、 システムのインストール・アップデ…
Formヘルパーで、日時選択フォームの出力をカスタマイズする方法。 以下の参考サイト:dateTime()による指定方法をベースに、 input()による指定方法 および 月を英語以外で表示する方法 プルダウンの最初を空欄にする/しない方法 参考サイト CakePHP1.2 For…
コントローラの $this->set(〜〜)でセットした値を参照する属性 $this->viewVars[変数名] $this->viewVarsは配列なので、値のチェックは if (in_array('isOwner', $this->viewVars)や if ($this->viewVars['isOwner'] !== true) {などでできる。
saveAll()使う場合は、afterSave()の設定に要注意、というお話です。
翻訳テキストを設定する方法で、多言語化(国際化)対応を行なった作業メモです。 データベースに設定する方法もあるそうですが、ただでさえACLでDBに負担かけているので、翻訳テキスト方を採用しました。 参考サイト CakePHP1.2の簡単国際化: CakePHP のおい…
CakePHPには「テーマ」機能というものがあり、ビューテンプレートを変更することができます。 http://book.cakephp.org/ja/view/488/Themesつまりこれで、「スキンチェンジャー機能」を実装できる(はず)。でも情報が少ないので、CakePHPの関連ソースを読んで…
CakePHPデフォルトのデータベース設定(database.php)では、サーバ環境によってはデータがUTF-8で保存されない場合があります。文字化けや、VARCHAR文字数上限のエラーに繋がるので、CakePHP側で「DBにUTF-8で保存する」ための設定を追加して置く方が良いです…
コントローラ名 $this->viewPath アクション名 $this->action あるいは コントローラ名 $this->params["controller"] アクション名 $this->params["action"]
CakePHPのページネーション(ページャ)機能のヘルパーについて。 以下CookBookから抜粋と補足。 http://book.cakephp.org/ja/view/166/Pagination-in-Views
テンプレートで、文字列に特定の処理を施して表示したい場合、Textヘルパーが便利です。 http://book.cakephp.org/ja/view/216/Texttruncate (長文省略)、autoLink/autoLinkUrls (URL自動リンク)あたりが頻度が高そうですが、 toList (配列を文字列リストに…
前述の表示状態を修正しました。特にIE6*1の表示は、CakePHPのgeneric.css(ver1.2.5)に由来していたので注意が要りそうです*2 *1:InternetExplorerCollectionの他、本家IE6でも同様の表示になることを確認 *2:但し、私の独自CSSの影響もあります
302エラーになる場合。コントローラやモデル、コンポーネントなどのソースでPHPタグを閉じた後*1に余白があるのが原因で、発生している場合があるそうです。 http://old.nabble.com/Re%3A-TCPDF-error%3A-Some-data-has-already-been-output%2C-can%27t-send…
id:hiromi2424さんからの情報を受け、ヘルパー名は「Time」のまま、nice()とniceShort()で日時の出力書式を設定する改修を行ないました。 前記事
CakePHPには、日付の文字列(2010-03-03 16:57:22など)をフォーマットしてくれるTimeヘルパ−があります。 http://book.cakephp.org/ja/view/275/Formattingこれを使うと、「XX時間前」や「今日、15:44」のような表示を、容易に実現できます。しかし、「今日…
Mediaプラグインによる画像のアップロード機能作成で、書いた記事のまとめリンクです。
Mediaプラグインは、「どのユーザがアップロードしたか」の情報を保管しません。 そのため、別のユーザがアップロードしたファイルであっても、IDを正しく指定すれば削除できてしまいます。attachmentsテーブルにuser_idを追加して、ファイル保存時の登録と…
静的ファイルを、コントローラを通してアクセスさせる方法。 http://book.cakephp.org/ja/view/489/Media-Viewsログイン済みメンバーのみ、あるいは権限のあるメンバーにのみダウンロードを許可させる場合などに使えます。サンプルはダウンロードですが、画…
Mediaプラグインで画像のVersionファイルを作成する際、サイズを変更しない方法。拍子抜けするくらい、簡単です。 core.phpのVersionファイル設定で、fitCrop/fit/zoomCropなどの、縮小設定を一切いれないだけです。差分 /* 画像 */ + 'orig' => array('conv…
Mediaプラグインは、アップロードファイルしたファイルそのもの(transfer/以下)への直接アクセス表示を非推奨として、代わりにfilter/以下に出力したVersionファイルの表示を推奨しています。 特に画像ファイル等に、セキュリティ上の理由があるためだそう…
mediaプラグインでVersionファイルは、core.phpなどでconvertに設定した形式で出力されます。元のファイル形式ままで出力する設定を追加しました。 注:この記事は、Viewで呼び出し時にVersionファイルを作成する 改修済みのソースをベースに記載しています。
Mediaプラグインの「Versionファイル機能」で出力される縮小画像の、ファイルタイプを任意に選べる改修を追加しました。 注:この記事は、Viewで呼び出し時にVersionファイルを作成する 改修済みのソースをベースに記載しています。
デフォルトだと、1つのモデルに複数のファイルをアップロード可能なので、1つしかアップロードできないように改修しました。controllerでアップロード処理済みの場合のチェックを追加し、編集画面で使用するelementを改修しました。
mediaプラグインのヘルパーMediumと、編集フォーム出力用エレメントAttachmentの設定を変更する、主な変数/引数をまとめました。
mediaプラグインで、Versionファイルの設定はcore.phpに設定しますが、実際にどのように設定すればよいのか、主な例をまとめました。プラグイン側のconfig/core.phpを改修するか、 bootstrap.phpでmediaプラグインのcore.phpを読み込んだ後で、Configure設定…