[limb-svn] r6564 - in 3.x/trunk/limb/macro: src/tags/form tests/cases/tags/form

svn at limb-project.com svn at limb-project.com
Mon Dec 3 15:26:21 MSK 2007


Author: serega
Date: 2007-12-03 15:26:21 +0300 (Mon, 03 Dec 2007)
New Revision: 6564
URL: http://fisheye.limb-project.com/changelog/limb/?cs=6564

Modified:
   3.x/trunk/limb/macro/src/tags/form/form.tag.php
   3.x/trunk/limb/macro/tests/cases/tags/form/lmbMacroFormTagTest.class.php
Log:
-- {{form}} now takes datasource from some particular variable if it defined in template

Modified: 3.x/trunk/limb/macro/src/tags/form/form.tag.php
===================================================================
--- 3.x/trunk/limb/macro/src/tags/form/form.tag.php	2007-12-03 12:22:22 UTC (rev 6563)
+++ 3.x/trunk/limb/macro/src/tags/form/form.tag.php	2007-12-03 12:26:21 UTC (rev 6564)
@@ -32,9 +32,13 @@
       $code->writePHP("{$form}->setDatasource({$from});\n");
       $this->remove('from');
     }
+
+    $datasource_id = $form . '_datasource';
+    // передача установленного в шаблон списка ошибок формы
+    $code->writePHP("if(isset({$datasource_id})){$form}->setDatasource({$datasource_id});\n");
     
+    // передача установленного в шаблон списка ошибок формы
     $error_list_id = $form . '_error_list';
-    // передача установленного в шаблон списка ошибок формы
     $code->writePHP("if(isset({$error_list_id})){$form}->setErrorList({$error_list_id});\n");
     
     parent :: _generateBeforeOpeningTag($code);

Modified: 3.x/trunk/limb/macro/tests/cases/tags/form/lmbMacroFormTagTest.class.php
===================================================================
--- 3.x/trunk/limb/macro/tests/cases/tags/form/lmbMacroFormTagTest.class.php	2007-12-03 12:22:22 UTC (rev 6563)
+++ 3.x/trunk/limb/macro/tests/cases/tags/form/lmbMacroFormTagTest.class.php	2007-12-03 12:26:21 UTC (rev 6564)
@@ -50,7 +50,23 @@
  
     $out = $page->render();
     $this->assertEqual($out, '<form name="my_form">1111</form>');
-  }  
+  }
+
+  function testFormTakesDatasourceFromTemplateVariable()
+  {
+    $template = '{{form name="my_form"}}'.
+                '<?php $ds = $this->form_my_form->getDatasource(); '.
+                'if(isset($ds["value"])) echo $ds["value"];'.
+                '?>'.
+                '{{/form}}';
+
+    $page = $this->_createMacroTemplate($template, 'tpl.html');
+    
+    $page->set('form_my_form_datasource', array("value" => 1111));
+ 
+    $out = $page->render();
+    $this->assertEqual($out, '<form name="my_form">1111</form>');
+  }
   
   function testFormTakesDatasourceByFromAttribute()
   {



More information about the limb-svn mailing list