diff options
author | Andrew Manning <tamanning@zoho.com> | 2016-07-17 16:05:26 -0400 |
---|---|---|
committer | Andrew Manning <tamanning@zoho.com> | 2016-07-17 16:05:26 -0400 |
commit | d6b28cdc575aba40c6a7861d4c2031d844a848d9 (patch) | |
tree | cf5ff33140d95189d0958af8882c69b08ac99d6a | |
parent | 75fb065526d11714c1c0fd8a4b6f94dea65674ae (diff) | |
download | volse-hubzilla-d6b28cdc575aba40c6a7861d4c2031d844a848d9.tar.gz volse-hubzilla-d6b28cdc575aba40c6a7861d4c2031d844a848d9.tar.bz2 volse-hubzilla-d6b28cdc575aba40c6a7861d4c2031d844a848d9.zip |
Importing webpage elements from manually entered cloud file path work. All detected elements are automatically imported.
-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; } |