Skip to content

Commit f3845b5

Browse files
committed
Версия 1.1.3
1 parent 95ede62 commit f3845b5

File tree

16 files changed

+204
-36
lines changed

16 files changed

+204
-36
lines changed

administrator/components/com_quantummanager/config.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
label="COM_QUANTUMMANAGER_CONFIG_GENERAL_METAFILE_LABEL"
3535
required="true"
3636
class="btn-group"
37-
default="0">
37+
default="1">
3838
<option value="1">JYES</option>
3939
<option value="0">JNO</option>
4040
</field>

administrator/components/com_quantummanager/controllers/quantumtreecatalogs.php

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,26 @@ public function getDirectories()
2929
{
3030
$app = Factory::getApplication();
3131
$data = $app->input->getArray();
32+
33+
if(!isset($data['path']))
34+
{
35+
$app->close();
36+
}
37+
3238
$path = $data['path'];
39+
$rootSplit = explode('/', $data['root']);
40+
41+
if(isset($rootSplit[0]))
42+
{
43+
$root = $rootSplit[0];
44+
}
45+
else
46+
{
47+
$root = '';
48+
}
3349

3450
JLoader::register('QuantummanagerFileSystemLocal', JPATH_ROOT . '/administrator/components/com_quantummanager/filesystem/local.php');
35-
echo QuantummanagerFileSystemLocal::getDirectories($path);
51+
echo QuantummanagerFileSystemLocal::getDirectories($path, $root);
3652

3753
$app->close();
3854
}

administrator/components/com_quantummanager/controllers/quantumviewfiles.php

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@ public function createDirectory()
2929
$app = Factory::getApplication();
3030
$data = $app->input->getArray();
3131

32+
if(!isset($data['path']) || !isset($data['name']))
33+
{
34+
$app->close();
35+
}
36+
3237
JLoader::register('QuantummanagerFileSystemLocal', JPATH_ROOT . '/administrator/components/com_quantummanager/filesystem/local.php');
3338
echo QuantummanagerFileSystemLocal::createDirectory($data['path'], $data['name']);
3439

@@ -41,6 +46,11 @@ public function getFiles()
4146
$app = Factory::getApplication();
4247
$data = $app->input->getArray();
4348

49+
if(!isset($data['path']))
50+
{
51+
$app->close();
52+
}
53+
4454
JLoader::register('QuantummanagerFileSystemLocal', JPATH_ROOT . '/administrator/components/com_quantummanager/filesystem/local.php');
4555
echo QuantummanagerFileSystemLocal::getFiles($data['path']);
4656

@@ -53,6 +63,11 @@ public function getMetaFile()
5363
$app = Factory::getApplication();
5464
$data = $app->input->getArray();
5565

66+
if(!isset($data['path']) || !isset($data['name']))
67+
{
68+
$app->close();
69+
}
70+
5671
JLoader::register('QuantummanagerFileSystemLocal', JPATH_ROOT . '/administrator/components/com_quantummanager/filesystem/local.php');
5772
echo QuantummanagerFileSystemLocal::getMetaFile($data['path'], $data['name']);
5873

