Example #1
0
 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());
 }
Example #2
0
 /**
  * Вывод списка файлов.
  */
 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))));
     }
 }
Example #3
0
 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;
     }
 }
Example #5
0
	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;
	
	}
Example #6
0
 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;
 }
Example #7
0
 /**
  * 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;
 }
Example #9
0
 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;
 }
Example #10
0
 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;
 }
Example #12
0
 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());
         }
     }
 }
Example #13
0
             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();
        ?>
Example #15
0
 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;
 }
Example #16
0
 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;
 }
Example #17
0
 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()));
         }
     }
 }
Example #18
0
<?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)) {
Example #19
0
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;
 }
Example #21
0
 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);
     }
 }
Example #22
0
}
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">
	
Example #23
0
				</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());
Example #24
0
 public function getFilesArchive()
 {
     Loader::model('file_list');
     $vh = Loader::helper("validation/identifier");
     $archive = $vh->getString();
     FileList::exportArchive($archive);
     return $archive;
 }
Example #25
0
 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;
?>
Example #28
0
 /**
  * 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);
 }
Example #29
0
 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');
     }
 }
Example #30
0
 /**
  * @return	FileList
  */
 public function __construct()
 {
     parent::__construct('js', array('js'));
 }