Recent Posts

Customizing TinyMCE without Advanced TinyMCE

Advanced TinyMCE is a useful plugin; it lets you add all of the buttons that WordPress “hides.” When you need to add ‘Word-like’ WYSIWIG editing to a WordPress site, it’s probably your best choice. But most of the time, giving your users a ‘Word-like’ interface is a bad idea. (Admit it!)

After spending some time trying to write TinyMCE plugins to get around Advanced TinyMCE’s main weakness (in my own use & experience) I have found that customizing TinyMCE for WordPress without Advanced TinyMCE is more effective than using the plugin. It’s faster than fighting with TinyMCE and it makes adding buttons more deliberate (a good thing when you’re trying to K.I.S.S.)

My main complaint with the plugin is that the “Styles” dropdown is poorly implemented. Read More »

Posted in wordpress | Tagged , , , , | 10 Comments

How To: Allow Syntax Highlighting in WordPress Comments

I suppose this could be a plugin, but it seems too simple for all that…

With SyntaxHighlighter Evolved installed, add the following PHP snippet to your functions.php file to allow syntax highlighting in your WordPress comments:

function highlight_comment_text() {
    if ( (array_key_exists('SyntaxHighlighter', $GLOBALS) ) {
        $highlighter = new SyntaxHighlighter();
        return $highlighter->parse_shortcodes(get_comment_text() );
    } else { return get_comment_text(); }
}
add_filter ('comment_text', 'highlight_comment_text');

The filter checks to see that the global variable $SyntaxHighlighter exists (and that SyntaxHighlighter Evolved is installed) then calls the SyntaxHighlighter::parse_shortcodes() function on your comment text. If SyntaxHighlighter Evolved is not installed, your comments are displayed normally.

In my own (brief) testing, this works well for JavaScript and HTML, but not for PHP snippets.

Edit: echo should be return to keep your comment formatting. Fixed 10/15/09
Posted in wordpress | Tagged , , | 1 Comment

Naked Blogging

Why has this blog been naked for the past few weeks? Because — I’m in the middle of a re-design!

After a few months of switching back and forth between different “minimalist” WordPress themes by other developers, I’ve finally begun the process of writing a theme for Outta Bounds.

I’ve chosen the Thematic WordPress Theme Framework (which I’ve been using a lot as of late), because now that I am familiar with the custom hooks & actions available in Thematic, I find that I’m looking for them whenever I use another theme or framework. I’m hooked! (… I couldn’t help it.)

My goals for this re-design (the skeleton of which you can see right now) are to:

  • use a Fluid Grid (A List Apart);
  • “feature” my WordPress plugin, WordCycle (so that it’s easy to find and also to centralize comments, support questions, etc);
  • make go0d-looking code snippets;
  • and have fun!

That’s all for now.

Posted in Uncategorized | 1 Comment

One BIG WordPress Site: A Case Study

I recently finished a big project, a few months in the making, that tests the limits of "WordPress as a CMS." At some points in development, I wondered if it was a crazy idea to do this all in WordPress -- but the easy UI (for my client) and quick development (for me) made it work & made it worth it.

The site is a re-design of a custom ASP.NET site developed 2002-2006 for Jerry Rupiper, the owner of Washington Island Realty and webmaster of washingtonisland.com (see washingtonisland.com circa October 2007). The WI.com website is mostly for tourists interested in visiting the island for the first time or planning a return trip. The original site featured information about the island, a comprehensive directory of local businesses, an events calendar, as well as some hosted advertiser sites. The new site would do the same thing (better), add a blog for residents and people interested in what's happening on the island, and a more active calendar.

Homepage: Before

So, to make this project useful for other WordPress developers, I'll go through some of the more interesting parts of the site and explain: How'd you do that?! Read More »
Posted in WPMU, wordpress | Tagged , , , | 16 Comments

Example of a “Simple” Dreamweaver Extension or ‘One more reason to hate Dreamweaver’

I normally stay away from Dreamweaver, mostly because of a personal dislike, but also beacause if a client wants to use Dreamweaver (because they want to be able to edit their own site), it’s likely they’ll get in over their head and then “Design View” will gunk up the code. I prefer using a CMS (usually WordPress), partly because it can lower the clients expectations for the types of changes they can make and also because it can limit the design mess-ups they’ll make with updates.

But occasionally, Dreamweaver is still appropriate. When a project’s budget (or lack thereof) makes a CMS out of reach, and if the client has a basic knowledge of HTML, designing templates and creating a style guide for updating the site can work (well). Read More »

Posted in wordpress | Tagged , , | 1 Comment

Introducing: WordCycle

Edit: For more information on WordCycle, examples, and support, please see the WordCycle page.

I mostly develop two kinds of websites: WordPress sites and not-WordPress sites. In these not-WP sites, I find that I use Alsup’s jQuery Cycle Plugin on a regular basis. For a new project, my client has a slideshow on their homepage using the  ubiquitous Smooth Gallery, which works quite well, but sticks out like a sore thumb on most sites, and is very difficult to simplify.

Part of the re-design for this client is to switch him from his current custom PHP CMS to WordPress, so I could have used the WordPress SmoothGallery Plugin but that wouldn’t go with my theme or be as fun as developing a plugin that uses my JavaScript slideshow of choice: Cycle.

So in steps WordCycle…

WordCycle is a wrapper for the jQuery Cycle Plugin. After installing WordCycle, you can use the slideshow shortcode to insert a Cycle slideshow into your WordPress post or page, no JavaScript necessary!

To setup a WordCycle slideshow, upload images to your post and set them up as you would for a gallery.

Flash Uploader

Give the files names, captions, and order them using the gallery view.

When you’re done, add the slideshow to your page using the slideshow shortcode and publish.

slideshow shortcode

Options include transition effect, speed, image size, pause on hover (or not), gallery id, slideshow position (float), and slide order.

The plugin includes a super simple stylesheet, and I might give it some default styles at some point, but for now at least, the stylesheet is just meant to be a guide.

To see the README, visit WordCycle’s home on GitHub.

I’ve submitted the plugin to the WordPress Plugin Directory, so it’ll go up there soon as well.

Example (using only defaults):

Screenshot showing Flash Uploader Gallery options.
Screenshot showing Flash Uploader Gallery options.
Screenshot showing slideshow shortcode usage.
Screenshot showing slideshow shortcode usage.
Posted in wordpress | Tagged , , | Comments closed

WP+jMonthCalendar=Fancy

I'm developing a website in WordPress for a "tourist destination" that has a few types of content -- webpages, blog posts, events, and business listings. After learning a few things about using WordPress as CMS, I decided at the beginning that everything (except for webpages) would need to be some kind of Post. Using Freshout's Flutter plugin, I'm making "post-types" for events and business listings. These custom post-types are basically souped-up Posts with fancy custom fields. (For more info, visit the Flutter Support & Usage pages.) Now, to get to the reason for this blog post: I have a two major requirements for the my "Events Calendar." I want it to:
  1. start by showing events happening this month, and show events in the future very easily (without reloading the page), or to look at an archive of events if you really want to (could require reloading the page or going to a different page); and
  2. use "Progressive Enhancement" (such that it's a cool-looking calendar if you've got JavaScript & CSS enabled, and just a list of events listed chronologically if you're a search engine spider, using a screen reader, an ancient browser, or just like your websites text-only-please-and-thank-you).
Here comes the magic: Byte Cyclist's jMonthCalendar jQuery plugin & Multiple Loops. Read More »
Posted in wordpress | Tagged , , , , , | 2 Comments

WordPress as a CMS

I’ve come across a number of useful “WordPress as a CMS” type posts, but only a few that detail building an actual WordPress site. I’m going to go over how I setup a basic CMS using WordPress in a recent project for the startup lecture management firm, Verbatim Lecture Management. Read More »

Posted in wordpress | Tagged , , , , | 3 Comments

Syncing Google Calendars to your Mac (+ iPhone)

Because this wasn’t easy to find when I did a Google search on how to do it…

I’ve been using Google Calendar for a few years because it was really the only feasible way to manage my schedule in school, where I used more than one laptop, lab machines, and kiosks on a regular basis.

Now that I work primarily on two Macs and have an iPhone, I’m still happy with Google Calendar because of two things: Google now supports CalDAV, iCal 3 supports CalDAV sync, and NeuvaSync acts like an Exchange server for my Google Calendars!

NeuvaSync allows direct, over-the-air, native synchronization of certain smart phones and PDA devices with public PIM, and calendaring services including Google Calendar. NuevaSync does not need any software installed on your device because it uses synchronization protocols that are already built in.

With this setup, I can add/edit events from either of my Macs, Google Calendar, or my iPhone.

It took less than 10 minutes to get the iPhone setup from registering at NeuvaSync.com to syncing for the first time. (brief instructions on setting up NeuvaSync)

Only criticism of this setup are: NeuvaSync can’t color-code indivual calendars from gcal, but maybe that’s coming?

Posted in iPhone | Tagged , , , , | Leave a comment

Recording Video on a Jailbroke iPhone

I have an iPhone, but I don’t spend a whole lot of time messing with it. I wanted to be able to record video on it (why you have to jailbreak your iPhone to get this working, I just don’t understand) and get those videos online without much fuss.

  1. Jailbreak iPhone using QuickPwn (offical torrents avialable on blog.iphone.dev). This takes about 10-15 minutes once you’ve downloaded the torrent (which, if you’re on Comcast, could take an indefinite length of time…).
  2. Use Cydia to install Cycorder (one of the featured packages, by Jay Freeman (saurik)) to record video, OpenSSH to enable SSH access, and Toggle SSH to turn it on and off.
  3. Record videos.
  4. Launch Toggle SSH and hit Enable (there’s no feedback in this app, you just have to trust that it actually enabled SSH).
  5. Connect to Wi-Fi on your iPhone and find your IP (Settings > Wi-Fi > choose your network > find your IP). (I don’t have a good wireless connection where I’m doing this, so I turned on Internet Sharing over AirPort on my iMac for this.)
  6. Open your favorite SFTP client and use your iPhone’s IP for the hostname, and the “official” Apple username/password for SSH: root/alpine
  7. Videos made in Cycorder can be found in the /User/Media/Videos/ directory.
  8. When you’re done transferring files, logout of your SFTP session and use Toggle SSH to Disable the SSH Daemon.
  9. Upload to your video site of choice…

    Sweet!

Posted in iPhone | Tagged , , | Leave a comment

    <3