RomanL 6 лет назад
Родитель
Сommit
834c1a557d

+ 5 - 1
studio/classes/BxDolStudioFormsQuery.php

@@ -66,7 +66,11 @@ class BxDolStudioFormsQuery extends BxDolDb
                 $aMethod['params'][3] = array(
                 	'parent_form' => $aParams['parent_form']
                 );
-                $sWhereClause = "AND `tf`.`parent_form`=:parent_form AND `object` NOT IN (SELECT `value` FROM `sys_form_inputs` sfi WHERE `type`='nested_form' AND `object` = :parent_form)";
+                $sSubQuery = "SELECT `value` FROM `sys_form_inputs` sfi WHERE `type`='nested_form' AND `object` = :parent_form ";
+                if (!@empty($aParams['ids'])){
+                    $sSubQuery = "SELECT `value` FROM `sys_form_inputs` sfi WHERE `type`='nested_form' AND `object` = :parent_form AND `name` NOT IN (SELECT `input_name` FROM `sys_form_display_inputs` WHERE `id` IN(" . $aParams['ids'] . "))";
+                }
+                $sWhereClause = "AND `tf`.`parent_form`=:parent_form AND `object` NOT IN (" . $sSubQuery . ")";
                 break;
              
             case 'all':

+ 4 - 2
studio/template/scripts/BxBaseStudioFormsField.php

@@ -1545,9 +1545,11 @@ class BxBaseStudioFormsFieldNestedForm extends BxBaseStudioFormsField
     public function init()
 	{
 		parent::init();
-       
         $aFormsData = array();
-        $this->oDb->getForms(array('type' => 'nested', 'parent_form' => $this->aParams['object']), $aFormsData, false);
+		$aParams = array('type' => 'nested', 'parent_form' => $this->aParams['object']);
+		if (bx_get('ids'))
+			$aParams['ids'] = implode(',', bx_get('ids'));
+        $this->oDb->getForms($aParams, $aFormsData, false);
         foreach($aFormsData as $sKey => $sValue){
             $aFormsData[$sKey] = _t($sValue);
         }