WordCamp New York City 2009

November 14–15, 2009
...was awesome!

plugins Tag archive

Theme/Plugin Competition Finalists

These teams will be on stage at Mason Hall today to get their entries judged:

Themes
1. A fork of the Thematic Framework (by Ian Stewart) and an original child theme.
– Daisy Olsen http://wpmama.com/ (Metro NYC)
– Ron Rennick http://ronandandrea.com/ (New Brunswick, Canada)

2. Italic Smile. This theme helps travelers or photographers easily create a site to share their journey.
http://italicsmile.com (with theme test data)
– Jake Snyder http://labs.jcow.com/ (NYC Resident)
– Tim Bowen http://CreativeSlice.com/ (Tucson, AZ)

Plugins
1. WP Manage Plugins. An easy way to give you more control over the plugins section of WordPress.
http://webdevstudios.com/support/wordpress-plugins/wp-manage-plugins/
– Matt Martz: http://sivel.net (Baltimore, MD)
– Brad Williams: http://webdevstudios.com (Metro NYC)
– Brian Messenlehner: http://webdevstudios.com (Metro NYC)
– Scott Basgaard: http://webdevstudios.com (Metro NYC)

2. Badge Grab. This plugin is designed to make it easier for bloggers to offer image link code that other bloggers and websites can place on their own sites to link back.
http://wpmama.com/downloads/BadgeGrab.zip
– Daisy Olsen: http://wpmama.com (Metro NYC)
– Lisa Boyd: http://www.lisaboyd.com/ (North Carolina)

3. We’ve created a plugin that attempts to spur conversations. This plugin allows you to prompt your readers to comment by asking them to answer a question specific to that post.
http://www.think-press.com/downloads/conversation-starter.zip
– Brandon Dove: http://www.think-press.com/ (Tustin, CA)
– Jeffrey Zinn: http://www.think-press.com/ (Huntington Beach, CA)
– Andrew Christian: http://www.pharmcountry.net/ (NYC, NY)
– John Hawkins: http://www.johnhawkinsunrated.com/ (Las Vegas, NV)

Finalists, be at Mason Hall (17 Lexington Ave, at E 23rd St) stage at 12:45.

Writing secure plugins

Photo of Mark Jaquith

Mark Jaquith

WordPress plugins are infinitely powerful. This power makes WordPress great, but it also gives plugin developers the ability to shoot themselves (and the users of their plugins) in the foot. This technical and code-heavy presentation will teach plugin developers the skills they need to write plugins that will never be a security liability to their clients and users.

You’ll learn the functions to use, when to use them, attitudes and best practices to avoid security holes, as well as explanations of why they are holes — which will hopefully help hone your sense of skepticism so that you can stay ahead of the curve and start protecting against tomorrow’s attack vectors. I will also be holding an unconference workshop session on plugin security where we can go through your plugin code and identify problem areas. I normally charge lawyerly rates for this kind of code review — you should definitely take advantage! I’ll announce the time and place of that workshop session during the main security talk session, which is at 1:30pm on Saturday.

Developing BuddyPress as a collaboration hub

Photo of Boone Gorges

Boone Gorges

I’ve been developing for the CUNY Academic Commons, a social network and collaboration site for the faculty, staff and graduate students of the City University of New York, for about six months now – a period not coincidentally coterminous with my history as a WordPress developer! During that time we’ve envisioned the Commons as a site built around individual scholars and students. BuddyPress has been a natural fit for this kind of project.

Our concept is for BuddyPress profiles and groups to act as hubs for the collaboration that happens on the Commons. Individuals flesh out their profiles with their research and teaching interests. Based on this information, groups form around common interests and projects. With only a small amount of development time – see, for instance, this hack that allows users to identify their interests in a more fine-grained way – BuddyPress excels at this kind of community building.

It’s at the next stage where the real development work begins. Groups that form in BuddyPress need spaces to work. And since the CUNY Academic Commons caters to such a wide audience – tenured professors to first-year graduate students, chemists to laywers to philosophers to creative writers – our goal has been to provide different kinds of collaborative spaces for different academic purposes.

Blogs are a no-brainer. It goes without saying that the integration between BuddyPress and WordPress is as tight as can be.

Forums are another space where groups work together, and their integration into BuddyPress is getting more seamless all the time. Before the recent release of BuddyPress 1.1, it took quite a bit of development time to make bbPress play nicely with BuddyPress – consistent theming, shared logins, access to the other platform’s core functions. The forum integration in BP 1.1 solves these problems, but raises new development challenges, especially regarding the functionality that bbPress handles in plugins: email notification of forum posts, file attachments, etc.

