Drachenstein Posted March 28, 2014 Share Posted March 28, 2014 Hi there Sorry to just break in here with a dumb question. But I'm looking for a solution for days and nights without success. To be honest, I have no clue about programming, but I'm sure for most of you it's just a fingersnip with a smile... I have a php script that provides a simple XML file as a feed for a photo album(using cooliris with local images). It's only an output on the screen, so I can copy&paste it to a XML file. The problem is, that the tags in the output are written in this form: <thumbnail>thumbs/picture123.jpg</thumbnail> but for the photo album it's required like this: <media:thumbnail url="thumbs/picture123.jpg"/> The script looks like this: ---------------------------------------------------------------------------------------------- <?php$path_to_image_dir = 'pl_images'; // relative path to your image directory$path_to_thumbs_dir = 'pl_thumbs'; // relative path to your image directory $xml_string = <<<XML<?xml version="1.0" encoding="UTF-8"?><items> </items>XML; $xml_generator = new SimpleXMLElement($xml_string); if ( $handle = opendir( $path_to_image_dir ) ) {while (false !== ($file = readdir($handle))) {if ( is_file($path_to_image_dir.'/'.$file) ) {$item = $xml_generator->addChild('item'); $item->addChild('thumbnail', $path_to_thumbs_dir.'/'.$file); $item->addChild('preview', $path_to_image_dir.'/'.$file);$item->addChild('category', 'photo'); $item->addChild('description', ' '); }}closedir($handle);} header("Content-Type: text/xml"); echo $xml_generator->asXML();?> ---------------------------------------------------------------------------------------------- The goal is to get a XML coding (for each image) like this: <item><title></title><description></description><link>pics/picture123.jpg</link><media:thumbnail url="thumbs/picture123.jpg"/><media:content type="image/jpeg" url="pics/picture123.jpg"/></item> Is there any change to change the syntax of the output accordingly? I think I manage everything, but just not the tag issue. Thank you so much for your help!!! Kind regards, Wolfgang Quote Link to comment Share on other sites More sharing options...
requinix Posted March 28, 2014 Share Posted March 28, 2014 $item->addChild('thumbnail', $path_to_thumbs_dir.'/'.$file);That will add a with a value of $path_to_thumbs_dir/$file. What you want is for it to add a in a specific namespace with an empty value and instead an attribute with the URL. The namespace needs to be declared in your XML. Easiest way is $xml_string = <<<XML <?xml version="1.0" encoding="UTF-8"?> <items xmlns:media="http://search.yahoo.com/mrss/"> </items> XML;Now use addChild() like $thumbnail = $item->addChild('thumbnail', null, 'http://search.yahoo.com/mrss/');Then addAttribute(). $thumbnail->addAttribute('url', $path_to_thumbs_dir.'/'.$file); Quote Link to comment Share on other sites More sharing options...
Drachenstein Posted March 29, 2014 Author Share Posted March 29, 2014 Hi requinix You should have seen my big smile when finally the script worked. Thank you so much for this help, I'm so happy that now I can use the cooliris 3D wall photo album with a local installation (photographers portfolio on the PC for situations without internet connection). Just in case that somebody else will also look for a XML RSS feed generator for a cooliris 3D wall photo album that gathers images and thumbnails from folders, here is the script (sorry, did not find out how to make these nice boxes in the posting, so I placed it in a spoiler : /*=========================================================================This is a simple XML generator script that generates the items for theRSS feed to be used for local installations of photo albums with the3D wall of cooliris (either on your own server or with XAMPP on your PC).Images and thumbnails to be included automaticall in the RSS feed willbe found from the script but must have the same name and be storedin two different folders (one for images and one for thumbs).Just run the script, copy the items from the screen and paste it intothe XML document used for the cooliris photo gallery.=========================================================================*///// add below the relative paths to the photos without the last "/"$path_to_image_dir = 'pl_images'; // relative path to the image directory$path_to_thumbs_dir = 'pl_thumbs'; // relative path to the thumbnails directory$path_to_original_dir = 'file://f:\Auslagerung\Fotos\JPG Bearbeitet'; // relative path to the original photo for the link$xml_string = <<XML;$xml_generator = new SimpleXMLElement($xml_string);if ( $handle = opendir( $path_to_image_dir ) ){while (false !== ($file = readdir($handle))){if ( is_file($path_to_image_dir.'/'.$file) ){$item = $xml_generator->addChild('item');$item->addChild('description', ' ');$item->addChild('link', $path_to_original_dir.'/'.$file);$thumbnail = $item->addChild('thumbnail', null, 'http://127.0.0.1/Fotoalbum/');$thumbnail->addAttribute('url', $path_to_thumbs_dir.'/'.$file);$content = $item->addChild('content', null, 'http://127.0.0.1/Fotoalbum/');$content->addAttribute('type', 'image/jpeg');$content->addAttribute('url', $path_to_image_dir.'/'.$file);}}closedir($handle);}header("Content-Type: text/xml");echo $xml_generator->asXML();?> Thank you so much, have a nice weekend Wolfgang Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.