Fix ticket #2181: Can't save #000000 (black) in color fields on design page

It seems to have actually been saving correctly, but the update of the colors on the form success page wasn't working properly.
When a design object is pulled out of the database, the numeric fields are read in as strings, so black comes back as "0".
But, when we populate the new object and then stick it live, we've populated it with actual integers; with memcache on these might live for a while in the cache...

The fallback code in Design::toWebColor() did a check ($color == null) which would be false for the string "0", but counts as true for the *integer* 0.
Thus, the display code would initially interpret the correctly-saved black color as "use default".

Changing the check to === against null and "" empty string avoids the false positive on integers, and lets us see our nice black text immediately after save.
This commit is contained in:
Brion Vibber 2011-01-04 13:09:44 -08:00
parent 6e894c010f
commit af1cbc6fe3

View File

@ -107,7 +107,7 @@ class Design extends Memcached_DataObject
static function toWebColor($color) static function toWebColor($color)
{ {
if ($color == null) { if ($color === null || $color === '') {
return null; return null;
} }