aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Manning <tamanning@zoho.com>2016-07-17 16:05:26 -0400
committerAndrew Manning <tamanning@zoho.com>2016-07-17 16:05:26 -0400
commitd6b28cdc575aba40c6a7861d4c2031d844a848d9 (patch)
treecf5ff33140d95189d0958af8882c69b08ac99d6a
parent75fb065526d11714c1c0fd8a4b6f94dea65674ae (diff)
downloadvolse-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.php23
-rw-r--r--include/attach.php2
-rw-r--r--include/import.php8
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;
}