Foros del Web » Programando para Internet » PHP »

poner pestaña 'mas info' en un sistema de noticias

Estas en el tema de poner pestaña 'mas info' en un sistema de noticias en el foro de PHP en Foros del Web. Hola tengo ya completamente funcionando un sistema de noticias, tengo puesto para que se vean las noticias en la portada de mi página web y ...
  #1 (permalink)  
Antiguo 17/03/2009, 10:40
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Pregunta poner pestaña 'mas info' en un sistema de noticias

Hola tengo ya completamente funcionando un sistema de noticias, tengo puesto para que se vean las noticias en la portada de mi página web y un maximo de 3 noticias pero ahora lo que me gustaria es que esas noticias no se vean por completo en la pagina principal es decir que salga solo un resumen y una pestaña 'mas info' por ejemplo, ¿como lo hago?.
  #2 (permalink)  
Antiguo 17/03/2009, 10:56
Avatar de djsos  
Fecha de Ingreso: septiembre-2007
Ubicación: Madrid-España
Mensajes: 374
Antigüedad: 16 años, 7 meses
Puntos: 14
Respuesta: poner pestaña 'mas info' en un sistema de noticias

puedes insertar tambien un resmen en la bd hecho por ti, y que te muestre eso en la pagina principal, tembien lo que puedes hacer es mostrar un determinado numero de caracteres. La de poner un boton mas info seria un hipervinculo a la pagina de la noticia, si quieres dime lo de la primera parte y te puedo ayudar dependiendo lo que necesites.
Un saludo
  #3 (permalink)  
Antiguo 17/03/2009, 11:01
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: poner pestaña 'mas info' en un sistema de noticias

Haber mira, el sistema esta accesible para varios usuarios a los que les doy unos privilegios en el sistema de usuarios y tienen acceso a publicar noticias asi que lo mas recomendable seria que saliera un limite de caracteres y lo de 'mas info', lo que no comprendo muy bien eso del enlace hacia la pagina de la noticia.... ¿Que tengo que crear una pagina por cada noticia o se crea automatico con el php?
  #4 (permalink)  
Antiguo 17/03/2009, 11:04
Avatar de djsos  
Fecha de Ingreso: septiembre-2007
Ubicación: Madrid-España
Mensajes: 374
Antigüedad: 16 años, 7 meses
Puntos: 14
Respuesta: poner pestaña 'mas info' en un sistema de noticias

la pagina de las noticias se crea automaticamente tu solo hace una pagina extandar con como quieres que se muestren las noticias es decir, una pagina donde tu le indicas donde vana air colocadas las cosas y luego por post o get como tu veas le dices el id de la notica por ejemplo y asi te la mostraria.Dame unos minutos te digo lo de limitar los caracteres ;)
  #5 (permalink)  
Antiguo 17/03/2009, 11:09
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: poner pestaña 'mas info' en un sistema de noticias

vale ya entendi el tema ahora lo unico que necesito es el limitador de caracteres, ya tengo puesto el limitador de noticias para que solo salgan 3 y un poco de informacion sobre que tengo que indicar en la pagina donde se enviara a ver las noticias.
  #6 (permalink)  
Antiguo 17/03/2009, 11:20
Avatar de djsos  
Fecha de Ingreso: septiembre-2007
Ubicación: Madrid-España
Mensajes: 374
Antigüedad: 16 años, 7 meses
Puntos: 14
Respuesta: poner pestaña 'mas info' en un sistema de noticias

Código PHP:
$var "Hola esto seria un recuento de palabras normal";
$varr str_word_count($var,1);
$n count($varr); 
$var seria todo el texto de la noticia
luego con la funcion str_word_count te separa el array en palabras,
con la funcion count pues cuentas los elementos del nuevo array
lueg decides el numero de palabras que mostrar por ejemplo la tercera parte de todo el texto
pues pones
$numero_mostrar = ($n/100)*30;
luego solo tienes que mostrar los elementos del array hasta que lleges al numero de palabras que le has dicho que muestre
  #7 (permalink)  
Antiguo 17/03/2009, 11:25
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Pregunta Respuesta: poner pestaña 'mas info' en un sistema de noticias

Djsos me has dejado descolocado... Mira este es el codigo con el que yo muestro las noticias:

