예제 #1
0
파일: Sounds.php 프로젝트: rootzig/SNEP
 /**
  * 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'];
 }
예제 #2
0
파일: Manager.php 프로젝트: rootzig/SNEP
 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;
     }
 }
예제 #3
0
 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}");
 }
예제 #4
0
 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());
 }