{"id":279,"date":"2011-08-24T08:00:45","date_gmt":"2011-08-24T13:00:45","guid":{"rendered":"http:\/\/www.latindevelopers.com\/ivancp\/?p=279"},"modified":"2011-10-26T19:56:29","modified_gmt":"2011-10-27T00:56:29","slug":"usar-posts-de-phpbb-en-una-pagina-externa","status":"publish","type":"post","link":"https:\/\/www.latindevelopers.com\/ivancp\/2011\/08\/usar-posts-de-phpbb-en-una-pagina-externa\/","title":{"rendered":"Mostrar posts de phpBB en una pagina externa"},"content":{"rendered":"<p><a href=\"http:\/\/www.phpbb.com\/\"><img loading=\"lazy\" class=\"alignright\" title=\"phpBB\" src=\"http:\/\/www.phpbb.com\/theme\/images\/logos\/blue\/160x52.png\" alt=\"phpBB\" width=\"160\" height=\"52\" \/><\/a>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\u00f3digo de phpBB para extraer (inclusive) un texto simple, las medidas de seguridad contra el SPAM hacen que el c\u00f3digo tenga niveles de complejidad dif\u00edciles de comprender.<\/p>\n<p>Despu\u00e9s de algunas horas estudiando el codigo y algunos <a href=\"http:\/\/wiki.phpbb.com\/Practical.Displaying_posts_and_topics_on_external_pages\" target=\"_blank\">tutoriales<\/a> publicados sobre como extraer entradas del foro, estoy logrando migrar todos los art\u00edculos a phpBB de tal forma que va a ser mucho mas facil para los miembros de Latindevelopers publicar sus propios art\u00edculos.<\/p>\n<p>Desist\u00ed de usar <a href=\"http:\/\/www.phpbb.com\/community\/viewtopic.php?f=71&amp;t=143865\" target=\"_blank\">phpBB CMS Mod<\/a> por que aun no esta listo y complicar\u00eda la migraci\u00f3n, me parece mas como usar phpBB, lo \u00fanico 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.<\/p>\n<p>Aqui comparto el c\u00f3digo para poder mostrar un post de phpBB fuera del foro, pero no esta todo el codigo, deben leer <a href=\"http:\/\/wiki.phpbb.com\/Practical.Displaying_posts_and_topics_on_external_pages\" target=\"_blank\">el articulo<\/a> antes de usar el siguiente codigo, hice algunas modificaciones:<\/p>\n<pre lang=\"php\">$posts_ary = array(\r\n        'SELECT'    => 'p.*, t.*, u.username,\r\n                         u.user_colour, p.bbcode_bitfield ',\r\n        'FROM'      => array(\r\n            POSTS_TABLE     => 'p',\r\n        ),\r\n        'LEFT_JOIN' => array(\r\n            array(\r\n                'FROM'  => array(USERS_TABLE => 'u'),\r\n                'ON'    => 'u.user_id = p.poster_id'\r\n            ),\r\n            array(\r\n                'FROM'  => array(TOPICS_TABLE => 't'),\r\n                'ON'    => 'p.topic_id = t.topic_id'\r\n            ),\r\n        ),\r\n        'WHERE'     =>  'p.post_id = ' . $post_id_article ,\r\n        'ORDER_BY'  => 'p.post_id DESC',\r\n    );\r\n\r\n$sql = 'SELECT *\r\n    FROM ' . ATTACHMENTS_TABLE . '\r\n    WHERE post_msg_id = '.$post_id_article.'\r\n            AND in_message = 0\r\n    ORDER BY filetime DESC, post_msg_id ASC';\r\n$result = $db->sql_query($sql);\r\n$attachments = array();\r\nwhile ($row = $db->sql_fetchrow($result))\r\n{\r\n    $attachments[$post_id_article][] = $row;\r\n}\r\n\r\n$db->sql_freeresult($result);\r\n\r\n$posts = $db->sql_build_query('SELECT', $posts_ary);\r\n$search_limit = 1;\r\n$posts_result = $db->sql_query_limit($posts, $search_limit);\r\n\r\nif($posts_row = $db->sql_fetchrow($posts_result))\r\n{\r\n    $topic_title = $posts_row['topic_title'];\r\n    $post_author = get_username_string('full',\r\n                      $posts_row['poster_id'],\r\n                      $posts_row['username'],\r\n                      $posts_row['user_colour']);\r\n    $post_date = $user->format_date($posts_row['post_time']);\r\n    $post_link = append_sid(\"{$phpbb_root_path}viewtopic.$phpEx\",\r\n                  'f=' .$posts_row['forum_id'] .\r\n                  '&amp;amp;t=' . $posts_row['topic_id'] .\r\n                  '&amp;amp;p=' . $posts_row['post_id']) . '#p' .\r\n                   $posts_row['post_id'];\r\n    $bbcode_bitfield = $posts_row['bbcode_bitfield'];\r\n\r\n    $post_text = nl2br($posts_row['post_text']);\r\n\r\n    $bbcode = new bbcode(base64_encode($bbcode_bitfield));\r\n    $bbcode->bbcode_second_pass($post_text,\r\n                                $posts_row['bbcode_uid'],\r\n                                $posts_row['bbcode_bitfield']);\r\n\r\n    $post_text = smiley_text($post_text);\r\n\r\n    parse_attachments($forum_id,\r\n                        $post_text,$attachments[$post_id_article],\r\n                        $update_count);\r\n\r\n    echo $topic_title.\"<br>\";\r\n    echo $post_text;\r\n}<\/pre>\n<p>Al ejecutar el c\u00f3digo podran ver la entrada, pero tambien tienen que copiar los estilos relacionados con el tema que estan usando, incluso los archivos javascript.<\/p>\n<p><a title=\"CMS based on phpBB posts\" href=\"http:\/\/infowasi.org\/2011\/cms-based-on-phpbb-posts\/\" target=\"_blank\">CMS based on phpBB posts<\/a><\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing\"><h3 class=\"sd-title\">Compartelo:<\/h3><div class=\"sd-content\"><ul><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-279\" class=\"share-facebook sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2011\/08\/usar-posts-de-phpbb-en-una-pagina-externa\/?share=facebook\" target=\"_blank\" title=\"Haz clic para compartir en Facebook\"><span>Facebook<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-279\" class=\"share-twitter sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2011\/08\/usar-posts-de-phpbb-en-una-pagina-externa\/?share=twitter\" target=\"_blank\" title=\"Haz clic para compartir en Twitter\"><span>Twitter<\/span><\/a><\/li><li><a href=\"#\" class=\"sharing-anchor sd-button share-more\"><span>M\u00e1s<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><div class=\"sharing-hidden\"><div class=\"inner\" style=\"display: none;\"><ul><li class=\"share-email\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-email sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2011\/08\/usar-posts-de-phpbb-en-una-pagina-externa\/?share=email\" target=\"_blank\" title=\"Haz clic para enviar por correo electr\u00f3nico a un amigo\"><span>Correo electr\u00f3nico<\/span><\/a><\/li><li class=\"share-print\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-print sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2011\/08\/usar-posts-de-phpbb-en-una-pagina-externa\/\" target=\"_blank\" title=\"Haz clic para imprimir\"><span>Imprimir<\/span><\/a><\/li><li class=\"share-end\"><\/li><li class=\"share-linkedin\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-linkedin-279\" class=\"share-linkedin sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2011\/08\/usar-posts-de-phpbb-en-una-pagina-externa\/?share=linkedin\" target=\"_blank\" title=\"Haz clic para compartir en LinkedIn\"><span>LinkedIn<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p><a href=\"http:\/\/www.phpbb.com\/\"><img loading=\"lazy\" class=\"alignright\" title=\"phpBB\" src=\"http:\/\/www.phpbb.com\/theme\/images\/logos\/blue\/160x52.png\" alt=\"phpBB\" width=\"160\" height=\"52\" \/><\/a>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\u00f3digo de phpBB para extraer (inclusive) un texto simple, las medidas de seguridad contra el SPAM hacen que el c\u00f3digo tenga niveles de complejidad dif\u00edciles de comprender.<\/p>\n<p> <a href=\"https:\/\/www.latindevelopers.com\/ivancp\/2011\/08\/usar-posts-de-phpbb-en-una-pagina-externa\/\">Sigue leyendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing\"><h3 class=\"sd-title\">Compartelo:<\/h3><div class=\"sd-content\"><ul><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-279\" class=\"share-facebook sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2011\/08\/usar-posts-de-phpbb-en-una-pagina-externa\/?share=facebook\" target=\"_blank\" title=\"Haz clic para compartir en Facebook\"><span>Facebook<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-279\" class=\"share-twitter sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2011\/08\/usar-posts-de-phpbb-en-una-pagina-externa\/?share=twitter\" target=\"_blank\" title=\"Haz clic para compartir en Twitter\"><span>Twitter<\/span><\/a><\/li><li><a href=\"#\" class=\"sharing-anchor sd-button share-more\"><span>M\u00e1s<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><div class=\"sharing-hidden\"><div class=\"inner\" style=\"display: none;\"><ul><li class=\"share-email\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-email sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2011\/08\/usar-posts-de-phpbb-en-una-pagina-externa\/?share=email\" target=\"_blank\" title=\"Haz clic para enviar por correo electr\u00f3nico a un amigo\"><span>Correo electr\u00f3nico<\/span><\/a><\/li><li class=\"share-print\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-print sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2011\/08\/usar-posts-de-phpbb-en-una-pagina-externa\/\" target=\"_blank\" title=\"Haz clic para imprimir\"><span>Imprimir<\/span><\/a><\/li><li class=\"share-end\"><\/li><li class=\"share-linkedin\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-linkedin-279\" class=\"share-linkedin sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2011\/08\/usar-posts-de-phpbb-en-una-pagina-externa\/?share=linkedin\" target=\"_blank\" title=\"Haz clic para compartir en LinkedIn\"><span>LinkedIn<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div><\/div><\/div>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":""},"categories":[10],"tags":[18,25,26],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p1tEO5-4v","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/posts\/279"}],"collection":[{"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/comments?post=279"}],"version-history":[{"count":16,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/posts\/279\/revisions"}],"predecessor-version":[{"id":306,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/posts\/279\/revisions\/306"}],"wp:attachment":[{"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/media?parent=279"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/categories?post=279"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/tags?post=279"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}