[limb-svn] r7085 - in 3.x/trunk/limb/validation: src tests/cases
svn at limb-project.com
svn at limb-project.com
Mon Jun 30 09:12:28 MSD 2008
Author: conf
Date: 2008-06-30 09:12:28 +0400 (Mon, 30 Jun 2008)
New Revision: 7085
URL: http://fisheye.limb-project.com/changelog/limb/?cs=7085
Modified:
3.x/trunk/limb/validation/src/lmbErrorList.class.php
3.x/trunk/limb/validation/src/lmbErrorMessage.class.php
3.x/trunk/limb/validation/tests/cases/lmbErrorListTest.class.php
Log:
-- added function renameFields to lmbErrorList and lmbErrorMessage for dynamic renaming fields
Modified: 3.x/trunk/limb/validation/src/lmbErrorList.class.php
===================================================================
--- 3.x/trunk/limb/validation/src/lmbErrorList.class.php 2008-06-27 07:17:32 UTC (rev 7084)
+++ 3.x/trunk/limb/validation/src/lmbErrorList.class.php 2008-06-30 05:12:28 UTC (rev 7085)
@@ -61,5 +61,14 @@
$result[] = $error->getReadable();
return $result;
- }
-}
\ No newline at end of file
+ }
+
+ function renameFields($new_field_names)
+ {
+ foreach($this as $key => $message)
+ {
+ $message->renameFields($new_field_names);
+ $this[$key] = $message;
+ }
+ }
+}
Modified: 3.x/trunk/limb/validation/src/lmbErrorMessage.class.php
===================================================================
--- 3.x/trunk/limb/validation/src/lmbErrorMessage.class.php 2008-06-27 07:17:32 UTC (rev 7084)
+++ 3.x/trunk/limb/validation/src/lmbErrorMessage.class.php 2008-06-30 05:12:28 UTC (rev 7085)
@@ -35,6 +35,18 @@
return $text;
}
+ function renameFields($new_field_names)
+ {
+
+ if(!is_array($new_field_names))
+ {
+ return;
+ }
+
+ $new_fields = str_replace(array_keys($new_field_names), $new_field_names, $this->getFields());
+ $this->setFields($new_fields);
+ }
+
function __toString()
{
return $this->getReadable();
Modified: 3.x/trunk/limb/validation/tests/cases/lmbErrorListTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/lmbErrorListTest.class.php 2008-06-27 07:17:32 UTC (rev 7084)
+++ 3.x/trunk/limb/validation/tests/cases/lmbErrorListTest.class.php 2008-06-30 05:12:28 UTC (rev 7085)
@@ -26,5 +26,30 @@
$this->assertEqual($errors[0]['fields'], array('foo'));
$this->assertEqual($errors[0]['values'], array('FOO'));
}
+
+ function testRenameFields()
+ {
+ $list = new lmbErrorList();
+
+ $list->addError($message = '{Field_1} is field and {Field_2} also is a field',
+ array('Field_1' => 'login', 'Field_2' => 'password'));
+ $list->addError($message = "The greatest {Field_1}'s story is '{Field_2} and {Field_3}'",
+ array('Field_1' => 'that man', 'Field_2' => 'that guy', 'Field_3' => 'that girl'));
+
+ $new_field_names = array(
+ 'login' => 'custom_login',
+ 'password' => 'custom_password',
+ 'that man' => 'Shakespeare',
+ 'that guy' => 'Romeo',
+ 'that girl' => 'Juliet'
+ );
+
+ $list->renameFields($new_field_names);
+
+ $errors = $list->export();
+
+ $this->assertEqual($errors[0]['fields'], array('Field_1' => 'custom_login', 'Field_2' => 'custom_password'));
+ $this->assertEqual($errors[1]['fields'], array('Field_1' => 'Shakespeare', 'Field_2' => 'Romeo', 'Field_3' => 'Juliet'));
+ }
+
}
-
More information about the limb-svn
mailing list