/** * @funcionalidad guardamos los datos del post * @return type devolvemos un string con el resultado de la consulta o actualizamos el historial de moderación si tenemos el rango */ function guardarPost() { global $psDb, $psCore, $psUser; $pid = filter_input(INPUT_GET, 'pid'); //obtenemos los datos del post $consulta = "SELECT post_user, post_sponsored, post_sticky, post_status FROM p_posts WHERE post_id = :pid"; $valores = array('pid' => $pid); $datos = $psDb->db_execute($consulta, $valores, 'fetch_assoc'); //comprobamos si podemos editarlo if ($datos['post_status'] != 0 && !$psUser->admod && !$psUser->permisos['moedpo']) { return 'Lo sentimos, pero no puedes editar el post'; } //obtenemos los datos del post del formulario $post = array('title' => $psCore->badWords(filter_input(INPUT_POST, 'titulo'), true), 'body' => filter_input(INPUT_POST, 'cuerpo'), 'tags' => $psCore->badWords(filter_input(INPUT_POST, 'tags')), 'category' => filter_input(INPUT_POST, 'categoria')); //comprobamos si algún campo está vacío foreach ($post as $key => $valor) { $valor = trim(preg_replace('/[^ A-Za-z0-9]/', '', $valor)); $valor = str_replace(' ', '', $valor); if (empty($valor)) { return false; } } //comprobamos los tags $tags = $this->validarTags($post['tags']); if (empty($tags)) { return 'Tienes que ingresar al menos <strong>4</strong> tags.'; } // obtenemos más datos $post['visitantes'] = empty($_POST['visitantes']) ? 0 : 1; $post['smileys'] = empty($_POST['smileys']) ? 0 : 1; $post['private'] = empty($_POST['privado']) ? 0 : 1; $post['block_comments'] = empty($_POST['sin_comentarios']) ? 0 : 1; // estos sólo están disponibles para administradores y modderadores if (empty($psUser->admod) && $psUser->permisos['most'] == false) { $post['sponsored'] = $datos['post_sponsored']; $post['sticky'] = $datos['post_sticky']; } else { $post['sponsored'] = empty($_POST['patrocinado']) ? 0 : 1; $post['sticky'] = empty($_POST['sticky']) ? 0 : 1; } //ahora actualizamos los datos en la base de datos if ($psUser->user_id == $datos['post_user'] || !empty($psUser->admod) || !empty($psUser->permisos['moedpo'])) { $consulta2 = "UPDATE p_posts SET post_title = :title, post_body = :body, post_tags = :tags, post_category = :cat, post_private = :private, post_block_comments = :block, post_sponsored = :sponsored, post_smileys = :smileys, post_visitantes = :visitantes, post_sticky = :sticky WHERE post_id = :pid"; $valores2 = array('title' => $post['title'], 'body' => $post['body'], 'tags' => $post['tags'], 'cat' => $post['category'], 'private' => $post['private'], 'block' => $post['block_comments'], 'sponsored' => $post['sponsored'], 'smileys' => $post['smileys'], 'visitantes' => $post['visitantes'], 'sticky' => $post['sticky'], 'pid' => $pid); if ($psDb->db_execute($consulta2, $valores2)) { //ahora guardamos los datos en el historial de moderación if ($psUser->admod || $psUser->permisos['moedpo'] && $psUser->user_id != $datos['post_user'] && $_POST['razon']) { include 'c.moderacion.php'; $psModeracion =& psModeracion::getInstance(); return $psModeracion->setHistorial('editar', 'post', array('post_id' => $pid, 'title' => $post['title'], 'autor' => $datos['post_user'], 'razon' => filter_input(INPUT_POST, 'razon'))); } else { return 1; } } else { return 'Ocurrió un error al intentar actualizar los datos en la base de datos.'; } } else { return 'Error. No tienes permisos para hacer eso.'; } }
* validamos el nivel y los permisos de acceso */ $psLevelVer = $psCore->setLevel($psLevel, true); if ($psLevelVer != 1) { $psPage = "aviso"; $psAjax = 0; $smarty->assign("psAviso", $psLevelVer); $psContinue = false; } /** * establecemos las variables principales * solo si el script puede continuar */ if ($psContinue) { include '../class/c.moderacion.php'; $psModeracion =& psModeracion::getInstance(); //obtenemos la acción $action = htmlspecialchars(filter_input(INPUT_GET, 'ver')); //obtenemos el historial if ($action == 'fotos') { $smarty->assign("psHistory", $psModeracion->getHistorial('fotos')); } else { $smarty->assign("psHistory", $psModeracion->getHistorial(1)); } $smarty->assign("psAction", $action); } //si todo ok y no vamos por ajax asignamos en smarty if (empty($psAjax)) { $smarty->assign('psTitle', $psTitle); include PS_ROOT . '/footer.php'; }