Location: PHPKode > projects > Nivelamento > nivelamento/admin/excluirprova.php
<?php
// $Id: excluirprova.php,v 1.5 2007/03/24 14:41:40 marcellobrandao Exp $
//  ------------------------------------------------------------------------ //
//                XOOPS - PHP Content Management System                      //
//                    Copyright (c) 2000 XOOPS.org                           //
//                       <http://www.xoops.org/>                             //
//  ------------------------------------------------------------------------ //
//  This program is free software; you can redistribute it and/or modify     //
//  it under the terms of the GNU General Public License as published by     //
//  the Free Software Foundation; either version 2 of the License, or        //
//  (at your option) any later version.                                      //
//                                                                           //
//  You may not change or alter any portion of this comment or credits       //
//  of supporting developers from this source code or any supporting         //
//  source code which is considered copyrighted (c) material of the          //
//  original comment or credit authors.                                      //
//                                                                           //
//  This program is distributed in the hope that it will be useful,          //
//  but WITHOUT ANY WARRANTY; without even the implied warranty of           //
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            //
//  GNU General Public License for more details.                             //
//                                                                           //
//  You should have received a copy of the GNU General Public License        //
//  along with this program; if not, write to the Free Software              //
//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA //
//  ------------------------------------------------------------------------ //
/**
 * excluirprova.php, Excluir a prova 
 * 
 * 
 * 
 * @author Marcello Brandão <hide@address.com>
 * @version 1.0
 * @package nivelamento/admin
 */
/**
 * Arquivo de cabeçalho da administração do Xoops
 */
include '../../../include/cp_header.php';

/**
 * Arquivo que contém várias funções interessantes , principalmente a de
 * criar o cabeçalho do menu com as abinhas
 */
include_once(XOOPS_ROOT_PATH."/Frameworks/art/functions.admin.php");

/**
 * Inclusões das classes do módulo  
 */
include("../class/nivelamento_perguntas.php");
include("../class/nivelamento_provas.php");
include("../class/nivelamento_respostas.php");
include("../class/nivelamento_resultados.php");
include("../class/nivelamento_documentos.php");
include_once("../../../class/criteria.php");

/**
 * Pegando cod_prova do formulário e uid do aluno da session 
 */
$cod_prova = $_POST['cod_prova'];
$segunda_vez = $_POST['segunda_vez'];

/**
 * Ao excluir uma prova você precisa excluir as perguntas ligadas à ela, os
 * documentos, as respostas e os resultados portanto é algo super sério
 * sem volta. Por isso vamos usar uma confirmação e confirmando excluir tudo.
 */
if ($segunda_vez==1){
    
    /**
     * Função que desenha o cabeçalho da administração do Xoops
     */
    xoops_cp_header();    
       
    /**
     * Verificação de segurança validando o TOKEN 
     */
    if (!($GLOBALS['xoopsSecurity']->check())){
           redirect_header($_SERVER['HTTP_REFERER'], 5, _MD_NIV_TOKENEXPIRED);
       }
     /**
     * Criação das Fábricas de objetos que vamos precisar 
     */
    $fabrica_de_perguntas   = new Xoopsnivelamento_perguntasHandler($xoopsDB);
    $fabrica_de_provas      = new Xoopsnivelamento_provasHandler($xoopsDB);
    $fabrica_de_respostas   = new Xoopsnivelamento_respostasHandler($xoopsDB);
    $fabrica_de_resultados  = new Xoopsnivelamento_resultadosHandler($xoopsDB);
    $fabrica_de_documentos  = new Xoopsnivelamento_documentosHandler($xoopsDB);

    /**
     * Criação de objetos de critério para passar para as Fábricas 
     */
    $criteria = new Criteria ('cod_prova',$cod_prova);

    /**
     * Buscamos na fábrica quantos documentos vamos excluir, os excluímos
     * e então damos uma mensagem informando quantos apagamos
     */
    $qtd_documentos_apagados = $fabrica_de_documentos->getCount($criteria);
    $fabrica_de_documentos->deleteAll($criteria);
    echo $qtd_documentos_apagados._MD_NIV_DOCUMENTOSPAGADOS." <br />";

    /**
     * Buscamos na fábrica quantos resultados vamos excluir, os excluímos
     * e então damos uma mensagem informando quantos apagamos
     */
    $qtd_resultados_apagados = $fabrica_de_resultados->getCount($criteria);
    $fabrica_de_resultados->deleteAll($criteria);
    echo $qtd_resultados_apagados._MD_NIV_RESULTAPAGADOS."<br />"; 

    /**
    * Buscamos na fábrica as perguntas da prova, tiramos delas as respostas
    * excluímos as respostas
    */
    $perguntas = $fabrica_de_perguntas->getObjects($criteria);

    foreach ($perguntas as $pergunta){
        $i++;
        $cod_pergunta = $pergunta->getVar('cod_pergunta');
        $criteria_pergunta = new Criteria ('cod_pergunta',$cod_pergunta);
        $fabrica_de_respostas->deleteAll($criteria_pergunta);
        printf(_MD_NIV_RESPDAPERG,$i);
        echo "<br />";
        
    }
    /**
     * Buscamos na fábrica quantos resultados vamos excluir, os excluímos
     * e então damos uma mensagem informando quantos apagamos
     */
    $qtd_perguntas_apagadas = $fabrica_de_perguntas->getCount($criteria);
    $fabrica_de_perguntas->deleteAll($criteria);
    echo $qtd_perguntas_apagadas._MD_NIV_PERGUNTASAPAGADAS."<br />"; 

    /**
     * Enfim depois de ter excluído tudo excluímoso principal, a prova
     */
    $fabrica_de_provas->deleteAll($criteria);

    redirect_header("index.php", 8, _MD_NIV_SUCESSO);

    /**
     * Função que fecha o desenho da adminsitração do Xoops
     */
    xoops_cp_footer();  
}else{

/**
 * Função que desenha o cabeçalho da administração do Xoops
 */
    xoops_cp_header();

/**
 * Parametro para a função do xoops que monta a confirmação
 */
    $hiddens=array('cod_prova' => $cod_prova, 'segunda_vez' => 1);

/**
 * Função que confirma se o professor deseja mesmo excluir a prova
 */
xoops_confirm($hiddens, '', _MD_NIV_CONFIRMAEXCLUSAOPROVAS,_MD_NIV_SIMCONFIRMAEXCLUSAOPROVAS);    
/**
 * Função que fecha o desenho da adminsitração do Xoops
 */
xoops_cp_footer();    
    }


?>
Return current item: Nivelamento