Código PHP:
<?php
// verificamos si se ha enviado
// alguna variable via GET
if(isset($_GET['id']) && $_GET['categoria']){
// asignamos los valores
// a las variables que usaremos
$cat_ID $_GET['id'];
$categoria $_GET['categoria'];
$clausula "WHERE notCategoriaID = '$cat_ID'";
// tambien armamos el titular de la pagina
$titulo "Noticias en la categoria $categoria";
}else{
// de lo contrario
// el titulo sera general
//$titulo = "Todas las noticias";
}
// armamos la consulta
if (!isset($pag)) $pag 1;
$sqlQueryNot mysql_query("SELECT COUNT(*) FROM sn_noticias"$db_link);
list(
$total) = mysql_fetch_row($sqlQueryNot);
$tampag 3;
$reg1 = ($pag-1) * $tampag;
$sqlQueryNot mysql_query("SELECT notTitulo, notTexto FROM sn_noticias
$clausula LIMIT $reg1, $tampag"
$db_link); 

//echo "<p>$titulo</p>";
// mostramos las noticias,
// otra vez usando un bucle while
while($rowNot mysql_fetch_array($sqlQueryNot)){ 
echo 
"<p class=\Estilo1\"><hr>".stripslashes($rowNot['notTitulo'])."</p>"
echo 
nl2br(stripslashes($rowNot['notTexto'])); 
}  
echo 
"<br/><hr>";

?>
¿Podrias explicarme donde e de insertarlo?.
  #8 (permalink)  
Antiguo 17/03/2009, 11:38
 
Fecha de Ingreso: septiembre-2008
Ubicación: Lanzarote, Canarias
Mensajes: 486
Antigüedad: 15 años, 8 meses
Puntos: 41
Respuesta: poner pestaña 'mas info' en un sistema de noticias

Código:
<?php
// funcion para recortar un texto
function Recortar($texto,$len){
$chars=strlen($texto);
$texto=strip_tags($texto);
if($chars>$len) $texto=substr($texto,0,$len-3)."...";
return $texto;
}

