Beispiel #1
0
 public function addfileAction()
 {
     $className = $this->_request->getParam('class');
     $class = Snep_SoundFiles_Manager::getClasse($className);
     $this->view->breadcrumb = Snep_Breadcrumb::renderPath(array($this->view->translate("Music on Hold Sessions"), $this->view->translate("Add File"), $className));
     $form = new Snep_Form(new Zend_Config_Xml("modules/default/forms/sound_files.xml"));
     $file = new Zend_Form_Element_File('file');
     $file->setLabel($this->view->translate('Sound File'))->addValidator(new Zend_Validate_File_Extension(array('wav', 'gsm')))->removeDecorator('DtDdWrapper')->setIgnore(true);
     $form->addElement($file);
     $section = new Zend_Form_Element_Hidden('section');
     $section->setValue($class['name']);
     $form->addElement($section);
     $form->removeElement('type');
     if ($this->_request->getPost()) {
         $class = Snep_SoundFiles_Manager::getClasse($_POST['section']);
         $form_isValid = $form->isValid($_POST);
         $dados = $this->_request->getParams();
         $invalid = array('â', 'ã', 'á', 'à', 'ẽ', 'é', 'è', 'ê', 'í', 'ì', 'ó', 'õ', 'ò', 'ú', 'ù', 'ç', " ", '@', '!');
         $valid = array('a', 'a', 'a', 'a', 'e', 'e', 'e', 'e', 'i', 'i', 'o', 'o', 'o', 'u', 'u', 'c', "_", '_', '_');
         $originalName = str_replace($invalid, $valid, $_FILES['file']['name']);
         $files = Snep_SoundFiles_Manager::get($originalName);
         if ($files) {
             $file->addError($this->view->translate("File already exists"));
             $form_isValid = false;
         }
         if ($form_isValid) {
             $uploadName = $_FILES['file']['tmp_name'];
             $arq_tmp = $class['directory'] . "/tmp/" . $originalName;
             $arq_dst = $class['directory'] . "/" . $originalName;
             $arq_bkp = $class['directory'] . "/backup/" . $originalName;
             $arq_orig = $class['directory'] . "/" . $originalName;
             exec("mv {$uploadName} {$arq_tmp}");
             if ($_POST['gsm']) {
                 $fileNe = basename($arq_dst, '.wav');
                 exec("sox {$arq_tmp} -r 8000 {$fileNe}.gsm");
                 $originalName = basename($originalName, '.wav') . ".gsm";
             } else {
                 exec("sox {$arq_tmp} -r 8000 -c 1 -e signed-integer -b 16 {$arq_dst}");
             }
             if (file_exists($arq_dst) || file_exists($fileNe)) {
                 Snep_SoundFiles_Manager::addClassFile(array('arquivo' => $originalName, 'descricao' => $dados['description'], 'data' => new Zend_Db_Expr('NOW()'), 'tipo' => 'MOH', 'secao' => $dados['section']));
             }
             $this->_redirect($this->getRequest()->getControllerName() . "/file/class/{$className}/");
         }
     }
     $this->view->form = $form;
 }
Beispiel #2
0
 public function syncFiles()
 {
     $db = Zend_Registry::get('db');
     $select = $db->select()->from('sounds')->where('sounds.tipo = ?', 'MOH');
     try {
         $stmt = $db->query($select);
         $sounds = $stmt->fetchAll();
     } catch (Exception $e) {
         return false;
     }
     $_sound = array();
     foreach ($sounds as $sound) {
         $_sound[$sound['arquivo']] = $sound['arquivo'];
     }
     $allClasses = Snep_SoundFiles_Manager::getClasses();
     $classesFolder = array();
     foreach ($allClasses as $id => $xclass) {
         $classesFolder[$id]['name'] = $xclass['name'];
         $classesFolder[$id]['directory'] = $xclass['directory'];
         if (file_exists($xclass['directory'])) {
             $allFiles = array();
             $files = array();
             foreach (scandir($xclass['directory']) as $thisClass => $file) {
                 if (!preg_match("/^\\.+.*/", $file)) {
                     if (!preg_match('/^tmp+.*/', $file)) {
                         if (!preg_match('/^backup+.*/', $file)) {
                             if (!in_array($file, array_keys($allClasses))) {
                                 if (!in_array($file, $_sound)) {
                                     $newfile = array('arquivo' => $file, 'descricao' => $file, 'data' => new Zend_Db_Expr('NOW()'), 'tipo' => 'MOH', 'secao' => $id);
                                     Snep_SoundFiles_Manager::addClassFile($newfile);
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     return true;
 }