Exemplo n.º 1
0
     case 4:
         echo '<div class="notificacion_error"><b>Ha ocurrido un problema eliminando la publicación.</b> Inténtalo de nuevo.</div>';
         break;
     case 5:
         echo '<div class="notificacion_error"><b>No tienes permiso para realizar esta acción.</b>' . ' Esto es debido a que no eres el autor de la publicación o no eres un administrador de la página.</div>';
         break;
 }
 // Empezamos a mostrar la publicación.
 echo '<article id="publicacion_' . $id_publicacion . '" class="caja_lectura_publicacion">';
 echo '<header><h1 class="titulo_publicacion">' . $publicacion['titulo'] . '</h1>';
 // Si el autor es Anónimo, no se le pone un enlace a la página de su perfil.
 if ($publicacion['nombre'] == 'Anónimo') {
     echo '<h2 class="datos_publicacion">' . tratarCategoria($publicacion['categoria']) . ' - Escrito el ' . $publicacion['fecha'] . ' por <a>' . $publicacion['nombre'] . '</a></h2>';
     // Si el autor no es anónimo, se pone un enlace para que los usuarios puedan ver su perfil y lo que ha escrito.
 } else {
     echo '<h2 class="datos_publicacion">' . tratarCategoria($publicacion['categoria']) . ' - Escrito el ' . $publicacion['fecha'] . ' por <a href="/usuario.php?id=' . $publicacion['id_autor'] . '" title="Ver perfil del autor">' . $publicacion['nombre'] . '</a></h2>';
 }
 // Sustituímos los saltos de línea por la etiqueta '<br>' para que se muestre correctamente en la página.
 echo '<div class="resumen_publicacion">' . str_replace("\n", "<br>", $publicacion['resumen']) . '</div></header><hr>';
 echo '<div class="contenido_publicacion">' . str_replace("\n", "<br>", $publicacion['contenido']) . '</div>';
 // Comprobamos si el usuario es el mismo autor de la publicación.
 if ($id_usuario != "" && ($id_usuario == $publicacion['id_autor'] || $permisos_usuario == 2)) {
     // En caso de que lo sea, tiene derecho a 'Editar' o 'Eliminar' su publicación.
     echo '<div align="right">';
     echo '<form action="/escribir.php" method="post" class="form_editar"><button class="boton_editar" type="submit" ' . 'name="editar" value="' . $id_publicacion . '">Editar</button><input type="hidden" name="conseguir_datos_recientes_publicacion"></form>';
     echo ' <form action="/confirmar_eliminar.php" method="post" class="form_eliminar"><button class="boton_eliminar" type="submit" ' . 'name="publicacion">Eliminar</button><input type="hidden" name="id_publicacion" value="' . $id_publicacion . '" /></form></div>';
 }
 echo '</article>';
 // Sección de comentarios. Hay que buscar si hay comentarios en la base de datos.
 echo '<h2 id="comentarios">Comentarios</h2>';
 // Mensaje de alerta sobre comentarios, dependiendo de si se ha realizado una acción con ellos.
