仕様書が無くソースコードだけが残るのが最悪。せめて最終的なソースコードを元に仕様書のベースを生成したい。
ethna にはない description 要素を追加。
app/plugin/APPID_Plugin_Validator_Description.php を作成。
ethna にはない description 要素を追加。
APPID_ActionForm extends Ethna_ActionForm{ var $form_template = array( 'fieldName' => array( 'name' => '列に対するWEBでの表示名', 'required' => false, 'form_type'=> FORM_TYPE_RADIO, 'type' => VAR_TYPE_INT, 'option' => array( '1'=>'A', '2'=>'B', ), 'description'=> array( '2択', 'コードで格納 etc...', ), ), ~ ); }このままでは「プラグインがない」とワーニング。
app/plugin/APPID_Plugin_Validator_Description.php を作成。
class APPID_Plugin_Validator_Description extends Ethna_Plugin_Validator{ var $accept_array = true; function &validate( $name, $var, $params ){ return $this->ok(); /// 説明なのでなにもしない /// return $this->error('エラーだよ', E_APP_FORM_INVALIDVALUE); } }例えば↓このように出力すればそのままエクセルに貼り付けて・・・
<table border=1> <caption>tableName</caption> <tr> <th>項番</th> <th>列名</th> <th>属性名</th> <th>データ型</th> <th>制約</th> <th>カラム説明</th> </tr> {foreach from=$app.tableName item=p key=c name=x} <tr> <td align=right>{$c|default: }</td> <td>{$formDef[$p.Field].name|default: }</td> <td>{$p.Field|default: }</td> <td>{$p.Type|default: }</td> <td> {if 'PRI'==$p.Key}PRIMARY KEY{/if} {if 'auto_increment'==$p.Extra}AUTO_INCREMENT{/if} {if 'NO'==$p.Null}NOT NULL{else} {/if} {if ''!=$p.Default}DEFAULT {$p.Default}{else} {/if} </td> <td> {if $formDef[$p.Field].option|is_array} {foreach from=$formDef[$p.Field].option item=v key=k name=y}<div>{$k}:{$v}</div>{/foreach} {/if} {if $formDef[$p.Field].description|is_array} {foreach from=$formDef[$p.Field].description item=description}<div>{$description}</div>{/foreach} {else if !$formDef[$p.Field].description|empty} <div>{$formDef[$p.Field].description}</div> {/if} </td> </tr> {/foreach} <table>このままでもいいかも。