Foros del Web » Programando para Internet » PHP »

[APORTE] Sistema de noticias y comentarios

Estas en el tema de [APORTE] Sistema de noticias y comentarios en el foro de PHP en Foros del Web. Y para poder editar y borrar comentarios editaremos comentarios.php borrarcomentario.php editarcomentario.php comentarios.php Código PHP: <?php require ( '../includes/connect.php' ); require ( 'menu.php' ); $result = mysql_query ( ...

  #31 (permalink)  
Antiguo 10/09/2011, 05:39
 
Fecha de Ingreso: septiembre-2011
Mensajes: 38
Antigüedad: 13 años, 3 meses
Puntos: 5
Respuesta: [APORTE] Sistema de noticias y comentarios

Y para poder editar y borrar comentarios editaremos comentarios.php borrarcomentario.php editarcomentario.php

comentarios.php
Código PHP:
<?php
require ('../includes/connect.php');
require (
'menu.php');
$result=mysql_query("SELECT * FROM comentarios",$connect);
$totalregistros=mysql_num_rows($result);
                
$num_rows mysql_num_rows($result);
if (
$num_rows == 0){
    echo 
"<script type=\"text/javascript\">window.open('no_content.php', '_self');</script>";
    exit;
    }
while(
$row=mysql_fetch_array($result)) 
    { 
?>
<html>
<head>
<title>Panel de Administracion :::.</title>
<link rel=stylesheet href="estilo.css" type="text/css">
</head>
<body>
<table width="95%" border="0" align="center" cellpadding="2" cellspacing="0">
  <tr>
    <td width="90%" valign="top" class="td"><div align="left"><span class="Texto"><?=$row[comentario];?></span></div>
      &nbsp;</td>
<td width="5%" valign="top" class="td"><? echo '<a href="editarcomentario.php?id='.$row[id_comentario].'">Editar</a>';?></td>
<td width="5%" valign="top" class="td"><? echo '<a href="borrarcomentario.php?id='.$row[id_comentario].'">Borrar</a>';?></td>
  </tr>
</table>
<p>&nbsp;</p>
</body>
</html>

<?
 

mysql_free_result($result)
?>
borrarcomentario.php
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Borrar registro</title>
</head>
<body>
<?php 
require ('../includes/connect.php');
//   $connect = Conectarse(); 
$id =$_GET['id']; 
$sql "DELETE FROM comentarios WHERE id_comentario ='$id'"
$result mysql_query($sql$connect) or die("Error en consulta $sql:".mysql_error() ); 
//echo "Anuncio borrado";
   
header("Location: panel.php");
?>
</body>
</html>
editarcomentario.php
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Sistema de Noticias de KarlicOs -Edita Noticia :::.</title>
<link rel="stylesheet" href="estilo.css" type="text/css" />
</head>

<body>
<?php include('menu.php');?>
<div style="width:700px;margin:50px auto" align="left" class="Texto">
<?php
include ('../includes/connect.php');
$id $_GET["id"];
//$nick=$_GET["nick"];
$result=mysql_query("SELECT * FROM comentarios WHERE id_comentario= '$id'",$connect);
while(
$row=mysql_fetch_array($result))
    {
?>
<form action="edit.php" method="post">
<input name="nick" id="nick" value = "<?php echo $row[nick];?>"><br>
eMail:<br>
<input name="email" type="text" id="email" value= "<?php echo $row[email]; ?>" size="70"><br><br>
 Comentario:<br>
<textarea name="noticia" cols="70" rows="10"><?php echo $row[comentario]; ?></textarea>
<script type="text/javascript" src="editor/nicEdit.js"></script>
<script type="text/javascript">
    bkLib.onDomLoaded(function() { nicEditors.allTextAreas() });
              </script>
<br>
<input type="submit" value="Editar" class="button"><br>
</form>
<?php
}
mysql_free_result($result);
//mysql_close($connect);

?>
</div>
</body>
</html>
Ahora me voy!! Un saludo!!
  #32 (permalink)  
Antiguo 10/09/2011, 09:21
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 9 meses
Puntos: 14
De acuerdo Respuesta: [APORTE] Sistema de noticias y comentarios

Excelente, Lokor!

Amigo, podrías postear acá la base de datos tal como la modificaste?

Bueno, ojalá apenas puedas ver el asunto de las miniaturas cuando uno publica una noticia y subimos la respectiva foto a la carpeta determinada, en este caso, uploads.

Con alguna clase jquery o motools posiblemente sea factible llevar a cabo esa tarea.

Bueno, estamos en contacto.

Saludos!
  #33 (permalink)  
Antiguo 10/09/2011, 09:29
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 9 meses
Puntos: 14
Pregunta Respuesta: [APORTE] Sistema de noticias y comentarios

De hecho, en este par de Webs está la respuesta a lo que señalo:

http://www.cristalab.com/tutoriales/...micas-c73470l/

http://luiscanada.com/blog/jquery-th...ma-automatica/

http://craftyman.net/generar-thumbnails-con-php/


Creo que la primera está perfecta, aunque la última no luce nada de mal.

No tengo tiempo por ahora para probar el asunto, espero la semana que viene, tipo jueves o viernes, pueda entrar en el asunto.

Saludos,

Ricardo
  #34 (permalink)  
Antiguo 10/09/2011, 14:53
 
Fecha de Ingreso: septiembre-2011
Mensajes: 38
Antigüedad: 13 años, 3 meses
Puntos: 5
Respuesta: [APORTE] Sistema de noticias y comentarios

Esta es la BD tal y como yo la tengo:

Código PHP:
-- phpMyAdmin SQL Dump
-- version 2.11.4
-- http://www.phpmyadmin.net
--
-- 
Hostlocalhost
-- Generation TimeSep 102011 at 04:55 PM
-- Server version5.1.57
-- PHP Version5.2.17

SET SQL_MODE
="NO_AUTO_VALUE_ON_ZERO";

--
-- 
Database: `karlicos`
--

-- --------------------------------------------------------

--
-- 
Table structure for table `categoria`
--

CREATE TABLE `categoria` (
  `
idint(10NOT NULL AUTO_INCREMENT,
  `
categoriavarchar(190NOT NULL,
  
PRIMARY KEY (`id`)
ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=15 ;

--
-- 
Dumping data for table `categoria`
--

INSERT INTO `categoriaVALUES(1'Cultura');
INSERT INTO `categoriaVALUES(2'Astronomia');
INSERT INTO `categoriaVALUES(3'Arte');
INSERT INTO `categoriaVALUES(4'Musica');
INSERT INTO `categoriaVALUES(5'Deportes');
INSERT INTO `categoriaVALUES(6'Conspiraciones');
INSERT INTO `categoriaVALUES(7'Programacion');
INSERT INTO `categoriaVALUES(8'Economia');
INSERT INTO `categoriaVALUES(9'Medicina');
INSERT INTO `categoriaVALUES(10'Decoracion');
INSERT INTO `categoriaVALUES(11'Tecnologia');
INSERT INTO `categoriaVALUES(12'Gastronomia');
INSERT INTO `categoriaVALUES(13'Libros');
INSERT INTO `categoriaVALUES(14'Libros');

-- --------------------------------------------------------

--
-- 
Table structure for table `comentarios`
--

CREATE TABLE `comentarios` (
  `
id_comentarioint(11NOT NULL AUTO_INCREMENT,
  `
nickvarchar(190NOT NULL,
  `
emailvarchar(90NOT NULL,
  `
comentariolongtext NOT NULL,
  `
noticia_idint(11NOT NULL,
  
PRIMARY KEY (`id_comentario`)
ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=94 ;

--
-- 
Dumping data for table `comentarios`
--

INSERT INTO `comentariosVALUES(93'lokor712''[email protected]''Prueba'1);

-- --------------------------------------------------------

--
-- 
Table structure for table `noticias`
--

CREATE TABLE `noticias` (
  `
id_noticiaint(4NOT NULL AUTO_INCREMENT,
  `
autorvarchar(255NOT NULL,
  `
titulovarchar(255NOT NULL,
  `
categoriavarchar(255NOT NULL,
  `
fechadatetime NOT NULL,
  `
noticialongtext,
  `
fotovarchar(255NOT NULL,
  
PRIMARY KEY (`id_noticia`)
ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=87 ;

--
-- 
Dumping data for table `noticias`
--

INSERT INTO `noticiasVALUES(1'John Doe''El nuevo COINTELPRO: Ciberguerra de ''hacktivistas'' y la subversión de Anonymous''Conspiraciones''2011-09-07 11:58:17''En años recientes ha surgido una nueva forma de activismo en Internet. Con sus numerosas ''filtraciones'' y ''operaciones'', grupos como Wikileaks y su ''hacktivismo'' derivado conocido como ''Anonymous'', han alcanzado una amplia exposición en los principales medios de comunicación. Con el personaje ''V'' de la película de V de Vendetta como inspiración, jóvenes de todo el mundo reúnen fuerzas detrás de la idea de que "algo está muy mal en este país", y se lo hacen saber a todos por medio de las protestas anónimas, hacktivismo en línea en contra de grupos y organizaciones que ven como parte del problema, o con el apoyo a las revoluciones en Egipto, Túnez, y en otros lugares. <br><br>\r\n\r\nSin embargo, el hacktivismo en Internet tiene un precio. De ''terroristas domésticos'', ahora tenemos el potencial para ''hacker terroristas domésticos'', y los principales gobiernos Occidentales y las corporaciones de medios de comunicación rápidamente han comenzado a pregonar este nuevo ángulo en la ''guerra contra el terrorismo''. The Economist, por ejemplo, describió a la ciberguerra actual como "el quinto dominio de la guerra", y el Sub-secretario de la Defensa estadounidense, William J. Lynn, declaró en el 2010 que "como materia doctrinal, el Pentágono ha reconocido formalmente el ciberespacio como un nuevo dominio de guerra... [que] se ha vuelto tan crítico como las operaciones militares en tierra, mar, aire y espacio." \r\n<br><br>\r\nNo obstante, el verdadero problema potencial relacionado con los grupos ''hacktivistas'', es la posibilidad de infiltraciones por parte de operativos del gobierno y la desviación de sus agendas justicieras para que sirvan a las agendas del gobierno y el ejército de EEUU. Mientras que la ciberguerra normalmente está dirigida a poderes extranjeros hostiles, podría decirse que es la hermana menor de COINTELPRO. Justo como la supuesta amenaza ''terrorista'' ha avanzado lenta pero progresivamente a lo domestico con la acentuada asociación propagandística entre la disidencia social y la amenaza de ''terrorismo doméstico'', cada vez más la ciberguerra ha fijado como objetivo a aquellos ciudadanos que toman una posición crítica ante los crímenes de los poderes corporativos, económicos, militares y políticos actuales. Después de todo, la única manera de reprimir a los disidentes que están en contra de los crímenes y la corrupción, tan sistémicos y obvios, es a través de una guerra de información, es decir, propaganda. Por lo tanto, es probable que la ciberguerra y el ''hacktivismo'' jueguen un rol central en COINTELPRO del siglo 21. \r\n<br><br>\r\nPor ende, no es ninguna sorpresa que la ciberguerra haya engendrado toda una industria de firmas y organizaciones privadas y militarizadas, especializadas en esta nueva forma de ''contra inteligencia''. \r\n<br><br>\r\n‘¿A qué foro perteneces actualmente?’ ‘Ciberguerreros’ del ejército estadounidense a sus estaciones, y por toda la red.\r\nComo Sott.net ha venido diciendo por años, COINTELPRO está vivo y coleando, pero no es probable que leas al respecto en los medios de comunicación corporativos. A miembros del público, así como también a los participantes de nuevas formas de activismo ''anónimo'', podría impactarles saber que tales grupos sufren infiltraciones de manera activa e incluso creados con propósitos de división, distracción e interferencia de los objetivos del activismo social. \r\n<br><br>\r\nEl caso reciente de Aaron Barr, CEO de la compañía de seguridad ''HBGary Federal'', que supuestamente se infiltró a Anonymous para descubrir sus identidades verdaderas tan solo para terminar con las cuentas de su compañía y correo electrónico hackeadas, es un buen ejemplo. \r\n<br><br>\r\nRecientemente, Sott.net ha revelado una operación similar, cuyas implicaciones van más allá de una simple infiltración con el propósito de ''recolectar información''. Como mostraremos, los empleados de una ''consultora privada de armas de fuego y seguridad'', Jedburgh Corporation, fueron los responsables de crear y mantener un foro en internet basado en ''Anonymous'', worldrevolt.net, el grupo detrás de las operaciones ''Onslaught'' y ''Tennessee''. Mientras que su foro ''no está activo debido a mantenimiento'' (curiosamente, se desconectaron de la red mientras realizábamos nuestra investigación), todavía pueden ver su página de Facebook, la página de ''Operación Tennessee'' y un video de su reciente ''Operación Onslaught'' en Nashville. Aquí está la descripción, tomada de sus propias páginas de Facebook:''');

-- --------------------------------------------------------

--
-- 
Table structure for table `usuarios`
--

CREATE TABLE `usuarios` (
  `
IDsmallint(6unsigned NOT NULL AUTO_INCREMENT,
  `
usuariotinytext COLLATE latin1_general_ci NOT NULL,
  `
passtinytext COLLATE latin1_general_ci NOT NULL,
  `
emailtinytext COLLATE latin1_general_ci NOT NULL,
  `
nivel_accesosmallint(4unsigned NOT NULL DEFAULT '0',
  
PRIMARY KEY (`ID`),
  
UNIQUE KEY `ID` (`ID`)
ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci PACK_KEYS=1 AUTO_INCREMENT=;

--
-- 
Dumping data for table `usuarios`
--

INSERT INTO `usuariosVALUES(4'lokor712''21232f297a57a5a743894a0e4a801fc3''[email protected]'0); 
Y mañana a ver si tengo tiempo para mirar lo de la imagen en miniatura

Un Saludo!!

Última edición por lokor712; 10/09/2011 a las 14:59
  #35 (permalink)  
Antiguo 10/09/2011, 17:26
Avatar de BaByRoDrI  
Fecha de Ingreso: julio-2009
Ubicación: Mexico
Mensajes: 60
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: [APORTE] Sistema de noticias y comentarios

Yo propongo trabajar esto en un svn o algo similar ya que así me esta costando trabajo seguir el hilo de como esta quedando x archivo :s....

Y mi idea era colaborar pasando varias partes del script en clases y rutinas para ya solo reducir los archivos ;).
  #36 (permalink)  
Antiguo 10/09/2011, 17:39
Avatar de BaByRoDrI  
Fecha de Ingreso: julio-2009
Ubicación: Mexico
Mensajes: 60
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: [APORTE] Sistema de noticias y comentarios

Acabo de modificar el último publicacomentario.php y ver.php para añadirle seguridad ;) y no nos vayan a querer colar algo, quedo así:

publicacomentario.php
Código PHP:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
  5. <title>Sistema de Noticias de KarlicOs - Publica Comentarios :::.</title>
  6. </head>
  7.  
  8. <body>
  9. <?php
  10. require ('includes/connect.php');
  11. $id=mysql_real_escape_string($_POST['id']);
  12. $nick=mysql_real_escape_string($_POST['nick']);
  13. $email=mysql_real_escape_string($_POST['email']);
  14. $comentario=mysql_real_escape_string(htmlentities($_POST['comentario']));
  15. $query = "INSERT INTO comentarios (nick,email,comentario,noticia_id) VALUES('$nick','$email','$comentario','$id')";
  16. mysql_query($query) or die(mysql_error());
  17. header("location: ver.php?id=$_POST[id]")
  18. ?>
  19. </body>
  20. </html>

ver.php
Código PHP:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
  5. <title>Sistema de Noticias de KarlicOs - Ver Noticia :::.</title>
  6. <script type="text/JavaScript">
  7. <!--
  8. function MM_findObj(n, d) { //v4.01
  9.   var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
  10.     d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  11.   if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  12.   for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  13.   if(!x && d.getElementById) x=d.getElementById(n); return x;
  14. }
  15.  
  16. function MM_validateForm() { //v4.0
  17.   var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  18.   for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
  19.     if (val) { nm=val.name; if ((val=val.value)!="") {
  20.       if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
  21.         if (p<1 || p==(val.length-1)) errors+='- '+nm+': Es necesario una dirección de e-mail.\n';
  22.       } else if (test!='R') { num = parseFloat(val);
  23.         if (isNaN(val)) errors+='- '+nm+': Es necesario que contenga un numero.\n';
  24.         if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
  25.           min=test.substring(8,p); max=test.substring(p+1);
  26.           if (num<min || max<num) errors+='- '+nm+': Es necesario que contenga un numero entre '+min+' y '+max+'.\n';
  27.     } } } else if (test.charAt(0) == 'R') errors += '- '+nm+': Es necesario que escriba un nick/comentario.\n'; }
  28.   } if (errors) alert('The following error(s) occurred:\n'+errors);
  29.   document.MM_returnValue = (errors == '');
  30. }
  31. //-->
  32. </script>
  33. </head>
  34.  
  35. <body>
  36. <?php
  37. require ('includes/connect.php');
  38. $id=mysql_real_escape_string($_GET["id"]);
  39. $result = mysql_query("select * from noticias where id_noticia='$id'",$connect);
  40. while($row = mysql_fetch_array($result))
  41. {
  42. $result2=mysql_query("select * from comentarios where noticia_id='$id'",$connect);
  43. $totalcomentarios=mysql_num_rows($result2);
  44. echo '<h3>'.$row[titulo].'</h3>';
  45. echo ''.$row[noticia].'<br><br><br>';
  46. echo 'Autor:&nbsp;'.$row[autor].' | '.$row[categoria].' |&nbsp;Publicado en:&nbsp; '.$row[fecha].'';
  47. //echo '<a href="editarcomentario.php?id='.$row[id].'">Editar</a> | <a href="borrar.php?id='.$row[id].'">Borrar</a>';
  48. }
  49. ?>
  50. <br><br><br><br>
  51. <?php
  52. echo '<h2>Comentarios:&nbsp;('.$totalcomentarios.')</h2><br>';
  53. //hago el llamado a la base
  54. $result=mysql_query("select * from comentarios where noticia_id='$id'",$connect);
  55. //Bucle while para visualizarlos
  56. while($row=mysql_fetch_array($result))
  57. {
  58. echo '<h4>Nick: '.$row[nick].':</h4>Email: '.$row[email].'<br>Comentario: '.$row[comentario].'<br><br>';
  59. }
  60. ?>
  61.  
  62. <form action="publicacomentario.php" method="post" onsubmit="MM_validateForm('nick','','R','email','','RisEmail','comentario','','R');return document.MM_returnValue">
  63. <input type="hidden" name="id" value="<?php echo $id;  ?>"><br>
  64. Nick:<br>
  65. <input type="text" name="nick"><br>
  66. E-Mail:<br>
  67. <input type="text" name="email"><br>
  68. Escriba el comentario<br>
  69. <textarea name="comentario" cols="70" rows="15"></textarea>
  70. <br>
  71. <input type="submit" value="Enviar comentario"><br>
  72. </form>
  73. </body>
  74. </html>

No he revisado a fondo todos los archivos, pero estan usando sesiones para comprobar que solo los admin puedan entrar a ciertos archivos (tales como editar comentarios, borrarlos, publicar, etc...) ??
  #37 (permalink)  
Antiguo 10/09/2011, 22:46
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 9 meses
Puntos: 14
De acuerdo Respuesta: [APORTE] Sistema de noticias y comentarios

Cita:
Iniciado por BaByRoDrI Ver Mensaje
Yo propongo trabajar esto en un svn o algo similar ya que así me esta costando trabajo seguir el hilo de como esta quedando x archivo :s....

Y mi idea era colaborar pasando varias partes del script en clases y rutinas para ya solo reducir los archivos ;).
¡Excelente aporte y que bueno que te integres a esta pandilla de locos por el php+MySQL! jajaja

¿Dices que podríamos subir la aplicación a un server remoto, si mal no te entendí? Bueno, sería lo ideal, pero ... ¿dónde, a cuál server? Están los gratuitos, pero no me gustan por la cantidad de restricciones que suelen poner, tales como el asunto de las librerías GD, librerías de clases que no operan bien y varios otros detalles más que de veras suelen ser harto molestos. Ya me ha pasado. Pero si sabes de uno que no tenga ese tipo de problemas, genial!

Bueno, respecto de lo de las miniaturas, más arriba publiqué tres sitios donde hay interesantes clases para conseguir eso; me gustó la tercera. A ver si mañana o el lunes, si me alcanza el tiempo, me sumergo otra vez en el tema y pruebo esas clases.

Saludos!

Ricardo
  #38 (permalink)  
Antiguo 11/09/2011, 03:05
 
Fecha de Ingreso: septiembre-2011
Mensajes: 38
Antigüedad: 13 años, 3 meses
Puntos: 5
Respuesta: [APORTE] Sistema de noticias y comentarios

Bueno lo subimos a 000webhost y podemos hacer pruebas, yo hoy miraré lo de las miniaturas, ahh y gracias BabyRodri por tu aporte!! Ya somos 3 los que queremos mejorar este código!! :D :D
  #39 (permalink)  
Antiguo 11/09/2011, 06:36
 
Fecha de Ingreso: septiembre-2011
Mensajes: 38
Antigüedad: 13 años, 3 meses
Puntos: 5
Respuesta: [APORTE] Sistema de noticias y comentarios

Ya tengo el código preparado para los thumbs, cuando quede bien todo lo subo aquí!!

Un Saludo!!

Seguramente lo subiré mañana k me tengo k ir
  #40 (permalink)  
Antiguo 11/09/2011, 10:31
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 9 meses
Puntos: 14
Información Respuesta: [APORTE] Sistema de noticias y comentarios

Cita:
Iniciado por lokor712 Ver Mensaje
Ya tengo el código preparado para los thumbs, cuando quede bien todo lo subo aquí!!

Un Saludo!!

Seguramente lo subiré mañana k me tengo k ir
¡Que bueno, amigo! Porque, lo que es yo no tuve éxito en la solución que estuve experimentando. Mejoré el archivo editar.php (el que edita cada noticia), al cual le agregué el código para ver la foto, o sea, un visor y así asegurarse que todo está ok.

Por cierto, sugiero darle la funcionalidad de borrar físicamente la foto asociada a la noticia que vayamos a borrar en algún momento dado:

Código PHP:
Ver original
  1. <?php include('menu.php');?>
  2. <div style="width:700px;margin:50px auto" align="left" class="Texto">
  3. <?php
  4. require_once ('../includes/connect.php');
  5. $id=$_GET["id"];
  6. $categoria = $_GET["categoria"];
  7. $result=mysql_query("SELECT * FROM noticias WHERE id_noticia='$id' AND categoria = '$categoria'",$connect);
  8. while($row=mysql_fetch_array($result))
  9.         {
  10. ?>
  11. <form action="edit.php" method="post">
  12.   <p>
  13.     <input type="hidden" name="id" value = "<?php echo $row['id_noticia'];?>">
  14.     <br>
  15.     Título noticia:<br>
  16.   <input name="titulo" type="text" value= "<?php echo $row['titulo']; ?>" class="inputTitulo"><br>
  17.     Autor:<br>
  18.   <input type="text" name="autor" value= "<?php echo $row['autor']; ?>" class="inputAutor"><br /><br />
  19.     Categoría:<br>
  20.   <!--<input name="categoria" type="text" value= "<?php //echo $row['categoria']; ?> " size="40">-->
  21.   <label for="categoria"></label>
  22.   <input name="categoria" type="text" id="categoria" value="<?php echo $row['categoria']; ?>" class="inputCat"/>
  23.   <br />
  24.   <br />
  25.  <img src="../uploads/<?php echo $row['foto']; ?>" alt="<?php echo $row['foto']; ?>" height="70" align="middle" />
  26.      <br />
  27.     <br />
  28.     Escriba el articulo<br>
  29.   <textarea name="noticia" cols="70" rows="30"><?php echo $row['noticia']; ?></textarea>
  30.   <br>
  31.     <input type="submit" value="Editar" class="button"><br>
  32.   </p>
  33. </form>
  34. <?php
  35.  
  36. }
  37. mysql_close($connect);
  38.  
  39. ?>
  40. </div>

Bueno, mañana seguimos con esto!

Bye

Última edición por Dragon_Mandarin; 11/09/2011 a las 22:02
  #41 (permalink)  
Antiguo 12/09/2011, 07:07
 
Fecha de Ingreso: septiembre-2011
Mensajes: 38
Antigüedad: 13 años, 3 meses
Puntos: 5
Respuesta: [APORTE] Sistema de noticias y comentarios

Buenas a todos!! Ya tengo el código para mostrar imágenes en el index y el ver y que se hagan pequeñas, bueno, hay 3 pasos, os los explico:

1ero:
Crear una carpeta en el principio de todo, osea donde están todas las carpetas, admin, uploads, etc, bueno, la llamaremos miniimages.

2ndo:
Crear un arhivo tambien en el inicio de todo que se llame hacethumb.php, este hará las imagenes pequeñas y las trasladará a miniimages
hacethumb.php
Código PHP:
<?php
$ancho_nuevo 
80;
$carpeta "uploads/";
$ext = array("gif","jpg","png");
$carpetanueva "miniimages/";
if(
is_dir($carpeta) && $dir opendir($carpeta)){
while ((
$nombre_archivo readdir($dir)) !== false){
$archivo pathinfo($carpeta.$nombre_archivo);
if (
in_array(strtolower($archivo['extension']),$ext))
{
if(
strtolower($archivo['extension'])=="gif"){
$img imagecreatefromgif($carpeta.$nombre_archivo);
}else if(
strtolower($archivo['extension'])=="jpg"){
$img imagecreatefromjpeg($carpeta.$nombre_archivo);
}else if(
strtolower($archivo['extension'])=="png"){
$img imagecreatefrompng($carpeta.$nombre_archivo);
}
$ancho imagesx($img);
$altura imagesy($img);
$ancho_nuevo $ancho_nuevo;
$altura_nueva floor($altura*($ancho_nuevo/$ancho));
$tmp_img imagecreatetruecolor($ancho_nuevo,$altura_nueva);
imagecopyresized($tmp_img,$img,0,0,0,0,$ancho_nuevo,$altura_nueva,$ancho,$altura);
if(
strtolower($archivo['extension'])=="gif"){
imagegif$tmp_img,$carpetanueva.$nombre_archivo);
}else if(
strtolower($archivo['extension'])=="jpg"){
imagejpeg$tmp_img,$carpetanueva.$nombre_archivo);
}else if(
strtolower($archivo['extension'])=="png"){
imagepng$tmp_img,$carpetanueva.$nombre_archivo);
}
}
}
}
closedir($dir);
?>
3er paso:
Modificaremos los archivos index.php y ver.php para que muestren las imagenes
index.php
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<title>Sistema de Noticias de KarlicOs :::.</title>
</head>

<body>
<?php
include ('includes/connect.php');
include (
'hacethumb.php');
//hacemos las consultas 
$result=mysql_query("select * from noticias order by fecha Desc"$connect); 
$totalregistros=mysql_num_rows($result); 
$result2=mysql_query("select * from comentarios where id_comentario",$connect);
$totalcomentarios=mysql_num_rows($result2);
?> 
</head> 
<body>
<div align="center">
<table width="70%" height="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="80%" align="center" valign="top">
    <?php
    
//Recogemos las consultas en un array y las mostramos 
    
while($row=mysql_fetch_array($result))
            {
    
$result2=mysql_query("select * from comentarios where id_comentario='".$row[id_noticia]."'",$connect);
    
$totalcomentarios=mysql_num_rows($result2);
    
    
$carpeta= ('miniimages/');
    echo 
'<h3>'.$row[titulo].'</h3>';
    
//echo '<br><br>';
    //echo ' '.$row[noticia].' <br>';
    
echo substr($row['noticia'], 0550);    echo '&nbsp;<strong>...</strong><br><br>';        echo '<div align="right"><a href="uploads/'.$row[foto].'"><img src="miniimages/'.$row[foto].'"/></a></div>';
    echo 
'<strong>Autor:&nbsp;'.$row[autor].'&nbsp; |&nbsp;Publicado en:&nbsp; '.$row[categoria].'&nbsp; |&nbsp;El:&nbsp; '.$row[fecha].'&nbsp;|&nbsp;Comentarios:&nbsp;('.$totalcomentarios.                                                                                                                            ')&nbsp;|&nbsp;<a href="ver.php?id='.$row[id_noticia].'">Leer mas ...</a></strong>';
    }
    
mysql_free_result($result)
    
?></td>
  </tr>
</table>
</div>
</body>
</html>
ver.php
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<title>Sistema de Noticias de KarlicOs - Ver Noticia :::.</title>
<script type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
 
function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+': Es necesario una dirección de e-mail.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+': Es necesario que contenga un numero.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+': Es necesario que contenga un numero entre '+min+' y '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+': Es necesario que escriba un nick/comentario.\n'; }
  } if (errors) alert('Aparecierón lo siguientes errores:\n'+errors);
  document.MM_returnValue = (errors == '');
}
//-->
</script>
</head>
 