MediaWiki is the third spoke in the BuddyPress collaboration hub. Our team has made single sign-on between WordPress and MediaWiki happen. We’ve got a method for making the BP admin bar appear throughout MediaWiki. We’ve also developed a tool that brings wiki edits into the BuddyPress activity streams.

I’m excited to be part of the BuddyPress community, as I think it’s got a great future as this kind of collaboration hub: a set of tools for people to connect, and open connections with software where specialized types of collaboration and content creation can happen.

Complex Content Management with the Pods Plugin

Photo of Scott Kingsley Clark

Scott Kingsley Clark

WordPress is an amazing platform, and it’s used to power millions of blogs and sites. As it becomes used in more complex ways though, it can be difficult to manage the multitude of types of content required for your site, project, or application. In just under 30 minutes, I will perform a song I wrote about using WordPress as a CMS to power your site, I will show real world examples of complex content types in action, give a run through of the backend management of Pods, as well as show features from the Pods UI plugin I’ve developed to make it all even easier.

What’s Pods got to do with your content though? Need some more information about Pods and how to use it? Freshen up over at the Pods website. Warning: Pods is still primarily best utilized by developers and I recommend you put your developer hat on! Don’t worry, I won’t be able to completely lose you in my 30 minute presentation!

I’m really looking forward to speaking about the subject of Pods, and how it can completely transform the way you develop complex sites with WordPress.

BUT WAIT! Don’t let the 30 minute presentation slot fool you, I’ll be hanging around – Tweet me or e-mail me to have a one-on-one walkthrough or ask your questions! In addition to this, I will also be hosting an unConference Session on Pods and will Tweet / Post the room and time on my site on Saturday!

You can always feel free contact me via Twitter @scottkclark or on my website.

Building Course Websites with WP / Lightning Talks

Photo of Dave Lester

Dave Lester

I’m excited to return to NYC and CUNY to present ScholarPress Courseware, a WordPress plugin that enables you to manage a class with a WordPress blog, including a schedule, bibliography, assignments, and other course information. I’m shaking up the format of this talk a bit from what I normally give, so please attend even if you’ve heard me speak about it previously. No, I won’t have any lolcats, but perhaps some keyboard cats.. we’ll be cramming a lot of things into a short session.

I’ll briefly run through the basics of the plugin, including new features like Zotero integration, and WordPress MU support thanks to the hard work of Jeremy Boggs (who is also presenting at WCNYC). After covering the plugin’s essential features, I’ll give the reins to an audience volunteer who will be led through the process of setting up a course website using Courseware. This will give you an opportunity to see how the plugin works, and gain some ideas for your own course website.

The remaining session time will be used for lightning demos to present the audience’s own course website. My hope is that these demonstrations will give participants a broad understanding of how course blogs and websites are being organized by using WordPress; ScholarPress is just one of many options.

Lightning talks will be an opportunity to briefly demonstrate your course site to the group. Each presenter must be brief, so I’ll need everyone to respect whatever time limit we decide. If someone exceeds the time limit, I’ll “play them off” with the keyboard cat. Don’t be that guy.

To sign up for a lightning talk of your course website immediately following the presentation of the Courseware plugin, leave a comment on this blog post. I can’t guarantee that we’ll get to everyone’s demo, but we’ll try to fit in as many as possible.

See you on Saturday!

Roll Your Own Contact Manager With RoloPress

Do you need a Contact Manager or a Customer Relationship Manager? And why would it matter, since all the available ones really stink. They’re too difficult to use, or too simple to be useful. I want all my contacts in one place, my business and my personal. And I want it to work the way I do… look the way I want it to look… work great on my iPhone… and be easily expandable. Am I really asking for too much?

You would think so when you look at the available offerings. I’ve tried Outlook, Salesforce, SugarCRM, vTiger, Highrise, Google Contacts, Yahoo Contacts, Plaxo, and many others. And none of them make my life easier.

So I built my own.

RoloPressRoloPress is a web application. An online Contact Manager that is infinitely expandable, because you can easily create themes or write plugins. It’s powerful and simple, and has a 1-click install. If this all sounds like WordPress, then it should. RoloPress is a web application that uses the WordPress platform.

