/** * Get file entity or create it if dont exist. * @param string $name File name * @param boolean $create Create if dont exist? * @return driverFileManagerFile File entity or FALSE if fail. */ public function getFile($name, $create = false) { if ($this->isFile()) { return false; } driverFileManager::clearName($name); $files = $this->getChilds($name); if (count($files) > 0) { foreach ($files as $file) { return $file; } } if ($create) { $params = array('nodetype' => 'file', 'isfolder' => false, 'path' => $this->path . $name, 'realpath' => $this->realpath . $name, 'parent' => $this->id, 'mimetype' => driverFileManager::getMimeByExt($name)); $nresp = driverCommand::run('addNode', $params); $resp = false; if ($nresp['ok']) { $preResp = new stdClass(); $preResp->isfolder = $params['isfolder']; $preResp->path = $params['path']; $preResp->realpath = $params['realpath']; $preResp->parent = $params['parent']; $preResp->mimetype = $params['mimetype']; $preResp->id = $nresp['nid']; $resp = new driverFileManagerFile($preResp); $resp->open('a+'); $resp->close(); } return $resp; } return false; }
public static function runMe(&$params, $debug = true) { $path = driverCommand::run('modGetPath', array('name' => 'pharinix_mod_file_manager')); $path = $path['path']; include_once $path . 'drivers/fileManager.php'; echo '<legend>' . __('Testing File Manager Driver') . '</legend>'; echo self::getLegend(__('Message legend')); echo self::getSuccess(__('This is a example of success message')); echo self::getFail(__('This is a example of fail message')); self::$cntFail = 0; self::$cntOk = 0; // START if (!is_dir('var/pfm_test/')) { if (!@mkdir('var/pfm_test/')) { echo self::getFail(__('I can\'t make \'var/pfm_test/\' folder')); } } echo self::getLegend(__('Adding a root folder')); $resp = driverFileManager::mount('var/pfm_test/', '/pfm_test/'); if ($resp == null) { echo self::getFail(__('I can\'t mount \'/pfm_test/\' folder')); } else { echo self::getSuccess(__('Ok')); } echo self::getLegend(__('Geting a root folder')); $rootFolder = driverFileManager::getByPath('/pfm_test/'); if ($rootFolder == null) { echo self::getFail(__('I can\'t get \'/pfm_test/\' folder')); } else { echo self::getSuccess(__('Ok')); if ($rootFolder->isRootFolder()) { echo self::getSuccess(__('Entity is a root folder')); } else { echo self::getFail(__('Entity is not a root folder')); } } echo self::getLegend(__('Adding a 1st level folder')); $fLevel1 = $rootFolder->makeDir('level 1'); if ($fLevel1 == null) { echo self::getFail(__('I can\'t make \'/pfm_test/level 1/\' folder')); } else { if (is_dir('var/pfm_test/level 1/')) { echo self::getSuccess(__('Ok')); if (!$fLevel1->isRootFolder()) { echo self::getSuccess(__('Entity is NOT a root folder')); } else { echo self::getFail(__('Entity is a root folder')); } if (!$fLevel1->isFolder()) { echo self::getFail(__('Entity is NOT a folder')); } else { echo self::getSuccess(__('Entity is a folder')); } } else { echo self::getFail(__('Real folder of \'/pfm_test/level 1/\' it\'s not created (\'var/pfm_test/level 1/\').')); } } echo self::getLegend(__('Geting a 1st level folder')); $fLevel1 = driverFileManager::getByPath('/pfm_test/level 1/'); if ($fLevel1 == null) { echo self::getFail(__('I can\'t make \'/pfm_test/level 1/\' folder')); } else { if (is_dir('var/pfm_test/level 1/')) { echo self::getSuccess(__('Ok')); if (!$fLevel1->isRootFolder()) { echo self::getSuccess(__('Entity is NOT a root folder')); } else { echo self::getFail(__('Entity is a root folder')); } if (!$fLevel1->isFolder()) { echo self::getFail(__('Entity is NOT a folder')); } else { echo self::getSuccess(__('Entity is a folder')); } } else { echo self::getFail(__('Real folder of \'/pfm_test/level 1/\' it\'s not created (\'var/pfm_test/level 1/\').')); } } echo self::getLegend(__('Adding a 2nd & 3st level folder')); $fLevel2 = $fLevel1->makeDir('level 2'); if ($fLevel2 == null) { echo self::getFail(__('I can\'t make \'/pfm_test/level 1/level 2/\' folder')); } else { if (is_dir('var/pfm_test/level 1/level 2/')) { echo self::getSuccess(__('2nd Ok')); if (!$fLevel2->isRootFolder()) { echo self::getSuccess(__('Entity is NOT a root folder')); } else { echo self::getFail(__('Entity is a root folder')); } if (!$fLevel2->isFolder()) { echo self::getFail(__('Entity is NOT a folder')); } else { echo self::getSuccess(__('Entity is a folder')); } } else { echo self::getFail(__('Real folder of \'/pfm_test/level 1/level 2/\' it\'s not created (\'var/pfm_test/level 1/level 2/\').')); } } $fLevel3 = $fLevel2->makeDir('level 3'); if ($fLevel3 == null) { echo self::getFail(__('I can\'t make \'/pfm_test/level 1/level 2/level 3/\' folder')); } else { if (is_dir('var/pfm_test/level 1/level 2/level 3/')) { echo self::getSuccess(__('3st Ok')); if (!$fLevel3->isRootFolder()) { echo self::getSuccess(__('Entity is NOT a root folder')); } else { echo self::getFail(__('Entity is a root folder')); } if (!$fLevel3->isFolder()) { echo self::getFail(__('Entity is NOT a folder')); } else { echo self::getSuccess(__('Entity is a folder')); } } else { echo self::getFail(__('Real folder of \'/pfm_test/level 1/level 2/level 3/\' it\'s not created (\'var/pfm_test/level 1/level 2/level 3/\').')); } } echo self::getLegend(__('Delete empty 3st & 2nd level folder')); $resp = driverFileManager::rm('/pfm_test/level 1/level 2/level 3/'); if (!$resp) { echo self::getFail(__('I can\'t remove \'/pfm_test/level 1/level 2/level 3/\' folder')); } else { if (is_dir('var/pfm_test/level 1/level 2/level 3/')) { echo self::getFail(__('Real folder of \'/pfm_test/level 1/level 2/level 3/\' it\'s not removed (\'var/pfm_test/level 1/level 2/level 3/\').')); } else { echo self::getSuccess(__('3st Ok')); } } $resp = driverFileManager::rm('/pfm_test/level 1/level 2/'); if (!$resp) { echo self::getFail(__('I can\'t remove \'/pfm_test/level 1/level 2/\' folder')); } else { if (is_dir('var/pfm_test/level 1/level 2/')) { echo self::getFail(__('Real folder of \'/pfm_test/level 1/level 2/\' it\'s not removed (\'var/pfm_test/level 1/level 2/\').')); } else { echo self::getSuccess(__('2nd Ok')); } } echo self::getLegend(__('Delete empty 1st level folder')); $resp = driverFileManager::rm('/pfm_test/level 1/'); if (!$resp) { echo self::getFail(__('I can\'t remove \'/pfm_test/level 1/\' folder')); } else { if (is_dir('var/pfm_test/level 1/')) { echo self::getFail(__('Real folder of \'/pfm_test/level 1/\' it\'s not removed (\'var/pfm_test/level 1/\').')); } else { echo self::getSuccess(__('Ok')); } } echo self::getLegend(__('Delete empty root folder')); $resp = driverFileManager::rm('/pfm_test/'); if (!$resp) { echo self::getFail(__('I can\'t remove \'/pfm_test/\' folder')); } else { if (is_dir('var/pfm_test/')) { echo self::getFail(__('Real folder of \'/pfm_test/\' it\'s not removed (\'var/pfm_test/\').')); } else { echo self::getSuccess(__('Ok')); } } echo self::getLegend(__('Delete multilevel folder')); if (!is_dir('var/pfm_test/')) { if (!@mkdir('var/pfm_test/')) { echo self::getFail(__('I can\'t make \'var/pfm_test/\' folder')); } } // Make test structure $resp = driverFileManager::mount('var/pfm_test/', '/pfm_test/'); $rootFolder = driverFileManager::getByPath('/pfm_test/'); $fLevel1 = $rootFolder->makeDir('level 1'); $fLevel2 = $fLevel1->makeDir('level 2'); $fLevel3 = $fLevel2->makeDir('level 3'); // Delete from root $rootFolder->rm('level 1', true); $childs = $rootFolder->getChilds('level 1'); if (count($childs) > 0) { echo self::getFail(__('Level 1 exist yet.')); } else { echo self::getSuccess(__('Ok')); } echo self::getLegend(__('Add file')); $rootFolder = driverFileManager::getByPath('/pfm_test/'); $file = $rootFolder->getFile('test.txt', true); if ($file === false) { echo self::getFail(__('I cant create test.txt file.')); } else { echo self::getSuccess(__('Ok')); } $rootFolder->rm($file); driverFileManager::rm('/pfm_test/'); echo self::getLegend(__('Test driverFileManager::getMimeByExt')); $resp = driverFileManager::getMimeByExt('hi.txt'); if ($resp == 'text/plain') { echo self::getSuccess(__('Ok') . ': text/plain'); } else { echo self::getFail(__('Fails') . ': text/plain'); } $resp = driverFileManager::getMimeByExt('hi.mp4'); if ($resp == 'video/mp4') { echo self::getSuccess(__('Ok') . ': video/mp4'); } else { echo self::getFail(__('Fails') . ': video/mp4'); } $resp = driverFileManager::getMimeByExt('hi.wav'); if ($resp == 'audio/x-wav') { echo self::getSuccess(__('Ok') . ': audio/x-wav'); } else { echo self::getFail(__('Fails') . ': audio/x-wav'); } // END: The system must be clean $final = self::getLegend(sprintf(__('Executed %s tests OK, and %s FAILS.'), self::$cntOk, self::$cntFail)); echo '<div class="well">'; if (self::$cntFail > 0) { echo self::getFail($final); } else { echo self::getSuccess($final); } echo '</div>'; }