Foros del Web » Programando para Internet » PHP »

Una ayudita con resumen de foro???

Estas en el tema de Una ayudita con resumen de foro??? en el foro de PHP en Foros del Web. Hola muchachos, por favor, vean está acción del foro... http://www.croa.com.ar/cgi-bin/ipb/index.php?act=home Yo lo incluí en mi página web, con un "iframe", eso está acá: www.croa.com.ar/index6.html Ahora ...
  #1 (permalink)  
Antiguo 28/08/2004, 19:24
Avatar de rusoftware  
Fecha de Ingreso: abril-2004
Ubicación: Rosario - Argentina
Mensajes: 1.083
Antigüedad: 20 años
Puntos: 2
Una ayudita con resumen de foro???

Hola muchachos, por favor, vean está acción del foro...

http://www.croa.com.ar/cgi-bin/ipb/index.php?act=home

Yo lo incluí en mi página web, con un "iframe", eso está acá: www.croa.com.ar/index6.html

Ahora mi pregunta:

De php sé muy poco, pero quería preguntarles si es posible que aparezca sólo la columna que dice "Ultimas Discusiones" y que el tamaño de la página sea de ancho 198 px y alto hasta 250px...

Como podría lograrlo???

Muchas gracias. Un abrazo. Fede
  #2 (permalink)  
Antiguo 28/08/2004, 20:46
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Eso debrías preguntarlo a quien te programó la página...
Ese tipo de portales, suele tener los bloques definidos.... tendrás que buscar entre el código.. pero si dices que de PHP sabes poco... entonces se te hará casi imposible descubrirlo...
Otra forma de hacerlo es definiendo tú mismo una consulta a la base de datos... (este es el camino más sencillo).

Y como no conozco tu BD ni su estructura, te pudo plantear un modo de crear ese iframe, pero será leyendo toda la página y extrayendo sólo la parte de definición de estilos y ese bloque.

Creas un archivo llamado "ultimas_discusiones.php"que sólo contenga esto:

"ultimas_discusiones.php"
Código PHP:
<?php
$origen_url 
"http://www.croa.com.ar/cgi-bin/ipb/index.php?act=home";
$archivo file($origen_url);

echo 
"<html><head><style type='text/css'>";
while(!
eregi("<style",$archivo[$i])){
    
$i++;
}
$estilo true;
while(
$estilo){
    if (
eregi("</style>",$archivo[$i])){
        
$estilo false;
    }else{
        echo 
$archivo[$i];
    }
    
$i++;
}
//---------------------------
echo "</style></head><body>";
//----------------------------
while(!eregi("discusiones",$archivo[$i])){
    
$i++;
}
$i $i-2;
$discusiones true;
while(
$discusiones){
    if (
eregi("recientes",$archivo[$i+2])){
        
$discusiones false;
    }else{
        echo 
$archivo[$i];
    }
    
$i++;
}
//----------------------------
echo "</body></html>";
//---------------------------
?>
Y en el iframe cargas el archivo "ultimas_discusiones.php"...
Como te digo, funcionará,... pero será más "eficiente" si puedes obtener el bloque directamente... haciendo la consulta a la BD directamente.

Saludos

Última edición por jpinedo; 28/08/2004 a las 20:51
  #3 (permalink)  
Antiguo 29/08/2004, 09:17
Avatar de rusoftware  
Fecha de Ingreso: abril-2004
Ubicación: Rosario - Argentina
Mensajes: 1.083
Antigüedad: 20 años
Puntos: 2
Gracias jpinedo

Ahora lo pruebo y me fijo si funciona...

Ya probé meterme en el código, pero la verdad no sabía para donde arrancar...
Y con respecto a la base de datos, es un foro "armado" que lo baje desde internet, así que yo tampoco lo tengo muy claro, sólo lo descargue, lo instale según las instrucciones y funciona.

Voy a probar eso que me dices, muchas gracias. Fede
  #4 (permalink)  
Antiguo 29/08/2004, 15:41
Avatar de rusoftware  
Fecha de Ingreso: abril-2004
Ubicación: Rosario - Argentina
Mensajes: 1.083
Antigüedad: 20 años
Puntos: 2
Perfecto jpinedo!

Puedes ver el resultado acá: http://croa.com.ar/index8.html

Ahora una más... (y no jodemo´mas )

Como puedo hacer para que al darle click a una de las preguntas me abra ese tema del foro en una ventana nueva y no en ese iframe???

Puede hacerse esto?

Desde ya, un millonar de gracias. Fede
  #5 (permalink)  
Antiguo 29/08/2004, 18:44
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
mmm... tienes razón... se me escapó ese "¿pequeño?" detalle...
lo que se me ocurre es reemplazar lo que diga <a por <a target="_blank" ...
Para esto podemos utilizar la función str_replace():
http://www.php.net/manual/es/function.str-replace.php

En este caso, no hará falta más que agregar una línea al código. Te vuelvo a postear todo y te indico la línea que debes agregar:


"ultimas_discusiones.php"
Código PHP:
<?php
$origen_url 
"http://www.croa.com.ar/cgi-bin/ipb/index.php?act=home";
$archivo file($origen_url);

echo 
"<html><head><style type='text/css'>";
while(!
eregi("<style",$archivo[$i])){
    
$i++;
}
$estilo true;
while(
$estilo){
    if (
eregi("</style>",$archivo[$i])){
        
$estilo false;
    }else{
        echo 
$archivo[$i];
    }
    
$i++;
}
//---------------------------
echo "</style></head><body>";
//----------------------------
while(!eregi("discusiones",$archivo[$i])){
    
$i++;
}
$i $i-2;
$discusiones true;
while(
$discusiones){
    if (
eregi("recientes",$archivo[$i+2])){
        
$discusiones false;
    }else{
    
//La siguiente línea es la que tienes que agregar:
    
$archivo[$i] = str_replace('<a ','<a target=\"_blank\" '$archivo[$i]);//LINEA AGREGADA
    //El resto sígue igual
        
echo $archivo[$i];
    }
    
$i++;
}
//----------------------------
echo "</body></html>";
//---------------------------
?>
Aunque insisto en que sería mejor conocer un poco la Base de datos y hacer la consulta directamente.

Saludos

Última edición por jpinedo; 29/08/2004 a las 18:45
  #6 (permalink)  
Antiguo 30/08/2004, 18:00
Avatar de rusoftware  
Fecha de Ingreso: abril-2004
Ubicación: Rosario - Argentina
Mensajes: 1.083
Antigüedad: 20 años
Puntos: 2
Gracias nuevamente amigo, realmente me has facilitado mucho las cosas!!!

Aunque ya baje algunos manuales de PHP y me pongo a aprender en menos que canta un gallo.

Gracias por tu invalorable ayuda
Un abrazo grande. Fede
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 21:52.