<body>
<div align="center">
<table width="70%" height="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="80%" align="center" valign="top">
<?php
require ('includes/connect.php');
$id=mysql_real_escape_string($_GET["id"]);
$result mysql_query("select * from noticias where id_noticia='$id'",$connect);
while(
$row mysql_fetch_array($result))
{
$result2=mysql_query("select * from comentarios where noticia_id='$id'",$connect);
$totalcomentarios=mysql_num_rows($result2);
echo 
'<h3>'.$row[titulo].'</h3>';
echo 
''.$row[noticia].'<br><br><br>';        echo '<div align="right"><a href="uploads/'.$row[foto].'"><img src="miniimages/'.$row[foto].'"/></a></div>';
echo 
'Autor:&nbsp;'.$row[autor].' | '.$row[categoria].' |&nbsp;Publicado en:&nbsp; '.$row[fecha].'';
//echo '<a href="editarcomentario.php?id='.$row[id].'">Editar</a> | <a href="borrar.php?id='.$row[id].'">Borrar</a>';
}
mysql_free_result($result)
?> 
<br><br><br><br>
<?php
echo '<h2>Comentarios:&nbsp;('.$totalcomentarios.')</h2><br>';
//hago el llamado a la base
$result=mysql_query("select * from comentarios where noticia_id='$id'",$connect);
//Bucle while para visualizarlos
while($row=mysql_fetch_array($result))
{
echo 
'<h4>Nick: '.$row[nick].':</h4>Email: '.$row[email].'<br>Comentario: '.$row[comentario].'<br><br>';
}
mysql_free_result($result)
?> 
 
