OSDN Git Service

- fixed bug could not set "name" attribute of form tag. (thanks: shutta) 2.5.0p6
authorYoshinari Takaoka <mumumu@mumumu.org>
Mon, 5 Oct 2009 22:29:33 +0000 (07:29 +0900)
committerYoshinari Takaoka <mumumu@mumumu.org>
Mon, 5 Oct 2009 22:29:33 +0000 (07:29 +0900)
CHANGES
class/Plugin/Smarty/block.form.php
test/Ethna_ViewClass_FormHelper_Test.php
test/skel/template/skel.template.blockform.tpl [new file with mode: 0644]

diff --git a/CHANGES b/CHANGES
index c5aa291..5b7fb97 100644 (file)
--- a/CHANGES
+++ b/CHANGES
 - Ethna_Plugin::includePlugin メソッドの実装が動作するものではなかったので変更
 - Ethna_Plugin_Cachemanager のクラスのプロパティに指定する $namespace が意味をなしていなかったので修正 (#17753)
 - PROJECT_DIR/lib/Ethna/extlib 以下にファイルを設置するタイプのプラグインを pear-local などでインストールすると、それ以後
-  ethnaコマンドが使えなくな問題を修正
+  ethnaコマンドが使えなくな問題を修正
 - 新しいプラグインの命名規則に従っていない古いプラグインを別物として読み込もうとしてクラス名がかぶる問題を修正(#17875) thanks: id:okonomi
 - 存在しない(or 削除された) ethnaコマンドを指定すると Fatal Error が起きるバグを修正 (thanks:kondo_)
 -- http://sourceforge.jp/ticket/browse.php?group_id=1343&tid=17894
 - Ethna_Plugin_Logwriter の debug_backtrace の一部が取得できず、E_NOTICE が出るバグを修正 (thanks: http://www.remix.gr.jp/)
 - cli 環境で Ethna_Session::start を叩いたときに $_SERVER 変数がないために E_NOTICE が出る問題を修正
 - Smartyのデリミタを変更している場合にi18nコマンドが機能しないバグを修正 (#18668)
+- formタグのname属性が設定できなくなっていたバグを修正 (thanks: shutta) (#19037)
 
 ** 2.5.0-preview5
 
index b3ae1b4..61dd165 100644 (file)
@@ -64,8 +64,10 @@ function smarty_block_form($params, $content, &$smarty, &$repeat)
         //  {form name=... }
         //  指定された場合は、submitされた {form}を識別する
         //  id をhiddenタグで指定する
+        //
+        //  $params['name'] は formタグのnameタグになるため
+        //  unset してはいけない
         $name = $params['name'];
-        unset($params['name']);
         if ($name != 'default') {
             $name_hidden = sprintf('<input type="hidden" name="ethna_fid" value="%s" />',
                                    htmlspecialchars($name, ENT_QUOTES)
index 03aab1b..d93b5be 100644 (file)
@@ -88,5 +88,30 @@ class Ethna_ViewClass_FormHelper_Test extends Ethna_UnitTestBase
         $this->assertPattern('#<textarea name="textarea_setactval">input</textarea>#', $result);
         $this->assertPattern('#<textarea value="foo" name="textarea_settplval">foo</textarea>#', $result);
     }
+
+    function test_formhelper_FormName()
+    {
+        $action_name = $tpl_name = 'formnametest';
+        $action_skel = ETHNA_TEST_SKELDIR . 'skel.action.formhelper.php';
+        $this->project->runCmd('add-action',
+                               array(
+                                   '-s',
+                                   $action_skel,
+                                   $action_name,
+                               )
+        );
+        $tpl_skel = ETHNA_TEST_SKELTPLDIR . 'skel.template.blockform.tpl';
+        $this->project->runCmd('add-template',
+                               array(
+                                   '-s',
+                                   $tpl_skel,
+                                   $tpl_name,
+                               )
+        );
+        $result = $this->project->runMain($action_name, array());
+
+        $this->assertPattern('#<form name="hoge" method="post"><input type="hidden" name="ethna_fid" value="hoge" />#', $result);
+    }
+
 }
 
diff --git a/test/skel/template/skel.template.blockform.tpl b/test/skel/template/skel.template.blockform.tpl
new file mode 100644 (file)
index 0000000..8397049
--- /dev/null
@@ -0,0 +1,3 @@
+{form name="hoge" ethna_action="formnametest"}
+  {form_submit}
+{/form}