Lightroom 4 Web Gallery
November 30, 2012
I've just followed the tutorial for creating a simple Adobe Lightroom web engine. This can be found in the Lightroom SDK guide at http://www.adobe.com/devnet/photoshoplightroom.html.
I had to tweak my files somewhat so that it worked - mainly because the directory that the images were placed in didn't match where the code expected them to be. I wanted to document this simple first version before trying to add more functionality.
I have the following files, all inside a MyWebGallery.lrwebengine
folder. This is located at C:/Program Files/Adobe/Adobe Photoshop Lightroom 4.2/Shared/webengines/MyWebGallery.lrwebengine
There are six files as follows.
galleryInfo.lrweb
This is the main config file for the gallery.
return { LRSDKVersion = 4.0, LrSdkMinimumVersion = 4.0, title = "My Web Gallery", id = "uk.co.drumcoder.webgallery", galleryType = "lua", maximumGallerySize = 100, model = { ["nonDynamic.imageBase"] = "content", ["photoSizes.thumb.height"] = 150, ["photoSizes.thumb.width"] = 150, ["photoSizes.thumb.metadataExportMode"] = "copyright", ["photoSizes.large.width"] = 450, ["photoSizes.large.height"] = 450, ["appearance.thumb.cssID"] = ".thumb", ["metadata.siteTitle.value"] = "Gallery Name", ["appearance.siteTitle.cssID"] = "#siteTitle", }, views = function(controller, f) local LrView = import "LrView" local bind = LrView.bind local multibind = f.multibind return { labels = f:panel_content { bind_to_object = controller, f:subdivided_sections { f:labeled_text_input { title = "Gallery Name", value = bind "metadata.siteTitle.value", }, }, }, } end; }
manifest.lrweb
Indicates what is included in the gallery project
importTags("lr","com.adobe.lightroom.default") AddGridPages { template = "grid.html", rows = 4, columns = 4, } AddPhotoPages { template = "large.html", variant = "_large", destination = "content", } AddCustomCSS { filename = 'content/custom.css', } AddResources { source="resources", destination="resources", }
header.html
Header HTML for all pages
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta name="generator" content="Adobe Photoshop Lightroom"/> <title>My Photo Gallery</title> </head> <body> <h1 id="metadata.siteTitle.value">$model.metadata.siteTitle.value</h1>
footer.html
Footer of each HTML page
</body> </html>
grid.html
Used to show the main grid of thumbnail pictures
<% --[[Define some local variables to make locating other resources easier.]] local mysize = "thumb" local others = "content" local theRoot = "." %> <%@ include file="header.html" %> <lr:ThumbnailGrid> <lr:GridPhotoCell> <a href="$others/<%= image.exportFilename %>_large.html"> <img src="bin/images/thumb/<%= image.exportFilename %>.jpg" id="<%= image.imageID %>" class="thumb"/> </a> </lr:GridPhotoCell> </lr:ThumbnailGrid> <% if numGridPages > 1 then %> <div class="pagination"> <ul> <lr:Pagination> <lr:CurrentPage><li>$page</li></lr:CurrentPage> <lr:OtherPages><li><a href="$link">$page</a></lr:OtherPages> <lr:PreviousEnabled><li><a href="$link">Previous</a></li></lr:PreviousEnabled> <lr:PreviousDisabled><li>Previous</li></lr:PreviousDisabled> <lr:NextEnabled><li><a href="$link">Next</a></li></lr:NextEnabled> <lr:NextDisabled><li>Next</li></lr:NextDisabled> </lr:Pagination> </ul> </div> <% end %> <%@ include file="footer.html" %>
large.html
Finally, a HTML file for showing a single picture
<% --[[Define some local variables to make locating other resources easier.]] local image = getImage(index) local mysize = "large" local others = "." local theRoot = ".." %> <%@ include file="header.html" %> <div class="pagination"> <ul> <lr:Pagination> <lr:PreviousEnabled><li><a href="$link">Previous</a></li></lr:PreviousEnabled> <lr:PreviousDisabled><li>Previous</li></lr:PreviousDisabled> <li><a href="$gridPageLink">Index</a></li> <lr:NextEnabled><li><a href="$link">Next</a></li></lr:NextEnabled> <lr:NextDisabled><li>Next</li></lr:NextDisabled> </lr:Pagination> </ul> </div> <a href="$gridPageLink"> <img src="../bin/images/large/<%= image.exportFilename %>.jpg" /> </a> <%@ include file="footer.html" %>