<form action="publicacomentario.php" method="post" onsubmit="MM_validateForm('nick','','R','email','','RisEmail','comentario','','R');return document.MM_returnValue">
<input type="hidden" name="id" value="<?php echo $id;  ?>"><br>
Nick:<br>
<input type="text" name="nick"><br>
E-Mail:<br>
<input type="text" name="email"><br>
Escriba el comentario<br>
<textarea name="comentario" cols="70" rows="15"></textarea>
<br>
<input type="submit" value="Enviar comentario"><br>
</form>
</td>
  </tr>
</table>
</div>
</body>
</html>
Vale os lo explico asi por encima, el hacethumb.php lo que hace es leer las imagenes de la carpeta uploads, modificarle el ancho a 80px (se puede editar) y moverlas a la carpeta miniimage, entonces tenemos las grandes en uploads y las pequeñas en miniimages. El archivo está incluido en el index.pp y el ver.php, osea que no he modificado nada del publicando.php, osea que cuando alguien entre en vuestra página, automáticamente se ejecutará el archivo hacethumb.php.

Bueno, probarlo un poco y me decís que tal todo...

Un Saludo!!

Ahh!! Y he añadido una tabla en el centro de index.php y ver.php para que las noticias estén mas centradas, bueno, un saludo!!
  #42 (permalink)  
