AntonLV 5 лет назад
Родитель
Сommit
7adfb9a2b1

+ 12 - 3
modules/boonex/feedback/classes/BxFdbFormQuestion.php

@@ -237,6 +237,7 @@ class BxFdbFormQuestion extends BxTemplStudioFormView
             foreach($aInput['value']['vals'] as $i => $sValue)
                 $sAnswers .= $this->_genAnswerSample($aInput, $iIndex++, array(
                     'value' => $sValue,
+                    'values' => !empty($aInput['values']['vals'][$i]) && is_array($aInput['values']['vals'][$i]) ? $aInput['values']['vals'][$i] : '',
                     'id' => !empty($aInput['value']['ids'][$i]) ? (int)$aInput['value']['ids'][$i] : '',
                     'checked' => isset($aImps[$i]) && $aImps[$i] === true,
                 ));
@@ -259,9 +260,10 @@ class BxFdbFormQuestion extends BxTemplStudioFormView
         if(!empty($aParams['class']))
             $sClass .= ' ' . $aParams['class'];
 
-        $sValue = !empty($aParams['value']) ? $aParams['value'] : '';
+        $mixedValue = !empty($aParams['value']) ? $aParams['value'] : '';
+        $mixedValues = !empty($aParams['values']) ? $aParams['values'] : '';
 
-        $sInputText = $this->genCustomInputAnswersText($aInput, $iIndex, $sValue);
+        $sInputText = $this->genCustomInputAnswersText($aInput, $iIndex, $mixedValue, $mixedValues);
         if(!empty($aParams['id']))
             $sInputText .= $this->genCustomInputAnswersHidden($aInput, $iIndex, $aParams['id']);
 
@@ -273,12 +275,13 @@ class BxFdbFormQuestion extends BxTemplStudioFormView
         ));
     }
 
-    protected function genCustomInputAnswersText($aInput, $iIndex, $mixedValue = '')
+    protected function genCustomInputAnswersText($aInput, $iIndex, $mixedValue = '', $mixedValues = '')
     {
         $aInput['type'] = 'text_translatable';
         $aInput['name'] .= '_' . $iIndex;
         $aInput['caption'] = '';
         $aInput['value'] = $mixedValue;
+        $aInput['values'] = $mixedValues;
         $aInput['db'] = array(
             'pass' => 'Xss'
         );
@@ -355,6 +358,12 @@ class BxFdbFormQuestion extends BxTemplStudioFormView
 
         return $this->genInputButton($aInput);
     }
+
+    protected function _processTranslationsValuesByNameList($sName, $iIndex)
+    {
+        for($i = 0; $i < $iIndex; $i++)
+            $this->aInputs[$sName]['values']['vals'][$i] = $this->_getTranslationsValuesByName($sName . '_' . $i);
+    }
 }
 
 /** @} */

+ 20 - 11
studio/classes/BxDolStudioForm.php

@@ -193,24 +193,33 @@ class BxDolStudioForm extends BxBaseFormView
             if(!in_array($aInput['type'], array('text_translatable', 'textarea_translatable', 'list_translatable')))
                 continue;
 
-            if($aInput['type'] == 'list_translatable') {
-                $iIndex = (int)$this->getCleanValue($sName . '_ind');
-                for($i = 0; $i < $iIndex; $i++)
-                    $this->_processTranslationsValuesByName($sName . '_' . $i);
+            if($aInput['type'] == 'list_translatable')
+                $this->_processTranslationsValuesByNameList($sName, (int)$this->getCleanValue($sName . '_ind'));
+            else 
+                $this->_processTranslationsValuesByName($sName);
+        }
+    }
 
-                continue;
-            }
+    protected function _getTranslationsValuesByName($sName)
+    {
+        $aResults = array();
 
-            $this->_processTranslationsValuesByName($sName);
-        }
+        $aLanguages = BxDolStudioLanguagesUtils::getInstance()->getLanguages();
+        foreach($aLanguages as $sLangName => $sLangTitle)
+            $aResults[$sLangName] = BxDolForm::getSubmittedValue($sName . '-' . $sLangName, $this->aFormAttrs['method']);
+
+        return $aResults;
     }
 
     protected function _processTranslationsValuesByName($sName)
     {
-        $aLanguages = BxDolStudioLanguagesUtils::getInstance()->getLanguages();
+        $this->aInputs[$sName]['values'] = $this->_getTranslationsValuesByName($sName);
+    }
 
-        foreach($aLanguages as $sLangName => $sLangTitle)
-            $this->aInputs[$sName]['values'][$sLangName] = BxDolForm::getSubmittedValue($sName . '-' . $sLangName, $this->aFormAttrs['method']);
+    protected function _processTranslationsValuesByNameList($sName, $iIndex)
+    {
+        for($i = 0; $i < $iIndex; $i++)
+            $this->aInputs[$sName]['values'][$i] = $this->_getTranslationsValuesByName($sName . '_' . $i);
     }
 
     protected function getTranslationsKey($sType, $sName, $sValue)