-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexcluirPost.php
47 lines (40 loc) · 1.49 KB
/
excluirPost.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
/*
* Central de conhecimento FEJESP
* Contato: [email protected]
* Autor: Guilherme de Oliveira Souza (http://sitegui.com.br)
* Data: 07/06/2013
*/
// Carrega as configurações e conecta ao banco de dados
require_once 'config.php';
require_once 'utils.php';
require_once 'Query.php';
conectar();
validarLogin();
// Interpreta o caminho do post
$dados = NULL;
$caminho = @$_GET['caminho'];
$sucesso = interpretarCaminho($caminho, $dados, 'post');
if (!$sucesso)
morrerComErro('Post não encontrado');
// Valida as permissões do usuário
if (!$_usuario || (!$_usuario['admin'] && $dados['criador'] != $_usuario['id']))
morrerComErro('O usuário atual não tem permissão para isso');
// Separa o que deve ser excluído
$anexos = Query::query(false, 0, 'SELECT id FROM anexos WHERE post=?', $dados['id']);
// Exclui itens relacionados
new Query('DELETE FROM visibilidades WHERE tipoItem="post" AND item=?', $dados['id']);
if (count($anexos))
new Query('DELETE FROM visibilidades WHERE tipoItem="anexo" AND item IN ?', $anexos);
new Query('DELETE FROM tagsEmPosts WHERE post=?', $dados['id']);
if (count($anexos))
new Query('DELETE FROM downloads WHERE anexo IN ?', $anexos);
// Exclui todos os itens
if (count($anexos)) {
foreach ($anexos as $cada)
unlinkAnexo($cada);
new Query('DELETE FROM anexos WHERE id IN ?', $anexos);
}
new Query('DELETE FROM comentarios WHERE post=?', $dados['id']);
new Query('DELETE FROM posts WHERE id=?', $dados['id']);
redirecionar('pasta', getCaminhoAcima($caminho));