My task for this project was to create a WordPress image gallery plugin that displays thumbnails of all images in a post along with a main full-size image. This project was actually quite enjoyable simply because all throughout the project, different situations popped up that forced me to go deeper down the WordPress rabbit hole than ever before.
The front-end of the gallery itself is fairly standard as far as image galleries go. The gallery part of the page is a specific size, and the thumbnail area displays a minimum of 1 row and maximum of 3 rows at one time. If there are more than 3 rows of thumbnails, then thumbnail-viewer control buttons come up for sliding the thumbnail area up or down. If the “UP” button is pressed when the thumbnail area is already at the top, then it wraps to the last 3 rows, ditto for “DOWN”. There’s also some hover animations for the thumbnails.
The back-end of the gallery is a different story. The “postgallery” plugin has two different tasks that it needs to complete:
- When a single post is being displayed, modify the content of the post so that the images in it become links to the postgallery page, which includes the postID so that the postgallery page knows what post it needs to display as well as the index of each individual image in the order that they appear in the post
- When the postgallery page is being displayed, get the content for the postID that was passed, and then pull out and prep information from that post for the actual displaying of the postgallery page content
Needless to say, regular expressions are used for these two tasks in many places and in a variety of ways.
Going into this project, I had a solid typical-Wordpress-plugin approach that I was going to take, which initially I had actually followed through on and completed. But once this initial plugin was put in place on the client’s test site, one by one, obstacles popped up that altered how I had to approach what I was trying to accomplish. In addition, there were some specific requests that the client had for how different functions should be done that differed from how I initially programmed. In the end, the final product is actually completely different from my initial plan of attack, which is pretty “that’s so how it is” with programming.
Oh, it also didn’t help that my IP was temporarily banned by the client’s hosting company because of the number of times and the different ways I was trying to access the FTP folder that the client had set up. Luckily it really was only temporary.
Today I was notified that I had the winning bid for a project to develop a WordPress plugin that turns image thumbnails inside a post into links which open an image gallery of all images in that post. I’m really looking forward this project because 1) I have a good start on the necessary code because I’m doing something similar for the PCVC site revamp, and 2) because I can predict expanding on the end result long after the project is completed to make fanciar variations. I really want to get my first decent 3D flash papervision creation completed and published, and a post image gallery may be the perfect place to start. I indicate as much in my post about creating a custom RSS feed for Flash AS3 to work with (which I just realized is still only a draft… work work work). Good times on the Internet, ladies and gentlemen.
One of the nice things about my ongoing relationship with the American Cancer Society is that they provide me with a unique opportunity to expand my current skill set by providing ideas for enhancements to their current site. Since they are a non-profit organization, any extra work that I do outside of changes that they request is considered a donation and therefore is tax deductible. Furthermore, the director of the ACS that I am working with is very receptive to new ideas and has some great ideas of his own, so you can understand how they are easily one of my favorite clients.
Right now I am currently working on implementing WordPress into the current phillycoachesvscancer.com website in order to allow the PCVC staff to make changes to parts of the website on their own. This task involves creating a custom WordPress theme that mimics the current layout and functionality of the existing website, which is not overly difficult once you understand the inner workings of WordPress. The key is to keep in mind what part of the existing site typically sees little or no changes requested by my client, and what parts have the most changes requested. Once that’s been figured out, then it’s easy to determine how the site should be split up in order to minimize the possibility of something being accidentally corrupted when someone else makes a content change.
I’m very excited about the outcome of this upgrade because in addition to having a solid CMS backbone, there will be many other pieces of the site that will be optimized. The site, as a whole, will be MUCH faster to load. More to come.