Antiguo 12/09/2011, 07:13
 
Fecha de Ingreso: septiembre-2011
Mensajes: 38
Antigüedad: 13 años, 3 meses
Puntos: 5
Respuesta: [APORTE] Sistema de noticias y comentarios

Para cambiar la anchura de las imagenes pequeñas, en el archivo hacethumb.php buscar esta linea:
Código PHP:
$ancho_nuevo 80
y el número 80 pes lo cambiais por el que querais.

Y si quereis que no salgan las imagenes pequeñas en el ver.php o en ningún lado, pues en cualquiera de los archivos index.php o ver.php buscar: echo '<div align="right"><a href="uploads/'.$row[foto].'"><img src="miniimages/'.$row[foto].'"/> y suprimirlo, pero si no lo quereis suprimir y soloo quereis que se muestre la imagen en grande, pues cambiar esta parte:
Código PHP:
<img src="miniimages/'.$row[foto].'"/> 
por esta:
Código PHP:
<img src="uploadss/'.$row[foto].'"/> 
Un Saludo!!
  #43 (permalink)  
Antiguo 12/09/2011, 12:48
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 9 meses
Puntos: 14
Respuesta: [APORTE] Sistema de noticias y comentarios

¡Estupendo aporte, amigo Lokor!

Lo he probado y ha quedado de maravillas. Felicitaciones!

