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.

Interpretar BBCode de PHPBB en mi WebTema Solucionado

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

0
No hay votos
 
Votos totales: 0

EdgarAlexander
Observador/a
Mensajes: 39
Registrado: 31 Jul 2011, 01:50
Edad: 30

Interpretar BBCode de PHPBB en mi Web

#1

Mensaje por EdgarAlexander »

URL: http://residentevilspace.zxq.net/foro/
Versión phpBB: 3.0.9
MODs Instalados: Ninguno
Plantilla(s) usada(s): Cooperative
Servidor: Linux | Apache | Gratuito | Zymic Hosting
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No

Buenas gente de PHP, una vez más necesito de su ayuda, resulta que quiero consultar los posts de mi foro en mi Web, pero a su vez interpretar los BBCodes de cada uno, ¿Me podrían decir como, o que script utilizan, o una guía para implementarlo en mi plantilla?

Muchas Gracias, y que pasen una agradable noche...

Alex

Avatar de Usuario
Alorse
Ex Staff
Mensajes: 5144
Registrado: 22 Mar 2008, 02:14
Género:
Edad: 36

Re: Interpretar BBCode de PHPBB en mi Web

#2

Mensaje por Alorse »

Haber si entendí, quieres listar los temas del foro en la pagina aparte. Como vas a hacer eso? o como lo hiciste?

Muevo el tema al foro de phpBB avanzado.


EdgarAlexander
Observador/a
Mensajes: 39
Registrado: 31 Jul 2011, 01:50
Edad: 30

Re: Interpretar BBCode de PHPBB en mi Web

#3

Mensaje por EdgarAlexander »

Hola Alorse, ¿Cómo estás..? Bueno este tema es muy parecido a uno de los que he hecho anteriormente (solo que aquella vez era solo una consulta a los "topic_replies") si no fui muy claro me disculpo y aclaro:

Normalmente para consultar el contenido de un tema o post se tiene que hacer una consulta a la DB.. entonces:

$myquery = "SELECT post_text FROM foro_post WHERE post_id = 'x'";

Entonces listo, ya consulté mi post y lo presento en mi página aparte QUE NO ES DE PHPBB, pero hay un problema, y ese problema es que al mostrar el contenido del post, este se muestra con el BBCode..

Entonces, para presentar mis posts en la página principal yo no utilizo esa forma (ya que no me conviene al mostrarme el BBCode sin interpretarse), yo simplemente los edito directo con el HTML, mi duda acá es ¿Que método o script utiliza PHPBB para interpretar el BBCode en forma de HTML..?

Esa es mi pregunta, Muchas Gracias...

Avatar de Usuario
nextgen
Ex Staff
Mensajes: 1726
Registrado: 25 Jul 2009, 03:16
Género:
Edad: 40

Re: Interpretar BBCode de PHPBB en mi Web

#4

Mensaje por nextgen »

Nose si esta guía te sirva para lo que buscas.

Tutorial.Parsing text

Avatar de Usuario
Alorse
Ex Staff
Mensajes: 5144
Registrado: 22 Mar 2008, 02:14
Género:
Edad: 36

Re: Interpretar BBCode de PHPBB en mi Web

#5

Mensaje por Alorse »

Lo que pasa es que aparte de llamar el post_text hay que llamar otros dos campos necesarios para interpretar los BBCodes bbcode_uid y bbcode_bitfield y luego de ello llamar otros métodos propios de phpBB para entrar esos campos e interpretar el texto y luego mostrarlo codificado con los BBCodes.
Si puedes dejar el script completo de lo que estas haciendo seria de más ayuda para decirte como lo debes hacer.

Es algo parecido a lo que muestra nextgen, intenta de esa manera o deja el script para poder ayudarte mejor.

EdgarAlexander
Observador/a
Mensajes: 39
Registrado: 31 Jul 2011, 01:50
Edad: 30

Re: Interpretar BBCode de PHPBB en mi Web

#6

Mensaje por EdgarAlexander »

