$value) { $opcForm = array(); foreach ($value as $kQuest => $vQuest) { if (!$kQuest) { $arQuetoes[$key] = $vQuest; } else { $opcForm[] = $vQuest; } } $arOpcoes[$key] = $opcForm; } $table = GetTable($quantidadeQuestoes, $quantidadeOpcoes, 0, $arQuetoes, $arOpcoes, $arAudio, $arTipo, $arTecla); if (!isset($_FORMS["pp_status"])) { $_FORMS["pp_status"] = 1; } foreach ($fieldsTable as $key) $valuesForm[$key] = $_FORMS[$key]; /* * Validação do form pp_nome, pp_data_inicio, pp_data_fim, pp_audio_saudacao, pp_audio_encerramento, pp_status */ $pp_nome = trim($_FORMS["pp_nome"]); $pp_audio_saudacao = trim($_FILES["pp_audio_saudacao"]["name"]); $pp_audio_encerramento = trim($_FILES["pp_audio_encerramento"]["name"]); $pp_status = isset($_FORMS["pp_status"]); if (empty($pp_nome)) { $msgErro = "Informe um nome para pesquisa!"; } else if (!$pp_audio_saudacao || (GetFileExt($pp_audio_saudacao) <> "mp3")) { $msgErro = "Informe um arquivo mp3 para o Áudio de Saudação!"; } else if (!$pp_audio_encerramento || (GetFileExt($pp_audio_encerramento) <> "mp3")) { $msgErro = "Informe um arquivo mp3 para o Áudio de Encerramento!"; } if (empty($msgErro)) { $valuesForm["pp_audio_saudacao"] = trim($_FILES["pp_audio_saudacao"]["name"]); $valuesForm["pp_audio_encerramento"] = trim($_FILES["pp_audio_encerramento"]["name"]); $valuesForm["org_id"] = $org_id; $where = " where pp_id = '$ppId'"; if ($ppId) { $msgErro = "Recurso não implementado. Se necessário alterações deverá recria-la!"; } else { $query = "begin"; $result = pg_query($dbcon, $query); if ($result) { $result = InsertDb($dbcon, 'pbx_pesquisa', $valuesForm, "pbx_pesquisa_pp_id_seq"); $pp_id = $result; } $tmpName = $_FILES['pp_audio_saudacao']['tmp_name']; $nameFile = $_FILES['pp_audio_saudacao']['name']; $nameFileNew = RemoveEspaco("pesquisa_audio_sauda_$pp_id.mp3"); if ($result) { $result = MoveFile($tmpName, $nameFile, $nameFileNew, true, $msgErro); } $tmpName = $_FILES['pp_audio_encerramento']['tmp_name']; $nameFile = $_FILES['pp_audio_encerramento']['name']; $nameFileNew = RemoveEspaco("pesquisa_audio_encerra_$pp_id.mp3"); if ($result) { MoveFile($tmpName, $nameFile, $nameFileNew, true, $msgErro); $result = ($msgErro == ''); } if ($result) { $result = InsertQuestoes($dbcon, $pp_id, $arQuetoes, $arOpcoes, $arAudio, $arAudioName, $arTipo, $arTecla, $org_id); } if ($result) { $mesRet = explode(":", $result); $result = $mesRet[0] == "[OK]"; if (!$result) { $msgErro = $mesRet[1]; } } if ($result) { $query = "commit"; $result = pg_query($dbcon, $query); $table = GetPesquisa($pp_id); $jsStartup[] = "alert('Pesquisa inserida com sucesso!'); "; } else { $pp_id = 0; $query = "rollback"; $result = pg_query($dbcon, $query); } } if ($result == -1) { $msgErro = "Não foi possível atualizar o banco de dados!"; } } } if ($msgErro) { $jsStartup[] = "alert('$msgErro'); "; } $jsJQuery[] = sprintf("\$('#insereQuestoes').css(\"visibility\", \"%s\");", $mostraIncluiQuetoes ? "visible" : "hidden"); $valuesForm['acaoUser'] = "Gravar"; $valuesForm['pp_id'] = $ppId; if (!$numQuest) { $table = "Não há questões incluidas!"; } foreach ($valuesForm as $key => $value) { $smarty->assign($key, $value); } $smarty->assign("msg", $msgErro); $smarty->assign("questoes", $table); GetTemplate($smarty, 'pesquisa/pesquisaCad.htm'); function MostraInclusaoQuestoes($ppId) { return !$ppId; } function GetTable($quantidadeQuestoes, $quantidadeOpcoes, $ppId = 0, $arQuetoes = [], $arOpcoes = [], $arAudio = [], $arTipo = [], $arTecla = [], $arQuetoesId = []) { $table = " "; $linhaQuest = ""; $linhaOpc = ""; $qst_descricao = ""; $criaQuestoes = 0; $criaOpcoes = 0; $pq_display = 0; $po_display = 0; $existeQuet = count($arQuetoes); while ($criaQuestoes <= $quantidadeQuestoes) { $qst_descricao = $existeQuet ? $arQuetoes[$criaQuestoes] : ""; $idQuestao = "ppQuestao_$criaQuestoes"; $idAudio = "ppAudio_$criaQuestoes"; $tipoQuestao = ''; $audio = $arAudio[$criaQuestoes]; $imgAudio = !$audio ? '' : ""; $pqId = !$arQuetoesId ? 0 : $arQuetoesId[$criaQuestoes]; $imgAudio = $imgAudio ? "$imgAudio" : ""; $imgDel = ""; $pq_display++; $linhaQuest .= ""; $linhaOpc = ""; $criaQuestoes++; } $GLOBALS["numQuest"] = $criaQuestoes; return $table . $linhaQuest . "
Informe em sequência Questões com seus respctivos Áudios e Opções!
$pq_display) $imgDel
  $imgAudio $tipoQuestao
