Recordad que para pedir soporte alguno, debéis facilitar los datos de soporte oportunos por favor, mirad aquí y leer las Normas generales del foro, esto nos servirá de ayuda para dar el mejor soporte..

Gracias.

La Administración de phpBB España.

Integrar foro con web log: ayuda con un script...

Foros donde podréis dejar vuestras dudas sobre phpBB 3.0.x
Cerrado

0
No hay votos
 
Votos totales: 0

Avatar de Usuario
mmfilesi
Usuario/a
Mensajes: 78
Registrado: 05 Sep 2010, 17:48

Integrar foro con web log: ayuda con un script...

#1

Mensaje por mmfilesi »

Hola amigos, de nuevo estoy aquí dando la lata, pero es que no puedo avanzar más yo solico pues apenas tengo unas nociones elementales sobre php. Gracias de antemano por la atención.

El problema es el siguiente. Estoy tratando de integrar en mi web log los últimos post del foro. El web lo programé yo, así que no corre bajo ninguna plataforma ni nada. Ya he conseguido lo esencial. Si, por favor, miramos esta página:

http://www.mmfilesi.com

En el apartado "últimos post del taller:" saco los tres últimos post. Peeeeeeeeeeero, aquí empiezan los problemas:

a) ¿De dónde sale en la url de un foro este último cacho: start=10#p201?

b) ¿Alguien sabe cómo puedo transformar los poster_id en los nombres de los que han posteado?

c) ¿Y cómo transformar la ristra de números que aparece en el campo post_time en una fecha?

MUCHAS GRACIAS (los datos de soporte en mi firma).

......

PS. Este es el script. Lo pongo anotado. Ya sé qué es una ñapa de script, jejeje, pero es que yo de esto no me entero ni de la misa a la media :oops: .

Código: Seleccionar todo


// Me conecto con el servidor y con la base

                $connection = mysql_connect("DATOS PERSONALES")
                    or die ("No fue posible efectuar la conexión");

                  $db = mysql_select_db("DATOS PERSONALES",$connection)
                    or die ("No se pudo seleccionar la base de datos");


// Selecciono lo que voy a necesitar de la tabla donde están los post: phpbb_DATOS PERSONALESposts y selecciono los tres últimos registros.

                    $query = "SELECT post_text, forum_id, topic_id, post_id, FROM phpbb_DATOS PERSONALESposts ORDER BY post_id DESC LIMIT 0,3";
		    $result = mysql_query($query)
		    	or die("Consulta fallida1: " . mysql_error());


// Recorro la consulta

	while ($row = mysql_fetch_array ($result)) {

?>
     <div>

<?php

// Me cepillo los bbcodes
       $recogedor = $row['post_text'];
       $limpio = preg_replace ('/\[.+?\]/', '',$recogedor);

// Selecciono el principio del post (en este caso, los primeros 200 caracteres) y añado tres puntitos al final para que quede más elegante.
   	$limpio = substr("$limpio",0,200)."... ";

// Y esto saca ya el cachico del post limpico
       echo $limpio;

// Ahora lo enlazo con un "ver +" como rótulo del link
 ?>
   <a href=http://www.mmfilesi.com/taller/viewtopic.php?f=<?php echo $row['forum_id'];?>&t=<?php echo $row['topic_id'];?>> ver + </a>
     </div>

<?php
	mysql_close($connection);
	}
?>

Gracias por la atención!
Datos de soporte:
Spoiler
URL: http://www.mmfilesi.com/taller
Versión phpBB: phpBB3 (3.0.7-PL1)
MODs Instalados: IP-address in topic for phpBB3
Print Post Mod
dvanced bbcode Box 3
Plantilla(s) usada(s): prosilver
Servidor: de pago
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No

Avatar de Usuario
mmfilesi
Usuario/a
Mensajes: 78
Registrado: 05 Sep 2010, 17:48

Integrar foro con web log: ayuda con un script...

#2

Mensaje por mmfilesi »

Vale, ya he resuelto un problema (el b) y es identificar a los usuarios... ains mare! que stoy atontau del tó... bastaba con hacer bien la consulta combinando dos tablas:

Código: Seleccionar todo

"SELECT post_text, forum_id, topic_id, post_id, username FROM phpbb_DATOSPERSONALESposts, phpbb_DATOSPERSONALESusers WHERE poster_id=user_id ORDER BY post_id DESC LIMIT 0,3
Si alguien me echa un cable con lo demás, pues más que agradecido... que se me está poniendo cara de algoritmo y soy de letras :shock: .
Datos de soporte:
Spoiler
URL: http://www.mmfilesi.com/taller
Versión phpBB: phpBB3 (3.0.7-PL1)
MODs Instalados: IP-address in topic for phpBB3
Print Post Mod
dvanced bbcode Box 3
Plantilla(s) usada(s): prosilver
Servidor: de pago
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No

