Explorar o código

#799 Forms: don't display fields with empty values when form is in view mode

Alex Trofimov %!s(int64=9) %!d(string=hai) anos
pai
achega
3808d48a87
Modificáronse 1 ficheiros con 5 adicións e 3 borrados
  1. 5 3
      template/scripts/BxBaseFormView.php

+ 5 - 3
template/scripts/BxBaseFormView.php

@@ -61,7 +61,7 @@ class BxBaseFormView extends BxDolForm
      * Function name for generation open form section HTML.
      */
     protected $_sSectionOpen = 'getOpenSection';
-
+    
     /**
      * Constructor
      *
@@ -318,7 +318,7 @@ EOS;
 
             case 'datepicker':
                 $sValue = null;
-                if(empty($aInput['value']))
+                if (empty($aInput['value']) || !$aInput['value'] || '0000-00-00' == $aInput['value'])
                     break;
 
                 $sValue = BxTemplFunctions::getInstance()->timeForJsFullDate($aInput['value'], isset($aInput['date_format']) ? $aInput['date_format'] : BX_FORMAT_DATE, true);
@@ -327,7 +327,7 @@ EOS;
             case 'date_time':
             case 'datetime':
                 $sValue = null;
-                if(empty($aInput['value']))
+                if(empty($aInput['value']) || !$aInput['value'] || '0000-00-00 00:00:00' == $aInput['value'] || '0000-00-00 00:00' == $aInput['value'])
                     break;
 
                 $sValue = BxTemplFunctions::getInstance()->timeForJsFullDate($aInput['value'], isset($aInput['date_format']) ? $aInput['date_format'] : BX_FORMAT_DATE_TIME, true);
@@ -372,6 +372,8 @@ EOS;
 
     function genViewRowValueForSelect(&$aInput)
     {
+        if (!isset($aInput['value']) || !$aInput['value'])
+            return null;
         $s = isset($aInput['value']) && isset($aInput['values'][$aInput['value']]) ? $aInput['values'][$aInput['value']] : null;
         if (isset($aInput['values_list_name'])  && ($oCategory = BxDolCategory::getObjectInstanceByFormAndList($this->aFormAttrs['name'], $aInput['values_list_name'])))
             return $oCategory->getCategoryLink($s, $aInput['value']);