[Tickets #14130] Re: monthdayyear form element not saved in DB

noreply at bugs.horde.org noreply at bugs.horde.org
Thu Oct 8 08:59:59 UTC 2015


BITTE NICHT AUF DIESE NACHRICHT ANTWORTEN. NACHRICHTEN AN DIESE  
E-MAIL-ADRESSE WERDEN NICHT GELESEN.

Ticket-URL: https://bugs.horde.org/ticket/14130
------------------------------------------------------------------------------
  Ticket           | 14130
  Aktualisiert Von | birnbacs at gmail.com <birnbacs at gmail.com>
  Zusammenfassung  | monthdayyear form element not saved in DB
  Warteschlange    | Horde Framework Packages
  Typ              | Bug
  Status           | Unconfirmed
  Priorität        | 2. Medium
  Milestone        |
  Patch            | 1
  Zuständige       |
------------------------------------------------------------------------------


birnbacs at gmail.com (2015-10-08 08:41) hat geschrieben:

I created a ticket type in whups that uses a custom field of type  
monthdayyear but it wouldn't work, i.e. no matter what I entered the  
values were not written into the backend.

I tracked down the bug to the Form module of pear. In Form/Type.php  
the monthdayyear object has a method called _validateAndFormat(). It  
appears that the comparison in line 3021 of $this->_format_in with  
null is using the wrong operator (===). I changed it to == and the  
parameter gets saved to (and retrieved from) the database.

Here is the method in question (fixed version):

    /**
      * Validate/format a date submission.
      */
     function _validateAndFormat($value, &$var)
     {
         /* If any component is empty consider it a bad date and return the
          * default. */
         if ($this->emptyDateArray($value) == 1) {
             return $var->getDefault();
         } else {
             $date = $this->getDateOb($value);
             if ($this->_format_in == null) { // line 3021, changed  
comparison operator from === to ==
                 return $date->timestamp();
             } else {
                 return $date->strftime($this->_format_in);
             }
         }
     }





More information about the bugs mailing list