What’s the “WordPress Platform” you ask? Well, we all know that WordPress is a state-of-the-art publishing platform. But it really is something more. It’s an expandable platform that can be used to build web applications, like RoloPress.

RoloPress, uses core WordPress to create a contact manager. RoloPress is not a separate application tied to WordPress. It is an application built ON WordPress.

Using the standard Parent/Child theme framework, RoloPress allows you to customize the look of your contact manager by just creating a new theme. As long as you have “RoloPress Core” (the parent theme) in your Themes directory, any RoloPress child theme will work. Here’s the one-click install part; activate a RoloPress child theme and you have a contact manager. No plugins to install, no configuration. Just activate a theme. Think you can do that?

Once RoloPress is activated a few things happen. First, RoloPress automatically creates two pages for you, names them, and assigns custom template files to them. Then it creates all the necessary custom fields, and two custom taxonomies for you; “RoloPress-Type” and “RoloPress Company”. Yup, all automatic… no configuration from you.

Creating a contact or a company is all done from the front-end of RoloPress. Even editing is done inline on the front. You really don’t every have to log into the admin section if you don’t want to. Your contacts and companies are regular posts (or in Rolospeak “items”), with custom fields and custom taxonomies… all standard WordPress, just displayed differently for a contact manager.

The custom taxonomies are the secret behind RoloPress, and one of the reasons it’s infinitely expandable; when you create a company, let’s say “ABC Corp”, two things happen. The “RoloPress-Type” taxonomy is assigned a value of “Company”, and then the “Company” taxonomy is assigned a value of “ABC Corp”. Now let’s add a contact that works for ABC Corp, say “Mike Jones”. “RoloPress-Type” is assigned a value of “Contact”, and the “Company” taxonomy is assigned of value of “ABC Corp.”.

So this is sort of what it looks like:
ABC CORP
RoloPress-type = company
RoloPress company = ABC Corp

Mike Jones
RoloPress-type = contact
RoloPress company = ABC Corp

The relationship between Mike Jones and ABC Corp is handled within the “RoloPress company” taxonomy.

Ok, here’s the fun part. The WordPress platform automatically handles the urls for us when using custom taxonomies. So if we view “www.mydomain.com/company/abc-corp” both ABC CORP and STEVE BRUNER show up. It’s an archive for ABC CORP.

If you view “www.mydomain.com/type/contact” all your contacts will show up, and “www.mydomain.com/type/company” will show all your companies. The WordPress platform handles all this for us.

Using custom taxonomies in this way allows us to create an infinite amount of relationships between items. Future versions of RoloPress can have Task Lists, Events, Cases, Deals and Invoices, all related to Contacts, Companies or both. Real relationships can be defined between your contacts, like spouse, parent, child and friend. Just by adding another custom taxonomy. Are you getting excited yet? I hope so!