Por cierto, quiero que le des una mirada a este trozo del código borrar.php, que va dentro del admin:

Código PHP:
Ver original
  1. <?php
  2. require ('../includes/connect.php');
  3. $id =$_GET['id'];
  4. $sql = "DELETE FROM noticias WHERE id_noticia ='$id'";
  5. $result = mysql_query($sql, $connect) or die("Error en consulta $sql:".mysql_error() );
  6. $foto = $row['foto'];
  7.     $path=$_SERVER['DOCUMENT_ROOT']."../uploads/".$foto;  
  8.     if (!($foto == '../uploads/'))
  9.         unlink($path);
  10. header("Location: panel.php");
  11. ?>

No hay caso que borre físicamente la foto, simplemente no pasa nada. Me parece importante agregarle esta funcionalidad, a fin de evitar que queden fotos haciendo nada si ya la noticia asociada fue eliminada de la base de datos.

A todo esto, ya estoy poniendo un poco de poesía al asunto, esto es, usando un template CSS, pero el problema es dónde subo todo para que me den vuestro parecer y sigamos avanzando.

Saludos!
  #44 (permalink)  
Antiguo 12/09/2011, 13:10
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 9 meses
Puntos: 14
Respuesta: [APORTE] Sistema de noticias y comentarios

Corregí un bug en el documento edit.php, que está dentro del admin

Código PHP:
Ver original
  1. <?php
  2. include ('../includes/connect.php');
  3. $id=$_POST['id'];
  4. $titulo=$_POST['titulo'];
  5. $autor=$_POST['autor'];
  6. $categoria=$_POST['categoria'];
  7. $noticia=$_POST['noticia'];
  8. //$foto = $_POST['foto'];
  9. $sql = "UPDATE noticias SET id_noticia='$id_noticia', titulo='$titulo', autor='$autor', noticia='$noticia', categoria='$categoria'";
  10. $result = mysql_query($sql, $connect) or die("Error en consulta $sql:".mysql_error() );
  11. header("location: panel.php");
  12. ?>
  #45 (permalink)  
Antiguo 12/09/2011, 14:24
 
Fecha de Ingreso: septiembre-2011
Mensajes: 38
Antigüedad: 13 años, 3 meses
Puntos: 5
Respuesta: [APORTE] Sistema de noticias y comentarios

El archivo borrar.php debe quedar así:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Borrar registro</title>
</head>
<body>
<?php
require ('../includes/connect.php');
$result2=mysql_query("select * from noticias order by fecha Desc"$connect); 
while(
$row=mysql_fetch_array($result2))
    {
$foto $row['foto'];
    
$path="../uploads/".$foto;  
    if (!(
$foto == '../uploads/'))
        
unlink($path);
    }
$id =$_GET['id'];
$sql "DELETE FROM noticias WHERE id_noticia ='$id'";
$result mysql_query($sql$connect) or die("Error en consulta $sql:".mysql_error() );
header("Location: panel.php");
?>
</body>
</html>
A mi me funcionó de 10!!

Un Saludo!!
  #46 (permalink)  
Antiguo 12/09/2011, 14:39
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 9 meses
Puntos: 14
Respuesta: [APORTE] Sistema de noticias y comentarios

Cierto, amigo Lokor, funciona al 100% .. el único problema es que ... ¡borró todas las demás fotos asociadas de otras noticias! jeje y el otro problema, es que no elimina las miniaturas. Un problema a resolver; quizás la miniatura debiera llevar un prefijo th, por ejemplo, para diferenciar el nombre de la foto de tamaño original y borrar ambas imágenes asociadas a cada una de las noticias.

Ambas imágenes, foto y su miniatura debieran estar en la misma carpeta, uploads, en este caso, para facilitar la tarea de borrado.

Saludos!

Ricardo
  #47 (permalink)  
