Exactly what I wanted. I was under the impression that this was already doable, I first got the idea that it could already be done from 9rules.com. I was viewing the notes section, where it pulls all the latest topics from all the forums, the feed only shows the topics and not the comments within. Oddly enough, the individual forums themselves show the topic as well as comments within the topics.
Granted that what I’m looking for is in the trac you provided, but I’m still wondering how 9rules managed to get the front part working to only show the topic and not the replies within, and could this not be applied within forum feeds?
I did some digging around and found that the 9rule feed is just basically the latest discussion feed, unfortunately mine is still pulling replies within topics. I’m not interested in only being able to do that as it basically gimps what I’m trying to do, but I was curious why mine pulls replies into the feed. Thanks again.
Amazing work, however I haven’t tested this on a live server yet, so probable use based on speed is still up in the air. Thanks a lot for putting this together Livibetter.
Running the latest version of bbPress and the latest version of ck’s plugin.
Signatures won’t update when you try to change them in Edit Profile. No error messages to be found.
Then, you should trace in bbPress’ code to find out where causes an exit.
BTW, you can also test error_log(get_option('blogname'));
to make sure WordPress loaded database correctly.
PS. debugging with no debugger is a crazy thing. You have to guess by experiences for best shot.
fel64 is right. So I made a change.
<?php
// from wp_trim_excerpt() in WordPress 2.3.1 formatting.php, just removed few lines
function make_excerpt($text) { // Fakes an excerpt if needed
$text = str_replace(']]>', ']]>', $text);
$text = strip_tags($text);
$excerpt_length = 55;
$words = explode(' ', $text, $excerpt_length + 1);
if (count($words) > $excerpt_length) {
array_pop($words);
array_push($words, '[...]');
$text = implode(' ', $words);
}
return $text;
}
if ( $topics ) :
$last_post_ids = array();
foreach ( $topics as $topic )
$last_post_ids[] = $topic->topic_last_post_id;
global $bbdb;
$post_ids = $bbdb->get_col( "SELECT post_id, post_text FROM $bbdb->posts WHERE post_id IN (" . implode(',', $last_post_ids) . ")");
$post_texts = $bbdb->get_col( null, 1 );
$post_excerpts = array();
foreach($post_ids as $idx => $post_id)
$post_excerpts[$post_id] = make_excerpt( $post_texts[$idx] );
endif;
?>
<?php if ( $topics ) : foreach ( $topics as $topic ) : ?>
<tr<?php topic_class(); ?>>
<td><?php bb_topic_labels(); ?> <a href="<?php topic_link(); ?>"><?php topic_title(); ?></a>
<?php echo $post_excerpts[$topic->topic_last_post_id]; ?>
</td>
<td class="num"><?php topic_posts(); ?></td>
<td class="num"><?php topic_last_poster(); ?></td>
<td class="num"><small><?php topic_time(); ?></small></td>
</tr>
<?php endforeach; endif; // $topics ?>
On my test forum, 15 posts, without excerpts takes .119 sec, with excerpts takes .127 sec. Previous code takes .140 sec.
Replace the similar part with it in front-page.php (Kakumei):
<?php if ( $topics ) : foreach ( $topics as $topic ) : ?>
<tr<?php topic_class(); ?>>
<td><?php bb_topic_labels(); ?> <a href="<?php topic_link(); ?>"><?php topic_title(); ?></a>
<?php
// from wp_trim_excerpt() in WordPress 2.3.1 formatting.php, just removed few lines
function make_excerpt($text) { // Fakes an excerpt if needed
$text = str_replace(']]>', ']]>', $text);
$text = strip_tags($text);
$excerpt_length = 55;
$words = explode(' ', $text, $excerpt_length + 1);
if (count($words) > $excerpt_length) {
array_pop($words);
array_push($words, '[...]');
$text = implode(' ', $words);
}
return $text;
}
echo make_excerpt( get_post_text( $topic->topic_last_post_id ) );
?>
</td>
<td class="num"><?php topic_posts(); ?></td>
<td class="num"><?php topic_last_poster(); ?></td>
<td class="num"><small><?php topic_time(); ?></small></td>
</tr>
<?php endforeach; endif; // $topics ?>
It generates an excerpt of latest reply of topic.
You may want to think quite carefully about doing this, as it’s not the simplest of tasks. The key issue is that bbpress does not have the data you want at the time you want it.
Basically bb only looks into the bb_topics table to see what the latest topics are. That tells it what the last post id was, what the last poster’s name was and all that, but it doesn’t tell it what the content of the last post was. To do that, you need to grab the ids of every last post being displayed, then write a database query to get the data from bb_posts. That can (*can*) be done in a single query though I think, much as bb grabs all the topics at once, so it’s not too bad. Then you have the data and can play with it however you want.
So it takes some neat hooking and querying.
I don’t think so as the plugin adds them direct to the database (you can quickly test that). Without register.php there are no registrations going to happen for sure!
Trent
hello (again)
I have noticed the same ‘problem’ with wp: whenever you create a user for testing purposes (his user ID is suppose X) and delete him you obiviously notice by creating another one (again) his NEW user ID is X+1 and so on. I don’t know if I made myself clear BUT how can you fix this issue? Even if there is no automatic solution what do I have to modify in the database by using phpmyadmin so only ACTUAL users have user IDs.
thanks
This is addressed in the latest revisions and should be part of the next release.
I have just released my latest bbPress theme: Misty Morning.
Demo
Download
I also have a matching WordPress theme:
Demo
Download
Let me know what you think!
Hello all,
I tried to realize a plugin that would allow me to replace some words by others in the post. I created the DB contained the words to replace and the word to put instead, i created the function and all is working fine, BUT, I don’t find how to use it on BBPRESS.
My function is something like
echo replace_words($TextToBeTransform,$WordToReplace)
, and the function use the DB to see what is be put instead of the $WordToReplace. As I can see, the post are printed out from the post.php of the template we do use.
I got this:
<?php
$tset="A trial phrase.";
$WordToBeReplaced="trial";
?>
<div class="threadpost">
<div class="post">
<?php echo replace_words( $test,$WordToBeReplaced); post_text()?></div>
<div class="poststuff">
<?php printf( __('Posted %s ago'), bb_get_post_time() ); ?>
">#
<?php post_ip_link(); ?> <?php post_edit_link(); ?>
<?php post_delete_link(); ?></div>
</div>
It print me exactly as I want the “A trial phrase” replace trial by “new” (from the DB).
The problem is that when I want to apply this to the text of the post, post_text(), it won’t work at all. I see that this post_text() is actually applying filters and others to the text, which my cause my function to fail (no error, it just don’t replace the words).
Could someone tell me where should I apply my own filter replace_words() for it to be taken into account?
Thank you very much.
Okay, upon further testing, it does seem to be working with older posts–in certain circumstances.
Let me explain
If you simply type (or in the past typed) in a URL, this plugin adds “nofollow.” But if you write a sentence and add a link to the text, it doesn’t. You can see this in effect here:
http://bedbugger.com/forum/topic/test-5?replies=3#post-14812
Compare the two tests of a link to google. The first, where the URL is typed in, adds nofollow, the second, where the HTML is used to link out to google, doesn’t.
Please help me fix this? Thanks again, this is a huge help!
livibetter,
Thanks so much! It works beautifully.
I know it works on new posts, on URLs in the post.
Does it also work on URLS in old posts, when they’re viewed? I am not able to test that.
Also, it obviously doesn’t work on author’s website links (the ones saves in their user profile, I mean). How do we make those nofollow if we want to?
Many, many thanks. I am learning, but slowly.
The quickest (and dirtiest) solution might be to change line 91 in bb-settings.php to:
require( BBPATH . BBINC . 'db.php');
.
I haven’t tested this, but it should work.
It will force bbPress to use the MySQL PHP extension instead of MySQLi
Hi All,
I have BBpress integrated with WordPress. We just launched the forums yesterday and noticed that users were registering, but not posting. After some testing it looks like the password emails are being sent, but they can take up to five minutes. Users seem to be getting impatient and leaving. We are on a hosted service and the email service works just fine so it’s not the server. Any ideas what is happening?
It certainly LOOKS like a rewrite problem. When you click a link that looks like http://pakten.se/forum/forum/testa-loss/page/2, you are redirected to http://pakten.se/forum/forum/testa-loss. That to me says it’s a rewrite problem, maybe only when the url contains “page” or something.
You can try it with mod_rewrite set to false and see if it works properly. If it does, then it’s an issue with the rewrite rules. You could also check the apache logs (if you have access to them) to see how the rewriting is happening and why it’s doing this. It doesn’t result in a 404, it just redirects someplace that’s incorrect. I think that’s because of the rewrite rules. I would try it with mod_rewrite to false and see what happens.
Good luck.
Glad we could help somehow…
Good luck!
Well, that was definitely the problem.
I have the bbpress directory in the wordpress directory, and had the language parameter set in both. I read your post above, set the lang in bbpress to ”, and viola! It worked immediately.
It took me forever to find this post, but I’m glad it was posted. I would have died of old age before I figured that out on my own.
I managed to duplicate the problem on my own project. Take a look, Next link (Nästa in Swedish, way down) doesn’t work. 
http://pakten.se/forum/
and
http://pakten.se/forum/forum/testa-loss
The forum is installed in /forum. There’s a WordPress MU installation in the root directory, with working permalinks.
There’s nothing special to bbPress to get this working.
What browser are you trying with? And is this always the admin user or have you created another user and tested with that?
Okay now the latest discussions do not show up on frontpage because I have attempted to completely reinstall bbpress but it still gets the same error.
I am getting a new error: Cannot select DB.
My forums were set up and working at http://www.snownation.com/forums/
All of the sudden, now I am getting this error. I have checked the DB settings like 10 times. You will notice on my frontpage at snownation.com the latest discussions pluggin is still pulling info and it has the same login info as does my wordpress setup.
Any ideas???
I tested on my test forum (no plugins activated), that didn’t happen. The subforums of deleted forum were promoted one level.
Captcha won’t help. All spam software is trained for captchas. If all bbpress forum would use the same captcha, spammers will quickly adapt. Email verification is also useless: every decent spam package allows for confirmation of mail links.
Try more of Turing test. One option is a two-level confirmation: a mail link AND after it is clicked – a captcha. Something new that spam software doesn’t expect.
Or send an email with password and OPT-OUT (rather than confirmation) link. Automated software will click the link, and opt out of the forum.
Or send email verification with text to be typed into url window rather than a link.
Or, send confirmation email which must be confirmed by reply-to rather then clicking a link. Still better, reply-to and type something in the subject line.