You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

133 lines
4.9 KiB

<?php
// (c) Copyright by authors of the Tiki Wiki CMS Groupware Project
//
// All Rights Reserved. See copyright.txt for details and a complete list of authors.
// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details.
// $Id$
// This script may only be included - so its better to die if called directly.
if (strpos($_SERVER['SCRIPT_NAME'], basename(__FILE__)) !== false) {
header('location: index.php');
exit;
}
$filegallib = TikiLib::lib('filegal');
if (isset($_REQUEST['fgal_use_dir'])) {
// Check for last character being a / or a \
if (substr($_REQUEST["fgal_use_dir"], -1) != "\\" && substr($_REQUEST["fgal_use_dir"], -1) != "/" && $_REQUEST["fgal_use_dir"] != "") {
$_REQUEST["fgal_use_dir"] .= "/";
}
$filegallib->setupDirectory($_REQUEST["fgal_use_dir"]);
}
// Check for last character being a / or a \
if (isset($_REQUEST["fgal_podcast_dir"]) && substr($_REQUEST["fgal_podcast_dir"], -1) != "\\" && substr($_REQUEST["fgal_podcast_dir"], -1) != "/" && $_REQUEST["fgal_podcast_dir"] != "") {
$_REQUEST["fgal_podcast_dir"] .= "/";
}
if (isset($_REQUEST["fgal_batch_dir"]) && substr($_REQUEST["fgal_batch_dir"], -1) != "\\" && substr($_REQUEST["fgal_batch_dir"], -1) != "/" && $_REQUEST["fgal_batch_dir"] != "") {
$_REQUEST["fgal_batch_dir"] .= "/";
}
simple_set_value("fgal_use_dir");
simple_set_value("fgal_podcast_dir");
simple_set_value("fgal_batch_dir");
if (! empty($_REQUEST['fgal_quota']) && ! empty($_REQUEST['fgal_quota_default']) && $_REQUEST['fgal_quota_default'] > $_REQUEST['fgal_quota']) {
$_REQUEST['fgal_quota_default'] = $_REQUEST['fgal_quota'];
}
simple_set_value('fgal_quota_default');
if (! empty($_REQUEST['updateMime'])) {
$files = $filegallib->table('tiki_files');
$rows = $files->fetchAll(['fileId', 'filename', 'filetype'], ['archiveId' => 0, 'filetype' => 'application/octet-stream']);
foreach ($rows as $row) {
$t = $filegallib->fixMime($row['filetype'], $row['filename']);
if ($t != 'application/octet-stream') {
$files->update(['filetype' => $t], ['fileId' => $row['fileId']]);
}
}
}
if (! empty($_POST['move']) && $access->checkCsrf()) {
if ($_POST['move'] == 'to_fs') {
if (empty($prefs['fgal_use_dir'])) {
$errors[] = tra('You must specify a directory');
} else {
$feedbacks = [];
$errors = $filegallib->moveFiles($_POST['move'], $feedbacks);
}
} elseif ($_POST['move'] == 'to_db') {
$feedbacks = [];
$errors = $filegallib->moveFiles($_REQUEST['move'], $feedbacks);
}
if (! empty($errors)) {
Feedback::error(['mes' => $errors]);
}
if (! empty($feedbacks)) {
Feedback::note(['mes' => $feedbacks]);
}
}
if (! empty($_POST['mimes']) && $access->checkCsrf()) {
$mimes = $_POST['mimes'];
foreach ($mimes as $mime => $cmd) {
$mime = trim($mime);
if (empty($cmd)) {
$filegallib->delete_file_handler($mime);
} else {
$filegallib->change_file_handler($mime, $cmd);
}
}
}
if (! empty($_POST['newMime']) && ! empty($_POST['newCmd']) && $access->checkCsrf()) {
$filegallib->change_file_handler($_POST['newMime'], $_POST['newCmd']);
}
if (isset($_REQUEST["filegalfixvndmsfiles"]) && $access->checkCsrf()) {
$filegallib->fix_vnd_ms_files();
}
//*** end state-changing actions
if (isset($_REQUEST["filegalredosearch"])) {
$searchTextReindexedFilesAmount = $filegallib->reindex_all_files_for_search_text();
Feedback::success(tr("The search text was reindexed for a total of %0 files.", $searchTextReindexedFilesAmount));
}
$ocr = Tikilib::lib('ocr');
if (isset($_POST["ocrstalledreset"])) {
$ocrCount = $ocr->releaseAllStalled();
if ($ocrCount) {
Feedback::success($ocrCount . tra(' stalled files will attempt to OCR again.'));
} else {
Feedback::error(tra("Was not able to change status of OCR files from stalled to pending."));
}
}
// set the number of stalled OCR files
$ocrStalled = $ocr->table('tiki_files')->fetchCount(['ocr_state' => $ocr::OCR_STATUS_STALLED]);
$smarty->assign('ocrStalled', $ocrStalled);
$usedSize = $filegallib->getUsedSize();
$smarty->assign_by_ref('usedSize', $usedSize);
$handlers = $filegallib->get_file_handlers();
ksort($handlers);
$smarty->assign("fgal_handlers", $handlers);
$usedTypes = $filegallib->getFiletype();
$missingHandlers = [];
$vnd_ms_files_exist = false;
// check if files can be indexed, or if they will be indexed via an OCR process
$ocr->setMimeTypes();
foreach ($usedTypes as $type) {
if (! $filegallib->get_parse_app($type, true) && ! in_array($type, $ocr->ocrMime)) {
$missingHandlers[] = $type;
if (strpos($type, '/vnd.ms-') !== false) {
$vnd_ms_files_exist = true;
}
}
}
$smarty->assign_by_ref('missingHandlers', $missingHandlers);
$smarty->assign('vnd_ms_files_exist', $vnd_ms_files_exist);
include_once('fgal_listing_conf.php');