"; $criaOpcoes = 0; $po_display = 0; $arOpc = $arOpcoes[$criaQuestoes]; while ($criaOpcoes <= $quantidadeOpcoes) { $idx = $criaOpcoes + 1; $idOpcao = "opcDescricao_" . $criaQuestoes . "_" . $criaOpcoes; $idTecla = "opcTecla_" . $criaQuestoes . "_" . $criaOpcoes; $opc_descricao = $existeQuet ? $arOpc[$criaOpcoes] : ""; $opc_tecla = $arTecla ? $arTecla[$criaQuestoes][$criaOpcoes] : ""; $po_display++; $linhaOpc .= ""; $criaOpcoes++; } $linhaQuest .= $linhaOpc . "
     $po_display)    
"; } function InsertQuestoes($db, $pp_id, $arQuetoes, $arOpcoes, $arAudio, $arAudioName, $arTipo, $arTecla, $org_id) { /* * Peqga o id da Pesquisa Inserida */ if (!$pp_id) { return "[ERRO]: Não foi possível gerar o identificador da pesquisa!"; } $numQuest = 0; foreach ($arQuetoes as $kQuest => $vQuest) { /* * Questões em branco */ $vQuest = trim($vQuest); if (empty($vQuest) && ($vQuest != '0')) { break; } $audio = trim($arAudioName[$kQuest]); if (empty($audio)) { return "[ERRO]: É necessário informar um áudio para cada questão!"; } if (strtoupper(GetFileExt($audio)) != 'MP3') { return "[ERRO]: É necessário informar um áudio para cada questão!"; } $queryQuest = "INSERT INTO pbx_pesquisa_questoes(pp_id, pq_display, pq_questao, pq_tipo, pq_audio, user_reg, org_id) VALUES(%s,%s,%s,%s,%s,%s,%s)"; $queryQuest = sprintf($queryQuest, NullDb($pp_id), NullDb(($kQuest + 1)), NullDb($vQuest), '1', NullDb($audio), NullDb(GetLogin()), $org_id); $result = pg_query($db, $queryQuest); if (!$result) { "[ERRO]: Não foi possível inserir a questão!"; } /* * Id da Questão */ $pq_id = GetSequenciaDb($db, "pbx_pesquisa_questoes_pq_id_seq"); if (!$pq_id) { return "[ERRO]: Não foi possível gerar o identificador da questão!"; } /* * Tenta Inserir o audio */ $audioTmp = trim($arAudio[$kQuest]); $nameFileNew = Sprintf("pesquisa_questao_%s_%s.mp3", $pp_id, $pq_id); $msgErro = ''; MoveFile($audioTmp, $audio, $nameFileNew, true, $msgErro); if ($msgErro) { return "[ERRO]: Não foi possível gravar o arquivo de áudio: $audio!"; } $numOpc = 0; $confTcl = array(); foreach ($arOpcoes[$kQuest] as $keyOpc => $valueOpc) { $po_display = $keyOpc + 1; $opc = trim($valueOpc); $tcl = trim($arTecla[$kQuest][$keyOpc]); if ($numOpc && (array_search($tcl, $confTcl) !== false)) { return "[ERRO]: A opção a ser digitada não pode repetir por questão!"; } $confTcl[] = $tcl; if ($tcl && !is_numeric($tcl)) { return "[ERRO]: A opção a ser digitada tem que ser um número!"; } if (trim($opc) == '') { break; } $queryOpc = "INSERT INTO pbx_pesquisa_opcoes(pp_id, pq_id, po_display, po_tecla, po_opcao, user_reg, org_id) VALUES(%s,%s,%s,%s,%s,%s,%s)"; $queryOpc = sprintf($queryOpc, $pp_id, $pq_id, $po_display, NullDb($tcl), NullDb($opc), NullDb(GetLogin()), $org_id); $result = pg_query($db, $queryOpc); if (!$result) { return "[ERRO]: Não foi possível inserir a opção!"; } $numOpc++; } if ($numOpc < 2) { return "[ERRO]: É necessário informar pelo menos duas opções por questão!"; } $numQuest++; } if (!$numQuest) { return "[ERRO]: Para inserir uma pesquisa é necessário pelo menos uma questão!"; } echo ""; return "[OK]: Pesquisa inserida com sucesso!"; } function GetTipoQuestao($questId, $tipo = 0) { $db = $GLOBALS["dbcon"]; $select = !$tipo ? 'selected="selected"' : ''; $ret = sprintf('\n"; return $ret; } function GetPesquisa($idOper) { $valuesForm = &$GLOBALS["valuesForm"]; $fieldsTable = &$GLOBALS["fieldsTable"]; $quantidadeQuestoes = $GLOBALS["quantidadeQuestoes"]; $quantidadeOpcoes = $GLOBALS["quantidadeOpcoes"]; $dbcon = $GLOBALS["dbcon"]; $query = "SELECT pp_id, pp_nome, pp_audio_saudacao, pp_audio_encerramento, pp_status, pp_data FROM pbx_pesquisa WHERE pp_id = $idOper"; $result = pg_query($dbcon, $query); while ($dados = pg_fetch_array($result)) { foreach ($fieldsTable as $key) { $valuesForm[$key] = $dados[$key]; } $audio = $dados["pp_audio_saudacao"]; $imgAudio = ""; $imgAudio = "$imgAudio"; $valuesForm["audioSauda"] = $imgAudio; $audio = $dados["pp_audio_encerramento"]; $imgAudio = ""; $imgAudio = "$imgAudio"; $valuesForm["audioEncerra"] = $imgAudio; } $arQuetoes = array(); $arQuetoesId = array(); $arOpcoes = array(); $arAudio = array(); $arTipo = array(); $arTecla = array(); GetQuestoesDb($dbcon, $idOper, $arQuetoes, $arOpcoes, $arAudio, $arTipo, $arTecla, $arQuetoesId); return GetTable($quantidadeQuestoes, $quantidadeOpcoes, $idOper, $arQuetoes, $arOpcoes, $arAudio, $arTipo, $arTecla, $arQuetoesId); } function GetQuestoesDb($dbcon, $idOper, &$arQuetoes, &$arOpcoes, &$arAudio, &$arTipo, &$arTecla, &$arQuetoesId) { $queryQuest = "SELECT pp_id, pq_id, pq_display, pq_questao, pq_tipo, pq_audio, pq_status FROM pbx_pesquisa_questoes WHERE pp_id = '$idOper' ORDER BY pq_id"; $resultQuest = pg_query($dbcon, $queryQuest); while ($dadosQuest = pg_fetch_array($resultQuest)) { $pqId = $dadosQuest["pq_id"]; $pqQuestao = $dadosQuest["pq_questao"]; $pqAudio = $dadosQuest["pq_audio"]; $pqTipo = $dadosQuest["pq_tipo"]; $arQuetoes[] = $pqQuestao; $arAudio[] = $pqAudio; $arTipo[] = $pqTipo; $arQuetoesId[] = $pqId; $queryOpcao = "SELECT pp_id, pq_id, po_id, po_display, po_tecla, po_opcao, po_status FROM pbx_pesquisa_opcoes WHERE pp_id = '$idOper' AND pq_id = '$pqId' ORDER BY po_id"; $resultOpcao = pg_query($dbcon, $queryOpcao); $arOpc = array(); $arTcl = array(); while ($dadosOpc = pg_fetch_array($resultOpcao)) { $poOpc = $dadosOpc["po_opcao"]; $arOpc[] = $poOpc; $arTcl[] = $dadosOpc["po_tecla"]; } $arOpcoes[] = $arOpc; $arTecla[] = $arTcl; } } $jsJQuery[] = "\$(document).ready(function(){ $('.animate').click(function(){ var \$box = \$('.box'); if(\$box.is(':visible')){ \$box.slideToggle('slow'); $('#animate').attr(\"src\", \"imgSite/expand.jpg\"); $('#labelRotas').text(\" Exibir Questões\"); } else{ $('#animate').attr(\"src\", \"imgSite/collapse.jpg\"); $('#labelRotas').text(\" Ocultar Questões\"); \$box.slideToggle('slow'); } }); }); "; $cssBlock = '';