Antiguo 12/09/2011, 14:50
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 9 meses
Puntos: 14
Respuesta: [APORTE] Sistema de noticias y comentarios

Modifiqué el borar.php para que resulte la eliminación, filtrando por el nombre desde el panel donde están Editar y al lado, Borrar:

O sea, del documento panel.php, la línea de Borrar queda así:

Código PHP:
Ver original
  1. <? echo '<a href="borrar.php?id='.$row[id_noticia].'&amp;foto='.$row[foto].'">Borrar</a>';?>

Y luego, el borrar.php

Código PHP:
Ver original
  1. <?php
  2. require ('../includes/connect.php');
  3. $foto = $_GET["foto"];
  4. $result2=mysql_query("SELECT * FROM noticias WHERE foto = '$foto'", $connect);
  5. while($row=mysql_fetch_array($result2))
  6.     {
  7. $foto = $row['foto'];
  8.     $path="../uploads/".$foto;  
  9.     if (!($foto == '../uploads/'))
  10.         unlink($path);
  11.     }
  12. $id =$_GET['id'];
  13. $sql = "DELETE FROM noticias WHERE id_noticia ='$id'";
  14. $result = mysql_query($sql, $connect) or die("Error en consulta $sql:".mysql_error() );
  15. header("Location: panel.php");
  16. ?>

Ahí resulta bien, pero queda lo de la miniatura asociada; cómo eliminarla al mismo tiempo. Y te repito, amigo Lokor, quizás lo más óptimo es que la miniatura lleve el prefijo th, o sea, thpaisaje.jpg, por poner un ejemplo.
  #48 (permalink)  
Antiguo 12/09/2011, 15:22
 
Fecha de Ingreso: septiembre-2011
Mensajes: 38
Antigüedad: 13 años, 3 meses
Puntos: 5
Respuesta: [APORTE] Sistema de noticias y comentarios

Mañana hago lo de la miniatura, osea lo del prefijo th

Un Saludo!!

Y hasta mañana!!
  #49 (permalink)  
Antiguo 12/09/2011, 23:07
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 9 meses
Puntos: 14
Respuesta: [APORTE] Sistema de noticias y comentarios

Sustituir con este nuevo código el que estaba en el documento edit.php:

Código PHP:
Ver original
  1. <?php
  2. include ('../includes/connect.php');
  3. $id=$_POST['id'];
  4. $titulo=$_POST['titulo'];
  5. $autor=$_POST['autor'];
  6. $categoria=$_POST['categoria'];
  7. $noticia=$_POST['noticia'];
  8. $sql = "UPDATE noticias SET id_noticia = '$id', titulo='$titulo', autor='$autor', noticia='$noticia', categoria='$categoria' WHERE id_noticia = '$id'";
  9. $result = mysql_query($sql, $connect) or die("Error en consulta $sql:".mysql_error() );
  10. //header("location: panel.php");
  11. echo '<script type="text/javascript">window.open("panel.php", "_self");</script>';
  12. ?>

A todo esto, el comprimido que subí a Megaupload está obsoleto ... Y sigo sacando bugs (queda mucho por hacer).

COntinuamos!
  #50 (permalink)  
Antiguo 12/09/2011, 23:11
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 9 meses
Puntos: 14
Respuesta: [APORTE] Sistema de noticias y comentarios

Pueden ir viendo cómo van los trabajos, acá
  #51 (permalink)  
Antiguo 14/09/2011, 11:58
 
Fecha de Ingreso: septiembre-2011
Mensajes: 38
Antigüedad: 13 años, 3 meses
Puntos: 5
Respuesta: [APORTE] Sistema de noticias y comentarios

Hola a todosss!! Ya tengo los códigos!! Siento tardar 1 dia entero pero es que ya he comenzado el colegio y bueno, hago lo que puedo jejeje!! Bueno, los códigos hacen esto, suben redimensionan la imagen original a una con un prefiho th, y el index.php el ver.php los he modificado para que se vean las de ahora, bueno vayamos con los pasos...

1er paso:
Eliminen la carpeta miniimages y el archivo hacethumb.php

2do Paso:
Editar todos estos archivos:
index.php
Código PHP:
<?php
include ('includes/connect.php');
//hacemos las consultas 
$result=mysql_query("select * from noticias order by fecha Desc"$connect); 
$totalregistros=mysql_num_rows($result); 
$result2=mysql_query("select * from comentarios where id_comentario",$connect);
$totalcomentarios=mysql_num_rows($result2);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Sistema de Noticias de KarlicOs :::.</title>
<link rel="stylesheet" href="css/estilo.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="style.css" media="screen" />
    <link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
    <script src="js/prototype.js" type="text/javascript"></script>
    <script src="js/scriptaculous.js?load=effects,builder" type="text/javascript"></script>
    <script src="js/lightbox.js" type="text/javascript"></script>
<style type="text/css">
#contenedor{
    width:700px;
    text-align:justify;
    margin-top: 0;
    margin-right: 20px;
    margin-bottom: 0;
    margin-left: 25px;
}
.flotar-iz {
    float:left;
    padding:7px;
    margin-right: 15px;
    margin-left: 15px;
}
.flotar-de {float:right;padding:7px;}
</style>
</head>
<body>
<div id="wrap">
  <div id="header">
    <h1>&nbsp;</h1>
</div>
  <div id="menu">
<a href="index.php" title="VOLVER A LA PORTADA" target="_top"><div id="li"></div></a>
  </div>
  <div id="content">
    <div class="left">
<div id="contenedor">
<?php
//Recogemos las consultas en un array y las mostramos 
while($row=mysql_fetch_array($result))
            {
$result2=mysql_query("select * from comentarios where id_comentario='".$row[id_noticia]."'",$connect);
$totalcomentarios=mysql_num_rows($result2);
$carpeta= ('miniimages/');
echo 
'<h3>'.$row[titulo].'</h3><br>';
echo 
'<a href="uploads/'.$row[foto].'" rel="lightbox">';
echo 
'<img src="uploads/th'.$row[foto].'" class="flotar-iz"/></a>';
echo 
substr($row['noticia'], 0550);
echo 
'&nbsp;<strong>...</strong><br><br>';
echo 
'<div id="postmeta" class="Fecha">Autor:&nbsp;'.$row[autor].'&nbsp; |&nbsp;Publicado en:&nbsp; '.$row[categoria].'&nbsp; |&nbsp;El:&nbsp; '.$row[fecha].'&nbsp;|&nbsp;Comentarios:&nbsp;('.$totalcomentarios.')&nbsp;|&nbsp;<a href="ver.php?id='.$row[id_noticia].'">Leer mas ...</a></div><br><br><br><br>';
    }
mysql_free_result($result)
?>
</div>
    </div>
    <div class="right">
 <h2>MENU:</h2>
<div id="Menu">
<?php include('menu.php');?>
</div>
<h2>&nbsp;</h2>
</div>
    <div style="clear: both;"> </div>
  </div>
  <div id="bottom"> </div>
  <div id="footer"> Designed by <a href="http://www.free-css-templates.com/">Free CSS Templates</a></div>
</div>
</body>
</html>
ver.php
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Sistema de Noticias de KarlicOs - Ver Noticia :::.</title>
<link rel="stylesheet" href="css/estilo.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="style.css" media="screen" />
    <link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
    <script src="js/prototype.js" type="text/javascript"></script>
    <script src="js/scriptaculous.js?load=effects,builder" type="text/javascript"></script>
    <script src="js/lightbox.js" type="text/javascript"></script>