Avatar de Usuario
jakk
Ex Staff
Mensajes: 2201
Registrado: 14 Jun 2009, 08:57
Edad: 40

Re: Integrar foro con web log: ayuda con un script...

#3

Mensaje por jakk »

start=x representa a la paginación del tema, es decir a partir desde que mensaje saltará de página

y #pxxx sale del campo topic_last_post_id de la tabla phpbb_topics


el campo post_time puedes transformarlo en una fecha usando la funcion format_date mas o menosalgo similar a esto:

Código: Seleccionar todo

$user->format_date($row['post_time'])
Antes de nada, lee las Normas de phpBB-Es, y el siempre útil Foro de guías sobre phpBB 3.
Consulta la Documentación de phpBB 2 y phpBB 3 y sus correspondientes FAQS de ayuda.
Administra, modifica, actualiza tu foro con el listado de Guías de nuestra Biblioteca.
Quizás tu duda esté resuelta, y todos ahorremos tiempo.
Si es sobre cómo Crear una Consulta SQL ya lo tienes explicado en el enlace.
En general, se recomienda Buscar antes de preguntar para no repetir preguntas y dudas resueltas.
Sólo tendrás Soporte si facilitas los datos correspondientes y si respetas completamente el Copyright de phpBB.
NOTA: No damos Soporte a los foros integrados en Nuke y derivados del mismo. Infórmate AQUÍ.

[hr]
No doy soporte por MP ni por MSN ni por el Chat
[hr]
© Jakk - www.ivemfinity.com | © chirri23 - www.mundoforeros.com | Foro de Pruebas

Avatar de Usuario
mmfilesi
Usuario/a
Mensajes: 78
Registrado: 05 Sep 2010, 17:48

Integrar foro con web log: ayuda con un script...

#4

Mensaje por mmfilesi »

Gracias por responder Jack, luego miro eso del start...

Ahora estoy en dura lucha por traducir la ristra de numerajos que aparece en el post_time. Por lo que estoy viendo es algo así la historia:

Código: Seleccionar todo

$fecha_de_registro = $row['post_time'];        
	echo gmdate('D, d M Y H:i:s \G\M\T',$fecha_de_registro);
jajajjaa... pero me estoy saltando algo, pq todo el rato me pone:Thu, 01 Jan 1970 00:00:00 GMT

Es como la película del día de la marmota...

Bueno, voy a ver si consigo sacarlo. Gracias de nuevo.
Última edición por mmfilesi el 13 Nov 2010, 10:39, editado 3 veces en total.
Datos de soporte:
Spoiler
URL: http://www.mmfilesi.com/taller
Versión phpBB: phpBB3 (3.0.7-PL1)
MODs Instalados: IP-address in topic for phpBB3
Print Post Mod
dvanced bbcode Box 3
Plantilla(s) usada(s): prosilver
Servidor: de pago
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No

Avatar de Usuario
mmfilesi
Usuario/a
Mensajes: 78
Registrado: 05 Sep 2010, 17:48

Integrar foro con web log: ayuda con un script...

#5

Mensaje por mmfilesi »

Vale, sí, era eso... sólo que estaba poniendo mal el nombre de una variable. Voy a ver si descubro ahora que lo escriba en español.
Datos de soporte:
Spoiler
URL: http://www.mmfilesi.com/taller
Versión phpBB: phpBB3 (3.0.7-PL1)
MODs Instalados: IP-address in topic for phpBB3
Print Post Mod
dvanced bbcode Box 3
Plantilla(s) usada(s): prosilver
Servidor: de pago
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No

Avatar de Usuario
mmfilesi
Usuario/a
Mensajes: 78
Registrado: 05 Sep 2010, 17:48

Integrar foro con web log: ayuda con un script...

#6

Mensaje por mmfilesi »

Vale, ya casi lo tengo... Sólo me falta un detalle y se saber de dónde sale el dato del start (de qué tabla). Hay una forma muy cutre de hacerlo y es definiendo un valor fijo muy alto, ya que por defecto parece que te lleva al último. Pero la verdad es que sería bueno dejarlo ya bien hecho.

Si alguien lo sabe, se lo agradecería un montón.
Datos de soporte:
Spoiler
URL: http://www.mmfilesi.com/taller
Versión phpBB: phpBB3 (3.0.7-PL1)
MODs Instalados: IP-address in topic for phpBB3
Print Post Mod
dvanced bbcode Box 3
Plantilla(s) usada(s): prosilver
Servidor: de pago
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No

