"; $html .= "\"""; $caption = ""; $filename = ""; $imagename = ""; $thumbnail = ""; $num++; break; default : break; } unset ($currentTag); } function wp_picasa_char_data($parser, $data) { global $currentTag, $html, $albumName; global $filename, $caption, $thumbnail, $imagename; $data = str_replace("\r", "", $data); $data = str_replace("\n", "", $data); switch($currentTag) { case 'albumName' : $albumName .= $data; break; case 'itemLargeImage' : $filename .= $data; break; case 'itemThumbnailImage' : $thumbnail .= $data; break; case 'itemName' : $imagename .= $data; break; case 'itemCaption' : $caption .= $data; break; default : break; } } function wp_picasa_parse_xml_file($parser, $file) { global $html; if (!file_exists($file)) { $html = "Can't find file \"$file\"."; } else { if (!($fp = @fopen($file, "r"))) { $html = "Can't open file \"$file\"."; } else { while ($data = fread($fp, 4096)) { if (!xml_parse($parser, $data, feof($fp))) { $html = "XML error: " . xml_error_string(xml_get_error_code($xml_parser)) . " at line " . xml_get_current_line_number($xml_parser) . " %d in " . $file; } } fclose($fp); } } } function wp_picasa_xml_content($content) { global $gal_dir, $galName, $html, $num; $gal_dir = dirname(dirname(__FILE__)) . '/galleries/'; $temp = $content; $html = ""; $pattern = "/\{.*gallery\s+\[(.+)\].*\}/"; if (preg_match($pattern, $temp)) { $lines = explode("\n", $temp); foreach ($lines as $line) { if (preg_match($pattern, $line, $matches)) { $num = 0; $html .= "
"; $galName = $matches[1]; $real_gal_dir = $gal_dir . $galName; $index_file = $real_gal_dir . "/index.xml"; $xml_parser = xml_parser_create(); xml_set_element_handler($xml_parser, "wp_picasa_startElement", "wp_picasa_endElement"); xml_set_character_data_handler($xml_parser, "wp_picasa_char_data"); xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 0); wp_picasa_parse_xml_file($xml_parser, $index_file); xml_parser_free($xml_parser); $html .= "
\n"; } else { $html .= $line; } } return $html; } else { return $content; } } ?>