// verificamos si se ha enviado
// alguna variable via GET
if(isset($_GET['id']) && $_GET['categoria']){
// asignamos los valores
// a las variables que usaremos
$cat_ID = $_GET['id'];
$categoria = $_GET['categoria'];
$clausula = "WHERE notCategoriaID = '$cat_ID'";
// tambien armamos el titular de la pagina
$titulo = "Noticias en la categoria $categoria";
}else{
// de lo contrario
// el titulo sera general
//$titulo = "Todas las noticias";
}
// armamos la consulta
if (!isset($pag)) $pag = 1;
$sqlQueryNot = mysql_query("SELECT COUNT(*) FROM sn_noticias", $db_link);
list($total) = mysql_fetch_row($sqlQueryNot);
$tampag = 3;
$reg1 = ($pag-1) * $tampag;
$sqlQueryNot = mysql_query("SELECT notTitulo, notTexto FROM sn_noticias
$clausula LIMIT $reg1, $tampag", $db_link); 

//echo "<p>$titulo</p>";
// mostramos las noticias,
// otra vez usando un bucle while
while($rowNot = mysql_fetch_array($sqlQueryNot)){ 
echo "<p class=\Estilo1\"><hr>".stripslashes($rowNot['notTitulo'])."</p>"; 
echo Recortar(ucfirst(stripslashes($rowNot['notTexto'])),510);
}  
echo "<br/><hr>";

?>
Toma, luego en la function de leermas pones la noticia normal y listo... ah y no deberías utilizar $_GET y $_POST sin filtrarlos antes... ya que te pueden meter cualquier cosa los usuarios.
  #9 (permalink)  
Antiguo 17/03/2009, 11:41
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: poner pestaña 'mas info' en un sistema de noticias

jejej muchisimas gracias fenomeno. y lo que me dices de get y post como lo deberia de hacer?
  #10 (permalink)  
Antiguo 17/03/2009, 11:46
 
Fecha de Ingreso: septiembre-2008
Ubicación: Lanzarote, Canarias
Mensajes: 486
Antigüedad: 15 años, 8 meses
Puntos: 41
Respuesta: poner pestaña 'mas info' en un sistema de noticias

Pues depende si lo que tiene que pasar es un numero, como es el caso de el id de la noticia para saber cual mostrar cuando haces index.php?n=10 y lo recoges así $_GET[n] como siempre sera un numero podías comprobarlo así echo intval($_GET[n]); entonces no te podrían insertar nada mas que números... y si tiene que ser letras y números, pero no necesitas HTML utiliza strip_tags para borrarlo o mysql_real_escape http://es2.php.net/mysql_real_escape_string pero bueno todo esto creo que te podrán aconsejar otros usuarios más expertos que yo.
  #11 (permalink)  
Antiguo 17/03/2009, 13:55
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 2 meses
Puntos: 20
Respuesta: poner pestaña 'mas info' en un sistema de noticias

Código PHP:
<?php
function resumen($texto,$tam){
$cantidad strlen(strip_tags($texto));
    if(
$cantidad $tam){    
        
$contenido substr(strip_tags($texto), 0$tam);
    }else{
        
$contenido strip_tags($texto);
    }
return 
$contenido
}

echo 
resumen($rowNot['notTexto'], "300"); 

?>
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #12 (permalink)  
Antiguo 17/03/2009, 14:01
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: poner pestaña 'mas info' en un sistema de noticias

Cita:
Iniciado por codig0 Ver Mensaje
Código:
<?php
// funcion para recortar un texto
function Recortar($texto,$len){
$chars=strlen($texto);
$texto=strip_tags($texto);
if($chars>$len) $texto=substr($texto,0,$len-3)."...";
return $texto;
}

// verificamos si se ha enviado
// alguna variable via GET
if(isset($_GET['id']) && $_GET['categoria']){
// asignamos los valores
// a las variables que usaremos
$cat_ID = $_GET['id'];
$categoria = $_GET['categoria'];
$clausula = "WHERE notCategoriaID = '$cat_ID'";
// tambien armamos el titular de la pagina
$titulo = "Noticias en la categoria $categoria";
}else{
// de lo contrario
// el titulo sera general
//$titulo = "Todas las noticias";
}
// armamos la consulta
if (!isset($pag)) $pag = 1;
$sqlQueryNot = mysql_query("SELECT COUNT(*) FROM sn_noticias", $db_link);
list($total) = mysql_fetch_row($sqlQueryNot);
$tampag = 3;
$reg1 = ($pag-1) * $tampag;
$sqlQueryNot = mysql_query("SELECT notTitulo, notTexto FROM sn_noticias
$clausula LIMIT $reg1, $tampag", $db_link); 

//echo "<p>$titulo</p>";
// mostramos las noticias,
// otra vez usando un bucle while
while($rowNot = mysql_fetch_array($sqlQueryNot)){ 
echo "<p class=\Estilo1\"><hr>".stripslashes($rowNot['notTitulo'])."</p>"; 
echo Recortar(ucfirst(stripslashes($rowNot['notTexto'])),510);
}  
echo "<br/><hr>";

?>
Toma, luego en la function de leermas pones la noticia normal y listo... ah y no deberías utilizar $_GET y $_POST sin filtrarlos antes... ya que te pueden meter cualquier cosa los usuarios.
ya tengo puesto este y funcionando me acaba en unos puntos suspensivos... pero ahora que tengo que poner para crear el enlace de mas info? y en la pagina donde se vera la noticia?

Acabo de crear una página la cual la he llamado mas.php con el siguiente contenido:

Código PHP:
<?php 
include("db-cnx.php"); 

if(isset(
$_GET['not_ID'])){    
    
$not_ID $_GET['not_ID'];
    
$sqlQueryNot mysql_query("SELECT notTitulo, notTexto, not_ID, notCategoriaID FROM sn_noticias WHERE not_ID = $not_ID"$db_link) or die(mysql_error);
 
$rowNot mysql_fetch_array($sqlQueryNot);
    echo 
"<h2>$rowNot[notTitulo]</h2>";
    echo 
$rowNot['notTexto'];
?>
el problema es que he creado un enlace asi: <a href=\"mas.php=not_ID\" target=\"_blank\">Más</a> (todo el enlace esta dentro de las comillas del echo) y queda una cosa asi:

Código PHP:
echo Recortar(ucfirst(stripslashes($rowNot['notTexto'])),130)." <a href=\"mas.php=not_ID\" target=\"_blank\">Más</a>"
pero al pinchar en el enlace me lleva a un error como que la pagina no existe. a que puede deberse eso?

Última edición por rompeguesos; 17/03/2009 a las 14:49 Razón: ya he creado la pagina mas.php
  #13 (permalink)  
Antiguo 17/03/2009, 14:54
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Pregunta Respuesta: poner pestaña 'mas info' en un sistema de noticias

No se si lo he esplicado bien pero para cualquier aclaracion no duden en preguntar.
  #14 (permalink)  
Antiguo 17/03/2009, 15:07
 
Fecha de Ingreso: septiembre-2008
Ubicación: Lanzarote, Canarias
Mensajes: 486
Antigüedad: 15 años, 8 meses
Puntos: 41
Respuesta: poner pestaña 'mas info' en un sistema de noticias

Hombre... es que no se hace así, no es mas.php=not_ID es mas.php?not_ID=el id de la noticia que lo sacas de la llamada
  #15 (permalink)  
Antiguo 17/03/2009, 15:15
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Pregunta Respuesta: poner pestaña 'mas info' en un sistema de noticias

vale ya llega a la pagina y todo pero me sale en blanco e puesto esto:

Código PHP:
<a href="mas.php?not_id=$not_ID\" target=\"_blank\">Más</a> 
porque sale en blanco?
  #16 (permalink)  
Antiguo 17/03/2009, 15:21
 
Fecha de Ingreso: septiembre-2008
Ubicación: Lanzarote, Canarias
Mensajes: 486
Antigüedad: 15 años, 8 meses
Puntos: 41
Respuesta: poner pestaña 'mas info' en un sistema de noticias

Yo la verdad no entiendo tu código... ya que $not_ID es $_GET['not_ID'] y se supone que estás en el index de las noticias, así que la url será www.tuweb.com/noticias.php por poner un ejemplo y no www.tuweb.com/noticias.php?not_ID=1 por poner otro ejemplo... entonces la variable va a estar vacía... creo que deberías leerte primero un manual de PHP
  #17 (permalink)  
Antiguo 18/03/2009, 03:36
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: poner pestaña 'mas info' en un sistema de noticias

Este codigo lo cogi por una web tu sabes buscando en google .
  #18 (permalink)  
Antiguo 18/03/2009, 07:17
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 2 meses
Puntos: 20
Respuesta: poner pestaña 'mas info' en un sistema de noticias

me parece que tiene que ser:

Código PHP:

echo Recortar(ucfirst(stripslashes($rowNot['notTexto'])),130)." <a href=\"mas.php=not_ID=".$rowNot['not_ID']."\" target=\"_blank\">Más</a>"
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)

Última edición por farra; 18/03/2009 a las 07:24
  #19 (permalink)  
Antiguo 18/03/2009, 08:41
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: poner pestaña 'mas info' en un sistema de noticias

jejeje gracias Farra pero esto sige sin salir asi no sale ni la pagina que me salia antes en blanco. Mira en la pagina mas.php he puesto 'Hola' para comprobar si llega a la pagina y con esto:

<a href="mas.php?not_id=$not_ID\" target=\"_blank\">Más</a>

si me llega y aparece el hola pero no la noticia.... que cosa mas rara... que podra ser? necesitais que os indique algo mas de codigo?
El sistema consta de las siguientes paginas:
* 1 para agregar las noticias
* 1 para agregar categorias
* 1 que muestra las noticias
* 1 la conexion a la base de datos

si quereis ver algun codigo solo teneis que pedirlo.
  #20 (permalink)  
Antiguo 18/03/2009, 08:50
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 2 meses
Puntos: 20
Respuesta: poner pestaña 'mas info' en un sistema de noticias

claro que llega a la pagina mas.php....

lo que quiero que me digas es la url con la que llega...

localhost/tusitio/mas.php?not_id=(aca que dice)

eso es lo que quiero saber

y luego seria bueno si pegas el codigo de mas.php...

por que tambien debe haber un codigo ahi para que se muestre la noticia...
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #21 (permalink)  
Antiguo 18/03/2009, 08:54
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Pregunta

No pone nada se qeda en blanco.

El mas.php es este:

Código PHP:
<?php 
include(""); // <-- aqui esta la conexion a la base de datos.

if(isset($_GET['not_ID'])){    
    
$not_ID $_GET['not_ID'];
    
$sqlQueryNot mysql_query("SELECT notTitulo, notTexto, not_ID, notCategoriaID FROM sn_noticias WHERE not_ID = $not_ID"$db_link) or die(mysql_error);
 
$rowNot mysql_fetch_array($sqlQueryNot);
    echo 
"<h2>$rowNot[notTitulo]</h2>";
    echo 
$rowNot['notTexto'];
    }
    
    echo 
"hola";
?>
necesitas algun otro codigo?

Última edición por GatorV; 18/03/2009 a las 11:40
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




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