via PayPal / credit card
Vanilla 1.1.10 is a product of Lussumo. More Information: Documentation, Community Support.
I am a photographer who is building a website from scratch in PHP because I am generally sick of CMS systems. The new website will automatically build gallery navigation from scanning subfolders looking for images. I have a monoslideshow which scans a separate folder for images and automatically generates a MSS V2.0 XML file. I happen to think it is pretty cool so I could not resist the temptation to share it. As soon as the site is up and running and the PHP script is thoroughly tested, I will post the source code here. In the mean time, it would be nice to get an idea of how many people might be interested in such a script.
PS. I have done this a few times before for MSS V1. The main feartures are:
1) Thumbnail creation:
You can specify x,y dimensions as a URL variable along with the name of the directory for thumbnails, and the PHP script will use GD2 in order to automatically generate thumbnails for any images it finds. This is great if you enable the album/slide selector in the control widget. Also, it uses the higher quality image re-sampling method for nice renditions.
2a) Property Files - contents:
Not only does the software automatically set up <image> tags in the <contents> tag when it finds and image file, it also reads "property" files which can contain either attribute definitions, or, a property file can contain content to be inserted into a tag container. For instance, a file called el.caption.title.txt would have it's contents poured into the <caption><title>[file contents]</title></caption> container. The tag in context is always the <album> tag, as this tag corresponds to the subfolder in context (unlimited sub-folder/sub-album heirachies).
2b) Property Files - attributes:
A property file containing attribute definitions can use the same naming convention to target a particular tag inside an album tag. The file would then contain an attribute definition on each line of the file. The format is simmple:
myattribute="attribute example value"
yetanotheratt="this is another example value"
furthermore, a single attribute definition file can target multiple tags within the context tag by addressing tags as such:
element1.element2.newattribute="foo the bar"
If you named the file att.txt then the element in context would be the <album> element. If you named it att.navigation.txt, then the element in context would be the <navigation> tag for that element.
2c) Property Files - Image Attributes:
You can target an individual image by creating a file with exactly the same name as the image, but adding .att to the end of it. For instance babypic.jpg.att will contain a list of attributes to apply to babypic.jpg
3) Description files:
If you create a file which is exactly the same name as an image file, plus an ADDITIONAL .txt extension, then the first line of that file will become the image title, the rest of the file will become the image description.
4) Automatic Background music:
As folders/albums are built, MP3 files located in a folder will automatically be added as backgroun music. If multiple MP3s are found, they will be stacked for that album. The sound/mute button will automatically be added if MP3s are found. If the MP3 is exactly the same name as the image file but with a .mp3 appended, then this MP3 file will be assigned to the sound attribute of the image element.
5) Begin with an existing XML template:
Monoslideshow.com has a fantastic facility for configuring a slideshow without having to understand XML. The annoying thing is that you always have to edit it by hand afterwords. Well with this script, you can designate a config file downloaded from the demo configuration tool, and the script will use start with that and populate it with images/albums and custom definitions. The custom definitions will override whatever was in the template.
As you can see, with version 1 of this script, there are not a great deal of limitations for the average user. It means you can have your custom web application generate images and property files at will, and this PHP script will pick it up.
I will be maintaining my site via an FTP program so that I can keep the content fresh. I never need concern myself with the XML configuration file once this is done.
I am interested. Anything to make it easier as I am just starting to learn PHP.
Well you won't need to understand PHP, you will just need to follow a set of conventions if you wish to do any customisations.
The main drama at the moment is that the web server needs file permissions to write to directory where you keep your files (not a problem on windows servers).
I will probably make a couple of tutorial videos once I have finalised the first release of the script.
As a sample, here is a copy of my website's att.configuration.txt file...
backgroundColor ="#000000"
delay ="4"
fullScreenScaleMode ="downscaleToFit"
scaleMode ="none"
onLoadError ="skip"
renderQuality ="best"
scaleMode ="none"
startWithNavigationWindow ="false"
startSlideshowOnAlbumSelect ="true"
viewportRoundness ="0"
transition.type ="focusFade"
transition.time ="1"
transition.easing ="easeInOut"
caption.backgroundRoundness ="0"
caption.backgroundType ="fitCompleteText"
caption.backgroundAlpha ="0.3"
caption.margin ="0,0,0,0"
caption.shadow.alpha ="0"
controller.showMuteButton ="true" *this should not be neccessary
controller.backgroundRoundness = "0"
controller.position ="topRight"
controller.showFullScreenButton ="false"
controller.autoHide ="true"
controller.disappearDelay ="7"
controller.strokeWidth ="0"
controller.shadow.alpha ="0"
controller.backgroundAlpha ="0.3"
controller.margin ="10,10,10,10"
thumbnailNavigation.type ="none"
thumbnailNavigation.backgroundAlpha ="0.3"
thumbnailNavigation.margin ="0,0,0,0"
navigation.backgroundOverlayAlpha ="0"
navigation.backgroundAlpha ="0"
navigation.strokeWidth ="0"
navigation.caption.strokeWidth ="0"
navigation.albums.imageRoundness ="32"
navigation.albums.width ="200"
navigation.albums.height ="100"
navigation.albums.backgroundRoundness="40"
navigation.albums.strokeWidth ="0"
navigation.albums.backgroundAlpha ="0.7"
navigation.albums.backgroundColor ="#000000"
navigation.albums.padding ="4,4,4,4"
navigation.albums.caption.width ="200"
navigation.albums.caption.height ="100"
navigation.albums.caption.margin ="0,0,0,0"
navigation.albums.caption.title.size="26"
navigation.albums.caption.title.color="#ffffff"
navigation.albums.caption.description.size="11"
navigation.albums.caption.description.color="#aaaaaa"
I am interested. Is the PHP script ready to share? Thx.
...thinking out loud...
to do:
* add support for grafting in XML snippets found in an album folder (may be used as an alternative to property files). DONE/TESTED
* if att.txt files contain entries with no equals operator with accompanying value, then the targeted element is simply added (empty) if it is not already there. DONE/TESTED
* create an abstraction layer (class definition) under which MonoSlideshowCrawler is the child. DONE!/TESTED!
* Support other XML vocabularies. PENDING AFTER INITIAL RELEASE
* Add support for video. DONE/UNTESTED
* Add support for Amazon S3 services (crawling of). POSTPONED
* EXIF metadata extraction. POSTPONED
* RDF generation (from the crawling & associated metadata) for SEO purposes. PENDING AFTER INITIAL RELEASE
* create a handler method for parsing database result sets DONE/UNTESTED
* add methods for the manual creation of albums and items. Feed these methods associative arrays to enumerate attributes. Support db result sets with something like $this->AddItems($ndAlbum,$arrResults); DONE/UNTESTED
Let me know if there is anything else you guys can think of.
I am considering monoslideshow for a project I'm working on, for displaying quite a few portfolio pieces (a slideshow for each piece). Manually generating thumbs and an XML document for each portfolio item would be a tedious and time consuming task to the point where I would probably end up looking for another solution.
How close is your script to being released? I would be willing to pay for it, if it can crawl directories/subdirectories and generate thumbs / xml files.
FYI... would be good to pull stuff from PHP Gallery 3 which you could then use as a front-end to manage your content!
Here's my involement
http://codex.gallery2.org/Talk:Gallery3:API:REST
1 to 8 of 8