Warning: Missing argument 2 for wp_kses(), called in /var/www/wphost/wp-content/plugins/bsocial/components/open-graph.php on line 175 and defined in /var/www/wphost/wp-includes/kses.php on line 476

bSuite 4

bSuite is a set of tools that help surface interesting and relevant posts, help your users navigate your content, and help authors develop and publish content. Take a look:

bSuite stats
cache-friendly stats
bSuite search word highlighting
search word highlighting
bSuite related posts
related posts
bSuite options
easy options

Features

Details


Hey! Here’s a cool thing: the list of pages and their contents up there is automatically generated using the shortcodes in this plugin.

License & Warranty

This software is provided as-is, with no warranty of any kind — use it at your own risk and don’t blame me if it makes your mother complain about your haircut — under the terms of the GNU Public License.

Language Translations

Bugs

I’m certain there are bugs in here, please report what you find in the comments below.

122 Responses to “bSuite 4”

  1. When I updated my SVN copy and activated it, I tried importing my stats. It told me it was complete and didn’t update my stats. I backed everything up and reverted it, but I just wanted to know if that was a possible bug or am I just missing a step.

    Thanks. Really excited about the new version though!

  2. Hey, Casey! I’m excited to see how this new version does, but I’m getting an error on activation:

    Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or ‘}’ in (snip)/wp-content/plugins/bsuite/bsuite.php on line 470

    I’ve tried the zip file as well as the SVN version (which both say 40 beta 1, but that’s another topic).

    I’ll go try installing it on another blog and see how it goes.

  3. Sorry, I meant to type:

    “4.0 beta1″

  4. See Casey, The bSuite is really great thing!
    Thanx a lot.
    I use 4.0 beta2,
    - although the Plugins page shows it as beta1, plus
    - “Enhance WordPress search with full text keyword indexing” option makes a mess of Search results. Even after “Rebuild Indexes”. I’ve switched this off until successful release I guess.
    - “Insert related posts links at bottom of each post” – please do not enable it by default. I suppose this kinda useful thing, but it may not fit to any website design, as in my case 4example.

    and Stats is great!
    Thanx for a good tool.

  5. Have you added the option of incoming search tagging like you were speaking here:

    http://borkweb.com/story/bstat-search-cloud

    ?

  6. hi. Thanks for plugin

    perfect.

    BestRegards

  7. i can’t activate the plugin… i’m getting this error. Same as Steve.

    Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or ‘}’ in … snip … /wordpress/wp-content/plugins/bsuite/bsuite.php on line 470

    what’s the solution to this?

    any help is much appreciated

  8. @nchenga: can you confirm that you’re running the 4.0.1 version? What PHP are you running? This doesn’t seem to be a problem in a number of other installations.

  9. Hi Casey, great plugin, I’m a big fan!

    I updated yesterday to bSuite4, but my reports now say that noone has visited my site all day! (Seems unlikely)
    Earlier this morning, I realized that I hadn’t upgraded my existing stats, so I went through the 7 step process. I felt better because my “Weekly Top Posts” widget was working again.

    However, my visitation stats don’t seem to be ticking. Is there a bit of code that I need to include in a template somewhere that has changed since the version previous to bSuite4?

  10. @Dennis Wurster: can you look at the wp_bsuite_hits_incoming table using a MySQL tool? Are there any entries in there?

    If you don’t have access to view the contents of the MySQL table, you could try going to your site’s dashboard > Settings > bSuite and click the “force stats migration” button. It only moves the number of rows each set in the cron settings section of that page each time you push the button, but it’ll get you started.

    The voodoo part: stats are written to the incoming table first, then processed into the reporting tables using WP’s built in cron. But it won’t do that if the load is above the threshold, and it doesn’t do it for the first few hours after install (in part to give you time to import the old stats without database contention).

  11. 273 rows in wp_bsuite_hits_incoming. Clicked ‘force stats migration’ three times. Still no-go.

    I’m ready to try whatever it takes, thank you for your attention.

  12. My mistake, that previous number was for ‘wp_bstat_hits’.

    In ‘wp_bsuite4_hits_incoming’, there are currently 7693 rows, with entries as recent as 2008-10-05 19:48:42. You’re right — the visits appear to be logging properly, but the reports aren’t aware of the new information.

  13. Thanks for the continued work on this plugin Casey. I have a box running PHP 4.4.7 and I am getting:

    Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or ‘}’ in /home/vhost/www/update.golod.com/wp-content/plugins/bsuite/bsuite.php on line 519

    when I try to activate the bsuite plugin. I am poking around in there to see what I can find, but am hoping that someone has found the cure already.

    Thanks.

  14. @Jason Golod:

    The problem is likely the result of prefixing the function name with “public,” as is the PHP5 standard. I may have fixed it in the development version: http://downloads.wordpress.org/plugin/bsuite.zip

    You can see all versions here: http://wordpress.org/extend/plugins/bsuite/download/

  15. Casey,

    Confirmed the dev version does solve the line 519 problem reported by Jason Golod

    Thanks for a great plugin!

    Jason

  16. @digi: Did you have any stats data collected prior to installing bSuite 4? The warnings are consistent with having no data and will disappear within a few hours if the stats collection is working properly.

  17. Hi Casey,

    Firstly thnks for your time and a great plugin. I tried installing the development version and got this error :

    Fatal error: Call to undefined function: plugins_url() in /home/theblack/public_html/wp-content/plugins/bsuite/bsuite.php on line 589

    Any idea how to resolve it?

    Thnks in advance.
    /G

  18. Issue solved. I was on wp 2.5 .

    Thnks

  19. @gautam: You’ve got two separate problems:

    1: bSuite tries to get the server’s load average so that it can limit or delay certain activity when load is over a user configurable threshold. The plugin tries to call sys_getloadavg(), but if that’s not available (older versions of PHP don’t have it), it tries to get that info via a shell_exec() call. You’re getting a warning message because your host has set PHP to not allow it to get the information (and/or it’s an old version of PHP).

    2: You should remove the call to bstat_hitit() from your header. It hasn’t been needed since bSuite 3.

  20. I checked with my host. The server on which the site is hosted has Php 4 and I was informed that its been set to not give out the information.

    Frankly, I badly want “Incoming Search Terms for the Article – tagging” feature of this plugin.

    If you can strip off all other functions and help me with a plugin just to achieve “Incoming Search Terms for the Article – tagging” will be really great.

    Thanks a ton for your time. I really mean it.

    Regards
    /G

  21. Updated today and found an error
    Fatal error: Call to a member function bstat_insert_term() on a non-object in when autoupdate executed

    Thanks

  22. @Pramudita:

    Did you delete the old bSuite folder when upgrading from bSuite 3 as indicated in the installation instructions?

    http://wordpress.org/extend/plugins/bsuite/installation/

  23. Hi Casey,

    Changed my host and everything is working fine at http://www.techbuzz.in . I could get the related posts working fine but could not get “Top incoming search terms for this post” function to work:

    Top incoming search terms for this post

    Can you please guide me how to use this ?

    Thanks,
    /Gautam

  24. Thanks for a great plugin.

  25. This is not working properly in wordpress 2.7. You cannot save your options without getting an error. Is there a fix for this?

  26. @Saif: Yes, I just realized that myself. I’ll have a fix out soon.

  27. My situation:
    I am using “../author/[username]” to display author bio and all posts by this author.The automatic redirect if a (search) result page has only 1 (!) entry made me go nuts… (“Has something changed with the latest update of WP… ?”)

    Problem: Instead of displaying the author page with only 1 post by this author it forwarded to this post.

    If my understanding is correct than you want to forward to a post in case the search result comes back with only one post. I add “&& is_search()” to your if statement and all is good now. PUH! :)

    Took me a coupe of hours to figure this one out….


    // redirects the search to the single page if the search returns only one item
    if( !$wp_query->is_singular && 1 === $wp_query->post_count && is_search())

  28. Any update on a fix for this?

    This is my favourite plugin and I’ve had to disable it because the ‘insert related posts’ option is messing up my template and I cannot turn it off. I also don’t want words highlighted when visitors come from search engines.

    As these two options are enabled by default, I cannot use the plugin :(

    Is there any way to disable these options via editing the plugin so that they are turned off by default when you activate bsuite?

  29. I’ve the same problem… i can’t modify the option panel (i’m using wp 2.7)!!!

  30. I also have this allert in option panel:
    Warning: array_reverse() [function.array-reverse]: The argument should be an array in ……/wordpress/wp-includes/wp-db.php on line 963
    What can i do?

  31. bSuite 4.0.3 is just out with WordPress 2.7 compatibility. Auto update or download here http://wordpress.org/extend/plugins/bsuite/ .

  32. Great just upgraded. :)

  33. Hi Casey, still a big fan of bSuite!

    But, searches at http://www.big6.com are getting redirected to big6.com/search/ which fails to load a page. I’ve unticked the checkboxes for full text indexes and show-related-stories, but don’t notice a difference. Tweeted you a URL with the wp-options settings.

  34. @Dennis Wurster:

    Actually, they’re getting rewritten to http://www.big6.com/go/search/history . This URL does work: http://www.big6.com/search/history

    Two problems:
    First, I really should make that search rewriting optional
    Second, I’ve gotta figure out why it’s rewriting to the wrong URL.

  35. Hi Casey,
    My stats table is getting pretty big after a couple of months. Am I able to delete some of the older stats data or what would you advise?
    Thanks and keep up the great work on this!!
    -Marco

    • @Marco: How big is big? Megabytes or gigabytes?

      With the exception of the wp_bsuite_hits_incoming table (which gets emptied as the stats are processed via wp cron), the data that’s stored is pretty well normalized, so there’s not much that can be removed without losing functionality. Though you could drop a lot of historical data from wp_bsuite_hits_sessions (which is probably one of your largest bsuite-related tables). There’s no current functionality that uses that data. The next place you can cut is the wp_bsuite_hits_shistory table, that’s the table that tracks the individual clicks in each session. There’s about 500MB and 10 million rows between the two of them on my blog.

      The other question to ask is what your motivation is. If the concern is disk space, then those are the tables to delete; but if the real concern is mysql load, I don’t think you’ll see much performance gain by removing them.

  36. Hi Casey!

    The extra ‘/go/’ in the problematic url is my doing; I have WP installed in a /go/ subdir. Anything I can do in the meantime?

    –Dennis (WildEep on Twitter)

  37. If I remove the ‘/go’ from the siteurl, the layout of the site breaks, as it doesn’t know how to find the subdir for the themes and such. In the meantime, I’ve commented out line 1670, to prevent the search triggering the re-write. I’m interested in knowing more about the enhanced searching and indexing that bSuite brings to the table though.

  38. Casey,
    my question was mostly load related, but I started to see the DB growing very fast and was wondering why….
    And how I might be able to shrink down the size of the DB without loosing needed data.

    Would it make sense to add the option for a separated DB for the stats?

    • @Marco:
      There’s no doubt that the bSuite stats architecture has scaling issues on high-traffic sites. At some point it would be good to allow stats collection on a separate host from the blog server, but I don’t know how to make a feature like that work easily for users. In the meantime, I’ve been addressing the scaling issues with caching, both object caching and whole-page caching. I use Memcached and Batcache on this site, and I’ve had good results from WP-Super-Cache elsewhere.

      Still, I’d like to know more about the traffic and load you’re seeing. I won’t turn down a chance to look for more optimization opportunities.

  39. i can’t install.. have an error :(

  40. Hi Casey, Thanks for your plugin. I had to adapt it, however, to make use of it on my site. I have a domtab feature in the side bar, which is run by a jQuery script (it displays various tabs with navigation items to query the database by archive, recent posts, external RSS blog feed, and now popular post). Hence, I had no need for the widget, and needed direct code to integrate it onto my site. I didn’t find any documentation for this on your site. This worked for the “popular post widget”:

    <ul>
    pop_posts( array(
    'count' => 10,
    'days' => 15,
    'return' => 'formatted',
    'show_icon' => 0,
    'show_title' => 1,
    'show_counts' => 0,
    'icon_size' => 's',
    )); ?>
    </ul>

    Can you provide me with the other attributes and arguments for “related,” “recently commented” and “bStat Refs.”

    • Related posts is a little more complex, but something like this should work:

      if( $related_posts = array_slice( $bsuite->bsuggestive_getposts( $id ), 0, 5 )) {
      echo'<ul class="relatedposts">';
      foreach ($related_posts as $post_id){
      echo'<li class="relatedposts"><a href="'. get_permalink($post_id) . '">' . get_the_title($post_id) . '</a></li>';
      }
      echo '</ul>';
      }

  41. Thanks for a marvellous suite. – Wasn’t there a way of adding excerpts (configurable number of words) to the related posts list items a few years ago? I can’t remember, but would surely like to have the excerpts…-) – Anyway, great job, Casey!

  42. Hi Casey,

    I have a follow up question above. Regarding the code snippet to include “popular posts” without using the widget, I am getting a small error. From time to time, I get a blank list item. I think it has to do with pages (such as archives or category pages), which don’t have a “title” descriptor. Is there an argument to exclude all pages (archive and category pages) and just include “posts” in the most popular post listing?

  43. Hi,

    Thank you for a very fine suite of tools. I have localized it for the Danes. You are welcome to download the language files and include them in the distribution zip, if you like. Go to bSuite 4 nu på dansk and choose the link labelled Download.

    Corrections are welcome, of course!

    Cheers!

  44. Hi, I’ve just tried installing this on a fresh installation of WordPress 2.7.1 but am getting the following error:
    Warning: array_slice() [function.array-slice]: The first argument should be an array in [removed]/wp-content/plugins/bsuite/bsuite.php on line 2007
    and I go to what should be the WordPress home page it takes me to the page for the first post. Any suggestions?
    Thanks in advance ;-)

  45. I tried the plugin on my site as I was interested in the feed option to display a feed with in a post. After I installed the plugin, (downloaded 4.05 I believe) I was greeted with an upgrade notice in the plugins admin of my blog. I clicked the auto upgrade of the three plugins, and noticed the bstat upgrader wouldn’t update. I keep getting an upgrade notice but every time I click the upgrade it still shows as needing an upgrade. The current version is showing 4.04

    The bsuite tag importer won’t upgrade either. In fact when the plugin is activated and I click the upgrade link it deactivates the plugin. I then tried to upgrade before activating the plugin, then when it’s placed in active status it still shows as needing an upgrade, then the whole cycle starts again when I try to upgrade. The version is showing 4.04 with this plugin too. The only one that is 4.05 is the main bsuite plugin.

    I could have lived with that, however, the feed short code caused each feed item to duplicate, one with clickable link to the feed, and one that was not. and every post on the site had a Warning error regarding an array that it was expecting but couldn’t find.

    I had no choice but to deactivate all plugins.

    I’m running WP 2.7.1 on a new installation of WP – the site is less than a week old with only a few posts.

    … Scott

  46. Casey, I still love your bSuite plugin, but I’m running into three problems— only one of which is seems particularly important.

    I just upgraded and got this:
    Warning: array_slice() expects parameter 1 to be array, boolean given in …/bsuite.php on line 2007

    It only showed this in my top post, which seems like it could be weird. As a band-aid I’ve thrown an @ into line 2007

    $posts = @array_slice($this->bsuggestive_bypageviews_getposts( $id ), 0, 5);

    I’m also getting this error in the settings window:
    WordPress database error: [Duplicate key name 'search']
    ALTER TABLE taistel_bsuite4_search ADD FULLTEXT KEY search (content, title)

    Finally, bStat Upgrader and bSuite Tag Importer refuse to recognize that I’ve done the right thing and upgraded them. The plugins page still says they are at version 4.0.4 and that they can be upgraded.

  47. i have install 4.0.5 version and i have this following warning in Bstat Report page:

    “Warning: max() [function.max]: Array must contain atleast one element in …/wp-content/plugins/bsuite/ui_stats.php on line 141″

    • I too have theese PHP errors
      * Warning: min() [function.min]: Array must contain at least one element in /…/bsuite/ui_stats.php on line 141
      and
      * Warning: max() [function.min]: Array must contain at least one element in /…/bsuite/ui_stats.php on line 141

      This is due to poor error handling, please fix it.

      In my installation i fixed it by inserting the following code at line 138:

      if (empty($pageloads)) { $pageloads = array(0); }

      …here is a diff, if it helps to locate the right line:

      $ svn diff ui_stats.php
      Index: ui_stats.php
      ===================================================================
      — ui_stats.php (Revision 84)
      +++ ui_stats.php (working copy)
      @@ -135,6 +135,8 @@
      GROUP BY hit_date DESC
      LIMIT 31
      ) a” );
      +
      +if (empty($pageloads)) { $pageloads = array(0); }
      ?>
      page loads in last month:
      <?php

      BTW: [include post_id="145" field="post_content"] <- this is an awesome feature, it really made my day, thx a lot

  48. is this working with wp 2.7.1 ?

  49. hello Casey
    when i installed this plug in i had THE SAME problem as jon described so i supposed that must be because u used some theme as my default…
    i really love the suit so i guess there is something that colud be done to fix this! :-)

    btw
    i wanted to ask also can u please tell what Table Of Contents plugin do you use on this very site? its remarkable! thx!
    :-)

Trackbacks

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">