OSDN Git Service

- fixed bug actionform unit test result is applied to next one.
[ethna/ethna.git] / CHANGES
1 * Êѹ¹ÅÀ°ìÍ÷
2
3 ** 2.5.0-dev
4
5 *** features
6
7 - Ethna¥³¥Þ¥ó¥É¤Ë°ìÈÌŪ¤Ê¥Æ¥¹¥È¥±¡¼¥¹¥³¥Þ¥ó¥É¤È¤·¤Æ add-test ¥³¥Þ¥ó¥É¤òÄɲÃ(thanks: BoBpp)
8 -- ethna add-test -s [skelname] [name] ¤Ç¼Â¹Ô¤Ç¤­¤Þ¤¹
9 -- http://blog.as-roma.com/BoBlog/index.php?itemid=1338
10 - Ethna_Renderer_Rhaco¤òÄɲÃ(experimental)
11 - Ethna_DB_ADOdb¤Îdebug»þ¤Î¥í¥°½ÐÎϤòEthna¤ÎLogger¤ËÊѹ¹(@see http://d.hatena.ne.jp/sotarok/20071224)
12
13 *** bug fixes
14
15 - ethna pear-local ¥³¥Þ¥ó¥É¤Ç Ethna ¤ò [appid]/lib/ ¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤È¡¢[appid]_Controller.php ¤Îinclude_path
16   ¤ÎÀßÄê¤Ë¤è¤Ã¤Æ¤Ï ethna¥³¥Þ¥ó¥É¤¬Æ°¤«¤Ê¤¯¤Ê¤ë¤Î¤ò²óÈò (thanks: sotarok)
17 -- ethna pear-local ¥³¥Þ¥ó¥É¤Ç Ethna ¤ò [appid]/lib ¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤â¡¢[appid]/bin/ethna ¤¬»È¤¨¤ë¤è¤¦¤Ë¤·¤¿¡£
18 - ÇÛÎó¤Î¥Õ¥©¡¼¥à¤òvalidate¤¹¤ëºÝ¡¢Ãͤ¬null¤À¤È¥Õ¥£¥ë¥¿¤¬Å¬ÍѤµ¤ì¤Ê¤¤¥Ð¥°¤ò½¤Àµ
19 - Ethna_Plugin_Cachemanager_Memcache ¤Ë°ú¿ô¤¬¤Ê¤«¤Ã¤¿¤¿¤á¤Ë¥×¥é¥°¥¤¥ó¸Æ¤Ó½Ð¤·¤Ë¼ºÇÔ¤·¤Æ¤¤¤¿¥Ð¥°¤ò½¤Àµ(thanks sfio, ethna-users:0818)
20 - Ethna_PearWrapper¡¢Ethna_Plugin_Csrf_Session, Ethna_InfoManager Åù¤òÈùÄ´À°(thanks sfio, ethna-users:0825)
21 - form_input ¤Î default Â°À­¤¬¡¢ÆþÎÏÃͤǾå½ñ¤­¤Ç¤­¤Ê¤«¤Ã¤¿¥Ð¥°¤ò½¤Àµ(thanks sotarok, ethna-users:0836)
22 - call_user_func ¤ÎÌá¤êÃͤ¬¥ª¥Ö¥¸¥§¥¯¥È¤À¤Ã¤¿¾ì¹ç¤Ë¡¢E_NOTICE¤¬½Ð¤ëÌäÂê¤ò²óÈò(PHP 4.4¸ÂÄê) [ethna-users:0910]
23 - ActionForm ¤Î validate test ¤Î·ë²Ì¤¬¡¢¼¡¤Î¥Æ¥¹¥È¤Ë°ú¤­·Ñ¤¬¤ì¤Æ¤·¤Þ¤¦¥Ð¥°¤ò½¤Àµ(thanks: maru_cc)
24
25 ** 2.3.2
26
27 *** features
28
29 - %%[breaking B.C.]%% Ethna_UrlHandler (URL¥Ï¥ó¥É¥é) ¤ò¥×¥é¥°¥¤¥ó²½
30 -- Ethna_Plugin_Urlhandler_Default ¤òÄɲÃ
31 -- %% $action_map ¤ò App_Urlhandler ¤«¤é App_Plugin_Urlhandler_Default
32 ¤Ë°ÜÆ°¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹ %%
33 -- ¤ä¤Ã¤Ñ¤êÌᤷ¤Þ¤·¤¿¡£¥×¥é¥°¥¤¥ó¤ò¸Æ¤Ó½Ð¤·¤¿¤¤¤È¤­¤ËApp_UrlHandler¥¯¥é¥¹¤Ç»ØÄꤹ¤ë¤è¤¦¤ËÊѹ¹¡£
34 - ¥×¥é¥°¥¤¥ó¤Î¥¯¥é¥¹¤¬´û¤Ë¸ºß¤¹¤ë¾ì¹ç¤ÏÆÃÊ̤˥ե¡¥¤¥ë¤Î¸¡º÷¤ò¥¹¥­¥Ã¥×¤¹¤ë¤è¤¦¤Ë¤·¤¿¡£
35 - Ethna_ViewClass::_getFormInput_* ¤Ç $separator ¤Î¥Ç¥Õ¥©¥ë¥È¤ò '' ¤«¤é "\n" ¤ËÊѹ¹
36 - Ethna_Controller::_trigger_XMLRPC ¤Ç $GLOBALS['HTTP_RAW_POST_DATA'] ¤ò»È¤ï¤º¤Ë 'php://input' ¤ò»È¤¦¤è¤¦¤ËÊѹ¹
37 -- php.ini ¤ÎÀßÄ꤬ÉÔÍפˤʤê¤Þ¤·¤¿¡£
38 - Ethna_MailSender
39 -- $type °ú¿ô¤ò $template ¤È rename ¤·¤Æ¡¢¤è¤êÀѶËŪ¤Ë¥Æ¥ó¥×¥ì¡¼¥È̾¤È²ò¼á¤¹¤ë¤è¤¦¤Ë¤·¤¿¡£
40 --- $def ¤òÆä˻ØÄꤷ¤Ê¤±¤ì¤Ð ViewClass ¤Î forward_name ¤ÈƱÍͤˠtemplate/ja/mail/ °Ê²¼¤«¤é¥Æ¥ó¥×¥ì¡¼¥È¤òõ¤·¤Þ¤¹¡£
41 -- multipart: 2 ¤Ä°Ê¾å¤ÎźÉÕ¡¢¥Õ¥¡¥¤¥ë̾¤ò»ØÄꤷ¤¿ÅºÉÕ¤ËÂбþ¤·¤Þ¤·¤¿¡£
42 --- ¤¿¤À¤·¥Ç¥Õ¥©¥ë¥È¤Î content-type ¤Ï application/octet-stream ¤Ç¤´¤Þ¤«¤·¤Æ¤¤¤ë¤Î¤È¡¢ÆüËܸì¥Õ¥¡¥¤¥ë̾¤¬¤Æ¤­¤È¤¦¤Ç¤¹¡£
43 - Ethna_Renderer, Ethna_Renderer_Smarty
44 -- perform() ¤ÎÂè2°ú¿ô¤Ë $capture ¥Õ¥é¥°¤òÄɲÃ
45 -- true ¤Î¤È¤­¤Ï Smarty Åª¤Ë display ¤Ç¤Ê¤¯ fetch ¤Ë¤Ê¤ê¤Þ¤¹¡£
46 - Ethna_Util::isRootDir() ÄɲÃ
47 - ethna_make_package¤Ç.svn¤ËÂбþ
48 - Ethna_Plugin_Validator_Mbregexp¡¡Äɲà(thx: mumumu)
49 -- mb_ereg¤ò»È¤Ã¤¿¥Þ¥ë¥Á¥Ð¥¤¥ÈÂбþÀµµ¬É½¸½¥×¥é¥°¥¤¥ó
50 - Ethna_Plugin_Handle_PearLocal¡¡Äɲà
51 -- PEAR¥Ñ¥Ã¥±¡¼¥¸¤ò³Æ¥×¥í¥¸¥§¥¯¥ÈËè¤Ë´ÉÍý¤Ç¤­¤ë¥×¥é¥°¥¤¥ó
52 - View ¤Î¥æ¥Ë¥Ã¥È¥Æ¥¹¥È¤¬¤Ç¤­¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤¿¥Ð¥°¤ò½¤Àµ(thx: sfio, ethna-users:0651)
53
54 *** bug fixes
55
56 - raiseError()Îà¤Î°ú¿ô¤¬´Ö°ã¤Ã¤Æ¤¤¤¿¤Î¤ò½¤Àµ (thx: sfio)
57 - ¥×¥é¥°¥¤¥ó¥Ñ¥Ã¥±¡¼¥¸¥¤¥ó¥¹¥È¡¼¥ë»þ¤Ë '{$application_id}' ¤¬ÃÖ´¹¤µ¤ì¤Ê¤¤¥Ð¥°¤ò½¤Àµ
58 - add-template ¤¬Àµ¤·¤¯Æ°ºî¤·¤Æ¤¤¤Ê¤«¤Ã¤¿¤Î¤ò½¤Àµ
59 - Ethna_ViewClass::_getFormInput_Select ¤Ç multiple ¤ò¹Íθ¤·¤Æ¤¤¤Ê¤«¤Ã¤¿¤Î¤ò½¤Àµ
60 - Ethna_AppObject::_getSQL_SearchId ¤ÇµßºÑ¤Ë¤Ê¤Ã¤Æ¤Ê¤¤¥¨¥é¡¼¤Î¥¹¥­¥Ã¥×¤òºï½ü
61 -- Í­¸ú¤Ê key ¤¬¤Ê¤¤¤È¤­¤Ë¡¢¤É¤Á¤é¤Ë¤·¤í SQL ¥¨¥é¡¼¤Ë¤Ê¤Ã¤Æ¤¿
62 - OS_WINDOWS¤ÇgetAppController()¤¬Ìµ¸Â¥ë¡¼¥×¤Ë¤Ê¤Ã¤Æ¤¤¤¿¤Î¤ò½¤Àµ
63 -- ¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥êȽÄê¤Ë¼ºÇÔ¤·¤Æ¤¤¤¿
64 - Console_Getopt¤Ê¤É¤Î¥¢¥Ã¥×¥°¥ì¡¼¥É¤ËÂбþ
65 -- php4Âбþ¤ÎreferenceÊÖ¤·¤¬¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤¿¤Î¤Ëȼ¤Ã¤ÆȯÀ¸¤·¤Æ¤¤¤¿notice¤ò²óÈò
66 - xmlrpc¤Î¥Ñ¥é¥á¡¼¥¿¤¬ActionForm¤ËÅϤäƤ¤¤Ê¤«¤Ã¤¿¤Î¤ò½¤Àµ(#9845)
67 - file_type ¤Î¸¡ºº ¤¬µ¡Ç½¤·¤Ê¤¤ÌäÂê¤ò½¤Àµ
68 - MailSender¤Ç¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¤ÎµóÆ°¤ò½¤Àµ
69 - MailSender¤ÎBare LF¤òCRLF¤ËÃÖ´¹(#9898, ethna-users:0588)
70 - Smarty ¤Î $script ÊÑ¿ô¤ÎÃͤ¬¡¢PATH_INFO¤ÎÃͤ¬´Þ¤Þ¤ì¤ë¤ÈÀøºßŪ¤Ë¸íÆ°ºî¤¹¤ë¥Ð¥°¤ò½¤Àµ(thx: cockok, ethna-users:0687)
71
72 ** 2.3.1
73
74 *** features
75
76 - ethna¥³¥Þ¥ó¥É¤Ç@PHP-BIN@¤¬ÃÖ´¹¤µ¤ì¤º¤Ë»Ä¤Ã¤Æ¤¤¤ë¾ì¹ç(CVSÈǤò»È¤Ã¤Æ¤¤¤ë¤È¤­¤Ê¤É)¤ËÂбþ
77 - ¥Ç¥Õ¥©¥ë¥È¥Æ¥ó¥×¥ì¡¼¥È¤Ë¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤ò¤³¤Ã¤½¤êÄɲÃ
78
79 *** bug fixes
80
81 - Mac/Windows¤Çpear·Ðͳ¤Ç¤Î¥¤¥ó¥¹¥È¡¼¥ë¤Ë¼ºÇÔ¤·¤Æ¤¤¤¿ÌäÂê¤ò²ò¾Ã
82 -- ¤¹¤Ù¤Æ¤Îrole¤òphp¤Ë¤·¤Æ¡¢ethna.{sh,bat}¤Î¤ßscript¤ò»ØÄê
83 - Ethna_ViewClass::setPlugin() ¤Ç $plugin ¤Î¸¡¾Ú¤Ë is_callable ¤ò»ÈÍÑ (ethna-users:0507)
84 - install-plugin ¤¬Àµ¤·¤¯Æ°¤¤¤Æ¤¤¤Ê¤«¤Ã¤¿¤Î¤ò½¤Àµ (#9582)
85 - ethna.sh¤ÇPHP¤Î¥Ñ¥¹¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¤Î¤ò½¤Àµ(ethna-users:0508)
86 - Ethna_AppObject¤Ç'key'¤Î¾ò·ï¤Ëunique_key, multiple_key¤¬Ï³¤ì¤Æ¤¤¤¿¤Î¤ò½¤Àµ
87 - Ethna_ViewClass¤Ç<label id="foo">¤È¤Ê¤Ã¤Æ¤¤¤¿¤Î¤ò<label for="foo">¤Ë½¤Àµ
88
89 ** 2.3.0
90
91 *** features
92
93 - ethna¥³¥Þ¥ó¥É¤Î¥Ï¥ó¥É¥éºÆÊÔ
94 -- Á´ÈÌŪ¤Ëgetopt²½
95 --- "--basedir" ¤ÇÂоݥ¢¥×¥ê¤Î¾ì½ê¤ò»ØÄê
96 --- "--skelfile" ¤ÇÀ¸À®¸µ¤Î¥¹¥±¥ë¥È¥ó¥Õ¥¡¥¤¥ë¤ò»ØÄê
97 -- Á´¤Æ¤Îgenerator¤Ç "¥¢¥×¥ê -> EthnaËÜÂÎ" ¤Î½ç¤Ë¥¹¥±¥ë¥È¥ó¥Õ¥¡¥¤¥ë¤òõ¤¹¤è¤¦¤ËÊѹ¹
98 -- add-action-cli, add-action-xmlrpc¤òÇѻߡ¢add-action¤Ë "--gateway=www|cli|xmlrpc" ¤òÄɲÃ
99 -- add-entry-pointÄɲÃ
100 --- ethna add-entry-point --gateway=cli foo ¤Ç bin/foo.php, app/action/Foo.php ¤òÀ¸À®
101 -- pear¥³¥Þ¥ó¥É¤ò»È¤¦¥Ï¥ó¥É¥é¤Ë "--pearopt" ¤òÄɲÃ(experimental)
102 --- ethna install-plugin -p--alldeps -p--force foo bar ¤Î¤è¤¦¤Ë»ØÄꤹ¤ë
103 -- Ethna_Handle::_getopt()¤Î½ÐÎϤòÊѹ¹
104
105 - miscÄɲÃ
106 -- plugin packager¤Î¥µ¥ó¥×¥ë
107 -- ¤ª¤Þ¤±: _ethna (zsh¤ÎÊä´°´Ø¿ô)
108
109 - Smarty, PEAR_DB¤Îinclude¤Î¥¿¥¤¥ß¥ó¥°¤òÊѹ¹
110 -- É¬Í×»þ¤Ë Ethna_ClassFactory::_include() ¤ò»È¤¦¤è¤¦¤Ë¤·¤¿¡£
111
112 - Ethna_AppObject¤òpostgres, sqlite¤Ë´Ê°×Âбþ
113 -- 1¥Æ¡¼¥Ö¥ë¤Î1¥ì¥³¡¼¥É¤¬1¥ª¥Ö¥¸¥§¥¯¥È¤ËÂбþ¤¹¤ë¤è¤¦¤Êñ½ã¤Ê¥â¥Ç¥ë¤Î¤ßÂбþ
114 -- ¤Þ¤Àdb type¤´¤È¤ËÄ´À°¤¬É¬Íפˤʤ뤳¤È¤¬¤¢¤ê¤Þ¤¹¡£
115 -- pgsql¤Çsequence¤ËÂбþ
116 -- ¥Æ¡¼¥Ö¥ë̾¡¢¥«¥é¥à̾¤Î¼«Æ°quote¤ËÂбþ
117
118 - add-* ¥Ï¥ó¥É¥ëµ¡Ç½ÄɲÃ
119 -- add-template: --skelfile ¥ª¥×¥·¥ç¥ó¤ÇÀ¸À®¸µ¤Î¥¹¥±¥ë¥È¥ó¥Õ¥¡¥¤¥ë¤ò»ØÄê¤Ç¤­¤ë¤è¤¦¤Ë¤·¤¿
120
121 - {form_input}¥Ø¥ë¥Ñ¡¼
122 -- select, radio, checkbox¤ËÂбþ
123 -- ÁªÂò»è¤ò¥Õ¥©¡¼¥àÄêµÁ¤Ç»ØÄê¤Ç¤­¤ë¤è¤¦¤Ë¤·¤¿(af¤Îmethod, property, manager¤Ê¤É)
124 -- ³°Â¦¤Î{form}¥Ö¥í¥Ã¥¯¤«¤éaction̾, defaultÃͤò¼èÆÀ¤Ç¤­¤ë¤è¤¦¤Ë¤·¤¿
125 -- ¥Õ¥©¡¼¥àÄêµÁ¤«¤é¤âdefaultÃͤò»ØÄê¤Ç¤­¤ë¤è¤¦¤Ë¤·¤¿
126
127 - Ethna_Plugin_Handle_{Install,Upgrade}Plugin ¤Ë --state ¥ª¥×¥·¥ç¥ó¤òÄɲÃ
128 - local ¤Î¥×¥é¥°¥¤¥ó¤Î prefix ¤ò App ¤ËÊѹ¹(app_id¤ÎͽÌó¸ì°·¤¤)
129
130 - Ethna_Plugin_Handle_ClearCache ÄɲÃ
131 -- ¸½¾õ smarty, pear, cachemanager_localfile, tmp°Ê²¼ÌäÅú̵ÍѤǺï½ü¡¢¤Î¤ß¤ÎÂбþ
132 - ethna_error_handler() ¤Î print ¾ò·ï¤òÊѹ¹
133 -- Logwriter ¥×¥é¥°¥¤¥ó²½¤Ëȼ¤¦ $has_echo ¾ò·ï¤Î¥Ð¥°¤ò½¤Àµ
134 -- $has_echo ¤Ë²Ã¤¨¤Æ $config->get('debug') ¤ò¸«¤ë¤è¤¦¤Ë¤·¤¿
135 - Ethna_Handle ¤Ç Ethna_Controller ¤È App_Controller ¤¬¶¦Â¸¤¹¤ë¾ì¹ç¤Î°·¤¤¤¬º®Í𤷤Ƥ¤¤¿¤Î¤òÀ°Íý
136 - Ethna_Hanlde ¤Ë mkdir(), chmod(), purgeDir() ¤òÄɲÃ
137 - Cachemanager ¥×¥é¥°¥¤¥óÃæ¤Î PEAR::raiseError() ¤ò Ethna::raiseError() ¤ËÊѹ¹
138 - Ethna_Logger ¤Ç Ethna_Config ¥ª¥Ö¥¸¥§¥¯¥È¤Î¼èÆÀ¤Ë¼ºÇÔ¤·¤¿¤È¤­¤Î½èÍý¤ò½¤Àµ
139 - ethna {install,uninstall,upgrade}-plugin ¤Ç skel ¤«¤é generate ¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Î¾å½ñ¤­³Îǧ¤òÇÑ»ß
140
141 - Ethna_Plugin_Handle_ListPlugin
142 -- ¥Ñ¥Ã¥±¡¼¥¸´ÉÍý¤Ë·¸¤ï¤é¤º¥×¥é¥°¥¤¥ó¤Î°ìÍ÷¤òɽ¼¨
143 -- ¥Ñ¥Ã¥±¡¼¥¸´ÉÍý²¼¤Ë¤¢¤ë¤È¤­¤Ï¥Ñ¥Ã¥±¡¼¥¸Ì¾¤È¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨
144 - Ethna_Plugin_Handle_UpgradePlugin, Ethna_Plugin_Handle_ChannelUpdate
145 -- ¥×¥é¥°¥¤¥ó¥Ñ¥Ã¥±¡¼¥¸¤Îupgrade, pear channel¤Îupdate¤ËÂбþ
146 -- http://pear.server/get/Package-1.2.3.tgz ¤Î¤è¤¦¤Êinstall, upgrade¤ËÂбþ
147 - PearWrapper, Ethna_Handle¤Ç¤Î¥Ç¥Õ¥©¥ë¥È¥¿¡¼¥²¥Ã¥È(local¤«master¤«)¤òlocal¤ËÊѹ¹¡¢Åý°ì
148 - Ethna_Plugin_Handle_{Install,Uninstall,Info,List}Plugin
149 -- master, local¤Î¥Ï¥ó¥É¥é¤òʬ¤±¤Æ¤¤¤¿¤Î¤òÅý¹ç
150 -- ¥À¥¦¥ó¥í¡¼¥ÉºÑ¤ß¤Î tgz ¤ËÂбþ
151 -- Console_GetOpt ¤Ç --channel, --basedir, --local, --master ¤Î¥ª¥×¥·¥ç¥ó¤òÄɲÃ
152 -- new PEAR_Error() »þ¤Î error handler ¤ò callback($ui, 'displayFatalError') ¤ËÊѹ¹
153
154 - Ethna_UrlHandler¥¯¥é¥¹¤òÄɲÃ(¥¹¥Æ¥­urlÂбþ)
155 - Smarty¥×¥é¥°¥¤¥ó´Ø¿ôsmarty_function_urlÄɲÃ
156 - Ethna_AppObject¤«¤é¤Î¥Õ¥©¡¼¥àÄêµÁÀ¸À®¥µ¥Ý¡¼¥ÈÄɲÃ
157 -- [2006/08/23] ·ã¤·¤¯¦Á
158 - Ethna_ClassFactory::getObject()¤Ç¥¯¥é¥¹ÄêµÁ¤Ë̵¤¤¥­¡¼¤¬ÅϤµ¤ì¤¿¾ì¹ç¤ÏEthna_AppObject()¤Î¥­¡¼¤Ç¤¢¤ë¤È²¾Äꤷ¤Æ¥ª¥Ö¥¸¥§¥¯¥ÈÀ¸À®
159 - ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥¹¥±¥ë¥È¥óÀ¸À®»þ¤Ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¸ÇÍ­¤ÎActionClass, ActionForm, ViewClass¤âÀ¸À®¤¹¤ë¤è¤¦¤ËÊѹ¹
160 - Ethna_SkeltonGenerator¥¯¥é¥¹¤òEthna_Generator¥¯¥é¥¹¤Ë̾¾ÎÊѹ¹
161 - Ethna_SkeltonGenerator¥¯¥é¥¹¤Î³Æ¥á¥½¥Ã¥É¤ò¥×¥é¥°¥¤¥ó²½
162 - Ethna_Config::get()¤Ç°ú¿ô¤ò»ØÄꤷ¤Ê¤¤¤ÈÁ´ÀßÄê¤ò³ÊǼ¤·¤¿ÇÛÎó¤òÊÖ¤¹¤è¤¦¤ËÊѹ¹
163 - Ethna_ViewClass::_getTemplateEngine()¤ÇÀßÄêÃͤò³ÊǼ¤·¤¿$config¥Æ¥ó¥×¥ì¡¼¥ÈÊÑ¿ô¤òÀßÄꤹ¤ë¤è¤¦¤ËÊѹ¹
164 - Ethna¤Î¥Ñ¥Ã¥±¡¼¥¸¥·¥¹¥Æ¥à¤òÄɲÃ
165 -- ethnaÍѤÎpear channel¤«¤é¥×¥é¥°¥¤¥ó¤Î¥Ñ¥Ã¥±¡¼¥¸¤ò¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹
166 -- Ethna_PearWrapper, Ethna_Plugin_Handle_{Install,Info,List,Uninstall}_Plugin_{Master,Local}¤òÄɲÃ
167 -- local: ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó(¥×¥í¥¸¥§¥¯¥È)¤Î¥Ç¥£¥ì¥¯¥È¥ê¡¢master: EthnaËÜÂΤΤ¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¥¤¥á¡¼¥¸¤Ç¤¹
168 -- PearWrapper¤Ïethna¥³¥Þ¥ó¥É(Handle)¤«¤é¸Æ¤Ó½Ð¤µ¤ì¤ë¤³¤È¤¬Á°Äó
169 -- Ethna_SkeltonGenerator¤Ë¤¢¤Ã¤¿¥á¥½¥Ã¥É¤òEthna_Handle¤Ë°ÜÆ°¡¢¾¯¤·ÄɲÃ
170
171 - ¥¨¥é¡¼¥Ï¥ó¥É¥ê¥ó¥°Êý¿Ë¤ò¿¾¯Êѹ¹
172 -- @±é»»»Ò¤ò»È¤Ã¤¿¥¨¥é¡¼ÍÞÀ©¤òÇÑ»ß
173
174 - [breaking B.C.] Ethna_ClassFactory¤Î¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°
175 -- Ethna_Backend::getObject()¥á¥½¥Ã¥É¤òÄɲä·¤Þ¤·¤¿
176 -- ¤³¤ì¤Ë¤è¤ê¡¢Ethna_Controller¤Î$class¥á¥ó¥Ð¤Ë
177  $class = array(
178    // ...
179    'user' => 'Some_Foo_Bar',
180  ),
181 ¤Èµ­½Ò¤¹¤ë¤³¤È¤Ç
182  $user =& $this->backend->getObject('user');
183 ¤È¤·¤ÆSome_Foo_Bar¥¯¥é¥¹¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò¼èÆÀ¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹
184 -- ¥¯¥é¥¹ÄêµÁ¤¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï²¼µ­¤Î½ç¤Ç¥Õ¥¡¥¤¥ë¤òõ¤·¤Ë¹Ô¤­¤Þ¤¹(include_path)
185 +++ Some_Foo_Bar.php (¤½¤Î¤Þ¤Þ)
186 +++ Foo/Some_Foo_Bar.php (Ethna style)
187 +++ Foo/Bar.php (Ethna & PEAR style)
188 +++ Some/Foo/Bar.php (PEAR style)
189 -- ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥Þ¥Í¡¼¥¸¥ã¤ÎÀ¸À®¤âEthna_ClassFactory¤Ç¹Ô¤ï¤ì¤Þ¤¹(Ethna_ClassFactory::getManager()¤¬Äɲ䵤ì¤Æ¤¤¤Þ¤¹)
190 -- ¤³¤ì¤Ëȼ¤¤¡¢¡Á2.1.x¤Ç¤Ï¥³¥ó¥È¥í¡¼¥é¥¯¥é¥¹¤Ë
191  $manager = array(
192    'um' => 'User',
193  );
194 ¤Î¤è¤¦¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¤È¡¢Ethna_ActionClass¡¢Ethna_ViewClass¡¢Ethna_AppObject¡¢Ethna_*Manager¤Ç
195  $this->um
196 ¤È¤·¤Æ¥Þ¥Í¡¼¥¸¥ã¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Æ¤¤¤¿¤Î¤Ç¤¹¤¬¡¢¤³¤Îµ¡Ç½¤¬Çѻߤµ¤ì¤Æ¤¤¤Þ¤¹(ÉÔɾ¤Ê¤éÌᤷ¤Þ¤¹@preview2)
197 - Ethna_Plugin_Logwriter_File::begin()¤Ç¥í¥°¥Õ¥¡¥¤¥ë¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤òÀßÄꤹ¤ë¤è¤¦¤ËÊѹ¹
198 - ¥Ï¡¼¥É¥¿¥Ö -> ¥½¥Õ¥È¥¿¥Ö
199 - test runner¤ÎÄɲÃ
200 - [breaking B.C.] Ethna_Logger¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°
201 -- Ethna_LogWriter¤Î¥×¥é¥°¥¤¥ó²½
202 -- ¥«¥ó¥Þ¶èÀÚ¤ê¤Ç¤ÎÊ£¿ô¥Õ¥¡¥·¥ê¥Æ¥£¥µ¥Ý¡¼¥È
203 -- _getLogWriter()¥¯¥é¥¹¤ò¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤Æ¤¤¤ëÊý¤Ë±Æ¶Á¤¬¤¢¤ê¤Þ¤¹(2.3.0°Ê¹ß¤ÏPlugin/Logwriter°Ê²¼¤ËLogwriter¥¯¥é¥¹¤òÃÖ¤¤¤Æ¡¢¥Õ¥¡¥·¥ê¥Æ¥£¤Ç¤½¤Î̾Á°¤ò»ØÄꤹ¤ì¤ÐǤ°Õ¤ÎLogwriter¤òÄɲòÄǽ¤Ç¤¹)
204 - [breaking B.C.] Ethna_RendererÄɲÃ
205 -- ¡Á2.1.x¤Ç¤ÏľÀÜ°·¤Ã¤¤¤Æ¤¿¥Æ¥ó¥×¥ì¡¼¥È¥¨¥ó¥¸¥ó¥ª¥Ö¥¸¥§¥¯¥È¤òEthna_Renderer¥¯¥é¥¹¤Çwrap¤·¤Þ¤·¤¿
206 -- Ethna_Controller::getTemplateEngine()¤Ïobsolete¤È¤Ê¤ê¤Þ¤¹¤Î¤Çº£¸å¤ÏEthna_Controller::getRenderer()¤ò¤´ÍøÍѤ¯¤À¤µ¤¤
207 -- Ethna_Controller::_setDefaultTemplateEngine(), Ethna_View::_setDefault(), Ethna_Controller::getTemplateEngine()¤Î°ú¿ô¡¢Ìá¤êÃͤÏ2.1.x¤Þ¤Ç¤ÎSmarty¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤Ï¤Ê¤¯Ethna_Renderer¥ª¥Ö¥¸¥§¥¯¥È¤È¤Ê¤ê¤Þ¤¹
208 -- ¤³¤ì¤Ëȼ¤¤¡¢Ethna_Controller::_setDefaultTemplateEngine(), Ethna_Controller::getTemplateEngine()¤òÍøÍѤ·¤Æ¤¤¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¥¢¥Ã¥×¥Ç¡¼¥È»þ¤ËEthna_Renderer::getEngine()¤òÍøÍѤ·¤Æ¸åÊý¸ß´¹À­¤ò°Ý»ý¤¹¤ë¤è¤¦¤ËÊѹ¹¤¬É¬ÍפȤʤê¤Þ¤¹
209  e.g.
210  $smarty =& $this->controller->getTemplateEngine();
211  ¢ª
212  $renderer =& $this->controller->getTemplateEngine();
213  $smarty =& $renderer->getEngine();
214 - ¥×¥é¥°¥¤¥ó¥·¥¹¥Æ¥àÄɲÃ(w/ Ethna_Plugin¥¯¥é¥¹)
215 -- Ethna_Handle, Ethna_CacheManager, Ethna_LogWriter¤ò¥×¥é¥°¥¤¥ó¥·¥¹¥Æ¥à¤Ë°Ü¹Ô
216 -- Ethna_ActionForm¤Î¥Ð¥ê¥Ç¡¼¥¿¤ò¥×¥é¥°¥¤¥ó¥·¥¹¥Æ¥à¤Ë°Ü¹Ô(Ethna_ActionForm::use_validator_plugin¤¬true¤Î¤È¤­¤Î¤ß)
217 -- see also
218 --- http://ethna.jp/ethna-document-dev_guide-plugin.html
219 --- http://ethna.jp/ethna-document-dev_guide-form-validate_with_plugin.html
220 - ethna¥³¥Þ¥ó¥É¤Ë¥¢¥¯¥·¥ç¥ó̾¡¢¥Ó¥å¡¼Ì¾¤Î¥Á¥§¥Ã¥¯½èÍý¤òÄɲÃ(Ethna_Controller::checkActionName(), Ethna_Controller::checkViewName()¤òÄɲÃ)
221 - Ethna_CacheManager_Memcache(¥­¥ã¥Ã¥·¥å¥Þ¥Í¡¼¥¸¥ã¤Îmemcache¥µ¥Ý¡¼¥È)ÄɲÃ
222 - Ethna_Session¤Ëregenerate_id¥á¥½¥Ã¥É¤ÎÄɲÃ
223 - Ethna_Plugin_Csrf(CSRFÂкö¥³¡¼¥É)ÄɲÃ
224
225
226
227 *** bug fixes
228
229 - [[#9009>http://sourceforge.jp/tracker/index.php?func=detail&aid=9009&group_id=1343&atid=5092]](%sÅù¤¬¤¢¤ëSQL¤òEchoLogger¤ÇDebug¤¹¤ë¤ÈWarning)
230 - ¥¢¥¯¥·¥ç¥óÄêµÁ¤Îform_path¤¬Àµ¤·¤¯Æ°ºî¤·¤Æ¤¤¤Ê¤«¤Ã¤¿ÌäÂê¤ò½¤Àµ
231 - ¥³¥ó¥È¥í¡¼¥é¤¬Ê£¿ô¤¢¤ë¤È¤­¤Ëset_error_handler()¤¬²¿ÅÙ¤â¼Â¹Ô¤µ¤ì¤ë¤Î¤ò²óÈò
232 - CacheManager_Localfile¤Î@stat¤Ç¤ÎWARNING¤ò²óÈò
233 - Ethna_Plugin_Validator_Custom¤Ç¥¨¥é¡¼¤¬2½ÅÅÐÏ¿¤µ¤ì¤Æ¤¤¤¿¤Î¤ò½¤Àµ
234 - ¥×¥é¥°¥¤¥ó¤Î¿Æ¥¯¥é¥¹¤¬¤Ê¤¤¤È¤­¤Ë¥¨¥é¡¼¤Ë¤Ê¤Ã¤Æ¤¤¤¿¤Î¤ò½¤Àµ
235 - Ethna_DB_PEAR, Ethna_AppObject¤ÎWARNING¤ò²óÈò([ethna-users:0383])
236 - Windows¤Ç¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤Î.ethna¥Õ¥¡¥¤¥ë¤¬»²¾È¤µ¤ì¤Ê¤¤ÌäÂê¤ò½¤Àµ
237 - session_start¤·¤Æ¤¤¤Ê¤¤¤Èrestore¥á¥½¥Ã¥É¤¬¤¦¤Þ¤¯Æ°¤«¤Ê¤¤ÌäÂê¤ò½¤Àµ
238 - ethna¥³¥Þ¥ó¥É¤Ë¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¥ª¥×¥·¥ç¥ó¤Î¤ß¤ò»ØÄꤷ¤Æµ¯Æ°¤·¤¿¾ì¹ç(ethna -h¤Ê¤É)¤ËFatal Error¤È¤Ê¤ëÌäÂê¤ò½¤Àµ
239 - Ethna_Backend::getDB¤ÎNotice¥¨¥é¡¼¤ò½¤Àµ
240 - ¥­¥ã¥Ã¥·¥å¥Þ¥Í¡¼¥¸¥ã¤Î¥¨¥é¡¼¥³¡¼¥É¤¬256°Ê¾å(¥¢¥×¥ê¥±¡¼¥·¥ç¥óÍÑ)¤Ë¤Ê¤Ã¤Æ¤¤¤¿ÌäÂê¤ò½¤Àµ
241 - ethna add-action-test¤·¤¿¤È¤­¤Ë¥Õ¥¡¥¤¥ë¤¬app/action_cli¤ËÀ¸À®¤µ¤ì¤Æ¤·¤Þ¤¦ÌäÂê¤ò½¤Àµ
242 - Ethna_SkeltonGenerator¥¯¥é¥¹¤Îtypo¤ò½¤Àµ(proejct -> project)
243 - Ethna_ActionForm¤Ç¥×¥é¥°¥¤¥ó¤ò»È¤ï¤Ê¤¤¤È¤­¤Ë¥Õ¥£¥ë¥¿¤¬µ¡Ç½¤·¤Ê¤¤¥Ð¥°¤ò½¤Àµ
244
245
246 ** [2006/06/07] 2.1.2
247
248 *** bug fixes
249
250 - Ethna_Controller::getActionRequest()¥á¥½¥Ã¥É¤Î¥Ç¥Õ¥©¥ë¥È¾õÂ֤ο¶Éñ¤¤¤ò½¤Àµ
251
252
253 ** [2006/06/07] 2.1.1
254
255 *** bug fixes
256
257 - ethna.bat¤Î¥Ñ¥¹¤ò½¤Àµ
258
259 ** [2006/06/06] 2.1.0
260
261 *** features
262
263 - ethna¥³¥Þ¥ó¥É¤ÎETHNA_HOME¤ò¥¤¥ó¥¹¥È¡¼¥ë»þ¤Ë·èÄꤹ¤ë¤è¤¦¤Ë²þÁ±
264 - Ethna_ActionForm::validate() ¤Ç¿¼¡¸µÇÛÎó¤¬ÅϤµ¤ì¤¿¤È¤­¤Înotice¤ò²óÈò
265 - Ethna_Backend::setActionForm(), Ethna_Backend::setActionClass()¥á¥½¥Ã¥É¤òÄɲÃ
266 - Ethna_Filter¤Î¥¹¥±¥ë¥È¥ó¤ËpreActionFilter()/postActionFilter()¤òÄɲÃ
267 - Ethna_AppObject::_getPropDef()¤Ë¥­¥ã¥Ã¥·¥å½èÍý¤òÄɲÃ
268 - Ethna_CacheManager¥¯¥é¥¹¤òÄɲÃ(w/ localfile) - from GREE:)
269 - Ethna_DB::getDSN()¥á¥½¥Ã¥É¤òÄɲÃ
270 - ini¥Õ¥¡¥¤¥ë¤Î¥¹¥±¥ë¥È¥ó¤Ëdsn¥µ¥ó¥×¥ëÄɲÃ
271 - add-template¥³¥Þ¥ó¥ÉÄɲÃ(by nnno)
272 - add-project»þ¤Î¥Ç¥Õ¥©¥ë¥È¥Æ¥ó¥×¥ì¡¼¥È¥Ç¥¶¥¤¥ó¤òÊѹ¹
273 - ethna¥³¥Þ¥ó¥É¤Ë-v(--version)¥ª¥×¥·¥ç¥ó¤òÄɲÃ
274 - smarty_modifier_select(), smarty_function_select()¤Î"selected"°À­¤ÎxhtmlÂбþ(selected="true")
275 - {form_name}, {form_input}¥×¥é¥°¥¤¥óÄɲÃ(·ã¤·¤¯experimental¤È¤¤¤¦¤«ongoing)
276 - Ethna_ViewClass¤Çhelper¥¢¥¯¥·¥ç¥ó¥Õ¥©¡¼¥àÂбþ
277 -- Ethna_ViewClass->helper_action_form = array('some_action_name' => null, ...)¤È¤¹¤ë¤È{form_name}¤È¤«¤Ç»È¤¨¤Þ¤¹
278 - [breaking B.C.] Ethna_ActionClass¤Îpreforward()¥µ¥Ý¡¼¥È(¤à¤«¡¼¤·¤Î¥³¡¼¥É¤Ë¤¢¤ê¤Þ¤·¤¿¤Î¤Ç¤¹)ºï½ü
279 - (¤×¤Á)¾Ê¥¨¥Í¥Ö¥í¥Ã¥¯¥×¥é¥°¥¤¥ó{form}...{/form}ÄɲÃ
280 -- ethna_action°ú¿ô¤âÄɲÃ(¾¡¼ê¤Ëhidden¥¿¥°À¸À®)
281 - Ethna_Controller¤Ë$smarty_block_plugin¥×¥í¥Ñ¥Æ¥£¤òÄɲÃ
282 - ethna¥³¥Þ¥ó¥É¤Ëadd-action-cli¤òÄɲÃ
283 - [breaking B.C.] main_CLI¤Î¥¢¥¯¥·¥ç¥óÄêµÁ¥Ç¥£¥ì¥¯¥È¥ê¤òaction_cli¤ËÊѹ¹
284 -- controller¤Îdirectory¥×¥í¥Ñ¥Æ¥£¤Ë'bin'Í×ÁǤòÄɲÃ
285 - ethna¥³¥Þ¥ó¥É¤Ëadd-app-manager¤òÄɲÃ(thanks butatic)
286 - Ethna_ActionForm ¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥° (by ¤¤¤Á¤¤)
287 -- $this->form ¤Î¾ÊάÃÍÊäÀµ¤ò setFormVars() ¤«¤é¥³¥ó¥¹¥È¥é¥¯¥¿¤Ë°ÜÆ°
288 -- ¥Õ¥©¡¼¥àÃͤΥ¹¥«¥é¡¼/ÇÛÎó¥Á¥§¥Ã¥¯¤ò setFormVars() ¤Ç¤¹¤ë¤è¤¦¤ËÊѹ¹
289 --- vaildate() ¤¹¤ëÁ°¤Ë setFormVars() ¤Ç¥¨¥é¡¼ (handleError()) ¤¬È¯À¸¤¹¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹
290 -- ¥Õ¥©¡¼¥àÃͤΥ¹¥«¥é¡¼/ÇÛÎó¥Á¥§¥Ã¥¯¤Ç¥Õ¥©¡¼¥àÃÍÄêµÁ¤È°Û¤Ê¤ë¾ì¹ç¤Ï null ¤Ë¤¹¤ë
291 -- ¥Õ¥¡¥¤¥ë¥Ç¡¼¥¿¤ÎºÆ¹½À®¤ò¾ï¤Ë¹Ô¤¦¤è¤¦¤ËÊѹ¹
292 -- ¥Õ¥©¡¼¥àÃÍÄêµÁ¤¬ÇÛÎó¤Ç required, max/min ¤ÎÀßÄ꤬¤¢¤ë¾ì¹ç¤Î¥Ð¥°¤ò½¤Àµ
293 -- _filter_alnum_zentohan() ¤òÄɲà(mb_convert_kana($value, "a"))
294 - XMLRPC¥²¡¼¥È¥¦¥§¥¤¤ËfaultCode¥µ¥Ý¡¼¥È¤òÄɲÃ
295 -- action¤ÇEthna_Error(¤¢¤ë¤¤¤ÏPEAR_Error)¥ª¥Ö¥¸¥§¥¯¥È¤òÊÖ¤¹¤È¥¨¥é¡¼¤òÊÖ¤»¤Þ¤¹
296 - XMLRPC¥²¡¼¥È¥¦¥§¥¤¥µ¥Ý¡¼¥ÈÄɲÃ(experimental)
297 -- ethna add-action-xmlrpc [action]¤ÇXMLRPC¥á¥½¥Ã¥É¤òÄɲòÄǽ
298 -- °ú¿ô1¤Ä¤È¥Õ¥©¡¼¥àÄêµÁ1¤Ä¤¬ÄêµÁ½ç¤ËÂбþ¤·¤Þ¤¹
299 -- ToDo
300 --- ½ÐÎϥХåե¡¥Á¥§¥Ã¥¯
301 --- method not found¤Ê¤É¥¨¥é¡¼½èÍýÂбþ
302 - Ethna_ActionForm¥¯¥é¥¹¤Î¥³¥ó¥¹¥È¥é¥¯¥¿¤ÇsetFormVars()¤ò¼Â¹Ô¤·¤Ê¤¤¤è¤¦¤ËÊѹ¹
303 - ¥¹¥±¥ë¥È¥ó¤Ë´Þ¤Þ¤ì¤ë'your name'¤ò¥Þ¥¯¥í({$author})¤ËÊѹ¹(~/.ethnaÂбþ)
304 - ¤Ê¤²¤ä¤êÊØÍø´Ø¿ôfile_exists_ex(), is_absolute_path()¤òÄɲÃ
305 - SimpleTest¤È¤ÎÏ¢·Èµ¡Ç½¤òÄɲÃ(ethna¥³¥Þ¥ó¥É¤Ëadd-action-test,add-view-test¤ÎÄɲäʤÉ)
306 -- SimpleTest¤Î¥¤¥ó¥¹¥È¡¼¥ë¥Á¥§¥Ã¥¯¤òÄɲÃ
307 - package.xmlÀ¸À®¥¹¥¯¥ê¥×¥È²þÁ±(ethna¥³¥Þ¥ó¥É¥¤¥ó¥¹¥È¡¼¥ëÂбþ¤Ê¤É)
308 - Haste_ADOdb, Haste_Creole¥Þ¡¼¥¸(from Haste Project by halt¤µ¤ó)
309 - Ethna_AppObject¥¯¥é¥¹¤Î¥Æ¡¼¥Ö¥ë/¥×¥í¥Ñ¥Æ¥£ÄêµÁ¼«Æ°À¸À®¥µ¥Ý¡¼¥ÈÄɲÃ(from generate_app_object originally by °æ¾å¤µ¤ó+halt¤µ¤ó)
310 - Ethna_Controller::getAppdir()¥á¥½¥Ã¥É¤òÄɲÃ
311 - Ethna_Controller::getDBType()¤Î°ú¿ô¤¬null¤À¤Ã¤¿¾ì¹ç¤ËÄêµÁ°ìÍ÷¤òÊÖ¤¹¤è¤¦¤ËÊѹ¹
312 - ethna¥³¥Þ¥ó¥É¥é¥¤¥ó¥Ï¥ó¥É¥é¤òÄɲÃ(+¥Ï¥ó¥É¥é¤òpluggable¤Ë+add-view¤Ç¥Æ¥ó¥×¥ì¡¼¥ÈÀ¸À®¥µ¥Ý¡¼¥È)¡Ýplease cp bin/ethna to /usr/local/bin or somewhere
313  generate_project_skelton.php -> ethna add-project
314  generate_action_script.php   -> ethna add-action
315  generate_view_script.php     -> ethna add-view
316  generate_app_object.php      -> ethna add-app-object
317 - [breaking B.C.] client_type¤òÇѻߠ-> gatewayÄɲÃ
318 -- CLIENT_TYPEÄê¿ôÇÑ»ß
319 -- Ethna_Controller::getClientType(), Ethna_Controller::setClientType()ÇÑ»ß
320 -- Ethna_Controller::setCLI()/Ethna_Controller::getCLI() -> obsolete
321 -- GATEWAYÄê¿ôÄɲÃ(GATEWAY_WWW, GATEWAY_CLI, GATEWAY_XMLRPC, GATEWAY_SOAP)
322 -- Ethna_Controller::setGateway()/Ethna_Controller::getGateway()ÄɲÃ
323 -- ºî¤ê¤«¤±¤ÎAMF¥²¡¼¥È¥¦¥§¥¤¥µ¥Ý¡¼¥È¤ò(°ìö)ÇÑ»ß
324 - Ethna_SkeltonGenerator::_checkAppId()¤òEthna_Controller::checkAppId()¤Ë°ÜÆ°
325 - generate_app_object¤òÄɲÃ
326 - ¥¯¥é¥¹¤Î¥á¥½¥Ã¥É¤âSmartyFunction¤È¤·¤ÆÅÐÏ¿¤Ç¤­¤ë¤è¤¦¤Ë½¤Àµ
327
328 *** bug fixes
329
330 - [[#8435>http://sourceforge.jp/tracker/index.php?func=detail&aid=8435&group_id=1343&atid=5092]](Ethna_AppObject prop_def[]['seq']¤¬Ì¤ÀßÄê)
331 - [[#8079>http://sourceforge.jp/tracker/index.php?func=detail&aid=8079&group_id=1343&atid=5092]](Filter¤ÇBackend¤ò¸Æ¤Ö¤ÈActionForm¤ÎÃͤ¬¶õ¤Ë¤Ê¤ë)
332 - [[#8200>http://sourceforge.jp/tracker/index.php?func=detail&aid=8200&group_id=1343&atid=5092]](PHP5.1.0°Ê¹ß¤Çaf¤Îvalidate()¤ÇÆüÉÕ¥Á¥§¥Ã¥¯¤¬¸ú¤«¤Ê¤¤)
333 - [[#8179>http://sourceforge.jp/tracker/index.php?func=detail&aid=8179&group_id=1343&atid=5092]](getManager¤ÎÌá¤êÃͤ¬»²¾ÈÅϤ·¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤)
334 - [[#8400>http://sourceforge.jp/tracker/index.php?func=detail&aid=8400&group_id=1343&atid=5092]](AppObject prop_def[]['form_name']¤¬NULL)
335 - [[#7751>http://sourceforge.jp/tracker/index.php?func=detail&aid=7751&group_id=1343&atid=5092]](SAFE_MODE¤Çmail´Ø¿ô¤ÎÂ裵°ú¿ô¤¬¤¢¤ë¤ÈWaning)¤ò½¤Àµ
336 - [[#8496>http://sourceforge.jp/tracker/index.php?func=detail&aid=8496&group_id=1343&atid=5092]](Ethna_AppObject.phpÆâ¤Îtypo)¤ò½¤Àµ
337 - [[#8387>http://sourceforge.jp/tracker/index.php?func=detail&aid=8387&group_id=1343&atid=5092]](checkMailaddress¤ächeckURL¤ÇNotice)¤ò½¤Àµ
338 - [[#8130>http://sourceforge.jp/tracker/index.php?func=detail&aid=8130&group_id=1343&atid=5092]](Notice¤Ä¤Ö¤·)¤ò½¤Àµ
339 - typo fixed (aleady -> already)
340 - [[#7717>http://sourceforge.jp/tracker/index.php?func=detail&aid=7717&group_id=1343&atid=5092]](Ethna_AppObject::add()¤ÇNotice)¤ò½¤Àµ
341 - [[#7664>http://sourceforge.jp/tracker/index.php?func=detail&aid=7664&group_id=1343&atid=5092]](Ethna_AppObject¤Î¥Ð¥°)¤ò½¤Àµ
342 - [[#7729>http://sourceforge.jp/tracker/index.php?func=detail&aid=7729&group_id=1343&atid=5092]](ethna_info¤¬Firefox¤À¤È¤º¤ì¤ë)¤ò½¤Àµ
343
344 - (within beta) ethna_handle.php¤¬ÌµÍѤËob_end_clean()¤¹¤ëÌäÂê¤ò½¤Àµ
345 - (within beta) ethna add-view¤Ç¥×¥í¥¸¥§¥¯¥È¥Ç¥£¥ì¥¯¥È¥ê¤ò»ØÄꤷ¤¿¾ì¹ç¤ËÀµ¤·¤¯¥Õ¥¡¥¤¥ë¤¬À¸À®¤µ¤ì¤Ê¤¤ÌäÂê¤ò½¤Àµ
346 - (within beta) WindowsÈǤÎethna¥³¥Þ¥ó¥É¤¬¥Ñ¥Ã¥±¡¼¥¸¤«¤é¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¾ì¹ç¼Â¹Ô¤Ç¤­¤Ê¤¤ÌäÂê¤ò½¤Àµ
347 - (within beta) ActionForm¤ÎÇÛÎó¤Î¥Õ¥©¡¼¥àÃͤ¬Ç˲õ¤µ¤ì¤ëÌäÂê¤ò½¤Àµ(by sfio¤µ¤ó)
348
349
350 ** [2006/01/29] 0.2.0
351
352 *** features
353
354 - Ê¸»úÎó¤Îmin/max¥¨¥é¡¼¤Î¥Ç¥Õ¥©¥ë¥È¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò½¤Àµ
355 - ¥Õ¥©¡¼¥àÃÍÄêµÁ¤Ë¥«¥¹¥¿¥à¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òÄêµÁ¤Ç¤­¤ë¤è¤¦¤ËÊѹ¹
356 - Ethna_Controller::main_CLI()¥á¥½¥Ã¥É¤Ë¥Õ¥£¥ë¥¿¤ò̵¸ú²½¤µ¤»¤ë¥ª¥×¥·¥ç¥ó¤òÄɲÃ
357 - Ethna_ActionForm¥¯¥é¥¹¤Î¥Õ¥©¡¼¥àÃÍÄêµÁ¤ò¥À¥¤¥Ê¥ß¥Ã¥¯¤ËÊѹ¹½ÐÍè¤ë¤è¤¦¤Ë½¤Àµ
358 - Ethna_ActionForm¥¯¥é¥¹¤Î¥Õ¥©¡¼¥àÃÍÄêµÁ¤Ë¥Æ¥ó¥×¥ì¡¼¥Èµ¡Ç½¤òÄɲÃ
359 - Ethna_Backend::getActionClasss()¥á¥½¥Ã¥É¤ÎÄɲÃ(¼Â¹ÔÃæ¤Î¥¢¥¯¥·¥ç¥ó¥¯¥é¥¹¤ò¼èÆÀ)
360 - ~/.ethna¥Õ¥¡¥¤¥ë¤Ë¤è¤ë¥æ¡¼¥¶ÄêµÁ¥¹¥±¥ë¥È¥ó¥Þ¥¯¥í¤ÎÄɲÃ
361 - smarty_function_select¤Ë$empty°ú¿ô¤òÄɲÃ
362 - mb_*¤ÎÊÑ´¹¸µ¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ò¡¢EUC-JP¸ÇÄ꤫¤éÆâÉô¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ËÊѹ¹
363 - Ethna_Backend::begin()¡¢Ethna_Backend::commit()¡¢Ethna_Backend::rollback()¤òÇÑ»ß
364 - Ethna_Controller::getDB()¤òEthna_Controller::getDBType()¤ËÊѹ¹
365 - Ethna_DB¥¯¥é¥¹¤òÃê¾Ý¥¯¥é¥¹(°·¤¤)¤È¤·¤Æ¿·¤¿¤ËEthna_DB¥¯¥é¥¹¤ò¼ÂÁõ¤·¤¿Ethna_DB_PEAR¥¯¥é¥¹¤òÄɲÃ
366 - Ethna_LogWriter¥¯¥é¥¹¤òÃê¾Ý¥¯¥é¥¹(°·¤¤)¤È¤·¤Æ¿·¤¿¤ËEthna_LogWriter¥¯¥é¥¹¤ò¼ÂÁõ¤·¤¿Ethna_LogWriter_Echo¡¢Ethna_LogWriter_File¡¢Ethna_LogWriter_Syslog¥¯¥é¥¹¤òÄɲÃ
367 - log_facility¤¬null¤Î¾ì¹ç¤Î¥í¥°½ÐÎÏ¥¯¥é¥¹¤òEthna_LogWriter_Echo¤«¤éEthna_LogWriter¤ËÊѹ¹(¥í¥°½ÐÎϤʤ·)
368 - log_facility¤Ë¥¯¥é¥¹Ì¾¤ò½ñ¤¤¤¿¾ì¹ç¤Ï¤½¤Î¥¯¥é¥¹¤ò¥í¥°½ÐÎÏ¥¯¥é¥¹¤È¤·¤ÆÍøÍѤ¹¤ë¤è¤¦¤ËÊѹ¹
369 - Ethna_Filter::preFilter()¡¢Ethna_Filter::postFilter()¤¬Ethna_Error¥ª¥Ö¥¸¥§¥¯¥È¤òÊÖ¤·¤¿¾ì¹ç¤Ï¼Â¹Ô¤òÃæ»ß¤¹¤ë¤è¤¦¤ËÊѹ¹
370 - Ethna_InfoManager¤ÎÀßÄêɽ¼¨¹àÌܤòÄɲÃ
371 - Ethna_ActionForm::isForceValidatePlus()¡¢Ethna_ActionForm::setForceValidatePlus()¥á¥½¥Ã¥É¤È¡¢$force_validate_plus¥á¥ó¥Ð¤òÄɲÃ($force_validate_plus¤òtrue¤ËÀßÄꤹ¤ë¤È¡¢Ä̾︡¾Ú¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ç¤â_validatePlus()¥á¥½¥Ã¥É¤¬¼Â¹Ô¤µ¤ì¤ë¡Ý¥Ç¥Õ¥©¥ë¥È:false)
372 - ¥Õ¥©¡¼¥àÃÍÄêµÁ¤Îcustom°À­¤Ë¥«¥ó¥Þ¶èÀÚ¤ê¤Ç¤ÎÊ£¿ô¥á¥½¥Ã¥É¥µ¥Ý¡¼¥È¤òÄɲÃ
373
374 *** bug fixes
375
376 - htmlspecialchars¤ËENT_QUOTES¥ª¥×¥·¥ç¥ó¤òÄɲÃ
377 - Ethna_AppSQL¥¯¥é¥¹¤Î¥³¥ó¥¹¥È¥é¥¯¥¿¥á¥½¥Ã¥É̾¤ò½¤Àµ
378 - [[#7659>http://sourceforge.jp/tracker/index.php?func=detail&aid=7659&group_id=1343&atid=5092]](Ethna_Config.php¤ÇNotice¥¨¥é¡¼)¤ò½¤Àµ
379 - Ethna_SOAP_ActionForm.php¤Îtypo¤ò½¤Àµ
380 - [[#6616>http://sourceforge.jp/tracker/index.php?func=detail&aid=6616&group_id=1343&atid=5092]](¥»¥Ã¥·¥ç¥ó¤ËObject¤ò³ÊǼ¤Ç¤­¤Ê¤¤)¤ò½¤Àµ
381 - [[#7640>https://sourceforge.jp/tracker/index.php?func=detail&aid=7640&group_id=1343&atid=5092]](µ¡¼ï°Í¸ʸ»ú¤Î¥Á¥§¥Ã¥¯¤Ç¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Ê¤¤¡£)¤ò½¤Àµ
382 - [[#6566>https://sourceforge.jp/tracker/index.php?func=detail&aid=6566&group_id=1343&atid=5092]](skel.action.php¤Î¥µ¥ó¥×¥ë¤Çtypo)¤ò½¤Àµ
383 - [[#7451>https://sourceforge.jp/tracker/index.php?func=detail&aid=7451&group_id=1343&atid=5092]](PHP 5.0.5Âбþ)¤ò½¤Àµ
384 - .museumÂбþ
385 - Ethna_Backend¥¯¥é¥¹¤Î¥¯¥é¥¹¥á¥ó¥Ð¿½ÅÄêµÁ¤ò½¤Àµ
386 - BASEÄê¿ô¤Î±Æ¶Á¤Ç¥³¥ó¥È¥í¡¼¥é¤Î·Ñ¾µ¤¬º¤Æñ¤ÊÌäÂê¤ò½¤Àµ
387 - Windows´Ä¶­¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤LOG_LOCALÄê¿ô¤òɾ²Á¤·¤Æ¤·¤Þ¤¦ÌäÂê¤ò½¤Àµ
388 - [[#6423>http://sourceforge.jp/tracker/index.php?func=detail&aid=6423&group_id=1343&atid=5092]](php-4.4.0¤ÇÂçÎ̤Υ¨¥é¡¼¤Î¸å¡¢Segv(11))¤ò½¤Àµ(patch by ramsy¤µ¤ó)
389 - [[#6074>http://sourceforge.jp/tracker/index.php?func=detail&aid=6074&group_id=1343&atid=5092]](generate_project_skelton.php¤ÎÆ°ºî°Û¾ï)¤ò½¤Àµ
390 - safe_mode=on¤Î¾ì¹ç¤Ëuid/gid warning¤¬È¯À¸¤¹¤ë(²ÄǽÀ­¤Î¤¢¤ë)ÌäÂê¤ò½¤Àµ
391 - ÉÔÍפʻ²¾ÈÅϤ·¤òºï½ü
392 - ¤½¤Î¾ºÙ¤«¤Ê½¤Àµ(elseif -> else ifÅù)
393 - PATH_SEPARATOR/DIRECTORY_SEPARATOR¤¬Ì¤ÄêµÁ¤Î¾ì¹ç(PHP 4.1.xÅù)¤ÎÌäÂê¤ò½¤Àµ
394 - smarty_modifier_wordwrap_i18n()¤Î²þ¹ÔÂбþ
395 - ¥æ¡¼¥¶ÄêµÁ¥Õ¥©¡¼¥à¸¡¾Ú¥á¥½¥Ã¥É¤¬¸Æ¤Ó½Ð¤µ¤ì¤Ê¤¤(¤³¤È¤¬¤¢¤ë)ÌäÂê¤ò½¤Àµ
396 - ¥Þ¥ë¥Á¥«¥é¥à¥×¥é¥¤¥Þ¥ê¥­¡¼ÍøÍÑ»þ¤Ë¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀµÅöÀ­¤¬Àµ¤·¤¯È½Ê̤Ǥ­¤Ê¤¤ÌäÂê¤ò½¤Àµ
397 - Ethna_AppObject¤ÎJOIN¸¡º÷¤¬SQL¥¨¥é¡¼¤Ë¤Ê¤ë¡Ê¤³¤È¤¬¤¢¤ë¡ËÌäÂê¤ò½¤Àµ
398 - ¥»¥Ã¥·¥ç¥ó¤òÉüµ¢¤µ¤»¤ë¥¿¥¤¥ß¥ó¥°¤òÃÙ±ä(̵¸Â¥ë¡¼¥×¤¹¤ëÌäÂê¤ò½¤Àµ)
399 - Ethna_MalSender¤«¤émail()´Ø¿ô¤Ë¥ª¥×¥·¥ç¥ó¤òÅϤ»¤ë¤è¤¦¤Ë½¤Àµ
400 - Ethna_View_List::_fixNameObject¤ËÂоݥª¥Ö¥¸¥§¥¯¥È¤âÅϤ¹¤è¤¦¤Ë½¤Àµ
401
402
403 ** [2005/03/02] 0.1.5
404
405 *** features
406
407 - Ethna_Controller::getCLI()(CLI¤Ç¼Â¹ÔÃ椫¤É¤¦¤«¤òÊÖ¤¹¥á¥½¥Ã¥É)¤òÄɲÃ
408 - ethna_error_handler¤¬php.ini¤ÎÀßÄê¤Ë±þ¤¸¤ÆPHP¥í¥°¤â½ÐÎϤ¹¤ë¤è¤¦¤ËÊѹ¹
409 - Smarty¥×¥é¥°¥¤¥ó(truncate_i18n)¤òÄɲÃ
410 - Ethna_AppObject/Ethna_AppManager¤Ë¥­¥ã¥Ã¥·¥åµ¡¹½¤òÄɲÃ(experimental)
411 - ¥á¡¼¥ë¥Æ¥ó¥×¥ì¡¼¥È¥¨¥ó¥¸¥ó¤Î¥Õ¥Ã¥¯¥á¥½¥Ã¥É¤òÄɲÃ
412 - MIME¥¨¥ó¥³¡¼¥ÉÍѥ桼¥Æ¥£¥ê¥Æ¥£¥á¥½¥Ã¥É¤òÄɲÃ
413 - include_path¤Î¥»¥Ñ¥ì¡¼¥¿¤Îwin32Âбþ
414
415 *** bug fixes
416
417 - ethna_error_handler¤Îtypo¤ò½¤Àµ
418 - Ethna_Session¥¯¥é¥¹¤Ç¥í¥°¤¬Àµ¤·¤¯½ÐÎϤµ¤ì¤Ê¤¤ÌäÂê¤ò½¤Àµ
419
420
421 ** [2005/01/14] 0.1.4
422
423 *** features
424
425 - Ethna_AppObject¤ÇJOIN¤·¤¿¾ì¹ç¤Ë¡¢(²Äǽ¤Ê¤é)¥×¥é¥¤¥Þ¥ê¥­¡¼¤ÇGROUP BY¤¹¤ë¤è¤¦¤ËÊѹ¹
426
427 *** bug fixes
428
429 - __ethna_info__¤¬Á´¤¯Æ°ºî¤·¤Ê¤¤ÌäÂê¤ò½¤Àµ:(
430
431
432 ** [2005/01/13] 0.1.3
433
434 *** features
435
436 - Ethna_AppSearchObject¤ÎÊ£¹ç¾ò·ïÂбþ
437 - Ethna_ClassFactory¥¯¥é¥¹¤òÄɲÃ
438 - Ethna_Controller¤Îbackend, i18n, session, action_error¥á¥ó¥Ð¤òÇÑ»ß
439 - Ethna_Controller::getClass()¥á¥½¥Ã¥É¤òÇÑ»ß
440 - Ethna_ActionClass¤Ëauthenticate¥á¥½¥Ã¥É¤òÄɲÃ
441 - preActionFilter/postActionFilter¤òÄɲÃ(experimental)
442 - Ethna_View_List(¥ê¥¹¥Èɽ¼¨Íѥӥ塼´ðÄ쥯¥é¥¹)¤Î¥½¡¼¥ÈÂбþ
443 - ÁȤ߹þ¤ßSmarty´Ø¿ôis_error()¤òÄɲÃ
444 - Ethna_ActionForm::handleError¤ÎÂè2°ú¿ô¤òÇÑ»ß
445 - Ethna_ActionForm::_handleError¤òpublic¥á¥½¥Ã¥É¤ËÊѹ¹(Ethna_ActionForm::handleError¤Ë̾¾ÎÊѹ¹)
446 - Ethna_ActionForm::getDef¥á¥½¥Ã¥É¤Ë°ú¿ô¤òÄɲÃ(¾Êά²Ä)
447
448 *** bug fixes
449
450 - ¥Õ¥©¡¼¥àÄêµÁ¤ËÇÛÎó¤ò»ØÄꤷ¤Æ¤¤¤¿¾ì¹ç¤Î¥«¥¹¥¿¥à¥Á¥§¥Ã¥¯¥á¥½¥Ã¥É¤Î¸Æ¤Ó½Ð¤·¤¬Àµ¤·¤¯¹Ô¤ï¤ì¤Ê¤¤ÌäÂê¤ò½¤Àµ
451 - ¥Õ¥©¡¼¥àÄêµÁ¤ËÇÛÎó¤ò»ØÄꤷ¤Æ¤¤¤¿¾ì¹ç¤Îɬ¿Ü¥Á¥§¥Ã¥¯¤¬Àµ¤·¤¯¹Ô¤ï¤ì¤Ê¤¤ÌäÂê¤ò½¤Àµ
452 - __ethna_info__¤¬¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ËÄêµÁ¤µ¤ì¤¿¥¢¥¯¥·¥ç¥ó¤òÀµ¤·¤¯¼èÆÀ¤Ç¤­¤Ê¤¤ÌäÂê¤ò½¤Àµ
453 - VAR_TYPE_FILE¤Î¾ì¹ç¤Ïregexp°À­¤¬Ìµ¸ú¤Ë¤Ê¤ë¤è¤¦¤Ë½¤Àµ
454
455
456 ** [2004/12/23] 0.1.2
457
458 *** features
459
460 - __ethna_info__¥¢¥¯¥·¥ç¥ó¤òÄɲÃ
461 - class_path, form_path, view_path°À­¤Î¥Õ¥ë¥Ñ¥¹»ØÄꥵ¥Ý¡¼¥È¤òÄɲÃ
462 - ¥¹¥¯¥ê¥×¥È¤ò1¥Õ¥¡¥¤¥ë¤Ë¤Þ¤È¤á¤ë¥Ä¡¼¥ë(bin/unify_script.php)¤òÄɲÃ
463
464 *** bug fixes
465
466 - ¥×¥í¥¸¥§¥¯¥È¥¹¥±¥ë¥È¥óÀ¸À®»þ¤Ë¥¢¥×¥ê¥±¡¼¥·¥ç¥óID¤Îʸ»ú¼ï/ͽÌó¸ì¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤è¤¦¤Ë½¤Àµ
467 - 'form_name'¤ò»ØÄꤹ¤ë¤È̵ÍѤ˷ٹð¤¬È¯À¸¤¹¤ëÌäÂê¤ò½¤Àµ
468 - ÀäÂХѥ¹È½Äê¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à°Í¸¤ò½¤Àµ(WindowsÂбþ²þÁ±)
469 - VAR_TYPE_INT¤ÈVAR_TYPE_FLOAT¤ÎÄêµÁÃͤ¬½ÅÊ£¤·¤Æ¤¤¤¿ÌäÂê¤ò½¤Àµ
470 - SOAP/Mobile(AU)¤Ç¥¢¥¯¥·¥ç¥ó¥¹¥¯¥ê¥×¥È¤Î¥Ñ¥¹¤¬Àµ¤·¤¯¼èÆÀ¤Ç¤­¤Ê¤¤ÌäÂê¤ò½¤Àµ
471 - Ethna_Util::getRandom()¤Çmt_srand()¤·¤Ä¤Ärand()¤ò¸Æ¤ó¤Ç¤¤¤¿²Õ½ê¤òmt_rand()¤ò¸Æ¤Ó½Ð¤¹¤è¤¦¤Ë½¤Àµ
472 - CHANGES¤Î¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°½¤Àµ(ISO-2022-JP -> EUC-JP)
473 - ¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤¬È¯¹Ô¤¹¤ëSQLʸ¤Ë°ìÉô»Ä¤Ã¤Æ¤¤¤¿¥»¥ß¥³¥í¥ó¤òºï½ü
474 - ¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È(index.php)¤Ëµ­½Ò¤µ¤ì¤¿¥Ç¥Õ¥©¥ë¥È¥¢¥¯¥·¥ç¥ó̾¤Î1Í×ÁÇÌܤ˥¢¥¹¥¿¥ê¥¹¥¯¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¤È¡¢Àµ¤·¤¯Æ°ºî¤·¤Ê¤¤(¤«¤â¤·¤ì¤Ê¤¤)ÌäÂê¤ò½¤Àµ~
475 Îã(¤³¤ó¤Ê¾ì¹ç):
476  <?php
477  include_once('../../app/Sample_Controller.php');
478  Sample_Controller::Main('Sample_Controller', array(
479   'login*',
480  ));
481  ?>
482
483
484 ** [2004/12/10] 0.1.1
485
486 *** bug fixes
487
488 - ¥Ó¥å¡¼¥ª¥Ö¥¸¥§¥¯¥È¤Îpreforward()¤¬¸Æ¤Ð¤ì¤Ê¤¤¤³¤È¤¬¤¢¤ëÌäÂê¤ò½¤Àµ
489 - ¥¢¥¯¥·¥ç¥ó/¥Ó¥å¡¼¤Î¥¹¥±¥ë¥È¥óÀ¸À®»þ¤Ë¥Õ¥¡¥¤¥ë¤ò¾å½ñ¤­¤·¤Ê¤¤¤è¤¦¤Ë½¤Àµ
490 - ¥Ó¥å¡¼¤Î¥¹¥±¥ë¥È¥ó¤Ç¥¯¥é¥¹Ì¾¤¬Àµ¤·¤¯ÃÖ´¹¤µ¤ì¤Ê¤¤ÌäÂê¤ò½¤Àµ
491
492 ** [2004/12/09] 0.1.0
493
494 - ½é´ü¥ê¥ê¡¼¥¹
495