Web 2.0, Php, MySQL, HTML, CSS, Wordpress, Javascript, iTouch iPod, iPhone, Adobe…
4 Dec
If you experience anything below, you might need to take a break from BuddyPress/WPMU development:
1. Taking off work, school, or all (personal) human contact when WP 3.0 is out (BP devs understand!)
2. Attempt to use the word “buddypress” in your scrabble game.
3. You lock yourself in the bathroom for privacy… wife knocks on door, you say “You have not been invited to this private group”.
4. You think picture frames you buy at the store should come with those butt-ugly gravatar default images rather than images of a family that isn’t yours.
5. Change your outfit, call it “checking out a new theme”…
6. Ask your kids for an RSS feed for the “Site Wide Activity” of what they did at school today.
7. You bake cookies in the shape of those tiny menu icons in the BuddyPress default theme.
8. You paint your house BuddyPress-orange.
9. You wake up, turn to your wife, and say “last active: 7 hours, 21 minutes”
10. More than curious to see if you are related to Andy Peatling.
11 Mar
WP Super Cache is great, but a pain in the butt if you have plugins that don’t work with it (or in my case, PHP functions in the templates that can’t be cached). Bookmarking this for future reading, it appears to be holding some interesting tidbits. HOWTO: Make WordPress plugins work with WP Super Cache.
25 Feb
On February 22, I gave a presentation at BarCamp Miami entitled “Introduction To Buddypress: Social Networking With Wordpress”. Here’s a photo:
http://flickr.com/photos/gsiteam/3301184428/in/photostream/
Here’s the slides at slideshare.net. This was my first public presentation, and the audience was varied, so the presentation was aimed mostly at the light (or even no) coding community to get the word about BuddyPress out there. From the talks I had AFTER the presentation (and also at FOWA 2 days later), it looks like I managed to reach some.
Let me know how you like the slides - I would like to improve this presentation and deliver it at future Barcamps and Wordcamps.
20 Feb
Some of my fellow followers on Twitter a few days back were requesting people contribute with any tips or helpful hints to get the most out of BarCampMiami and FOWA next week. I managed to get a few tips together (mostly reminders). If you want to add any, please leave a comment. Thanks!
1. Social Events - Get the most out of the experience by attending these (some require tickets to be purchased ASAP):
UPDATE: Unofficial FOWA Beer Lovers Meetup
Geek Dinner - Sunday, February 22, 2009 from 7:00 PM - 9:30 PM (ET)
Social Media Club South Florida Meetup - Feb. 23rd 6:30pm to 9pm
FOWA After Party - Feb. 24th at Nikki Beach Club
2. Bring lots of business cards. Exchange of cards seems to be still a time honored part of a meet/greet.
3. At FOWA, there are going to be FREE uni sessions - mini conferences in “break out rooms”. 50 spaces per session, first come first served. Facebook, Sun, etc.
4. Obvious, but if you don’t have extra iphone, laptop, or batteries start ordering them (or actually buying them locally) now. Don’t count on outlets although FOWA says there will be placed to “plug in your laptop”.
5. At FOWA, according to sources, wireless internet will be in the lobby ONLY. Should be able to get a 3G signal inside though. At BarCamp, there is Wifi in the restaurant but when I spoke to @alexdc, he was thinking it might be limited to due demand.
6. UPDATE: Follow the FriendFeed Room FOWA Miami & WordCamp/BarCamp/NewsInnovation. It monitors tweets and flickr feeds in one easy place. There’s also a RSS feed of the room in case you can’t follow FriendFeed directly.
29 Jan
This is more of a bookmark then anything else, since I have yet to try this. But this Wordpress Plugin Template seems very interesting and useful for those who want to learn to create Wordpress plugins. Not sure if this covers everything, but if you ever wanted to dip your toe in the pool of Wordpress plugin development, this might help you out.
29 Dec
This is something i’ve been working on for about a week off and on. The holidays has given me some rare time to devote to this. Once the new year starts, i’m going to be toast.
I have adapted the WP AutoSuggest plugin to work within certain search boxes within the BuddyPress main template. See screenshots below. I’m doing a little beta testing (right now the plugin does not have controllable options in the admin, but i’m considering adding a few just to get it out the door). Bringing this up now in case there are any big “must have” requests.
FYI: I wanted to make this work with the search box in the upper left. And someday I (or someone else) might. But it’s difficult because (1) the box is everywhere - even on BP profile templates and (2) it’s difficult to get the right filtered results with the html dropdown box there. Some fancy javascript might be required, but i’m just not into trying to figure that out at the moment.
Anyways, hopefully I can throw this out to the BuddyPress community soon.
25 Dec
I’ve come up with three versions of starting points or “building blocks” for those who want to build their own BuddyPress components. For those impatient, here are the links:
www.davidbisset.com/wp-content/uploads/2008/12/bp-testv0-1-0.zip
www.davidbisset.com/wp-content/uploads/2008/12/bp-testv0-1-1.zip
www.davidbisset.com/wp-content/uploads/2008/12/bp-testv0-1-2.zip
All three versions are “drop and play” solutions. Just put the files in the right folders (see the included README in each zip) and these should work on a basic install with the BuddyPress beta components (your WPMU and BuddyPress must be working 100% first).
Version 0.1.0
www.davidbisset.com/wp-content/uploads/2008/12/bp-testv0-1-0.zip
This version is very close to the proof of concept screenshots for Twitter and Friendfeed. Very basic - it just adds a menu and two submenus to that menu. It should automatically also add the menu to the “BuddyPress Bar” that appears at the top and (by default) is grey.
Version 0.1.1
www.davidbisset.com/wp-content/uploads/2008/12/bp-testv0-1-1.zip
This version adds the “header tab” navigation you see in the above screenshot. This requires a few additional PHP functions, and therefore increases the complexity a little bit. I also added a few BuddyPress PHP functions in the sample page that you should become familiar with but are very straightforward. This version rounds out how to create major navigational elements in BuddyPress.
Version 0.1.2
www.davidbisset.com/wp-content/uploads/2008/12/bp-testv0-1-2.zip
This (final?) version changes the “Second Page” into an example of showing rowed results (similar to what you see on the wire page). This bumps up the complexity a bit since we use alot more PHP functions, mostly stored in the bp-test-templatetags.php file. We also use several classes seen in bp-test-classes.php and bp-test-templatetags.php. Also add a “standard” (of sorts) filter file (bp-test-filters.php). If you are planning on displaying anything in a table/row format like in the screenshot above, then you will want to examine this version. I have removed AJAX references to make it easier. Honestly this is all very close to the WIRE BuddyPress component so if you want to look at that as well, especially if you have the hang of this and just need to add in AJAX, that would be a wise move.
These three versions support potential BuddyPress components ranging from the very simple to more-or-less the level of some of the current BuddyPress beta components. These building blocks will hopefully be a learning tool first (if you don’t understand what they do, then you won’t get very far) and a time saver second.
As always check out the BuddyPress forums for the latest. I would like for discussions about these building blocks to take place there or here on my blog. These aren’t plugins technically and would prefer if these are polished before redistributed to any plugin sites outside of buddypress.org. But you are open to translate these, just provide a link here in my blog when you are done. Thanks!
23 Dec
Since i started playing with expanding the settings menu in Buddypress, I have been on a role lately (could have done this much earlier, but i am catching up on a ton of work before the end of the year).
I am going to write a more detailed post soon, but i wanted to share the two screenshots.
This screen shows I have taken a common twitter library, and with the knowledge i talked about in my last post, is showing a twitter stream from STORED username/password variables. That means no hardcoding. The user on this site (via BuddyPress) was able to setup their account information in “settings” and now his/her twitter stream is visible to the public.
I have done the same thing with Friendfeed. With Friendfeed, this looks more like a lifestream.
This is all rough, proof of concept stuff but I can how easily this can turn into a powerful lifestream plugin for BuddyPress. I could probably code this faster than adapting an existing plugin completely. My next proof of concept might be Flickr. I don’t use it much personally, but apparently it’s been a big request (FriendFeed handles Flickr streams too). Perhaps also Twitpics, if there’s an API for that.
Comments are open for discussion, i’ll also be around in the Buddypress forums and also Twitter (@dimensionmedia).
23 Dec
Update: Andy has suggested to make these modifications a separate file to drop into the mu-plugins folder. This works like a charm, and perfect because you do NOT have touch ANY core files. I have attached the file called bp-social here. So drop this into the mu-plugins folder and you should see a new submenu appear in settings on a profile (just like my dropdown). Read the comments below this post.
I have been playing with the BuddyPress beta recently, and planning on focusing on it’s impact to Social Networking in 2009 on my socialnetworking.com blog.
In the meantime, i’m more focused on my personal blog on expanding on the code. First, you must have played already with BuddyPress to understand this. And if you want to try this, you must already have a good foundation in PHP. This is not a “drop a plugin and it works” deal.
From what i’ve discovered, you need to modify one file for basic settings but unfort. it’s a core file. bp-core-settings.php. I have made my own modified version here: bp-core-settings.php (You may download, but use it at your own risk… this should work if you replace the core file, but do this with care and backing up any files. Remember this is for learning only).
Notice that adding a submenu within settings is simple enough at the top of the file itself.
bp_core_add_subnav_item( 'settings', 'social', __('Social', 'buddypress'), $bp['loggedin_domain'] . 'settings/', 'bp_core_screen_social_settings', false, bp_is_home() );
If this is new to you, then you will probably have to take some time learning what the parameters mean and where BuddyPress is grabbing them. The important thing to note here is the displayed name (”Social”) and the php function it goes along with (”bp_core_screen_social_settings”).
Next, later in the same file, I simply duplicated the general settings, renamed the php functions (I kept the same naming convention but replaced “general settings” with “social” since I was attempting to create a social settings panel). Make sure the first function below matches the function you stated in the bp_core_add_subnav_item that we just talked about it, or it isn’t going to work. (Mine is “bp_core_screen_social_settings”). Here is my code:
/**** SOCIAL NETWORKING SETTINGS ****/
function bp_core_screen_social_settings() {
global $current_user, $bp_settings_updated, $pass_error;
$bp_settings_updated = false;
$pass_error = false;
if ( isset($_POST['submit']) && check_admin_referer('bp_settings_social') ) {
// Form has been submitted and nonce checks out, lets do it.
if ( $_POST['twitterusername'] != '' ) {
update_usermeta( (int)$current_user->id, 'twitterusername', $_POST['twitterusername'] );
$bp_settings_updated = true;
//$current_user->user_twitterusername = wp_specialchars( trim( $_POST['twitterusername'] ));
}
if ( $_POST['twitterpassword'] != '' && !strpos( " " . $_POST['twitterpassword'], "\\\" ) ) {
update_usermeta( (int)$current_user->id, 'twitterpassword', $_POST['twitterpassword'] );
$bp_settings_updated = true;
// $current_user->user_twitterpassword = $_POST['twitterpassword'];
}
}
add_action( 'bp_template_title', 'bp_core_screen_social_settings_title' );
add_action( 'bp_template_content', 'bp_core_screen_social_settings_content' );
bp_catch_uri('plugin-template');
}
function bp_core_screen_social_settings_title() {
_e( 'Social Networking Settings', 'buddypress' );
}
function bp_core_screen_social_settings_content() {
global $bp, $current_user, $bp_settings_updated, $pass_error; ?>
<?php if ( $bp_settings_updated && !$pass_error ) { ?>
<div id="message" class="updated fade">
<p><?php _e( 'Changes Saved.', 'buddypress' ) ?></p>
</div>
<?php } ?>
<?php if ( $pass_error && !$bp_settings_updated ) { ?>
<div id="message" class="error fade">
<p><?php _e( 'Your passwords did not match', 'buddypress' ) ?></p>
</div>
<?php } ?>
<form action="<?php echo $bp['loggedin_domain'] . 'settings/social' ?>" method="post" id="settings-form">
<label for="email">Twitter Username</label>
<input type="text" name="twitterusername" id="twitterusername" value="<?php echo $current_user->twitterusername ?>" class="settings-input small" />
<label for="pass1">Twitter Password (leave blank for no change)</label>
<input type="password" name="twitterpassword" id="twitterpassword" size="16" value="" class="settings-input small" />
<p><input type="submit" name="submit" value="Save Changes" id="submit" class="auto"/></p>
<?php wp_nonce_field('bp_settings_social') ?>
</form>
<?php
}
What is neat about this is that you can create basically any field for any settings you want to store with the update_usermeta() function. If the setting isn’t stored in the wp_usermeta table already, it gets created. If it’s already there, it gets overwritten.
This is not a complete tutorial, and it’s more or less my own personal notes in how i made this happen. But it does show that it is possible to expand BuddyPress to hold custom “settings” values for use elsewhere on the site. For example, I am trying to create a settings panel to hold social networking username/passwords (like for Twitter) and be able to use these elswhere on the user’s profile section. Perhaps the beginning of a custom BuddyPress livestream or social networking plugin.
Please make sure you know about the BuddyPress forums.
17 Dec
This WordPress “Art Direction” Plugin apparently allows you to style each post differently (or as you choose). Interesting, in case you need it. Bookmarking because you never know.
4 Nov
How To Fix WordPress 2.5.1 “Invalid Activation Key” Bug (Occurs When Resetting Password)
This was useful to me today, and actually worked with a client site.
3 Jul
More Fields Wordpress Plugin - Works with Wordpress 2.5+
26 Jun
Really nice collection of usable plugins here - wp-pools, wp-ban, wp-email, etc. If you do moderate work in Wordpress, bookmark this. Seriously.
19 Jun
Sourcebench has got what seems to be a nice Wordpress Review Plugin. Users can leave comments with multiple star ratings. Potentially very useful.
18 Jun
This is a good technique that the big blogs do, and it’s helpful to see how you can apply this for your projects. Display a particular post and try to show related (by topic or author) posts or information to keep the user on the site.
29 Apr
wptouch: wordpress iphonified is a complimentary theme installed as a plugin on your WordPress blog or website that will format your content with this Apple-inspired, full-featured theme when your visitors are using an iPhone or iPod touch.
15 Apr
I’ve stumbled on several variations on a lifestreaming plugin for Wordpress (lifestreaming is basically displaying your activity on twitter, flickr, and other services in a nice linear calendar of some sort). This probably all started with Jeremy Keith’s php source code a couple of years ago.
Chris Davis’s Lifestream
Lifestream For Wordpress (Looks nice)
SimpleLife For Wordpress (Updated, but appears to be PHP5 only although using SimplePie)
If anyone stumbles on lifestreaming solutions for Wordpress, drop a comment.
14 Apr
WP’s Matt talks about bogus SecurityFocus SQL Injection reports, but even more importantly why and how you need to keep your WordPress updated. If you ever doubted how to upgrade, or what resources you might need in order to keep this simple and straightforward, read this now.
5 Apr
I blogged about the WPhone plugin before, but the Wordpress MU Plugin has been modified the plugin for WordpressMU user. Actually, i’m linking to someone linking to the direct download because I don’t see any mention of this on the actual author’s blog.
31 Mar
I’ve been looking for this. The Page Excerpt plugin allows you to specify a specifc excerpt for WordPress pages (like pages). Now upgraded to Wordpress 2.5 (one of the first plugins that i’ve seen advertise this, with more sure to follow).
23 Mar
Here are some noted changes in database structure from Wordpress 2.3 to 2.5. Nothing big, but if you design plugins and such you need to bookmark this. I would imagine at this stage it’s final.
18 Mar
WordPress 2.5 sneak peek from the official development blog. The “A customizable dashboard, multi-file upload, built-in galleries, one-click plugin upgrades, tag management, built-in Gravatars, full text feeds, and faster load times” statement sums up the new features. The new look is growing on me, although i still think the visual improvements aren’t THAT much of an improvement. Have to wait and see I guess. But it looks like it will be out any day now.
7 Mar
PHP Speedy Wordpress Plugin - It’s finally here. I have yet to try it, should be interesting to see the responses. You are at least knee-deep in Wordpress development, you should check it out.
23 Feb
This of the 10 Best Twitter Tools for Wordpress Blogs I recently bookmarked due to my recent signup to twitter. Many of these plugins’ descriptions are similar, but nice to have a solid variety.
20 Feb
20 Feb
SM’s “45 More Excellent Blog Designs” - Because you can never have enough blog designs to look at.
16 Feb
This custom page slug plugin allows you to create a custom page slug then fill that page with any content (html, php, whatever) with “full access to the Wordpress and Plugin architecture”. This is nice for niche requests, although it’s minor coding without the plugin. Congrats to Leon.
16 Feb
Screenshots from the latest Wordpress 2.5 build. Like the dashboard, but stacking all those the options on the write page is horrible. Why scroll for that?
12 Feb
Looks like the WordPress team have setup aWordPress Development Updates blog to report on work for WordPress 2.5 - and they are using the Prologue-theme which I believe is the first I’ve seen in action “out in the field”. Very exciting to see this working and makes me more determined to find a practical application for myself. [ via ]
12 Feb
This Facebook Wordpress theme is ok, and available in multiple colors, but how long before this becomes too common? But nice effort!
11 Feb
Trying to get rid of the “A new version of WordPress is available! Please update now” messages for anyone but the admin? This handy Notify Admin Only of Wordpress Updates plugin will fix that. Not that this should be done often - but sometimes the message can get annoying and you don’t want to worry anyone but the admins of clients’ websites. You can also easily edit the plugin to remove the message entirely if you want.
9 Feb
Once you start doing custom plugins and modifications for Wordpress, you begin to pay closer attention to the update details such as thiswhat has changed in WordPress 2.3.3 notice. Doesn’t look like any changes effect what I do. If you don’t want to upgrade because of fears of it breaking your custom Wordpress site, just update XMLRPC.PHP for the security part of the update.
6 Feb
Chyrp appears to be a light weight blogging engine, done in PHP/mySQL (some Ajax) and is “loosely based on the MVC design pattern.”. It’s been recently upgraded. I don’t like the fact you need to give an email for a live demo, but at least you can download the code.
Chyrp is a blogging engine designed to be very lightweight while retaining functionality. It is driven by PHP and MySQL (with some AJAX thrown in), and has a pimpin’ theme and module engine, so you can personalize it however you want.
John Gruber picked up on this (and so did i) that Cameron Hunt switched from Tumblr to Chyrp, an interesting endorsement.
6 Feb
As a Wordpress user, I use Akismet of course, but what if you had to design one from scratch? Or at least wanted to know how to put one together? Jonathan Snook tells how he built an effective blog comment spam blocker. Results will vary of course, but I found it interesting how he identified and treated his spam.
5 Feb
Lorelle has another great article on Content Theft and WordPress. Content theft is becoming a bigger issue (i’ve got at least a dozen automatic blogs repeating my posts). Although Lorelle’s primary goal is to ensure the difference between Wordpress.com hosted blogs and blogs powered by Wordpress, there are some helpful tips on reporting copyright violations near the bottom of her post.