/** * 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']; }
/** * Add Sound File */ public function addAction() { $this->view->breadcrumb = Snep_Breadcrumb::renderPath(array($this->view->translate("Music on Hold Sessions"), $this->view->translate("Add"))); $form = new Snep_Form(new Zend_Config_Xml("modules/default/forms/music_on_hold.xml")); $form->getElement('base')->setAttrib('readonly', true); if ($this->_request->getPost()) { $class = $_POST; $classes = Snep_SoundFiles_Manager::getClasses(); $form_isValid = $form->isValid($_POST); if ($class['base'] != '/var/lib/asterisk/moh/') { $form->getElement('name')->addError($this->view->translate('Invalid Path')); $form_isValid = false; } if (file_exists($class['directory'])) { $form->getElement('directory')->addError($this->view->translate('Directory already exists')); $form_isValid = false; } foreach ($classes as $name => $item) { if ($item['name'] == $class['name']) { $form->getElement('name')->addError($this->view->translate('Music on hold class already exists')); $form_isValid = false; } $fullPath = $class['base'] . $class['directory']; if ($item['directory'] == $fullPath) { $form->getElement('directory')->addError($this->view->translate('Directory already exists')); $form_isValid = false; } } if ($form_isValid) { $_POST['directory'] = $_POST['base'] . $_POST['directory']; Snep_SoundFiles_Manager::addClass($_POST); $this->_redirect($this->getRequest()->getControllerName()); } } $this->view->form = $form; }
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; } }