<style type="text/css">
#contenedor{
    width:700px;
    text-align:justify;
    margin-top: 0;
    margin-right: 20px;
    margin-bottom: 0;
    margin-left: 25px;
}
.flotar-iz {
    float:left;
    padding:7px;
    margin-right: 15px;
    margin-left: 15px;
}
.flotar-de {float:right;padding:7px;}
</style>
<script type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
 
function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+': Es necesario una dirección de e-mail.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+': Es necesario que contenga un numero.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+': Es necesario que contenga un numero entre '+min+' y '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+': Es necesario que escriba un nick/comentario.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}
//-->
</script>
</head>
<body>
<div id="wrap">
  <div id="header">
    <h1>&nbsp;</h1>
</div>
<div id="menu">
<a href="index.php" title="VOLVER A LA PORTADA" target="_top"><div id="li"></div></a>

</div>
  <div id="content">
    <div class="left">
<div id="contenedor">
<?php
require ('includes/connect.php');
$id=mysql_real_escape_string($_GET["id"]);
$result mysql_query("select * from noticias where id_noticia='$id'",$connect);
while(
$row mysql_fetch_array($result))
{
$result2=mysql_query("select * from comentarios where noticia_id='$id'",$connect);
$totalcomentarios=mysql_num_rows($result2);
echo 
'<h3>'.$row[titulo].'</h3><br><br>';
echo 
'<a href="uploads/'.$row[foto].'" rel="lightbox" >';
echo 
'<img src="uploads/th'.$row[foto].'" class="flotar-iz"/></a>';
echo 
''.$row[noticia].'<br><hr><br>';
echo 
'Autor:&nbsp;'.$row[autor].' | '.$row[categoria].' |&nbsp;Publicado en:&nbsp; '.$row[fecha].'';
//echo '<a href="editarcomentario.php?id='.$row[id].'">Editar</a> | <a href="borrar.php?id='.$row[id].'">Borrar</a>';
}
mysql_free_result($result)
?> 
<br><br><br><br>
<?php
echo '<h2>Comentarios:&nbsp;('.$totalcomentarios.')</h2><br>';
//hago el llamado a la base
$result=mysql_query("select * from comentarios where noticia_id='$id'",$connect);
//Bucle while para visualizarlos
while($row=mysql_fetch_array($result))
{
echo 
'<h4>Nick: '.$row[nick].':</h4>Email: '.$row[email].'<br>Comentario: '.$row[comentario].'<br><br>';
}
mysql_free_result($result)
?> 
 
<form action="publicacomentario.php" method="post" onsubmit="MM_validateForm('nick','','R','email','','RisEmail','comentario','','R');return document.MM_returnValue">
<input type="hidden" name="id" value="<?php echo $id;  ?>"><br>
Nick:<br>
<input type="text" name="nick"><br>
E-Mail:<br>
<input type="text" name="email"><br>
Escriba el comentario<br>
<textarea name="comentario" cols="70" rows="15"></textarea>
<script type="text/javascript" src="editor/nicEdit.js"></script>
<script type="text/javascript">
bkLib.onDomLoaded(function() { nicEditors.allTextAreas() });
</script>
<br>
<input type="submit" value="Enviar comentario"><br>
</form>
</div>
</div>
<div class="right">
 <h2>MENU:</h2>
<div id="Menu">
<?php include('menu.php');?>
</div>
<h2>&nbsp;</h2>
</div>
    <div style="clear: both;"> </div>
  </div>
  <div id="bottom"> </div>
  <div id="footer"> Designed by <a href="http://www.free-css-templates.com/">Free CSS Templates</a></div>
</div>
</body>
</html>
Continua en el siguiente post...
  #52 (permalink)  
Antiguo 14/09/2011, 11:59
 
Fecha de Ingreso: septiembre-2011
Mensajes: 38
Antigüedad: 13 años, 3 meses
Puntos: 5
Respuesta: [APORTE] Sistema de noticias y comentarios

No pongais los códigos, me he equivocado, que algun admin elimine el primer post, el de arriba de este, que me he equivocado, mañana subo el código bien, perdon!!

Última edición por lokor712; 14/09/2011 a las 13:12
  #53 (permalink)  
Antiguo 15/09/2011, 16:15
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 9 meses
Puntos: 14
De acuerdo Respuesta: [APORTE] Sistema de noticias y comentarios

AMigo Lokor,

He estado haciendo pruebas exhaustivas de todo el código del frontend y la base de datos, luego de comprobar que no me contaba correctamente el número de comentarios correspondientes a cada noticia publicada. Un galimatías que ni te explico.

Y descubrí que el fallo era serio en el identificador o llave foránea. Tuve que modificar la base de datos y los dos scripts del front end. Espero que no te moleste amigo, pero es por el bien de todos, para que el sistema quede funcionando correctamente.

Además, introduje mejoras en la parte de los comentarios, agregué dos campos importantes: fecha de publicación de los comentarios y la ip de cada comentarista. Esto con vistas a banear al pesadito de sangre que no falta e impedirle que entre a la Web.

Más tarde o mañana publico todo.

Saludos!
  #54 (permalink)  
Antiguo 16/09/2011, 11:02
 
Fecha de Ingreso: septiembre-2011
Mensajes: 38
Antigüedad: 13 años, 3 meses
Puntos: 5
Respuesta: [APORTE] Sistema de noticias y comentarios

Hola, siento no haberme conectado, pero el instituto me tieene ya cansado y solo llevo 4 dias... bueno, os aviso que desde ya me pongo a trabajar de nuevo en el código, espero sacarlo aquí en cuanto antes, ahh y Ricardo, no hay problema, todo sea por mejorar el CMS, me alegro de que arregles estos fallos, cuando publiques el código podré trabajar con mas facilidad, pero de mientras voy trabajando

Un Saludo!!
  #55 (permalink)  
Antiguo 16/09/2011, 12:58
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 9 meses
Puntos: 14
Respuesta: [APORTE] Sistema de noticias y comentarios

Cita:
Iniciado por lokor712 Ver Mensaje
Hola, siento no haberme conectado, pero el instituto me tieene ya cansado y solo llevo 4 dias... bueno, os aviso que desde ya me pongo a trabajar de nuevo en el código, espero sacarlo aquí en cuanto antes, ahh y Ricardo, no hay problema, todo sea por mejorar el CMS, me alegro de que arregles estos fallos, cuando publiques el código podré trabajar con mas facilidad, pero de mientras voy trabajando

Un Saludo!!

Hola, amigo!

la verdad que ya saqué casi todos los bugs que encontré e incluso resolví lo del borrado de las miniaturas cuando eliminamos la noticia del registro de la base de datos. En realidad, la solución estaba a la mano, era más sencillo de lo que pensaba y era cuestión de lógica, modificando el archivo borrar.php que está dentro de la carpeta admin. Así es que, amigo, no te compliques con el tema del nombre th para las miniaturas y todo eso, ya no es necesario.

Por cierto, estoy instalando la última versión del editor CKeditor, que tiene incluso un manejador de imágenes muy bueno, mediante el cual es posible incluir fotos dentro de la noticia misma (claro que sin miniatura, con lo cual hay que entrar a dimensionar manualmente, pero eso no es problema).

Luego que suba todo podrás ver los resultados y dejaré un enlace para que puedas descargar todo el script.

Lo único que no he conseguido resolver es el tema de agrupar las noticias por mes, a fin de tener a mano derecha, debajo de las categorías un registro al estilo Wordpress para que las personas puedan ver cuántas noticias y cuáles se publicaron en los meses del año. Obvio que el histórico debiera tener tb el año. O sea, cuento corto:

