/** * Executa testes de dono de arquivo e permissão de escrita e leitura. * @return Array */ public function getTests() { // Seta erro como falso. $result['logs']['error'] = 0; // Registra indice de mensagem no array. $result['logs']['message'] = ''; // Pega array do setup.conf do Zend_Registry. $config = Zend_Registry::get('config'); $classes = Snep_SoundFiles_Manager::getClasses(); foreach ($classes as $classe) { $date[$classe['directory']] = array('exists' => 1, 'writable' => 1, 'readable' => 1); } $this->paths = isset($date) ? $date : false; if ($this->paths) { foreach ($this->paths as $path => $logs) { // Verifica existência do arquivo. if (!file_exists($path)) { // Não existindo concatena mensagem de erro. $result['logs']['message'] .= Zend_Registry::get("Zend_Translate")->translate(" {$path} does not exists.") . "\n"; // Seta erro como verdadeiro. $result['logs']['error'] = 1; // Existindo arquivo } else { if (!file_exists($path . '/backup') || !file_exists($path . '/tmp')) { $result['logs']['message'] .= Zend_Registry::get("Zend_Translate")->translate(" Subfolders not found ") . " tmp/ and backup/" . Zend_Registry::get("Zend_Translate")->translate(" in ") . $path . "\n"; $result['logs']['error'] = 1; } // Verifica se existe exigência de verificação de escrita. if ($logs['writable']) { if (!is_writable($path)) { // Não existindo concatena mensagem de erro. $result['logs']['message'] .= Zend_Registry::get("Zend_Translate")->translate(" {$path} does not have permition to be modified.") . "\n"; // Seta erro como verdadeiro. $result['logs']['error'] = 1; } } // Verifica se existe exigência de verificação de leitura if ($logs['readable']) { if (!is_readable($path)) { // Não existindo concatena mensagem de erro. $result['logs']['message'] .= Zend_Registry::get("Zend_Translate")->translate(" {$path} does not have permition to be viewed.") . "\n"; // Seta erro como verdadeiro. $result['logs']['error'] = 1; } } } // Transforma newline em br $result['logs']['message'] = $result['logs']['message']; } } return $result['logs']; }
public function getClassFiles($class) { $allClasses = Snep_SoundFiles_Manager::getClasses(); $classesFolder = array(); foreach ($allClasses as $id => $xclass) { $classesFolder[$id] = $id; } if (file_exists($class['directory'])) { $allFiles = array(); $files = array(); foreach (scandir($class['directory']) as $file) { if (!preg_match("/^\\.+.*/", $file) && !in_array($file, $classesFolder)) { if (preg_match("/^backup+.*/", $file)) { foreach (scandir($class['directory'] . '/' . $file) as $backup) { if (!preg_match("/^\\.+.*/", $backup)) { // $files[] = $class['directory'] .'/backup/'. $backup; } } } elseif (preg_match("/^tmp+.*/", $file)) { foreach (scandir($class['directory'] . '/' . $file) as $tmp) { if (!preg_match("/^\\.+.*/", $tmp)) { // $files[] = $class['directory'] .'/tmp/'. $tmp; } } } else { $files[$file] = $class['directory'] . '/' . $file; //$allFiles[$file] = $file; } } } $resultado = array(); foreach ($files as $name => $file) { $resultado[$name] = Snep_SoundFiles_Manager::get($name); $resultado[$name]['full'] = $file; } return $resultado; } }
public function removefileAction() { $file = $this->_request->getParam('file'); $class = $this->_request->getParam('class'); $className = Snep_SoundFiles_Manager::getClasse($class); $files = Snep_SoundFiles_Manager::getClassFiles($className); foreach ($files as $name => $path) { if ($file == $name) { exec("rm {$path['full']} "); if (!file_exists($path['full'])) { Snep_SoundFiles_Manager::remove($name, $path['secao']); } } } $this->_redirect($this->getRequest()->getControllerName() . "/file/class/{$class}"); }
public function restoreAction() { $file = $this->_request->getParam('file'); if ($file) { $result = Snep_SoundFiles_Manager::verifySoundFiles($file, true); if ($result['fullpath'] && $result['backuppath']) { try { exec("mv {$result['backuppath']} {$result['fullpath']} "); } catch (Exception $e) { throw new ErrorException($this->view->translate("Unable to restore file")); } } } $this->_redirect($this->getRequest()->getControllerName()); }