Since we’re using the WordPress platform for our web application, building plugins for RoloPress is the same as WordPress, but you now have a few more functions and fields to play with. We even include the template tag “rolo_type_is” to help you identify the taxonomy type. If you want something special to happen when viewing a contact just use:  if(rolo_type_is('contact')){// do something

If you’re interested in rolling your own contact manager, then RoloPress is for you. Stop by our session on Saturday and learn how to use and expand RoloPress, to keep you’re contacts in order.

Can I Prove That This Works?

Photo of John Bintz

John Bintz

After hundreds, if not thousands, of times when my code has failed for any number of reasons, the first question that now comes out of my mouth before I sit down and craft a new block of code is:

Can I Prove That This Works?

If a user comes to me and says, “Your code is failing!” how can I prove that no, it’s not the code I wrote, it’s how it interacts with this other part, or that it’s user error, or that it’s some other reason? How can I quickly find the place to look for problems by ruling out chunks of code that I know are working? How do I know that, when I get something working, it will stay working?

When we all started programming, we proved that our code worked by writing the output to a console, to a browser, to some location where we had to visually verify that our inputs produced sane outputs. While this technique certainly does work, it doesn’t scale well at all. How do you prove that the core of your four thousand line plugin stays working, month after month, after you add new features, fix bugs, and re-factor code?

Lucky for us, we have the tools nowadays to be able to prove that our code does just what we intended it to do. WordPress is built upon PHP, and in PHP, we have multiple testing frameworks to choose from. These frameworks bring to us the ability to perform automated tests on our code, making sure it doesn’t break after we add new things, allowing us to re-factor safely, and letting us say, “The problem’s not here, because the tests just passed.

The trick is that, like any other habit, the idea of writing tests takes time to really sink in. When you start, you’ll find that, to make your code testable, you’ll have to completely rethink your approach to programming. You’ll become acutely aware of the problems of global variables. You’ll have to learn to write smaller functions and methods that do one — and only one — thing, since anything more becomes too hard to test. You’ll have to learn when a thing is a unit, a discrete component that does one thing, and when a thing becomes an integration, where you string a bunch of units together to make your code masterpiece work.

My session, Yes, Your Code Will Change, will walk you through what it’s like to unit test code that’s destined to be run on WordPress. It’s an introduction to the ideas of unit & regression testing, why these types of test are beneficial to you, and what it’s like to go through a simple testing situation by showing how you can use PHPUnit and MockPress to prove that your code works, even when — especially when — it has to change. If you write anything even remotely complex for WordPress, this is the session for you. Hope to see you there!

49ce41fdc95f9bfeb1673611775f042b6bd0acf3

Beginner Development: Building Your First Plugin

Photo of John Hawkins

John Hawkins

It has been more than 25 years since the last time I was in New York City. I can’t think of a better reason to go back than to be part of WordCamp! This will be my 9th (and final) WordCamp in 2009, and I can’t think of a better place to finish off the year!

I’m really excited to be speaking about building your first plugin. Plugin development is something I got into as a way to cut down on the amount of time it took me to perform different tasks on

In my session I will cover how to create a plugin, how to add an options page, how to modify a page or post using shortcodes and how to add an admin dashboard widget. (Not bad for 30 minutes, huh?)

Editor’s Note: To get a taste of John’s session, check out the video from his beginner plugin session at WordCamp Portland.

https://videopress.com/v/wp-content/plugins/video/flvplayer.swf?ver=1.10

Deadline Extended for Plugin/Theme Competition

We’re shocked. Really, we thought people would be crawling out of the woodwork to have Matt Mullenweg, Mark Jaquith and Brian Gardner review their plugin and theme submissions. We thought people would be trying really hard to be in the top three to get a chance to present their work onstage in front of the entire WordCamp NYC audience. And we really thought people would enter b/c the winners will be announced on the WordPress.org development blog, which gets millions of views.

But there was only 1 theme submission and a couple of plugins. Come on, where’s your competitive spirit?

In the interest of making the theme/plugin judging portion of the Sunday program more interesting, we’re extending the deadline for submissions to November 11. You have three more days to finish a theme or plugin per the contest rules.

Have the mad coding skills, but no ideas? Fine, here are a few ideas you are free to borrow:
Theme Ideas

  • Travelogue theme. Use custom fields for things like where you stayed, who you met, where you ate, photo galleries, etc.
  • Resume theme. Create a nice resume theme that fits an overview on one page and links to different templates for personal profile, educational experience, specific job descriptions, portfolio.
  • BuddyPress theme for a regular membership-based group site. Make it look like a regular web site, not like a social network, while still making it clear that the members of the group can use use these features to communicate with each other. Examples: a church site with blogs for various interest groups, a company employee site, an alumni network, a neighborhood site, a babysitting club.
  • Videoblog theme. Display one video per day with author intro post and video transcript, with separate directory section to browse all videos by date, title, tag, category, etc.
  • Gallery theme. Work some magic for displaying groups of photos or images.

Plugin Ideas

  • Update the QuickPress module on dashboard to be configurable so user can choose which elements to include (title, post, tag, category, media files, sticky post status, etc.)
  • Change the way the results are displayed when searching for plugins from the admin, so that the name of the plugin does not link to an external site, but instead brings in the information about that plugin from the repo.
  • Create a customizable twitter widget that can display @name and #topic updates mingled in one thread.
  • Anything you can think of around comments, stats, etc.

Okay, so, creative juices flowing? If we don’t get at least 3 eligible entries for themes and 3 for plugins, we’ll pick the top 2 themes and top 2 plugins for judging instead.

Get cracking, only 3 days left to enter!

Platinum Sponsors

Silver Sponsor

Bronze Sponsors

Small Business Sponsors



Mojofiti logo



Fusebox logo


Cacoo logo


Consultant Sponsor

Recent Posts

Post Categories

RSS #wcnyc

WordCampNYC has no relationship to public radio station WNYC, and we apologize if our abbreviation-based logo has caused any confusion.

Visit WordCamp Central


Code is Poetry.