Panorama X Built It

After months of work I just launched a new web site for my photography. The reason I think it’s of interest here is because of the role Panorama X played in building it - and in making it very easy to generate updates.

The site has numerous galleries and slide shows consisting of many images each.

The galleries involve a very precise chunk of html per image; html table structure, css styling, a few links with some tying to javascripts and the image. With a single click I can trigger a procedure that builds those chunks of html as an array, and merges it all into an html or php template for the overall page. A second array is inserted into the page head with javascript specifically applicable to some of the links included with each image. Then the entire page is saved, ready for uploading to the server.

The information built into these arrays is all derived from entries in my ImageLog. The procedure refers to captions, keywords, orientation and such to build a unique array element for each image. Based on the keywords, a single image may end up in more than one page for the site. For instance an image with keywords of landscapes, sunsets and rivers could end up in three separate pages, each consisting of images with common keywords.

The slide shows are a bit different but also built from the entries in my ImageLog. In this case, an array is built for a selected set of images, but this array is purely javascript. Besides being able to build a new javascript from scratch, it can load an existing javascript for me to make a quick edit to a caption within the show and resave it.

Consistency of the coding within the site’s pages is complete; a rarity.

For either galleries or slide shows, whenever I add new images to my ImageLog, it takes just moments to generate whatever pages need to be replaced or added. If I make a change in page layout or function, the whole site can be modified within minutes.

In the near future, ftp’ing the pages to the server via curl will be part of the PanX automated process. Then I’ll also be able to use my PanX file to do some live editing on the server to quickly correct a typo or to enhance a caption.

While all of this involves photography, the same idea can be applied to anything being published to a web site. Product catalogs, price lists, real estate listings, personals, classifieds, meeting minutes, financial reports… New or updated pages can be generated in an instant and loaded to the web server.

Of course, Panorama as a web server takes it all to another level. Here I’m describing static but easily replaced pages. Using Panorama Server, pages can be generated on demand on the site. For instance, instead of a prebuilt page of images with a common keyword, the pages can be built as needed in response to a far greater variety of keywords and criteria. Much like real estate listings could be tailored to price, square feet and other specifics defined by the site visitor.

You can see my galleries and slideshows at Take a look at the page source to see what Panorama X has allowed me to accomplish. ImageLog is available in the Panorama Database Exchange, but does not include the procedures I’ve described above. Those are in a separate PanX file I’ve built to access and utilize my entries in the ImageLog.

1 Like

Who says photography, web design and coding are not art? Not me.

Thanks for sharing this James. Great job!

I think Panorama is ideal for building a static site generator like this. Jim gave me a preview of this a little while ago, and he has done a fantastic job.

Amazing! And that includes the photos. Thanks for sharing with us, James.

With a web site, you can’t just build it and they will come. The whole point of having one is to have people see it, especially the people you’re attempting to communicate with. You need to get the word out to your target audience.

For me, that next step started with Panorama X sending email to my list of about 400 known to be my target.

To do that I modified a copy of the Composer that comes with Mailbox in the Database Exchange. I upgraded mine to do html email that could embed photos and links. In my opinion it’s always desirable to include some one-by-one personalization too.

A single procedure loops through selected sets in my separate Contacts file with the message being modified to fit each one. Being addressed and sent individually decreases their chances of getting snagged as spam.

A log records each SendTo and its results.

The procedure ends with a dated notation of the event in each Contact’s record.

If my message has been compelling enough I’ve driven at least some number of initial visitors to the site. If the site is compelling enough, it will hold their attention, earn return visits and get them to share word about it.

Time will tell if the site is successful, but PanX has been a valuable tool from start to finish in building it, bringing it up to where it is today, and now in marketing it.

PanX makes repeating many of these actions quick, reliable and valuable. The time invested in writing the procedures is likely to be worthwhile. PanX and I are busy at my desk working on what’s next.

I agree. I have used this method with many of my clients. We put a link on their web site to “subscribe” or “receive a newsletter" or whatever. The sign up info goes directly into the clients contact database as a lead, using Enterprise at this point, and becomes a target market mailing list. I write a procedure to loop through the records to send personalized emails, log the date sent, etc. I even have clients who sell a product, then send date based marketing and follow up emails for 5 days, 30 days and 3 months, for example.

The important thing is to remember to have an “opt out” link which finds their record and marks them as not being included in future mailings. As a matter of fact, I believe this is a requirement to keep the mailings legal. I usually include a paragraph at the end of the email that says something like “You are receiving this email because… Click here to opt out of future mailings”

I am in total awe of your work, both the photographs and the website. So much more than impressive. Great job, James!

Just a heads up that under “About James Cook”, the Custom Programming link gives a 404 error

Thanks for that. It could be there forever if no one ever mentioned it to me.

You could have been lost forever!