Gracias por la ayuda Alorse y Nextgen, prefiero que me echéis una mano vos, aquí tienes mi Script:

Código: Seleccionar todo


<?php

// String de conexión a la base de datos.

$conexion = mysql_connect("xxxx", "xxxx", "xxxx");
mysql_select_db("xxxx", $conexion);

// Consultamos los posts:

$quer = "SELECT post_text FROM foro_posts ORDER BY post_id DESC";
$res = mysql_query($quer, $conexion);
$end = mysql_fetch_array($res);
$contador = 0;

// Los imprimimos uno por uno:

    do {

    $post = $end[post_text];
    
// Antes que nada, aseguramos que el post corresponda al foro 3 (Noticias y Atc) y el     poster id del Administrador (2).

    // Consultamos si es de administrador:

    $quer_2 = "SELECT poster_id FROM foro_posts WHERE post_text = '$post'" or die (mysql_error());
    $res_2 = mysql_query($quer_2, $conexion);
    $end_2 = mysql_fetch_assoc($res_2);
    
    // Consultamos si es del foro 3:
    
    $quer_3 = "SELECT forum_id FROM foro_posts WHERE post_text = '$post'" or die (mysql_error());
    $res_3 = mysql_query($quer_3, $conexion);
    $end_3 = mysql_fetch_assoc($res_3);

// Sé que hay estas dos consultas se pueden hacer en una sola, pero no se como representar un datos específico a través de un array, si sabéis como, estaré muy agradecido...

    $admin = $end_2[poster_id];
    $foro = $end_3[forum_id];
    
        if ($admin == 2 && $foro == 3)

        {
            
            $contador = $contador + 1;
            
            if ($contador <= 4)
            
            {
            
            echo $post, '<br /><br />';

            }
            
        }

    }

    while($end = mysql_fetch_array($res))
    
?>


Avatar de Usuario
Alorse
Ex Staff
Mensajes: 5144
Registrado: 22 Mar 2008, 02:14
Género:
Edad: 36

Re: Interpretar BBCode de PHPBB en mi Web

#7

Mensaje por Alorse »

A mi ese script no me muestra absolutamente nada :S :nolose:
Pero veo que pretendes sacar solamente los temas de un foro en especifico y de un mismo autor, si quieres especifica concretamente que quieres hacer y vemos la manera mas optima y adecuada de hacerlo.

EdgarAlexander
Observador/a
Mensajes: 39
Registrado: 31 Jul 2011, 01:50
Edad: 30

Re: Interpretar BBCode de PHPBB en mi Web

#8

Mensaje por EdgarAlexander »

Lo que pasa, es que en realidad no me interesa modificar nada sel script ya que este me funciona sin problemas, lo que yo quiero en específico es que el BBCode que se muestra en cada uno de los temas impresos a través de la consulta se interprete como HTML, es decir, que se muestre en forma de colores, imágenes, vídeos, saltos de líneas, etc, a través del script de ustedes, y no las etiquetas de texto (ejemplo )..

Avatar de Usuario
Alorse
Ex Staff
Mensajes: 5144
Registrado: 22 Mar 2008, 02:14
Género:
Edad: 36

Re: Interpretar BBCode de PHPBB en mi Web

#9

Mensaje por Alorse »

Para serte sincero a mi ese script no me funciona, lo probé en local y no me funciona, no se si sera porque quieres hacer algo en especifico y no lo comprendo, pero como te digo, no sé como ayudarte si el código que pones allí no me esta funcionando.

De igual manera si lo quieres intentar, lo que debes hacer es lo siguiente:
Llamar en la primera consulta, los otros dos campos que te indico bbcode_uid y bbcode_bitfield y luego pasarlos por el siguiente script:

Código: Seleccionar todo

    // Instantiate BBCode if need be
    if ($bbcode_bitfield !== '')
    {
        $bbcode = new bbcode(base64_encode($bbcode_bitfield));
    }
    $bbcode->bbcode_second_pass($post_text, $posts_row['bbcode_uid'], $posts_row['bbcode_bitfield']);

    $post_text = smiley_text($post_text); 
