« 2009年08月 | メイン | 2009年10月 »

2009年09月 アーカイブ

2009年09月03日

1つのシステムで見栄えを切り替える

ethna の action・view は共通でテンプレートだけを切り替える。
shopA は
APPID/template/ja/shopA/Index.tpl
shopB は
APPID/template/ja/shopB/Index.tpl
さらに、shopXを追加したときにテンプレートが無ければ自動的に標準を使う。
APPID/template/ja/standard/Index.tpl
次のように実現する(実験的アプローチ)

続きを読む "1つのシステムで見栄えを切り替える" »

2009年09月04日

grep、awk、find メモ

拡張子指定して文字列indexを含むファイルの再帰検索
grep "index" `find ./ -name '*.php'`
grep -r --include="*.php" "index" *

出現回数の降順
grep -r --include="*.php" "index" * | awk -F ':' '{print $1}' | uniq -c | sort -r -k 1

ファイル名の昇順
grep -r --include="*.php" "index" * | awk -F ':' '{print $1}' | uniq -c | sort -k 2

出現回数の降順 0回含む
grep -c -r --include="*.php" "index" * | awk -F ':' '{print $2"\t"$1}' | sort -r -k 1

含まないもの
grep -L -r --include="*.php" "index" *

2009年09月05日

ethnaのスケルトン

で生成された各ファイルの
@author {$author}
に自分の名前を展開させる。

環境は、
Vine Linux 4.2 (Lynch Bages)
Ethna-2.3.7、Ethna-2.5.0-preview3、Ethna-2.5.0-preview5

CentOS release 5.3 (Final)
Ethna-2.5.0-preview3

続きを読む "ethnaのスケルトン" »

2009年09月06日

画像を縮小する(paint)


Windows標準の「ペイント」で任意のサイズに縮小するには次のとおり。

続きを読む "画像を縮小する(paint)" »

2009年09月12日

ethnaでformの配列を個別にチェックしたい

formの配列長が可変長だったっ場合、普通に作ると

メアド入力欄
  • メアドを正しく入力してください。

    となるところを

    メアド入力欄
  • メアドを正しく入力してください。
  • メアドを正しく入力してください。

    のように、どの配列インデックスで間違いがあったか分かるようにする為、次のような応急処置。
  • 続きを読む "ethnaでformの配列を個別にチェックしたい" »

    2009年09月13日

    ethnaのフォーム定義をDBから取得する その1

    アプリケーションの多くのフォーム定義はデータベース テーブルと密接。例えば
    CREATE TABLE tableA(
     acd     INT
    ,aid     VARCHAR(10)
    ,acreate DATETIME
    ,amemo   TEXT
    )ENGINE = INNODB
    CHARACTER SET utf8 COLLATE utf8_general_ci;
    なら ↓
    'acd'    => array(
        'name'     => 'acd',
        'form_type'=> FORM_TYPE_TEXT,
        'type'     => VAR_TYPE_INT,
        'filter'   => 'ltrim,rtrim,ntrim',
    ),
    'aid'    => array(
        'name'     => 'aid',
        'form_type'=> FORM_TYPE_TEXT,
        'type'     => VAR_TYPE_STRING,
        'max'      => 10,
        'filter'   => 'ltrim,rtrim,ntrim',
    ),
    'acreate'=> array(
        'name'     => 'acreate',
        'form_type'=> FORM_TYPE_TEXT,
        'type'     => VAR_TYPE_DATETIME,
        'filter'   => 'ltrim,rtrim,ntrim',
    ),
    'amemo'  => array(
        'name'     => 'amemo',
        'form_type'=> FORM_TYPE_TEXTAREA,
        'type'     => VAR_TYPE_STRING,
        'filter'   => 'ltrim,rtrim,ntrim',
    ),
    という具合に大量のフォーム定義をテーブルのメタ情報から取得する。
    スケルトンで生成する他に、今回は下記のように動的にフォーム定義を生成する。

    続きを読む "ethnaのフォーム定義をDBから取得する その1" »

    2009年09月14日

    ethnaのフォーム定義をDBから取得する その2

    前回はテーブルの列名をフォーム名とフォームの表示名にセット。
    テーブルの列名には仕様書には日本語表記があるはずで、本当はこれをフォームの表示名にしたい。
    データベース テーブル 列のコメントを利用するため、MySQL 5 に依存する。
    まずは、テーブルの各列のコメントに表示名を設定。
    CREATE TABLE tableA(
     acd     INT         COMMENT '番号'
    ,aid     VARCHAR(10) COMMENT 'ID'
    ,acreate DATETIME    COMMENT '作成日時'
    ,amemo   TEXT        COMMENT 'メモ'
    )ENGINE = INNODB
    CHARACTER SET utf8 COLLATE utf8_general_ci;
    このコメント(表示名)を ethna の Ethna_AppObject で使えるようにするには次のとおり。

    続きを読む "ethnaのフォーム定義をDBから取得する その2" »

    2009年09月15日

    ethnaのフォーム定義をDBから取得する その3

    前回のままではテーブルの列の数だけSQLが発行されてしまうので
    の方法で連想配列からルックアップできるように改善。
    class APPID_ColumnsManager extends Ethna_AppManager に
    getResultArray() を作成しておき、
    class APPID_ActionForm extends Ethna_ActionForm
    の _setFormTemplate を次のように改造

    続きを読む "ethnaのフォーム定義をDBから取得する その3" »

    2009年09月16日

    ethna のEthna_DB_PEAR:getMetaData()でNOTICE

    テーブル定義情報を取得する為
    $ethnadb =& $this->backend->getDB();
    $a =& $ethnadb->getMetaData( $vv ); ←★
    で、
    (NOTICE): global.getmetadata(class/DB/Ethna_DB_PEAR.php:220): [PHP] E_NOTICE: Only variables should be assigned by reference in /home/toshi/Ethna/Ethna-2.5.3/class/DB/Ethna_DB_PEAR.php on line 220
    メッセージが。
    参照渡しの戻り値の問題。出ない環境もあったので調べると

    続きを読む "ethna のEthna_DB_PEAR:getMetaData()でNOTICE" »

    2009年09月17日

    ethnaのフォーム定義をDBから取得する 補足

    mysql のカラムの型が char,varchar,text だった場合、ethna が 'string' として扱い
    「ethnaのフォーム定義をDBから取得する」では
    デフォルトで文字列長をフォーム定義の'max'値としているため
    checkbox や radio では 明示的に max=>null などとします!

    2009年09月18日

    MIDI検定

    MIDI検定3級公式ガイドブック

    http://cappuccino.jp/keisuken/java/JavaSound/

    About 2009年09月

    2009年09月にブログ「Remix.asia」に投稿されたすべてのエントリーです。過去のものから新しいものへ順番に並んでいます。

    前のアーカイブは2009年08月です。

    次のアーカイブは2009年10月です。

    他にも多くのエントリーがあります。メインページアーカイブページも見てください。