Avatar de Usuario
mmfilesi
Usuario/a
Mensajes: 78
Registrado: 05 Sep 2010, 17:48

Integrar foro con web log: ayuda con un script...

#7

Mensaje por mmfilesi »

...mmm... Estoy viendo que en realidad, en ñapa script, no es necesario. Con poner un valor altísimo como 900 funciona.

Bueno, pues dejo aquí el ñapa script por si a alguien le sirve de algo. Es una cutrez, pero funciona. Va sin estilos ni nada. Así se muestra de esta manera:

Nombre posteador
Lo posteado
Ver + (Un enlace al post)
Tópico en el que ha posteado
Fecha en la que ha posteado (en inglés)


Pero todo seguido, sin espacios ni ná de ná... Para aplicar estilos, sustituye

Código: Seleccionar todo

?> ESTILO <?php
por las etiquetas de HTML-CSS que quieras. Y cambia lo que va en mayúsculas por tus datos.

Código: Seleccionar todo

<?php 
/* Nos conectamos con el servidor y con la base. Por lo general, localhost vale como NOMBRE DEl SERVIDOR */

                $connection_sacaultimospost = mysql_connect("NOMBRE DEl SERVIDOR","NOMBRE USUARIO","CONTRASEÑA")
                    or die ("No fue posible efectuar la conexión");
                  $db_sacaultimospost = mysql_select_db("NOMBRE BASE DE DATOS DEL FORO",$connection_sacaultimospost)
                    or die ("No se pudo seleccionar la base de datos");

/* Seleccionamos lo que vamos a necesitar de las tablas donde están los post: phpbb_NOMBREBASEposts y phpbb_NOMBREBASEtopics. En este caso, seleccionamos los tres últimos registros. Si quieres más cambia el segundo número que hay después de LIMIT */

                    $query_sacaultimospost = "SELECT post_text, phpbb_NOMBREBASEposts.forum_id, phpbb_NOMBREBASEposts.topic_id, post_time, post_id, topic_last_poster_name, topic_last_post_id, topic_title FROM phpbb_NOMBREBASEposts, phpbb_NOMBREBASEtopics WHERE phpbb_NOMBREBASEposts.topic_id=phpbb_NOMBREBASEtopics.topic_id ORDER BY post_id DESC LIMIT 0,3";
		    $result_sacaultimospost = mysql_query($query_sacaultimospost)
		    	or die("Consulta fallida1: " . mysql_error());

/* Recorremos la consulta */

	while ($row_sacaultimospost = mysql_fetch_array ($result_sacaultimospost)) {

/*  Nos cepillamos los bbcodes y los html tags */
       $recogedor = $row_sacaultimospost['post_text'];
       $limpio = preg_replace ('/\[.+?\]/', '',$recogedor);
       $limpio = strip_tags($limpio);

/*  Seleccionamos el principio del post (en este caso, los primeros 200 caracteres) y añadimos tres puntitos al final para que quede más elegante. */
   	$limpio = substr("$limpio",0,200)."... ";

/*  Nombre del posteador */       
	echo $row_sacaultimospost['topic_last_poster_name'];
        ?> ESTILO <?php

/* Lo posteado */
       echo $limpio;

/* Enlace al foro con un "ver +" como rótulo del link. En NOMBRERUTA pon la ruta completa de tu foro. */
 ?>
    <a href=NOMBRERUTA/viewtopic.php?f=<?php echo $row_sacaultimospost['forum_id'];?>&t=<?php echo $row_sacaultimospost['topic_id'];?>&start=900#p<?php echo $row_sacaultimospost['topic_last_post_id'];?>><b> ver +</b></a>

<?php
/* Y aquí la fecha y título del tópico: */

        echo $row_sacaultimospost['topic_title'];
        ?> ESTILO <?php

	$fecha_de_registro = $row_sacaultimospost['post_time'];
	echo gmdate('D, d M Y H:i:s',$fecha_de_registro);
	}
        mysql_close($connection_sacaultimospost);
?>
Bueno, pues si no se me ha ido la pinza al transcribirlo aquí, el ñapa script este debería funcionar.

Saludos.
Datos de soporte:
Spoiler
URL: http://www.mmfilesi.com/taller
Versión phpBB: phpBB3 (3.0.7-PL1)
MODs Instalados: IP-address in topic for phpBB3
Print Post Mod
dvanced bbcode Box 3
Plantilla(s) usada(s): prosilver
Servidor: de pago
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No

Cerrado

Volver a “Foros de Soporte 3.0.x”