diff options
-rw-r--r-- | Zotlabs/Module/Webpages.php | 23 | ||||
-rw-r--r-- | include/attach.php | 2 | ||||
-rw-r--r-- | include/import.php | 8 |
3 files changed, 26 insertions, 7 deletions
diff --git a/Zotlabs/Module/Webpages.php b/Zotlabs/Module/Webpages.php index e85c49b44..9a79478a9 100644 --- a/Zotlabs/Module/Webpages.php +++ b/Zotlabs/Module/Webpages.php @@ -269,9 +269,28 @@ class Webpages extends \Zotlabs\Web\Controller { notice( t('Invalid folder path.') . EOL); return null; } - info( t('Valid folder path.') . EOL); - + require_once('include/import.php'); + $elements = []; + $elements['pages'] = scan_webpage_elements($_POST['path'], 'page', true); + $elements['layouts'] = scan_webpage_elements($_POST['path'], 'layout', true); + $elements['blocks'] = scan_webpage_elements($_POST['path'], 'block', true); + logger('elements: ' . json_encode($elements)); + if(!(empty($elements['pages']) && empty($elements['blocks']) && empty($elements['layouts']))) { + info( t('Webpages elements detected.') . EOL); + } + // Import layout first so that pages that reference new layouts will find + // the mid of layout items in the database + foreach($elements['layouts'] as &$layout) { + $layout = import_webpage_element($layout, $channel, 'layout'); + } + foreach($elements['pages'] as &$page) { + $page = import_webpage_element($page, $channel, 'page'); + } + foreach($elements['blocks'] as &$block) { + $block = import_webpage_element($block, $channel, 'block'); + } + return null; diff --git a/include/attach.php b/include/attach.php index 0ca87624f..40410d41e 100644 --- a/include/attach.php +++ b/include/attach.php @@ -1972,7 +1972,7 @@ function get_filename_by_cloudname($cloudname, $channel, $storepath) { foreach($items as $item) { $filename = find_filename_by_hash($channel['channel_id'], $item); if($filename === $cloudname) { - return $filename; + return $item; } } return null; diff --git a/include/import.php b/include/import.php index ac52cc9cf..73a2dfff4 100644 --- a/include/import.php +++ b/include/import.php @@ -1223,15 +1223,15 @@ function scan_webpage_elements($path, $type, $cloud = false) { $dirtoscan = $path; switch ($type) { case 'page': - $dirtoscan .= '/pages/'; + $dirtoscan .= 'pages/'; $json_filename = 'page.json'; break; case 'layout': - $dirtoscan .= '/layouts/'; + $dirtoscan .= 'layouts/'; $json_filename = 'layout.json'; break; case 'block': - $dirtoscan .= '/blocks/'; + $dirtoscan .= 'blocks/'; $json_filename = 'block.json'; break; default : @@ -1251,7 +1251,7 @@ function scan_webpage_elements($path, $type, $cloud = false) { $folder = $dirtoscan . '/' . $element; if (is_dir($folder)) { if($cloud) { - $jsonfilepath = get_filename_by_cloudname($json_filename, $channel, $folder); + $jsonfilepath = $folder . '/' . get_filename_by_cloudname($json_filename, $channel, $folder); } else { $jsonfilepath = $folder . '/' . $json_filename; } |