@@ -64,6 +79,12 @@ public function delete()
6479
{
6580
$app = Factory::getApplication();
6681
$data = $app->input->getArray();
82+
83+
if(!isset($data['path']) || !isset($data['list']))
84+
{
85+
$app->close();
86+
}
87+
6788
$path = $data['path'];
6889
$list = json_decode($data['list']);
6990

@@ -80,6 +101,12 @@ public function getParsePath()
80101
try {
81102
$app = Factory::getApplication();
82103
$data = $app->input->getArray();
104+
105+
if(!isset($data['path']))
106+
{
107+
$app->close();
108+
}
109+
83110
$path = $data['path'];
84111

85112
JLoader::register('QuantummanagerHelper', JPATH_ROOT . '/administrator/components/com_quantummanager/helpers/quantummanager.php');
@@ -101,6 +128,12 @@ public function generatePreviewImage()
101128
try {
102129
$app = Factory::getApplication();
103130
$data = $app->input->getArray();
131+
132+
if(!isset($data['path']) || !isset($data['file']))
133+
{
134+
$app->close();
135+
}
136+
104137
$path = $data['path'];
105138
$file = $data['file'];
106139

administrator/components/com_quantummanager/fields/quantumviewfiles.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ public function getInput()
7676

7777
$this->__set('standalone', $this->getAttribute('standalone', true));
7878
$this->__set('cssClass', $this->getAttribute('cssClass', ''));
79-
$this->__set('metafile', $this->getAttribute('metafile', '0'));
79+
$this->__set('metafile', $this->getAttribute('metafile', '1'));
8080
$this->directory = $this->getAttribute('directory', 'images');
8181
$this->onlyfiles = $this->getAttribute('onlyfiles', '0');
8282

administrator/components/com_quantummanager/filesystem/local.php

Lines changed: 37 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use Joomla\CMS\Component\ComponentHelper;
1414
use Joomla\CMS\Factory;
1515
use Joomla\CMS\Language\Text;
16+
use Joomla\CMS\Uri\Uri;
1617
use Joomla\Filesystem\File;
1718
use Joomla\Filesystem\Folder;
1819

@@ -49,14 +50,18 @@ public static function createDirectory($path, $name)
4950

5051
/**
5152
* @param $path
53+
* @param $root
54+
*
5255
* @return string
56+
*
57+
* @since version
5358
*/
54-
public static function getDirectories($path)
59+
public static function getDirectories($path, $root)
5560
{
5661
JLoader::register('QuantummanagerHelper', JPATH_SITE . '/administrator/components/com_quantummanager/helpers/quantummanager.php');
5762
$path = JPATH_ROOT . DIRECTORY_SEPARATOR . QuantummanagerHelper::preparePath($path);
5863
$directories = [];
59-
$directories = self::showdir($path, true, true);
64+
$directories = self::showdir($path, $root,true, true);
6065

6166
return json_encode([
6267
'directories' => $directories
@@ -75,12 +80,14 @@ public static function getDirectories($path)
7580
protected static function showdir
7681
(
7782
$dir,
83+
$root = '',
7884
$folderOnly = false,
7985
$showRoot = false,
8086
$level = 0, // do not use!!!
8187
$ef = '' // do not use!!!
8288
)
8389
{
90+
8491
$html = '';
8592
if ((int)$level == 0)
8693
{
@@ -95,10 +102,10 @@ protected static function showdir
95102
if ($showRoot && (int)$level == 0)
96103
{
97104
JLoader::register('QuantummanagerHelper', JPATH_SITE . '/administrator/components/com_quantummanager/helpers/quantummanager.php');
98-
$subdir = self::showdir($dir, $folderOnly, $showRoot, $level + 1, $ef);
105+
$subdir = self::showdir($dir, $root, $folderOnly, $showRoot, $level + 1, $ef);
99106
return [
100107
//'path' => QuantummanagerHelper::getFolderRoot(),
101-
'path' => 'root',
108+
'path' => $root,
102109
'subpath' => $subdir
103110
];
104111
}
@@ -122,7 +129,7 @@ protected static function showdir
122129

123130
$folders[] = [
124131
'path' => $name,
125-
'subpath' => self::showdir($dir . DIRECTORY_SEPARATOR . $name, $folderOnly, $showRoot, $level + 1, $ef)
132+
'subpath' => self::showdir($dir . DIRECTORY_SEPARATOR . $name, $root, $folderOnly, $showRoot, $level + 1, $ef)
126133
];
127134
}
128135
else
@@ -236,10 +243,20 @@ public static function upload()
236243
*/
237244
public static function getMetaFile($path, $file)
238245
{
246+
$sourcePath = $path;
239247
$path = QuantummanagerHelper::preparePath($path);
240248
$directory = JPATH_ROOT . DIRECTORY_SEPARATOR . $path;
241249
$filePath = $directory . DIRECTORY_SEPARATOR . $file;
242250
$meta = [
251+
'preview' => [
252+
'link' => 'index.php?' . http_build_query([
253+
'option' => 'com_quantummanager',
254+
'task' => 'quantumviewfiles.generatePreviewImage',
255+
'file' => $file,
256+
'path' => $sourcePath,
257+
'v' => rand(111111, 999999),
258+
])
259+
],
243260
'global' => [],
244261
'find' => [],
245262
];
@@ -248,6 +265,7 @@ public static function getMetaFile($path, $file)
248265
{
249266
$splitFile = explode('.', $file);
250267
$exs = mb_strtolower(array_pop($splitFile));
268+
251269
$globalInfo[] = [
252270
'key' => Text::_('COM_QUANTUMMANAGER_FILE_METAINFO_FILENAME'),
253271
'value' => implode('.', $splitFile),
@@ -275,7 +293,6 @@ public static function getMetaFile($path, $file)
275293

276294
}
277295

278-
279296
if(in_array($exs, ['jpg', 'jpeg', 'png', 'gif']))
280297
{
281298
list($width, $height, $type, $attr) = getimagesize($filePath);
@@ -284,6 +301,11 @@ public static function getMetaFile($path, $file)
284301
'key' => Text::_('COM_QUANTUMMANAGER_FILE_METAINFO_RESOLUTION'),
285302
'value' => $width . ' x ' . $height
286303
];
304+
}
305+
306+
if(in_array($exs, ['jpg', 'jpeg']))
307+
{
308+
287309

288310
$tmp = exif_read_data($filePath);
289311
foreach ($tmp as $key => $section)
@@ -571,6 +593,8 @@ public static function generatePreviewImage($path, $file)
571593
$app = Factory::getApplication();
572594
$splitFile = explode('.', $file);
573595
$exs = mb_strtolower(array_pop($splitFile));
596+
$mediaIconsPath = 'media/com_quantummanager/images/icons/';
597+
$siteUrl = Uri::root();
574598

575599
if(in_array($exs, ['jpg', 'jpeg', 'png', 'gif']))
576600
{
@@ -598,16 +622,21 @@ public static function generatePreviewImage($path, $file)
598622
})->save($cache . DIRECTORY_SEPARATOR . $file);
599623
}
600624

601-
$app->redirect(DIRECTORY_SEPARATOR . 'images/com_quantummanager/cache' . DIRECTORY_SEPARATOR . $path . DIRECTORY_SEPARATOR . $file . '?=' . rand(111111, 999999));
625+
$app->redirect($siteUrl . 'images/com_quantummanager/cache' . DIRECTORY_SEPARATOR . $path . DIRECTORY_SEPARATOR . $file . '?=' . rand(111111, 999999));
602626
}
603627

604628
if(in_array($exs, ['svg']))
605629
{
606630
$path = QuantummanagerHelper::preparePath($path);
607-
$app->redirect(DIRECTORY_SEPARATOR . $path . DIRECTORY_SEPARATOR . $file . '?=' . rand(111111, 999999));
631+
$app->redirect($siteUrl . $path . DIRECTORY_SEPARATOR . $file . '?=' . rand(111111, 999999));
608632
}
609633

634+
if(in_array($exs, ['doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'mp3', 'ogg', 'flac', 'pdf', 'zip', 'txt', 'html', 'css', 'js', 'webp']))
635+
{
636+
$app->redirect( $siteUrl . $mediaIconsPath . $exs . '.svg');
637+
}
610638

639+
$app->redirect($siteUrl . $mediaIconsPath . 'other.svg');
611640

612641
}
613642

administrator/components/com_quantummanager/helpers/quantummanager.php

Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,12 @@
2424
class QuantummanagerHelper
2525
{
2626

27+
/**
28+
* @var string
29+
* @since version
30+
*/
31+
public static $cachePathRoot = '';
32+
2733
/**
2834
* @var string
2935
* @since version
@@ -135,9 +141,28 @@ public static function getActions()
135141
*/
136142
public static function preparePath($path)
137143
{
144+
$session = Factory::getSession();
138145
$path = trim($path);
139146
$componentParams = ComponentHelper::getParams('com_quantummanager');
140-
$pathConfig = self::getParamsComponentValue('path', 'images');
147+
$pathConfig = '';
148+
149+
if(empty(static::$cachePathRoot))
150+
{
151+
$pathConfig = static::getParamsComponentValue('path', 'images');
152+
$pathSession = $session->get('quantummanagerroot', '');
153+
static::$cachePathRoot = $pathConfig;
154+
155+
if(!empty($pathSession))
156+
{
157+
$pathConfig = $pathSession;
158+
static::$cachePathRoot = $pathSession;
159+
}
160+
161+
}
162+
else
163+
{
164+
$pathConfig = static::$cachePathRoot;
165+
}
141166

142167
$path = str_replace(DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR, DIRECTORY_SEPARATOR, $path);
143168
$path = preg_replace("#" . JPATH_ROOT . "\/root?#", $pathConfig, $path);
@@ -208,7 +233,7 @@ public static function preparePath($path)
208233
], $pathConfig);
209234

210235
//если пытаются выйти за пределы папки, то не даем этого сделать
211-
if(!preg_match("/^" . str_replace("/", "\/", "(" . JPATH_ROOT . DIRECTORY_SEPARATOR . ")?" . $pathConfigParse) .".*?/", $path))
236+
if(!preg_match("/^" . str_replace("/", "\/", "\(" . JPATH_ROOT . DIRECTORY_SEPARATOR . "\)?" . $pathConfigParse) .".*?/", $path))
212237
{
213238
if(preg_match("/.*?" . str_replace("/", "\/", JPATH_ROOT . DIRECTORY_SEPARATOR . $pathConfigParse) .".*?/", $path))
214239
{
@@ -272,12 +297,15 @@ public static function getParamsComponentValue($name, $default = '')
272297
$value = $componentParams->get($name, $default);
273298
$groups = Factory::getUser()->groups;
274299

275-
foreach ($profiles as $key => $profile)
300+
if(!empty($profiles))
276301
{
277-
if(in_array((int)$profile->group, $groups) && ($name === $profile->config))
302+
foreach ($profiles as $key => $profile)
278303
{
279-
$value = trim($profile->value);
280-
break;
304+
if(in_array((int)$profile->group, $groups) && ($name === $profile->config))
305+
{
306+
$value = trim($profile->value);
307+
break;
308+
}
281309
}
282310
}
283311

@@ -294,6 +322,7 @@ public static function loadLang()
294322
$lang->load($extension, $base_dir, $language_tag, true);
295323
}
296324

325+
297326
/**
298327
* @param $size
299328
*

administrator/components/com_quantummanager/language/ru-RU/ru-RU.com_quantummanager.ini

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ COM_QUANTUMMANAGER_CONFIG_GENERAL_PATH_DESC="Укажите здесь путь
1111
COM_QUANTUMMANAGER_CONFIG_GENERAL_MAXSIZE_LABEL="Максимальный размер файла для загрузки <br /> в мегабайтах"
1212
COM_QUANTUMMANAGER_CONFIG_GENERAL_POSTFIX_LABEL="Добавлять постфикс к именам файлов"
1313
COM_QUANTUMMANAGER_CONFIG_GENERAL_POSTFIX_DESC=""
14-
COM_QUANTUMMANAGER_CONFIG_GENERAL_METAFILE_LABEL="Метатеги для файлов"
14+
COM_QUANTUMMANAGER_CONFIG_GENERAL_METAFILE_LABEL="Метаинформация для файлов"
1515
COM_QUANTUMMANAGER_CONFIG_GENERAL_HELP_LABEL="Показывать ссылки на обратную связь"
1616
COM_QUANTUMMANAGER_CONFIG_GENERAL_MIMETYPE_LABEL="Разрешенные mime типы файлов"
1717
COM_QUANTUMMANAGER_CONFIG_GENERAL_MIMETYPE_DESC="1"
@@ -111,5 +111,5 @@ COM_QUANTUMMANAGER_FILE_METAINFO_WIDTH="Ширина"
111111
COM_QUANTUMMANAGER_FILE_METAINFO_HEIGHT="Высота"
112112
COM_QUANTUMMANAGER_FILE_METAINFO_MIMETYPE="Mime тип"
113113
COM_QUANTUMMANAGER_FILE_METAINFO_SECTIONSFOUND="Найдена секция"
114-
COM_QUANTUMMANAGER_FILE_METAINFO_SHOW="Просмотреть все теги"
115-
COM_QUANTUMMANAGER_FILE_METAINFO_HIDE="Скрыть теги"
114+
COM_QUANTUMMANAGER_FILE_METAINFO_SHOW="Просмотреть всю информацию"
115+
COM_QUANTUMMANAGER_FILE_METAINFO_HIDE="Скрыть информацию"

administrator/components/com_quantummanager/language/ru-RU/ru-RU.com_quantummanager.sys.ini

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ COM_QUANTUMMANAGER_CONFIG_GENERAL_PATH_DESC="Укажите здесь путь
1111
COM_QUANTUMMANAGER_CONFIG_GENERAL_MAXSIZE_LABEL="Максимальный размер файла для загрузки <br /> в мегабайтах"
1212
COM_QUANTUMMANAGER_CONFIG_GENERAL_POSTFIX_LABEL="Добавлять постфикс к именам файлов"
1313
COM_QUANTUMMANAGER_CONFIG_GENERAL_POSTFIX_DESC=""
14-
COM_QUANTUMMANAGER_CONFIG_GENERAL_METAFILE_LABEL="Метатеги для файлов"
14+
COM_QUANTUMMANAGER_CONFIG_GENERAL_METAFILE_LABEL="Метаинформация для файлов"
1515
COM_QUANTUMMANAGER_CONFIG_GENERAL_HELP_LABEL="Показывать ссылки на обратную связь"
1616
COM_QUANTUMMANAGER_CONFIG_GENERAL_MIMETYPE_LABEL="Разрешенные mime типы файлов"
17-
COM_QUANTUMMANAGER_CONFIG_GENERAL_MIMETYPE_DESC=""
17+
COM_QUANTUMMANAGER_CONFIG_GENERAL_MIMETYPE_DESC="1"
1818

1919
COM_QUANTUMMANAGER_CONFIG_IMAGE="Изображения"
2020
COM_QUANTUMMANAGER_CONFIG_IMAGE_DESC="Здесь Вы можете настроить автоматический ресайзинг картинок, а так же наложение водяного знака и обрезки изображений"
@@ -111,5 +111,5 @@ COM_QUANTUMMANAGER_FILE_METAINFO_WIDTH="Ширина"
111111
COM_QUANTUMMANAGER_FILE_METAINFO_HEIGHT="Высота"
112112
COM_QUANTUMMANAGER_FILE_METAINFO_MIMETYPE="Mime тип"
113113
COM_QUANTUMMANAGER_FILE_METAINFO_SECTIONSFOUND="Найдена секция"
114-
COM_QUANTUMMANAGER_FILE_METAINFO_SHOW="Просмотреть все теги"
115-
COM_QUANTUMMANAGER_FILE_METAINFO_HIDE="Скрыть теги"
114+
COM_QUANTUMMANAGER_FILE_METAINFO_SHOW="Просмотреть всю информацию"
115+
COM_QUANTUMMANAGER_FILE_METAINFO_HIDE="Скрыть информацию"

0 commit comments

Comments
 (0)