Mostrar posts de phpBB en una pagina externa
Algunas veces queremos mostrar el contenido del post de phpBB en una pagina externa (fuera del foro) pero suele ser frustrante estudiar y utilizar el código de phpBB para extraer (inclusive) un texto simple, las medidas de seguridad contra el SPAM hacen que el código tenga niveles de complejidad difíciles de comprender.
Después de algunas horas estudiando el codigo y algunos tutoriales publicados sobre como extraer entradas del foro, estoy logrando migrar todos los artículos a phpBB de tal forma que va a ser mucho mas facil para los miembros de Latindevelopers publicar sus propios artículos.
Desistí de usar phpBB CMS Mod por que aun no esta listo y complicaría la migración, me parece mas como usar phpBB, lo único que me preocupa es que aparezcan algunos agujeros en la seguridad de phpBB, pero ya me ha pasado y no creo que sea gran cosa.
Aqui comparto el código para poder mostrar un post de phpBB fuera del foro, pero no esta todo el codigo, deben leer el articulo antes de usar el siguiente codigo, hice algunas modificaciones:
$posts_ary = array( 'SELECT' => 'p.*, t.*, u.username, u.user_colour, p.bbcode_bitfield ', 'FROM' => array( POSTS_TABLE => 'p', ), 'LEFT_JOIN' => array( array( 'FROM' => array(USERS_TABLE => 'u'), 'ON' => 'u.user_id = p.poster_id' ), array( 'FROM' => array(TOPICS_TABLE => 't'), 'ON' => 'p.topic_id = t.topic_id' ), ), 'WHERE' => 'p.post_id = ' . $post_id_article , 'ORDER_BY' => 'p.post_id DESC', ); $sql = 'SELECT * FROM ' . ATTACHMENTS_TABLE . ' WHERE post_msg_id = '.$post_id_article.' AND in_message = 0 ORDER BY filetime DESC, post_msg_id ASC'; $result = $db->sql_query($sql); $attachments = array(); while ($row = $db->sql_fetchrow($result)) { $attachments[$post_id_article][] = $row; } $db->sql_freeresult($result); $posts = $db->sql_build_query('SELECT', $posts_ary); $search_limit = 1; $posts_result = $db->sql_query_limit($posts, $search_limit); if($posts_row = $db->sql_fetchrow($posts_result)) { $topic_title = $posts_row['topic_title']; $post_author = get_username_string('full', $posts_row['poster_id'], $posts_row['username'], $posts_row['user_colour']); $post_date = $user->format_date($posts_row['post_time']); $post_link = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' .$posts_row['forum_id'] . '&amp;t=' . $posts_row['topic_id'] . '&amp;p=' . $posts_row['post_id']) . '#p' . $posts_row['post_id']; $bbcode_bitfield = $posts_row['bbcode_bitfield']; $post_text = nl2br($posts_row['post_text']); $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); parse_attachments($forum_id, $post_text,$attachments[$post_id_article], $update_count); echo $topic_title."<br>"; echo $post_text; }
Al ejecutar el código podran ver la entrada, pero tambien tienen que copiar los estilos relacionados con el tema que estan usando, incluso los archivos javascript.
Entradas relacionadas :
¿Quién no ha buscado código fuente en la red? Algunos sitios comparten segmentos de codigo fuente incluyendo el numero de línea, sé que lo hacen intencionalmente por que disfruntan sabiendo que de ...
Tengo que contarles sobre cómo empezó latindevelopers.com, ya que se acerca el primer aniversario. Todo empezó como un experimento en la Universidad Nacional del Altiplano en Peru, el objeto del ...
Los grafos son un tipo de estructuras de datos; no voy a explicar exactamente de que se tratan los grafos pero pueden encontrar mas información al respecto aqui. Llegar a implementar en forma b ...
Hace ya más de un mes que empecé a leer el libro Un Mundo para Julius, el libro me lleva a una epoca y forma de vida que no conocí. Pero por instantes pareciera que Julius y su entorno se mezcla ...
Como seguramente saben, MySQL provee licenciamiento dual, puedes obtener el código fuente bajo la licencia GPL v2 o puedes comprar una licencia comercial. Hace algunos meses he oído algunos com ...
Blogesfera
Planetalinux