Browse Source

Ticket #3301: Files module fixes.

Alexander 5 years ago
parent
commit
7f31172131

+ 3 - 0
modules/boonex/files/classes/BxFilesMenuSnippetMeta.php

@@ -22,6 +22,9 @@ class BxFilesMenuSnippetMeta extends BxBaseModTextMenuSnippetMeta
     {
         $CNF = &$this->_oModule->_oConfig->CNF;
         $aFile = $this->_oModule->getContentFile($this->_aContentInfo);
+
+        if (!$aFile) return 0;
+
         return $this->getUnitMetaItemText(_t_format_size($aFile['size']));
     }
 }

+ 1 - 1
modules/boonex/files/classes/BxFilesMenuView.php

@@ -30,7 +30,7 @@ class BxFilesMenuView extends BxBaseModTextMenuView
         if (!$aFile || !$aFile['private']) {
             $this->addMarkers(array(
                 'file_download_token' => '0',
-                'file_ext' => $aFile['ext'] ? $aFile['ext'] : '',
+                'file_ext' => $aFile && isset($aFile['ext']) ? $aFile['ext'] : '',
             ));
             return;
         }

+ 18 - 1
modules/boonex/files/classes/BxFilesModule.php

@@ -162,11 +162,28 @@ class BxFilesModule extends BxBaseModTextModule
         if (!isset($aData[$CNF['FIELD_AUTHOR']]) || !isset($aData[$CNF['FIELD_ID']]))
             return false;
 
+        if (isset($aData['type']) && $aData['type'] == 'folder') {
+            return [
+                'id' => $aData[$CNF['FIELD_ID']],
+                'profile_id' => $aData[$CNF['FIELD_AUTHOR']],
+                'remote_id' => 0,
+                'path' => '',
+                'file_name' => $aData[$CNF['FIELD_TITLE']],
+                'mime_type' => '',
+                'ext' => '',
+                'size' => 0,
+                'added' => $aData[$CNF['FIELD_ADDED']],
+                'modified' => 0,
+                'private' => false,
+                'is_image' => false,
+            ];
+        }
+
         $oStorage = BxDolStorage::getObjectInstance($CNF['OBJECT_STORAGE']);
         if (!$oStorage)
             return false;
 
-        if (isset($aData[$CNF['FIELD_FILE_ID']]) && $aData[$CNF['FIELD_FILE_ID']]) 
+        if (isset($aData[$CNF['FIELD_FILE_ID']]) && $aData[$CNF['FIELD_FILE_ID']])
             return $this->_addFileFields($oStorage->getFile($aData[$CNF['FIELD_FILE_ID']]));
         
         $aGhostFiles = $oStorage->getGhosts ($aData[$CNF['FIELD_AUTHOR']], $aData[$CNF['FIELD_ID']]);

+ 2 - 2
modules/boonex/files/classes/BxFilesTemplate.php

@@ -24,7 +24,7 @@ class BxFilesTemplate extends BxBaseModTextTemplate
     {
         $aFile = BxDolModule::getInstance($this->MODULE)->getContentFile($aData);
 
-        if (!$aFile['is_image'])
+        if (!$aFile || !$aFile['is_image'])
             return array('', '');
 
         $sPhotoThumb = '';
@@ -54,7 +54,7 @@ class BxFilesTemplate extends BxBaseModTextTemplate
 
         $aParams['template_name'] = $sTemplateName;
         $aVars = $this->getUnit($aData, $aParams);
-        $aVars['icon'] = $oStorage ? $oStorage->getFontIconNameByFileName($aFile['file_name']) : 'far file';
+        $aVars['icon'] = $aFile && $oStorage ? $oStorage->getFontIconNameByFileName($aFile['file_name']) : 'far file';
 
         $aVars['bx_if:no_thumb']['content']['icon'] = $aVars['icon'];
 

+ 2 - 0
modules/boonex/files/template/css/main.css

@@ -142,12 +142,14 @@
 .bx-files-browser-toolbar .bx-btn {
     float: none;
     display: inline-block;
+    vertical-align: top;
 }
 .bx-files-toolbar-controls-group {
     display: inline-block;
     margin-right: 10px;
     white-space: nowrap;
     margin-bottom: 1rem;
+    vertical-align: middle;
 }
 .bx-files-toolbar-spacer {
     width: 100%;