I created a database with full privileges and a user on the host and then entered it into the script. I received a message saying there was a failure to connect to the database.
The user name and password fields were populated with the admin login and pass from my WordPress installation. I used that login and name to create a user for the database, and then I re-ran the script with the default entries. Still can’t connect.
Any help would be appreciated.
This was originally going to be an “It’s not working!” post, but I made some progress. Now it’s “Is what I did ok?” post.
I kept getting a”This Topic is Closed” error every time I tried to create a new topic. Traced it back to the insert statement in ‘bb_insert_topic’ in functions.php. The database was responding with the error of “The value ‘ ‘ is not a valid integer for column ‘topic_id’. (I am paraphrasing, I don’t have the exact response in front of me)
I suspected it had something to do with the fact that the topic_id value is being supplied to MySql, but it is set to be an auto-increment / not null field.
So, I commented out in the $default array definition in ‘bb_insert_topic’:
// 'topic_id' => false, // accepts ids or slugs
and I changed this line:
unset( $default, $defaults );
to this:
unset( $args, $defaults );
Did the same thing under the ‘bb_insert_post’ function in the same file, but for the ‘post_id’ variables.
Presto. Everything seems to work OK now.
Could this issue be specific to my version of MySql? Although it is strange, because the original query works just fine using a third party tool (SQLyog).
Has anyone encountered this issue before? Or – can anyone comment on the validity of my changes, and if they might cause issues going forward?
Finally – should this be logged as a bug?
Thanks!
WP 2.6, BB 1.0, IIS 6.
just checked the code and it seems to me that this function is not 100% fine:
function new_topic( $args = null ) {
$defaults = array( 'text' => __('Add New »'), 'forum' => 0, 'tag' => '' );
if ( $args && is_string($args) && false === strpos($args, '=') )
$args = array( 'text' => $args );
$args = wp_parse_args( $args, $defaults );
extract( $args, EXTR_SKIP );
if ( $forum && $forum = get_forum( $forum ) )
$url = get_forum_link( $forum->forum_id ) . '#postform';
elseif ( $tag && ( ( is_numeric($tag) && $tag = bb_get_tag( $tag ) ) || $tag = bb_get_tag_by_name( $tag ) ) )
$url = bb_get_tag_link( $tag->tag ) . '#postform';
elseif ( is_forum() || is_bb_tag() )
$url = '#postform';
elseif ( is_topic() )
$url = get_forum_link() . '#postform';
elseif ( is_front() )
$url = add_query_arg( 'new', '1', bb_get_option( 'uri' ) );
if ( !bb_is_user_logged_in() )
$url = add_query_arg( 're', urlencode($url), bb_get_option( 'uri' ) . 'bb-login.php' );
elseif ( is_forum() || is_topic() ) {
if ( !bb_current_user_can( 'write_topic', get_forum_id() ) )
return;
} else {
if ( !bb_current_user_can( 'write_topics' ) )
return;
}
if ( $url = attribute_escape( apply_filters( 'new_topic_url', $url ) ) )
echo "<a href='$url' class='new-topic'>$text</a>n";
}
this part is not good and result im some error:
elseif ( is_forum() || is_bb_tag() )
$url = '#postform';
what is your adbvice to fix that? rewriting the function / adding a filter as a kind of plugin?
I installed bbPress 0.9.0.2 and tried to integrate with WP 2.5 site. The two are at http://www.my-site/forum and http://www.mysite/blog under the root directory. I have two issues:
First is with permalinks set to the default (/forum.php?id=1), no problem, I can view profiles and posts within bbPress. However if I use either of the other settings for a permalink, when I click on any profile or post topic within admin control panel or site view, I only get a blank page, no error. Example: the post should be at “forum/post-name”, which is exactly where the link takes me but a blank page exists. However I can view the user profiles registered at bbPress within the WP admin area, so I believe the two are at least partially integrated.
The host is GoDaddy and there are no problems with WP permalinks. I have tried the using the following htaccess code with the /forum directory:
# BEGIN bbPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /forum/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /forum/index.php [L]
</IfModule>
Also just having one line:
Options +MultiViews
Also the exact code generated at bb-admin/rewrite-rules.php
Second issue is after login to bbPress, a simple link to the WP admin requests me to login again. Does this take more than a simple link to “…/blog/wp-admin/”? I have checked the cookies and both look identical.
Thanks for any help
Use the existing database, but be sure the table prefixes are different. By default WordPress uses wp_ and bbPress uses bb_ – those are safe. When you get into the installation, you will see a place where it asks what the WordPress table prefix is.
hi,
do they offer money back garanty?
I’m sure you get more trouble with them. A lot of default PHP function doesn’t work with them (I guess they have safe_mode = On)
Anyone use Godaddy webhost? I just use the service and moved my old site to .
WordPress http://xxx.com (URL Rewrite is fine)
bbPress http://xxx.com/forum/
but the default (rewrite-rules.php) permalinks is not work. Anyone know how to use bbPress URL Rewrite with GoDaddy?
Works fine for me with default template in newest 1.0 alpha. Or do you mean you want anonymous people to be able to vote. That’s not possible.
Any particular reason you started a new topic on this rather than asking on the page for the plugin itself?
I am not sure why people bump year old topics instead of posting on the page for the plugin itself, but to answer your question, if you are logged in and admin, you can add a poll anytime. Otherwise the ability to add a poll expires an hour after the topic is started by default (which you can change in the settings).
If you didn’t hack the core and just templates, all they need to do is install the same version of bbPress you have installed, send them your custom theme files to install, and then send them a full export of your bbpress db to replace their default install. Then it should be identical.
Remember, the problem with MATCH AGAINST is it will not do partial words or words under 4 characters.
It’s not too hard to replace the search, you just have to decide which way you want to go. The regular expression will at least do 3 character words which I find is more common than you’d imagine.
The problem is that the time for any way without an index is going to increase dramatically once you start adding sorting and other options that cause full table scans. You can see this happen if you try to add a simple option to the regex demo like sorting by reverse post_id (which is a trick that should be a little faster than sorting by date).
SELECT * FROM bb_posts WHERE post_text LIKE '%test%' LIMIT 5 ORDER BY post_id DESC;
and
SELECT * FROM bb_posts WHERE post_text LIKE '%test%' AND REGEXP ':<:%test%:>:' LIMIT 5 ORDER BY post_id DESC;
You might want to test a worse case scenario by using three character nonsense words that will cause a cache-miss like “zzz” and “aaa”. Change them each time so mysql cannot cache the results and give you faster times.
If the above example returns in an acceptable amount of time you can just replace bbpress’s built in search with that simple method. By parsing a query you can also AND words together instead of bbPress’s default OR which to me is incredibly annoying and useless (you’ll notice no major search engine like Yahoo or Google does OR by default).
But keeping a full-text index can get rather huge, which is probably why bbPress doesn’t use it by default.
BTW, MySQL 5.1 apparently has some nice improvements in fulltext search.
If you have your own dedicated or vps server you can tinker with some mysql settings to speed things up. (You never did answer if you have mysql cache turned on)
I think that’s one of the default javascripts scripts loaded in the topic.php page.
It only shows in mini-track because it’s generated by a php file.
Most of the javascript in bbPress can be disabled and makes for faster loading pages (ajax goes away however).
So the answer is no, it’s not hacking. But you will see the attempts sooner or later – there are thousands of bots out there scanning sites and most people are unaware.
I’ll put in some code to exclude bb-includes in the next mini-track.
Thanks everyone, I’m going to try out the first plugin Chris recommended and I’ll let the thread know if that’s the ticket.
Super-Search is currently over 20k and only about halfway done in what it needs to do. All the bbPress core needs is a proper way to and/or words and disable partial matching instead of defaulting to just searching for every single fraction of each word.
There is also a plugin that does this.
I can’t find the plugin link, it was one of fel64’s specials and it isn’t in the repository. It was called ‘page’ and added a > at the end of each topic title.
If you click on the profile link (the title under your username) you will get a list of all posts you’ve made and threads you’ve started. It’s not search, but it will all be there. I don’t believe the member name is searched by default (could be completely wrong there and haven’t tested it in a long while.) I think it just shows “recent posts” and “relevant posts” (at least in my old version that’s what happens.) If you click the profile link, you get topics started and recent replies.
Actually, the best thing to do is completely replace the search facility. That’s what I do in Super Search. bbPress’s search is very weak, so weak that there wasn’t even a link to it on any page in 0.9 (it’s similar to WordPress’s search, which also sucks, it’s the ugly truth no one seems to talk about).
I assume you are using the bb-benchmark plugin to watch those queries happen (if not, you should be).
Stupid question but you DO have the mysql cache turned on? I only ask because on many server configs (like CPANEL) it’s turned off by default. What does your my.cnf look like? (do a cat /etc/my.cnf in your shell)
Try going into phpmyadmin (or command line) and test that first test query against adding AND post_text REGEXP ':<:%test%:>:' to the query like so:
SELECT p.*, 0 AS search_score, MAX(post_time) AS post_time FROM bb_posts AS p JOIN bb_topics as t ON ( t.topic_id = p.topic_id ) WHERE p.post_text LIKE '%test%' AND p.post_text REGEXP ':<:%test%:>:' AND p.post_status = '0' AND t.topic_status = '0' GROUP BY t.topic_id ORDER BY p.post_time DESC LIMIT 5;
I suspect in the end due to your huge db size you are going to need to completely replace the search functions with something like this http://sphinxsearch.com which has a PHP api. Fortunately in bbPress it’s very simple to hook the internal search and bypass it entirely without even template hacks. A quick google shows that a few WordPress plugins have sphinxsearch support so that would be easy to copy over to bbPress. If you find the keyword “sphinxsearch” on this source for example, you can see how it’s done: http://svn.scriblio.net/plugin/trunk/scriblio.php
The error was from a Private Messaging plugin (note: not a private forums plugin).
I have the default Akismet & Bozo plugins installed, and also the “Use Display Name” (which just changes your username to your nicename) and BBPrivate Messaging Plugin (as mentioned above) plugins installed. Removing them does not allow me to see the forums content either.
I just noticed that actually only admins can see the forum content.
You asked:
You didn’t make all your forums categories in the admin, did you?
I’m not sure what you mean, I’m new to BBPress. I converted an old WordPress XDForum plugin to BBPress, so perhaps something happened with permissions there, but even so, any direction as to how to open these up to everyone would be great!
Would anyone know of a way to show the last page of a thread by default instead of the first?
For example, if a thread has 3 pages worth of posts, we want to by default show page #3 rather than #1.
Any ideas? Thanks!
Seems as if I have the same problem as doyle640. Integrated the Alpha with WP 2.6.2 and after adding “require_once(‘../wp-blog-header.php’);” to bb-config.php I can’t access the bbP Admin section anymore. the “Reply” and “New Topic” area is gone as well, Profile can’t be edited etc. The title under my Admin name (“Key Master” by default) will also change to Invalid.
The loading error for the admin section is indeed a 500 error. At first I figured it might be related to some class conflicts within the WP and bbP CSS structure but fiddling with that didn’t help either.
Now it seems more likely that the User Account looses all of it’s user privileges in bbP once it’s integrated with WP for some reason.
I’m curious about this issue as performance problems always intrigue me. You must be using 0.9 as 1.0 has an index on stickies by default.
As far as fulltext search there is a trick I use because of the multiple issues with fulltext (not only speed but fulltext can’t do words less than 4 characters until you customize and rebuild mysql). The trick is to use regex and do a two pass query where you first exclude all the posts without the words and then allow mysql to do a regular scan of the remaining posts.
Query example from my Super-Search plugin:
WHERE post_text LIKE '%".$term."%'" AND post_text REGEXP ':<:".$term.":>:[^']' "
Compare the performance of that against a fulltext search that uses "MATCH post_text AGAINST $term" I don’t have enough data to do a huge benchmark but some simple tests with the cache off shows 0.4 seconds for the trick and 0.9 for the fulltext.
The only downside to the trick is you cannot do partial word searches that way. ie. $term="cat" will only return posts with the exact word “cat” and not “cats” or “category”. But it should be way faster.
Searching a huge number of posts is a non-trivial problem. It’s been known to crush other forums like vbulletin which has fancy code to prevent users from searching too often/too quickly and even disable search temporarily on high server load. Sites like Wikipedia have to go through several technically complex tricks to keep the search fast on that much data.
Many large sites end up using sphinxsearch to replace fulltext search. You could interface it to bbPress via their PHP api.
You can read more workarounds on the mysql fulltext search page (with far more knowledgeable people than me) http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html
Hi
I have WP 2.6 installed and the latest svn version (updated yesterday) of bbPress. The two are integrated with each other. I had a look at the users and roles in WP and noted that bbPress had changed all the roles to the bbPress role types. The WP roles are now all gone. The problem is that no one of my users can login, only the first admin user which I created when installed WP and bbPress. If I change another user from member to admin he cannot login.
Can I change back the roles to the default WP roles or do you have any clue what have happened?
I didn’t change the database table prefix from the default. This is the only table in the new database. The database says ‘bb_’, and bb.config.php says ‘bb_’. My keymaster shows up in ‘bb_users’. So if the keymaster is there, then the table prefix is not the problem. It is something else.