Beispiel #1
0
 /**
  * @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&oacute; un error al intentar actualizar los datos en la base de datos.';
         }
     } else {
         return 'Error. No tienes permisos para hacer eso.';
     }
 }
Beispiel #2
0
 * 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';
}