Search Results for 'bbpress'
-
Search Results
-
What’s the new URL of the separate page for adding a new topic? The one that was located at ?new=1 in the standalone bbPress, and the one I’m using right now to write this question after clicking “start new”
I’ve been playing with bbPress v2 for a little while now, primarily to see how easy it would be to write an importer from Simple Press. I’m sure that bbPress is going to need importers if the adoption rate is to be significant. Here are some initial thoughts:
(1) It’s easier than I thought – largely because of the v1 import file.
(2) We need a bbPress equivalent of wp_insert_pages, so we can call a single function, instead of creating pages, then adding lots of metadata – it’s not always clear what metadata is required, either.
(3) In addition, it would be even better to ship with a generic import file that plugins could either modify, or plug into.
For what it’s worth, here’s my very basic Simple Press importer. There’s no UI, error-checking is poor, and it doesn’t migrate stickies or notifications yet. You also have to update the counts from the Tools menu afterwards. And sometimes it dies through a timeout or OOM, but if it does, it should pick up where it left off. It’s a proof of concept, not a finished product, and is intended to encourage other developers, rather than for end-users. But it does work – at least for me. I may or may not develop it further, so if anyone else wants to, feel free!
<?php
/*
Plugin Name: Simple Press to bbPress
Plugin URI: http://www.4-14.org.uk/
Description: Import Simple Press forums to bbPress
Author: Mark Barnes
Version: 0.1
Author URI: http://www.4-14.org.uk/
*/
if (isset($_GET['bbpressimport']))
add_action ('init', 'mbbb_init');
function mbbb_init () {
global $wpdb;
define('WP_IMPORTING', true);
//Delete existing posts
if (isset($_GET['delete'])) {
$post_ids = $wpdb->get_results("SELECT ID from {$wpdb->posts} WHERE post_type IN ('forum', 'reply', 'topic')");
if ($post_ids)
foreach ($post_ids as $post_id)
wp_delete_post ($post_id->ID, true);
}
// Import forums
$forum_map = array();
$sp_forums = $wpdb->get_results("SELECT forum_desc, forum_name, forum_slug, forum_seq, forum_id FROM {$wpdb->prefix}sfforums ORDER BY forum_seq");
if ($sp_forums) {
foreach ($sp_forums as $sp_forum) {
$post_id = $wpdb->get_var ("SELECT post_id FROM {$wpdb->prefix}postmeta WHERE meta_value='forum_{$sp_forum->forum_id}' AND meta_key='_mbbb_sp_id'");
if (!$post_id) {
$inserted_forum = wp_insert_post( array(
'post_author' => get_current_user_id(),
'post_content' => $sp_forum->forum_desc,
'post_title' => $sp_forum->forum_name,
'post_excerpt' => '',
'post_status' => 'publish',
'comment_status' => 'closed',
'ping_status' => 'closed',
'post_name' => $sp_forum->forum_slug,
'post_parent' => 0,
'post_type' => bbp_get_forum_post_type(),
'menu_order' => $sp_forum->forum_seq
) );
if ($inserted_forum) {
echo "Added {$sp_forum->forum_name}<br/>n";
update_post_meta( $inserted_forum, '_mbbb_sp_id', "forum_{$sp_forum->forum_id}" );
} else
echo "Failed to add {$sp_forum->forum_name}<br/>n";
} else
$inserted_forum = $post_id;
$forum_map[$sp_forum->forum_id] = $inserted_forum;
}
}
// Import topics
$topic_count = 0;
$sp_topics = $wpdb->get_results ("SELECT forum_id, user_id, topic_name, topic_slug, topic_date, topic_id FROM {$wpdb->prefix}sftopics ORDER BY topic_date ASC");
if ($sp_topics) {
foreach ($sp_topics as $sp_topic) {
$post_id = $wpdb->get_var ("SELECT post_id FROM {$wpdb->prefix}postmeta WHERE meta_value='topic_{$sp_topic->topic_id}' AND meta_key='_mbbb_sp_id'");
$sp_posts = $wpdb->get_results ("SELECT topic_id, user_id, post_date, post_content, poster_ip, post_id from {$wpdb->prefix}sfposts WHERE topic_id = '{$sp_topic->topic_id}' ORDER BY post_date ASC");
if (isset($forum_map[$sp_topic->forum_id]) && $sp_posts) {
if (!$post_id) {
$inserted_topic = wp_insert_post( array(
'post_parent' => $forum_map[$sp_topic->forum_id],
'post_author' => $sp_posts[0]->user_id,
'post_content' => $sp_posts[0]->post_content,
'post_title' => $sp_topic->topic_name,
'post_name' => $sp_topic->topic_slug,
'post_status' => 'publish',
'post_date_gmt' => $sp_topic->topic_date,
'post_date' => get_date_from_gmt( $sp_topic->topic_date ),
'post_type' => bbp_get_topic_post_type(),
) );
if ($inserted_topic) {
echo "Added {$sp_topic->topic_name}<br/>n";
update_post_meta( $inserted_topic, '_bbp_forum_id', $forum_map[$sp_topic->forum_id] );
update_post_meta( $inserted_topic, '_bbp_topic_id', $inserted_topic );
update_post_meta( $inserted_topic, '_mbbb_sp_id', "topic_{$sp_topic->topic_id}" );
} else
echo "Failed to add {$sp_forum->topic_name}<br/>n";
} else
$inserted_topic = $post_id;
}
//Import posts
$post_count = 0;
if ($sp_posts) {
foreach ($sp_posts as $sp_post) {
$post_id = $wpdb->get_var ("SELECT post_id FROM {$wpdb->prefix}postmeta WHERE meta_value='post_{$sp_post->post_id}' AND meta_key='_mbbb_sp_id'");
if (!$post_id) {
if ($post_count != 0) {
$inserted_post = wp_insert_post( array(
'post_parent' => $inserted_topic,
'post_author' => $sp_post->user_id,
'post_date_gmt' => $sp_post->post_date,
'post_date' => get_date_from_gmt( $sp_post->post_date ),
'post_title' => 'Reply To: '.$sp_topic->topic_name,
'post_status' => 'publish',
'post_type' => bbp_get_reply_post_type(),
'post_content' => $sp_post->post_content
) );
if ($inserted_post) {
update_post_meta( $inserted_post, '_bbp_author_ip', $sp_post->poster_ip );
update_post_meta( $inserted_post, '_bbp_forum_id', $forum_map[$sp_topic->forum_id] );
update_post_meta( $inserted_post, '_bbp_topic_id', $inserted_topic );
update_post_meta( $inserted_post, '_mbbb_sp_id', "post_{$sp_post->post_id}" );
bbp_update_reply_walker( $inserted_post );
}
}
else
update_post_meta( $inserted_topic, '_bbp_author_ip', $sp_post->poster_ip );
} else
$inserted_post = $post_id;
$post_count ++;
}
}
update_post_meta( $inserted_topic, '_bbp_last_reply_id', $inserted_post );
update_post_meta( $inserted_topic, '_bbp_last_active_id', $inserted_post ? $inserted_post : $inserted_topic );
update_post_meta( $inserted_topic, '_bbp_last_active_time', $inserted_post ? $sp_post->post_date : $sp_topic->topic_date );
update_post_meta( $inserted_topic, '_bbp_reply_count', $post_count -1 );
update_post_meta( $inserted_topic, '_bbp_hidden_reply_count', 0 );
bbp_update_topic_walker( $inserted_topic );
$topic_count ++;
}
}
global $wp_rewrite;
$wp_rewrite->flush_rules(false);
}I use the plugin “Widget Logic” to manage where widgets show up. It uses conditional tags like “!is_page(‘name’)” to exclude widgets on specific pages.
I can’t find or figure out the conditional tag for the bbPress plugin. I have a three column theme and want to clear the left sidebar so I can widen the center column where the forum lives.
I use a blank text widget to keep the column from disappearing on other pages, but it’s a problem on the forum page — I think I’ve sort of bandaided myself into a corner.
Is there a list of conditional tags specific to the bbPress plugin? Or maybe is there a better way to manage widgets?
Any help is greatly appreciated.
– Jeff aka MelloMoose