瀏覽代碼

Ticket #5485 - Developer Full page import fails when creating missing page blocks.

AntonLV 5 月之前
父節點
當前提交
8067d168ab
共有 2 個文件被更改,包括 7 次插入 和 4 次删除
  1. 5 3
      modules/boonex/developer/classes/BxDevModule.php
  2. 2 1
      studio/classes/BxDolStudioBuilderPageQuery.php

+ 5 - 3
modules/boonex/developer/classes/BxDevModule.php

@@ -484,8 +484,10 @@ class BxDevModule extends BxDolModule
             $iData += 1;
 
             $sObject = $aData['page']['object'];
-            if($bModeFull && !$oBpDb->isPageExists($sObject))
-                $oBpDb->addPage($aData['page']);
+            if($bModeFull && !$oBpDb->isPageExists($sObject)) {
+                if(!$oBpDb->addPage($aData['page']))
+                    continue;
+            }
             else
                 $oBpDb->updatePageByObject($sObject, $aData['page']);
 
@@ -498,7 +500,7 @@ class BxDevModule extends BxDolModule
                 ];
 
                 if($bModeFull && !$oBpDb->isBlockExists($aFields))
-                    $oBpDb->addBlock($aItem);
+                    $oBpDb->insertBlock($aBlock);
                 else
                     $oBpDb->updateBlockByFields($aFields, $aBlock);
             }

+ 2 - 1
studio/classes/BxDolStudioBuilderPageQuery.php

@@ -513,7 +513,8 @@ class BxDolStudioBuilderPageQuery extends BxDolStudioPageQuery
             
     function insertBlock($aData)
     {
-        $aData['order'] = $this->getBlockOrderMax($aData['object']) + 1;
+        if(!isset($aData['order']))
+            $aData['order'] = $this->getBlockOrderMax($aData['object']) + 1;
 
         return $this->query("INSERT INTO `sys_pages_blocks` SET " . $this->arrayToSQL($aData)) ? $this->lastId() : false;
     }