Exemplo n.º 2
0
function generarRSS()
{
    include 'datosbd.php';
    $docXml = new DOMDocument("1.0", "UTF-8");
    $docXml->formatOutput = true;
    $rss = $docXml->createElement("rss");
    $nodo_rss = $docXml->appendChild($rss);
    $nodo_rss->setAttribute("version", "2.0");
    $channel = $docXml->createElement("channel");
    $nodo_channel = $nodo_rss->appendChild($channel);
    $title = $docXml->createElement("title");
    $nodo_title = $nodo_channel->appendChild($title);
    $texto_title = $docXml->createTextNode("Rebel Gamers Clan");
    $nodo_title->appendChild($texto_title);
    $link = $docXml->createElement("link");
    $nodo_link = $nodo_channel->appendChild($link);
    $texto_link = $docXml->createTextNode("http://rebelgamersclan.es");
    $nodo_link->appendChild($texto_link);
    $description = $docXml->createElement("description");
    $nodo_description = $nodo_channel->appendChild($description);
    $texto_description = $docXml->createTextNode("RSS con la actualidad de Rebel Gamers Clan");
    $nodo_description->appendChild($texto_description);
    $error_bd = false;
    try {
        $con_bd = new mysqli($datosbd['conexion'], $datosbd['usuario1'], $datosbd['contra1'], $datosbd['nombre_bd']);
    } catch (Exception $e) {
        $error_bd = true;
    }
    if (!$error_bd) {
        prepararConexionUTF8($con_bd);
        $sent = "SELECT publicaciones.id AS id_publicacion, publicaciones.fecha, publicaciones.titulo, publicaciones.resumen," . "publicaciones.idioma, publicaciones.categoria, usuarios.id AS id_autor, usuarios.nombre FROM publicaciones " . "JOIN usuarios ON usuarios.id = publicaciones.autor ORDER BY id_publicacion DESC LIMIT 10";
        $result_list_textos = $con_bd->query($sent);
        if ($result_list_textos) {
            if (mysqli_num_rows($result_list_textos) > 0) {
                while ($texto = $result_list_textos->fetch_assoc()) {
                    $item = $docXml->createElement("item");
                    $nodo_item = $nodo_channel->appendChild($item);
                    // Nodos dentro de cada 'item', que representa los atributos de la publicación.
                    $title = $docXml->createElement("title");
                    $nodo_title = $nodo_item->appendChild($title);
                    $texto_title = $docXml->createTextNode($texto['titulo']);
                    $nodo_title->appendChild($texto_title);
                    $link = $docXml->createElement("link");
                    $nodo_link = $nodo_item->appendChild($link);
                    $texto_link = $docXml->createTextNode("http://rebelgamersclan.es/leer.php?id=" . $texto['id_publicacion']);
                    $nodo_link->appendChild($texto_link);
                    $description = $docXml->createElement("description");
                    $nodo_description = $nodo_item->appendChild($description);
                    $texto_description = $docXml->createTextNode($texto['resumen']);
                    $nodo_description->appendChild($texto_description);
                    $objFecha = new DateTime($texto['fecha']);
                    $fechaRSS = $objFecha->format(DateTime::RSS);
                    $pubDate = $docXml->createElement("pubDate");
                    $nodo_pubDate = $nodo_item->appendChild($pubDate);
                    $texto_pubDate = $docXml->createTextNode($fechaRSS);
                    $nodo_pubDate->appendChild($texto_pubDate);
                    $author = $docXml->createElement("author");
                    $nodo_author = $nodo_item->appendChild($author);
                    $texto_author = $docXml->createTextNode($texto['nombre']);
                    $nodo_author->appendChild($texto_author);
                    $category = $docXml->createElement("category");
                    $nodo_category = $nodo_item->appendChild($category);
                    $texto_category = $docXml->createTextNode(tratarCategoria($texto['categoria']));
                    $nodo_category->appendChild($texto_category);
                    $comments = $docXml->createElement("comments");
                    $nodo_comments = $nodo_item->appendChild($comments);
                    $texto_comments = $docXml->createTextNode("http://rebelgamersclan.es/leer.php?id=" . $texto['id_publicacion'] . "#comentarios");
                    $nodo_comments->appendChild($texto_comments);
                    $guid = $docXml->createElement("guid");
                    $nodo_guid = $nodo_item->appendChild($guid);
                    $texto_guid = $docXml->createTextNode("http://rebelgamersclan.es/leer.php?id=" . $texto['id_publicacion']);
                    $nodo_guid->appendChild($texto_guid);
                    $nodo_guid->setAttribute("isPermaLink", "true");
                }
            }
        }
        mysqli_close($con_bd);
    }
    $docXml->save("/var/www/rebelgamersclan/public_html/rss.xml");
}