junio 2010
....
Septiembre 2011
Octubre 2011
etc.

Este es el código, pero no hay caso que me resulte. A ver si tú puedes resolver el asunto:

Código PHP:
Ver original
  1. <?php
  2. require ('includes/connect.php');
  3. //hacemos las consultas
  4. $result = mysql_query("SELECT *, DATE_FORMAT(fecha,'%d-%m-%Y') AS fecha FROM noticias GROUP BY fecha ORDER by fecha ASC", $connect);
  5. $totalregistros=mysql_num_rows($result);
  6. //Recogemos las consultas en un array y las mostramos
  7. $hash = array("January" => "Enero", "February" => "Febrero", "March" => "Marzo", "April" => "Abril", "May" => "Mayo", "June" => "Junio", "July" => "Julio", "August" => "Agosto", "September" => "Septiembre", "October" => "Octubre", "November" => "Noviembre", "December" => "Diciembre");
  8. $mes = "";
  9. $mes = date ('n', $row['fecha']);
  10. while($row = mysql_fetch_array($result)) {
  11. if ($row['fecha'] == null || $row['fecha'] == "")
  12. continue;
  13. if ($mes != date ('F', $row['fecha'])){
  14. $mes = date ('F', $row['fecha']);
  15. echo"<b>";
  16. echo $hash[$mes].'</b><br>';
  17. }
  18. echo '<a href="archivo_noticias.php?fecha='.$row['fecha'].'&amp;id_noticia='.$row['id_noticia'].'">'.$row['fecha'].' </a><br>';
  19. }
  20. ?>
  #56 (permalink)  
Antiguo 16/09/2011, 16:55
 
Fecha de Ingreso: octubre-2008
Mensajes: 165
Antigüedad: 16 años, 1 mes
Puntos: 12
Respuesta: [APORTE] Sistema de noticias y comentarios

Aunque no aportemos por falta de conocimiento en PHP, seguramente hay varios, como yo, siguiéndolos. Gracias por su dedicación y compartir sus conocimientos.
  #57 (permalink)  
Antiguo 16/09/2011, 17:17
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 9 meses
Puntos: 14
Respuesta: [APORTE] Sistema de noticias y comentarios

Cita:
Iniciado por disweb Ver Mensaje
Aunque no aportemos por falta de conocimiento en PHP, seguramente hay varios, como yo, siguiéndolos. Gracias por su dedicación y compartir sus conocimientos.
No hay de qué amigo. Para eso estamos. Espero que más participen.

Bueno, en todo caso la idea es aportar a la comunidad un sistema de noticias y comentarios que a alguien pueda resultarle interesante y útil, bajo la premisa que el código puede ser estudiado, depurado y mejorado por los más expertos.

Luego subo todo.

Saludos!

Última edición por Dragon_Mandarin; 16/09/2011 a las 21:11
  #58 (permalink)  
Antiguo 17/09/2011, 06:00
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 9 meses
Puntos: 14
Respuesta: [APORTE] Sistema de noticias y comentarios

Bien, amigos, he subido todo, nuevamente, remozando todos los archivos. Pero como esto ya va para largo y a fin de no confundir más al personal, lo mejor es que los interesados descarguen el script y lo prueben en su propio server de pruebas.

Quedan cosas por hacer, pero al menos con lo que tiene, pueden funcionar sin problemas.

A todo esto, el sitio de pruebas lo eliminé, pues venció el período permitido por la persona que me había autorizado a utilizar su espacio Web. Veré otra alternativa.

En el caso de lo de las redes sociales, tienen que meterse al código en ver.php y modificar las líneas ...

Código PHP:
Ver original
  1. $social = new SocialClass("http://www.sitioweb.com/index.php", "Noticias", "", "url");
  2. echo "<a href=".$social->facebook()." target=\"_blank\">";
  3. echo '<img src="classes/facebook.png" alt="Facebook" width="19" height="18" border="0" align="absmiddle"/></a>&nbsp;|&nbsp;';
  4. echo "<a href=".$social->twitter()." target=\"_blank\">";
  5. echo '<img src="classes/twitter.png" alt="FTwitter" width="18" height="18" border="0" align="absmiddle"/></a>';

para que reflejen vuestro propio dominio.

A todo esto, como verán, en la columna de la derecha, ahí está lo del Archivo de Noticias; un total fail, no hay caso de hacer funcionar el asunto. Lo dejo en manos de quienes sean más habilidosos y expertos.

¡Ah! y queda lo de la paginación en el index.php. Tema para otra ocasión.

Cualquier duda, avisen.

Saludos!

Ricardo

Última edición por Dragon_Mandarin; 19/09/2011 a las 19:16
  #59 (permalink)  
Antiguo 26/09/2011, 05:23
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 9 meses
Puntos: 14
Respuesta: [APORTE] Sistema de noticias y comentarios

Bueno, me quedé solo trabajando en esto. He perfeccionado el script y ha quedado muy bien. Con la ayuda de otra persona conseguí esto del archivo anual-mensual de noticias pero está con un problema pues contea mal las noticias publicadas (me arroja un solo resultado, cuando hay varias noticias en un mes). Este es el código por si alguien se interesa en colaborar:

Código PHP:
Ver original
  1. ARCHIVO<br />
  2. <?php
  3. require ('includes/connect.php');
  4. //hacemos las consultas
  5. $result = mysql_query("SELECT * FROM noticias GROUP BY DATE_FORMAT(fecha, '%m')", $connect);
  6. $totalregistros=mysql_num_rows($result);
  7. //Recogemos las consultas en un array y las mostramos
  8. $hash = array("01" => "Enero", "02" => "Febrero", "03" => "Marzo", "04" => "Abril", "05" => "Mayo", "06" => "Junio", "07" => "Julio", "08" => "Agosto", "09" => "Septiembre", "10" => "Octubre", "11" => "Noviembre", "12" => "Diciembre");
  9. while($row = mysql_fetch_array($result)) {
  10.     if ($row['fecha'] == null || $row['fecha'] == "") continue;
  11.     list($anio,$mes,$dia)=explode("-",$row['fecha']);
  12. echo '<a href="archivo_noticias.php?fecha='.$row['fecha'].'">'.$hash[$mes].' </a>&nbsp;('.$totalregistros.')<br>';
  13. }
  14. ?>

Bueno, creo que llegué a finish con esto, ya no se qué más hacer. Espero que alguna vez alguien más se interese en colaborar.

Adios
  #60 (permalink)  
Antiguo 10/10/2011, 11:40
 
Fecha de Ingreso: septiembre-2011
Mensajes: 38
Antigüedad: 13 años, 3 meses
Puntos: 5
Respuesta: [APORTE] Sistema de noticias y comentarios

Hola, se que me he ausentado por un tiempo, y bueno, vuelvo con ideas, estoy trabajando en este CMS, y en cuanto acabe, este CMS será múltiple, quiero decir, que podrá servir para diferentes cosas, estará el tipo blog, el que hemos estado trabajando hasta ahora y alguno mas, ya veréis cuando lo tenga acabado, espero tenerlo lo antes posible, antes de navidades espero tenerlo ya todo, ya que con el instituto no es que tenga mucho tiempo libre pero voy hacindo cositas.

Ahh!! Quiero darle la enhorabuena a Ricardo, lo has dejado muy bien el CMS, le he añadido un sistema de paginación, y el Archivo se muestran 10 noticias y se muestra su título, bueno, os dejo, en cuanto vaya teniendo cosas os las pongo.

Un Saludo!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 18 personas




La zona horaria es GMT -6. Ahora son las 05:12.