public function view() { $fs = FileSet::getByID($this->fsID); $fileList = new FileList(); $fileList->filterBySet($fs); $fileList->filterByType(FileType::T_IMAGE); $fileList->sortByFileSetDisplayOrder(); $images = $fileList->get(1000, 0); $this->set('images', $images); $this->set('picture', $this->getPicture()); }
/** * Вывод списка файлов. */ public static function on_get_list(Context $ctx) { try { $options = array('#raw' => true, 'name' => 'list', 'title' => t('Файловый архив'), 'path' => os::webpath(MCMS_SITE_FOLDER, $ctx->config->get('modules/files/storage')), 'advsearch' => true, 'canedit' => true, 'mode' => $ctx->get('mode', 'table'), 'scope' => $ctx->get('scope'), 'type' => 'file'); $tmp = new FileList($ctx, $options['scope']); return $tmp->getHTML('files', $options); } catch (TableNotFoundException $e) { if ($e->getTableName() != 'node__idx_filetype') { throw $e; } throw new Exception(t('Отсутствует индекс по полю filetype, <a href="@url">исправьте это</a> и возвращайтесь.', array('@url' => 'admin/structure/fields/edit?type=file&field=filetype&destination=' . urlencode(MCMS_REQUEST_URI)))); } }
public function getList() { if ($this->xml) { return $this->document->saveXML(); } else { $html = $this->document->saveHTML(); if ($this->includefiles) { $filelist = new FileList(array(), array('class' => 'type'), $this->parent, false); $html .= $filelist->getList(); } return $html; } }
private function _prepare($fs) { $fl = new FileList(); $fl->filterByExtension("js"); $fl->filterBySet($fs); $files = $fl->get(); $setFiles = array(); foreach ($files as $f) { $fv = $f->getRecentVersion(); $fn = $fv->getFileName(); $this->_exists[$fn] = $f; } }
function loadFileSet(){ if (intval($this->fsID) < 1) { return false; } Loader::helper('concrete/file'); Loader::model('file_attributes'); Loader::library('file/types'); Loader::model('file_list'); Loader::model('file_set'); $ak = FileAttributeKey::getByHandle('height'); $fs = FileSet::getByID($this->fsID); $fileList = new FileList(); $fileList->filterBySet($fs); $fileList->filterByType(FileType::T_IMAGE); $fileList->sortByFileSetDisplayOrder(); $files = $fileList->get(1000,0); $image = array(); $image['duration'] = $this->duration; $image['fadeDuration'] = $this->fadeDuration; $image['groupSet'] = 0; $image['url'] = ''; $images = array(); $maxHeight = 0; foreach ($files as $f) { $fp = new Permissions($f); if(!$fp->canViewFile()) { continue; } $image['fID'] = $f->getFileID(); $image['fileName'] = $f->getFileName(); $image['fullFilePath'] = $f->getPath(); $image['url'] = $f->getRelativePath(); // find the max height of all the images so slideshow doesn't bounce around while rotating $vo = $f->getAttributeValueObject($ak); if (is_object($vo)) { $image['imgHeight'] = $vo->getValue('height'); } if ($maxHeight == 0 || $image['imgHeight'] > $maxHeight) { $maxHeight = $image['imgHeight']; } $images[] = $image; } $this->images = $images; }
static function getFileList($dir, $recurse = false) { // массив, хранящий возвращаемое значение $retval = array(); // добавить конечный слеш, если его нет if (substr($dir, -1) != "/") { $dir .= "/"; } // указание директории и считывание списка файлов $d = @dir($dir) or die("getFileList: Не удалось открыть каталог {$dir} для чтения"); while (false !== ($entry = $d->read())) { // пропустить скрытые файлы if ($entry[0] == ".") { continue; } if (is_dir("{$dir}{$entry}")) { $retval[] = "{$dir}{$entry}"; if ($recurse && is_readable("{$dir}{$entry}/")) { $retval = array_merge($retval, FileList::getFileList("{$dir}{$entry}/", true)); } } elseif (is_readable("{$dir}{$entry}")) { $retval[] = "{$dir}{$entry}"; } } $d->close(); return $retval; }
/** * Method to get the list of images field options. * Use the filter attribute to specify allowable file extensions. * * @return array The field option objects. */ protected function getOptions() { // Define the image file type filter. $filter = '\\.png$|\\.gif$|\\.jpg$|\\.bmp$|\\.ico$|\\.jpeg$|\\.psd$|\\.eps$'; // Set the form field element attribute for file type filter. $this->element->addAttribute('filter', $filter); // Get the field options. return parent::getOptions(); }
public static function getUnsortedPermittedFilesetImages($fsID) { Loader::model('file_set'); Loader::model('file_list'); $fsHasDisplayOrder = version_compare(APP_VERSION, '5.4.1', '>='); $fs = FileSet::getByID($fsID); $fl = new FileList(); $fl->filterBySet($fs); $fl->filterByType(FileType::T_IMAGE); if ($fsHasDisplayOrder) { $fl->sortByFileSetDisplayOrder(); } $all_files = $fl->get(); $permitted_files = array(); foreach ($all_files as $f) { $fp = new Permissions($f); if ($fp->canRead()) { $permitted_files[] = $f; } } return $permitted_files; }
public static function getPermittedFilesetImages($fsID, $use_file_props_for_title_and_caption = false) { Loader::model('file_set'); Loader::model('file_list'); $fsHasDisplayOrder = version_compare(APP_VERSION, '5.4.1', '>='); $fs = FileSet::getByID($fsID); $fl = new FileList(); $fl->filterBySet($fs); $fl->filterByType(FileType::T_IMAGE); if ($fsHasDisplayOrder) { $fl->sortByFileSetDisplayOrder(); } $all_files = $fl->get(); $permitted_files = array(); foreach ($all_files as $f) { $fp = new Permissions($f); if ($fp->canRead()) { $fv = $f->getRecentVersion(); $permitted_files[$f->fID] = array('file' => $f, 'fID' => $f->fID, 'position' => $fsHasDisplayOrder ? $f->fsDisplayOrder : 0, 'title' => $use_file_props_for_title_and_caption ? $fv->getTitle() : '', 'caption' => $use_file_props_for_title_and_caption ? $fv->getDescription() : ''); } } return $permitted_files; }
protected static function getLastControllerModTime(array $controllerDirs) { $controllerFiles = array(); foreach ($controllerDirs as $dir) { $controllerFiles = array_merge($controllerFiles, FileList::getFilesRecursively($dir)); } $lastTime = 0; foreach ($controllerFiles as $file) { $fileModTime = filemtime($file); if ($fileModTime > $lastTime) { $lastTime = $fileModTime; } } return $lastTime; }
public function getMootoolsPluginFiles($fs) { Loader::model('file_set'); Loader::model('file_list'); // $u = new User(); $fl = new FileList(); $fl->filterByMootoolsPlugin(true); $fl->filterByExtension("js"); // $fl->filter('u.uID', $u->getUserID(), '='); $fl->sortByAttributeKey("ak_" . MOOTOOLS_PLUGIN_DISPLAY_ORDER); $fl->filterBySet($fs); $files = $fl->get(); return $files; }
public function start() { global $projectTmpDir, $php_errormsg; $authenticator = new Auth(); if ($authenticator->auth()) { ob_start(); if (!empty($_GET['a'])) { $action = $_GET['a']; $interval = empty($_GET['delay']) ? 5 : (int) $_GET['delay']; $fileScanner = new FileList(); $fileScanner->setInterval($interval); if ($action === 'cleanUp') { $this->removeTempFiles(); print json_encode(array('type' => 'cleanUp', 'status' => 'ok', 'phpError' => $php_errormsg)); } else { if ($action === 'getFileList') { echo $fileScanner->performScanning(); } else { if ($action === 'getSignatureScanResult') { $this->detector = new MalwareDetector(); $this->detector->setRequestDelay($interval); print $this->detector->malwareScanRound(); } else { if ($action === 'getWebsiteLog') { //REPORTING $xmlLog = $this->getXMLReport(); $logFilename = $projectTmpDir . '/scan_log.xml'; file_put_contents2($logFilename, $xmlLog); print json_encode(array('type' => 'getWebsiteLog', 'status' => 'ok', 'phpError' => $php_errormsg)); } } } } } else { //GENERATE INTERFACE $fileScanner = new FileList(); define('PS_ARCHIVE_DOWNLOAD_URL', $_SERVER['PHP_SELF'] . '?controller=download&f=report'); $this->templateOutput($fileScanner->getInterval()); } } }
if (!is_dir(dirname($CFG->INCLUDE_PATH . $value->Name))) { mkdir(dirname($CFG->INCLUDE_PATH . $value->Name), 0775, true); } file_put_contents($CFG->INCLUDE_PATH . $value->Name, $tmp); echo $value->Name . " (" . $value->Size . " bytes): " . $value->MD5 . "\n"; } else { echo "ERRORE di DOWNLOAD: " . $value->Name . " (" . $value->Size . " bytes): " . $value->MD5 . "\n"; } } else { echo "ERRORE di DOWNLOAD: " . $value->Name . "\n"; } } echo "</pre>"; //Calcola Le differenze DA CANCELLARE //Gestisci Elenco Locale $tmp = new FileList("/"); $tmp->IncludeFolders(true); $tmp->Load(); $lFileList = $tmp->toArray(); $NeedFile = array_udiff($lFileList, $rFileList, array("File", "compare")); usort($NeedFile, array("File", "compare")); echo "Cancellazione Files non utilizzati\n"; echo "<pre>"; foreach ($NeedFile as $value) { if (is_dir($CFG->INCLUDE_PATH . $value->Name)) { if (count(scandir($CFG->INCLUDE_PATH . $value->Name)) == 2) { rmdir($CFG->INCLUDE_PATH . $value->Name); echo "CARTELLA: " . $value->Name . "\n"; } } else { if ($value->Name != "/Common/config.inc.php") {
<?php defined('C5_EXECUTE') or die("Access Denied."); $cp = FilePermissions::getGlobal(); if (!$cp->canAccessFileManager()) { die(t("Unable to access the file manager.")); } Loader::model('file_list'); Loader::model('file_set'); $fileList = new FileList(); $fileList->enableStickySearchRequest(); $req = $fileList->getSearchRequest(); $form = Loader::helper('form'); $s1 = FileSet::getMySets(); if (count($s1) > 0) { ?> <div class="span4" style="width: 280px"> <?php echo $form->label('fsID', t('In Set(s)')); ?> <div class="input"> <select multiple name="fsID[]" class="chosen-select"> <?php foreach ($s1 as $s) { ?> <option value="<?php echo $s->getFileSetID(); ?> "><?php echo $s->getFileSetName(); ?>
private function generateAffectedPaths() { if ($this->isRawDiffSource()) { return array(); } $repository_api = $this->getRepositoryAPI(); if ($repository_api instanceof ArcanistSubversionAPI) { $file_list = new FileList($this->getArgument('paths', array())); $paths = $repository_api->getSVNStatus($externals = true); foreach ($paths as $path => $mask) { if (!$file_list->contains($repository_api->getPath($path), true)) { unset($paths[$path]); } } $warn_externals = array(); foreach ($paths as $path => $mask) { $any_mod = $mask & ArcanistRepositoryAPI::FLAG_ADDED || $mask & ArcanistRepositoryAPI::FLAG_MODIFIED || $mask & ArcanistRepositoryAPI::FLAG_DELETED; if ($mask & ArcanistRepositoryAPI::FLAG_EXTERNALS) { unset($paths[$path]); if ($any_mod) { $warn_externals[] = $path; } } } if ($warn_externals && !$this->hasWarnedExternals) { echo phutil_console_format("%s\n\n%s\n\n", pht("The working copy includes changes to '%s' paths. These " . "changes will not be included in the diff because SVN can not " . "commit 'svn:externals' changes alongside normal changes.", 'svn:externals'), pht("Modified '%s' files:", 'svn:externals'), phutil_console_wrap(implode("\n", $warn_externals), 8)); $prompt = pht('Generate a diff (with just local changes) anyway?'); if (!phutil_console_confirm($prompt)) { throw new ArcanistUserAbortException(); } else { $this->hasWarnedExternals = true; } } } else { $paths = $repository_api->getWorkingCopyStatus(); } foreach ($paths as $path => $mask) { if ($mask & ArcanistRepositoryAPI::FLAG_UNTRACKED) { unset($paths[$path]); } } return $paths; }
static function getFilesetImages($fsID, $randomize = false) { Loader::model('file_set'); Loader::model('file_list'); $fs = FileSet::getByID($fsID); $fl = new FileList(); $fl->filterBySet($fs); $fl->filterByType(FileType::T_IMAGE); $fl->setPermissionLevel('canRead'); if ($randomize) { $fl->sortBy('RAND()', 'asc'); } else { $fl->sortByFileSetDisplayOrder(); //Requires 5.4.1 or higher: version_compare(APP_VERSION, '5.4.1', '>='); } $files = $fl->get(); return $files; }
public static function exportArchive($archive) { $fl = new FileList(); $files = $fl->get(); $filestring = ''; $fh = Loader::helper('file'); $filenames = array(); $filename = $fh->getTemporaryDirectory() . '/' . $archive . '.zip'; if (count($files) > 0) { try { if (class_exists('ZipArchive', false)) { $zip = new ZipArchive(); $res = $zip->open($filename, ZipArchive::CREATE); if ($res === TRUE) { foreach ($files as $f) { $file = $f->getPath(); if (!in_array(basename($file), $filenames)) { $filenames[] = basename($file); $zip->addFile(addslashes($file), basename($file)); } } $zip->close(); } else { throw new Exception(t('Could not open with ZipArchive::CREATE')); } } else { $filestring = "'" . addslashes($filename) . "' "; foreach ($files as $f) { $file = $f->getPath(); if (!in_array(basename($file), $filenames)) { $filenames[] = basename($file); $filestring .= "'" . addslashes($file) . "' "; } } exec(DIR_FILES_BIN_ZIP . ' -j ' . $filestring); } } catch (Exception $e) { throw new Exception(t('Failed to create zip file as "%s": %s', $filename, $e->getMessage())); } } }
<?php ob_start(); define('PHPFOX', true); define('PHPFOX_NO_SESSION', true); define('PHPFOX_NO_USER_SESSION', true); define('PHPFOX_DS', DIRECTORY_SEPARATOR); define('PHPFOX_DIR', dirname(dirname(dirname(dirname(__FILE__)))) . PHPFOX_DS); include PHPFOX_DIR . 'include' . PHPFOX_DS . 'init.inc.php'; $file_list = new FileList(); $_POST['dir'] = urldecode($_POST['dir']); $root = ''; if (file_exists($root . $_POST['dir'])) { $files = scandir($root . $_POST['dir']); natcasesort($files); if (count($files) > 2) { /* The 2 accounts for . and .. */ echo "<ul class=\"jqueryFileTree\" style=\"display: none;\">"; // All dirs foreach ($files as $file) { if (file_exists($root . $_POST['dir'] . $file) && $file != '.' && $file != '..' && is_dir($root . $_POST['dir'] . $file)) { $full_path = htmlentities($root . $_POST['dir'] . $file) . "/"; $file = htmlentities($file); $class = $file_list->is_checked_file($full_path) ? 'checked' : ''; // var_dump($full_path); echo "<li class=\"directory collapsed\">\n <a href=\"#\" rel=\"" . htmlentities($_POST['dir'] . $file) . "/\">" . htmlentities($file) . "</a>\n <a href='#' rel='{$full_path}' class='checkbox directory {$class}'></a>\n </li>"; } } // All files foreach ($files as $file) { if (file_exists($root . $_POST['dir'] . $file) && $file != '.' && $file != '..' && !is_dir($root . $_POST['dir'] . $file)) {
require_once dirname(dirname(__FILE__)) . '/config.php'; require_once 'Language/lib.php'; include 'Common/Templates/head.php'; // nothing to do here without data if (!in_array(ProgramRelease, array('STABLE', 'FITARCO')) and empty($_POST['Email'])) { CD_redirect('/'); } $URL = 'http://www.ianseo.net/Update.php'; //$URL='http://ianseonet.dellinux/Update.php'; include 'FileList.php'; @ob_end_flush(); echo str_repeat(' ', 1500); flush(); // preparing list do_flush('<div><br/>' . get_text('Prepare', 'Install') . ':... '); $tmp = new FileList($CFG->INCLUDE_PATH); $tmp->EscludeFiles('^(\\.)'); $tmp->ShowSize(true); $tmp->ShowMD5(true); if (!$tmp->Load()) { echo '</div><div><br/>' . get_text('NotUpdatable', 'Install', $CFG->INCLUDE_PATH) . '</div>'; include 'Common/Templates/tail.php'; die; } do_flush(get_text('Done', 'Install') . '</div>'); // sending request to ianseo do_flush('<div><br/>' . get_text('Sending', 'Install') . ':... '); $Old = $tmp->serialize(); $Query = array('Json' => gzcompress($Old)); if (!empty($_POST['Email'])) { $Query['Email'] = trim($_POST['Email']);
public function getRequestedSearchResults() { $fileList = new FileList(); $fileList->enableStickySearchRequest(); Loader::model('file_set'); if ($_REQUEST['submit_search']) { $fileList->resetSearchRequest(); } $req = $fileList->getSearchRequest(); // first thing, we check to see if a saved search is being used if (isset($_REQUEST['fssID'])) { $fs = FileSet::getByID($_REQUEST['fssID']); if ($fs->getFileSetType() == FileSet::TYPE_SAVED_SEARCH) { $req = $fs->getSavedSearchRequest(); $columns = $fs->getSavedSearchColumns(); $colsort = $columns->getDefaultSortColumn(); $fileList->addToSearchRequest('ccm_order_dir', $colsort->getColumnDefaultSortDirection()); $fileList->addToSearchRequest('ccm_order_by', $colsort->getColumnKey()); } } if (!isset($columns)) { $columns = FileManagerColumnSet::getCurrent(); } $this->set('searchRequest', $req); $this->set('columns', $columns); $col = $columns->getDefaultSortColumn(); $fileList->sortBy($col->getColumnKey(), $col->getColumnDefaultSortDirection()); $keywords = htmlentities($req['fKeywords'], ENT_QUOTES, APP_CHARSET); if ($keywords != '') { $fileList->filterByKeywords($keywords); } if ($req['numResults']) { $fileList->setItemsPerPage($req['numResults']); } if (isset($req['fsIDNone']) && $req['fsIDNone'] == 1 || is_array($req['fsID']) && in_array(-1, $req['fsID'])) { $fileList->filterBySet(false); } else { if (is_array($req['fsID'])) { foreach ($req['fsID'] as $fsID) { $fs = FileSet::getByID($fsID); $fileList->filterBySet($fs); } } else { if (isset($req['fsID']) && $req['fsID'] != '' && $req['fsID'] > 0) { $set = $req['fsID']; $fs = FileSet::getByID($set); $fileList->filterBySet($fs); } } } if (isset($_GET['fType']) && $_GET['fType'] != '') { $type = $_GET['fType']; $fileList->filterByType($type); } if (isset($_GET['fExtension']) && $_GET['fExtension'] != '') { $ext = $_GET['fExtension']; $fileList->filterByExtension($ext); } $selectedSets = array(); if (is_array($req['selectedSearchField'])) { foreach ($req['selectedSearchField'] as $i => $item) { // due to the way the form is setup, index will always be one more than the arrays if ($item != '') { switch ($item) { case "extension": $extension = $req['extension']; $fileList->filterByExtension($extension); break; case "type": $type = $req['type']; $fileList->filterByType($type); break; case "date_added": $dateFrom = $req['date_from']; $dateTo = $req['date_to']; if ($dateFrom != '') { $dateFrom = date('Y-m-d', strtotime($dateFrom)); $fileList->filterByDateAdded($dateFrom, '>='); $dateFrom .= ' 00:00:00'; } if ($dateTo != '') { $dateTo = date('Y-m-d', strtotime($dateTo)); $dateTo .= ' 23:59:59'; $fileList->filterByDateAdded($dateTo, '<='); } break; case 'added_to': $ocID = $req['ocIDSearchField']; if ($ocID > 0) { $fileList->filterByOriginalPageID($ocID); } break; case "size": $from = $req['size_from']; $to = $req['size_to']; $fileList->filterBySize($from, $to); break; default: Loader::model('file_attributes'); $akID = $item; $fak = FileAttributeKey::get($akID); $type = $fak->getAttributeType(); $cnt = $type->getController(); $cnt->setRequestArray($req); $cnt->setAttributeKey($fak); $cnt->searchForm($fileList); break; } } } } if (isset($req['numResults'])) { $fileList->setItemsPerPage($req['numResults']); } return $fileList; }
public static function exportArchive($archive) { $fl = new FileList(); $files = $fl->get(); $filestring = ''; $fh = Loader::helper('file'); $filenames = array(); $filename = $fh->getTemporaryDirectory() . '/' . $archive . '.zip'; if (count($files) > 0) { foreach ($files as $f) { if (!in_array(basename($f->getPath()), $filenames)) { $filestring .= "'" . addslashes($f->getPath()) . "' "; } $filenames[] = basename($f->getPath()); } exec(DIR_FILES_BIN_ZIP . ' -j \'' . addslashes($filename) . '\' ' . $filestring); } }
} if ($_REQUEST['fExtension'] != false) { unset($searchFields['extension']); } $html = Loader::helper('html'); Loader::model('file_attributes'); $searchFieldAttributes = FileAttributeKey::getSearchableList(); foreach ($searchFieldAttributes as $ak) { $searchFields[$ak->getAttributeKeyID()] = $ak->getAttributeKeyDisplayHandle(); } $ext1 = FileList::getExtensionList(); $extensions = array(); foreach ($ext1 as $value) { $extensions[$value] = $value; } $t1 = FileList::getTypeList(); $types = array(); foreach ($t1 as $value) { $types[$value] = FileType::getGenericTypeText($value); } ?> <?php $form = Loader::helper('form'); ?> <div id="ccm-<?php echo $searchInstance; ?> -search-field-base-elements" style="display: none">
</tbody> </table> <?php echo $form->hidden('fsID', $fs->getFileSetID()); ?> </form> </div> <h1><span><?php echo t('Files'); ?> </span></h1> <div class="ccm-dashboard-inner"> <?php Loader::model("file_list"); $fl = new FileList(); $fl->filterBySet($fs); $fl->sortByFileSetDisplayOrder(); $files = $fl->get(); if (count($files) > 0) { ?> <form id="ccm-file-set-save-sort-order" method="post" action="<?php echo $this->url('/dashboard/files/sets', 'save_sort_order'); ?> "> <?php echo $form->hidden('fsDisplayOrder', ''); ?> <?php echo $form->hidden('fsID', $fs->getFileSetID());
public function getFilesArchive() { Loader::model('file_list'); $vh = Loader::helper("validation/identifier"); $archive = $vh->getString(); FileList::exportArchive($archive); return $archive; }
public function getIcons() { $f = Loader::helper('file'); Loader::model('file_list'); Loader::model('file_set'); $fileList = new FileList(); $fs = FileSet::getByName('Page Type Icons'); if (!$fs) { return $f->getDirectoryContents(DIR_FILES_COLLECTION_TYPE_ICONS); } else { $fileList->filterBySet($fs); $icons = $fileList->get(100); if (!count($icons)) { $icons = $f->getDirectoryContents(DIR_FILES_COLLECTION_TYPE_ICONS); } return $icons; } }
/** * Takes some work orders from the process queue and performs them */ function processQueue() { global $db, $config; //Only allows a few work orders being executed at once, so we can do this very often if (TaskQueue::getTaskQueueStatusCnt(ORDER_EXECUTING) >= $config['process']['process_limit']) { echo "TOO MUCH ACTIVE WORK, ABORTING\n"; return; } $job = TaskQueue::getOldestEntry(); if (!$job) { return; } //mark current job as "IN PROGRESS" so another process won't start on it aswell TaskQueue::markTask($job['entryId'], ORDER_EXECUTING); echo "\n\n-------------\n"; switch ($job['orderType']) { case TASK_IMAGE_RECODE: echo 'IMAGE RECODE<br/>'; if (!in_array($job['orderParams'], $h->files->image_mime_types)) { echo 'error: invalid mime type<br/>'; $h->session->log('Process queue error - image conversion destination mimetype not supported: ' . $job['orderParams'], LOGLEVEL_ERROR); break; } $newId = $h->files->cloneFile($job['referId'], FILETYPE_CLONE_CONVERTED); $exec_start = microtime(true); $check = convertImage($h->files->findUploadPath($job['referId']), $h->files->findUploadPath($newId), $job['orderParams']); $exec_time = microtime(true) - $exec_start; echo 'Execution time: ' . shortTimePeriod($exec_time) . '<br/>'; if (!$check) { $h->session->log('#' . $job['entryId'] . ': IMAGE CONVERT failed! format=' . $job['orderParams'], LOGLEVEL_ERROR); echo 'Error: Image convert failed!<br/>'; break; } $h->files->updateFile($newId, $job['orderParams']); markQueueCompleted($job['entryId'], $exec_time); break; case TASK_AUDIO_RECODE: //Recodes source audio file into orderParams destination format $dst_audio_ok = array('ogg', 'wma', 'mp3'); //FIXME: config item or $h->files->var if (!in_array($job['orderParams'], $dst_audio_ok)) { echo 'error: invalid mime type<br/>'; $h->session->log('Process queue error - audio conversion destination mimetype not supported: ' . $job['orderParams'], LOGLEVEL_ERROR); break; } $file = $h->files->getFileInfo($job['referId']); if (!$file) { echo 'Error: no fileentry existed for fileId ' . $job['referId']; break; } $newId = $h->files->cloneFile($job['referId'], FILETYPE_CLONE_CONVERTED); echo 'Recoding source audio of "' . $file['fileName'] . '" (' . $file['fileMime'] . ') to format ' . $job['orderParams'] . " ...\n"; switch ($job['orderParams']) { case 'application/x-ogg': //FIXME hur anger ja dst-format utan filändelse? tvingas göra det i 2 steg nu $dst_file = 'tmpfile.ogg'; $c = '/usr/local/bin/ffmpeg -i "' . $h->files->findUploadPath($job['referId']) . '" ' . $dst_file; break; case 'audio/x-ms-wma': $dst_file = 'tmpfile.wma'; $c = '/usr/local/bin/ffmpeg -i "' . $h->files->findUploadPath($job['referId']) . '" ' . $dst_file; break; case 'audio/mpeg': case 'audio/x-mpeg': //fixme: source & destination should not be able to be the same! $dst_file = 'tmpfile.mp3'; $c = '/usr/local/bin/ffmpeg -i "' . $h->files->findUploadPath($job['referId']) . '" ' . $dst_file; break; default: die('unknown destination audio format: ' . $job['orderParams']); } echo 'Executing: ' . $c . "\n"; $exec_time = exectime($c); echo 'Execution time: ' . shortTimePeriod($exec_time) . "\n"; if (!file_exists($dst_file)) { echo '<b>FAILED - dst file ' . $dst_file . " dont exist!\n"; break; } //FIXME: behöver inget rename-steg. kan skriva till rätt output fil i första steget rename($dst_file, $h->files->upload_dir . $newId); $h->files->updateFile($newId); markQueueCompleted($job['entryId'], $exec_time); break; case TASK_VIDEO_RECODE: echo "VIDEO RECODE:\n"; $exec_start = microtime(true); if (convertVideo($job['referId'], $job['orderParams']) === false) { markQueue($job['entryId'], ORDER_FAILED); } else { markQueueCompleted($job['entryId'], microtime(true) - $exec_start); } break; case TASK_FETCH: echo "FETCH CONTENT\n"; $fileName = basename($job['orderParams']); //extract filename part of url, used as "filename" in database $http = new HttpClient($job['orderParams']); $http->getHead(); if ($http->getStatus() != 200) { // retry in 20 seconds if file is not yet ready retryQueueEntry($job['entryId'], 20); break; } $newFileId = FileList::createEntry(FILETYPE_PROCESS, 0, 0, $fileName); $c = 'wget ' . escapeshellarg($job['orderParams']) . ' -O ' . FileInfo::getUploadPath($newFileId); echo "\$ " . $c . "\n"; $retval = 0; $exec_time = exectime($c, $retval); if (!$retval) { //TODO: process html document for media links if it is a html document TaskQueue::markTaskCompleted($job['entryId'], $exec_time, $newFileId); FileInfo::updateData($newFileId); } else { //wget failed somehow, delay work for 1 minute retryQueueEntry($job['entryId'], 60); $files->deleteFile($newFileId, 0, true); //remove failed local file entry } break; case TASK_CONVERT_TO_DEFAULT: echo "CONVERT TO DEFAULT\n"; //referId is entryId of previous proccess queue order $params = unserialize($job['orderParams']); $prev_job = TaskQueue::getEntry($job['referId']); if ($prev_job['orderStatus'] != ORDER_COMPLETED) { retryQueueEntry($job['entryId'], 60); break; } $file = $files->getFileInfo($prev_job['referId']); $exec_start = microtime(true); $newId = false; switch ($file['mediaType']) { case MEDIATYPE_VIDEO: $newId = convertVideo($prev_job['referId'], $h->files->default_video, !empty($params['callback']) ? false : true, !empty($params['watermark']) ? $params['watermark'] : ''); break; case MEDIATYPE_AUDIO: $newId = convertAudio($prev_job['referId'], $h->files->default_audio); break; default: echo "UNKNOWN MEDIA TYPE " . $file['mediaType'] . ", MIME TYPE " . $file['fileMime'] . ", CANNOT CONVERT MEDIA!!!\n"; break; } if (!$newId) { markQueue($job['entryId'], ORDER_FAILED); return false; } markQueueCompleted($job['entryId'], microtime(true) - $exec_start); if (empty($params['callback'])) { break; } //'uri' isnt known before the new file is created so it is added at this point $uri = $config['core']['full_url'] . 'api/file.php?id=' . $newId; $params['callback'] .= (strpos($params['callback'], '?') !== false ? '&' : '?') . 'uri=' . urlencode($uri); $data = file_get_contents($params['callback']); echo "Performing callback: " . $params['callback'] . "\n\n"; echo "Callback script returned:\n" . $data; storeCallbackData($job['entryId'], $data, $params); break; default: echo "Unknown ordertype: " . $job['orderType'] . "\n"; d($job); die; } }
$fldc = FileManagerColumnSet::getCurrent(); $fldca = new FileManagerAvailableColumnSet(); $searchInstance = Loader::helper('text')->alphanum($_REQUEST['searchInstance']); if ($_POST['task'] == 'update_columns') { $fdc = new FileManagerColumnSet(); foreach($_POST['column'] as $key) { $fdc->addColumn($fldca->getColumnByKey($key)); } $sortCol = $fldca->getColumnByKey($_POST['fSearchDefaultSort']); $fdc->setDefaultSortColumn($sortCol, $_POST['fSearchDefaultSortDirection']); $u->saveConfig('FILE_LIST_DEFAULT_COLUMNS', serialize($fdc)); $fileList = new FileList(); $fileList->resetSearchRequest(); exit; } $list = FileAttributeKey::getList(); ?> <div class="ccm-ui"> <form method="post" id="ccm-<?php echo $searchInstance; ?> -customize-search-columns-form" action="<?php echo REL_DIR_FILES_TOOLS_REQUIRED; ?>
/** * Test whether a path is descendant from some root path after resolving all * symlinks and removing artifacts. Both paths must exists for the relation * to obtain. A path is always a descendant of itself as long as it exists. * * @param string Child path, absolute or relative to PWD. * @param string Root path, absolute or relative to PWD. * @return bool True if resolved child path is in fact a descendant of * resolved root path and both exist. * @task path */ public static function isDescendant($path, $root) { try { self::assertExists($path); self::assertExists($root); } catch (FilesystemException $e) { return false; } $fs = new FileList(array($root)); return $fs->contains($path); }
public function swapContent($options) { if ($this->validateClearSiteContents($options)) { Loader::model("page_list"); Loader::model("file_list"); Loader::model("stack/list"); $pl = new PageList(); $pages = $pl->get(); foreach ($pages as $c) { $c->delete(); } $fl = new FileList(); $files = $fl->get(); foreach ($files as $f) { $f->delete(); } // clear stacks $sl = new StackList(); foreach ($sl->get() as $c) { $c->delete(); } $home = Page::getByID(HOME_CID); $blocks = $home->getBlocks(); foreach ($blocks as $b) { $b->deleteBlock(); } $pageTypes = CollectionType::getList(); foreach ($pageTypes as $ct) { $ct->delete(); } // now we add in any files that this package has if (is_dir($this->getPackagePath() . '/content_files')) { Loader::library('file/importer'); $fh = new FileImporter(); $contents = Loader::helper('file')->getDirectoryContents($this->getPackagePath() . '/content_files'); foreach ($contents as $filename) { $f = $fh->import($this->getPackagePath() . '/content_files/' . $filename, $filename); } } // now we parse the content.xml if it exists. Loader::library('content/importer'); $ci = new ContentImporter(); $ci->importContentFile($this->getPackagePath() . '/content.xml'); } }
/** * @return FileList */ public function __construct() { parent::__construct('js', array('js')); }