pero esos metodos son propios de phpBB, así que debes buscar la manera de llamarlos.
EdgarAlexander escribió:en realidad no me interesa modificar nada sel script ya que este me funciona sin problemas
Si qeuires que interprete los BBCode tendrás que hacerlo.

EdgarAlexander
Observador/a
Mensajes: 39
Registrado: 31 Jul 2011, 01:50
Edad: 30

Re: Interpretar BBCode de PHPBB en mi Web

#10

Mensaje por EdgarAlexander »

Vale, ya veré que hago, Gracias por tu ayuda Alorse que tengas buen día...

Lo marcaré como solucionado, cuando resuelva..

Avatar de Usuario
canidev
Moderador
Mensajes: 693
Registrado: 30 Jun 2011, 17:06
Género:
Edad: 37

Re: Interpretar BBCode de PHPBB en mi Web  Tema Solucionado

#11

Mensaje por canidev »

Para interpretar los bbcodes necesitas cargarlo todo, incluida la sesión del usuario porque necesitas cargar el archivo del estilo (bbcode.html) por lo que tendrás que usar las funciones de phpBB.

No lo he probado demasiado, pero el código que necesitas es algo como esto:

Código: Seleccionar todo

<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();

$row_limit	= 5; // Limite de posts a mostrar
$admin_id	= 2; // Id del administrador
$forum_ids	= array(3); // Ids de los foros de donde se leeran los posts Ej, array(1, 2, 3)

$bbcode_bitfield = '';
$post_rows = array();

$sql = 'SELECT post_text, bbcode_uid, bbcode_bitfield
	FROM ' . POSTS_TABLE . "
	WHERE poster_id = $admin_id
	AND " . $db->sql_in_set('forum_id', $forum_ids) . '
	ORDER BY post_id DESC';
$result = $db->sql_query_limit($sql, $row_limit);

// Leemos la información de los post para interpretarla mas adelante
while($row = $db->sql_fetchrow($result))
{
	$post_rows[] = $row;
	$bbcode_bitfield = $bbcode_bitfield | base64_decode($row['bbcode_bitfield']);
}
$db->sql_freeresult($result);

// Cargamos las funciones del bbcode si son necesarias
if ($bbcode_bitfield !== '')
{
	include($phpbb_root_path . 'includes/bbcode.' . $phpEx);
	$bbcode = new bbcode(base64_encode($bbcode_bitfield));
}

foreach($post_rows as $row)
{
	$message = $row['post_text'];

	// Segundo paso del bbcode
	if (!empty($row['bbcode_bitfield']))
	{
		$bbcode->bbcode_second_pass($message, $row['bbcode_uid'], $row['bbcode_bitfield']);
	}

	// Emoticonos y saltos de linea
	$message = bbcode_nl2br($message);
	$message = smiley_text($message);

	echo $message . '<br /><br />'; // Imprimimos el resultado
}

?>
Está basado en tu código, el código comprueba el id del administrador y también el foro/foros en los que se leerán los posts.

Acuerdate de cambiar ./ por la ruta desde la página hasta el directorio del foro, en la línea $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';.
Por ejemplo: $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './foro/';
Última edición por canidev el 05 Nov 2011, 00:16, editado 1 vez en total.

EdgarAlexander
Observador/a
Mensajes: 39
Registrado: 31 Jul 2011, 01:50
Edad: 30

Re: Interpretar BBCode de PHPBB en mi Web

#12

Mensaje por EdgarAlexander »

Canidev, lo admiro es el mejor, me ha funcionado perfectamente, muchísimas gracias por tomarse su tiempo para ayudarme, la verdad que lo aprecio mucho, le doy igual gracias a los demás usuarios por lo mismo..

¡Que pasen un bonito fin de semana!

Alex

Cerrado

Volver a “Foros de Soporte 3.0.x”