/** * currently this splitts only sitemaps for albums and its images. Spliting the images itself requires a major rework... * * Gets links to all images for all albums (album by album) * * @return string */ function getSitemapImages() { global $_zp_gallery, $sitemap_number; $data = ''; $sitemap_locales = generateLanguageList(); $imagechangefreq = getOption('sitemap_changefreq_images'); $imagelastmod = getOption('sitemap_lastmod_images'); $limit = sitemap_getDBLimit(1); $albums = array(); getSitemapAlbumList($_zp_gallery, $albums, 'passImages'); $offset = $sitemap_number - 1; $albums = array_slice($albums, $offset, SITEMAP_CHUNK); if ($albums) { $data .= sitemap_echonl('<?xml version="1.0" encoding="UTF-8"?>'); if (GOOGLE_SITEMAP) { $data .= sitemap_echonl('<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">'); } else { $data .= sitemap_echonl('<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'); } foreach ($albums as $album) { @set_time_limit(120); // Extend script timeout to allow for gathering the images. $albumobj = newAlbum($album['folder']); $images = $albumobj->getImages(); // print plain images links if available if ($images) { foreach ($images as $image) { $imageobj = newImage($albumobj, $image); $ext = getSuffix($imageobj->filename); $date = sitemap_getDateformat($imageobj, $imagelastmod); switch (SITEMAP_LOCALE_TYPE) { case 1: foreach ($sitemap_locales as $locale) { $path = seo_locale::localePath(true, $locale) . '/' . pathurlencode($albumobj->name) . '/' . urlencode($imageobj->filename) . IM_SUFFIX; $data .= sitemap_echonl("\t<url>\n\t\t<loc>" . $path . "</loc>\n\t\t<lastmod>" . $date . "</lastmod>\n\t\t<changefreq>" . $imagechangefreq . "</changefreq>\n\t\t<priority>0.6</priority>\n"); if (GOOGLE_SITEMAP) { $data .= getSitemapGoogleImageVideoExtras($albumobj, $imageobj, $locale); } $data .= sitemap_echonl("</url>"); } break; case 2: foreach ($sitemap_locales as $locale) { $path = rewrite_path(pathurlencode($albumobj->name) . '/' . urlencode($imageobj->filename) . IM_SUFFIX, '?album=' . pathurlencode($albumobj->name) . '&image=' . urlencode($imageobj->filename), dynamic_locale::fullHostPath($locale)); $data .= sitemap_echonl("\t<url>\n\t\t<loc>" . $path . "</loc>\n\t\t<lastmod>" . $date . "</lastmod>\n\t\t<changefreq>" . $imagechangefreq . "</changefreq>\n\t\t<priority>0.6</priority>\n"); if (GOOGLE_SITEMAP) { $data .= getSitemapGoogleImageVideoExtras($albumobj, $imageobj, $locale); } $data .= sitemap_echonl("</url>"); } break; default: $path = rewrite_path(pathurlencode($albumobj->name) . '/' . urlencode($imageobj->filename) . IM_SUFFIX, '?album=' . pathurlencode($albumobj->name) . '&image=' . urlencode($imageobj->filename), FULLWEBPATH); $data .= sitemap_echonl("\t<url>\n\t\t<loc>" . $path . "</loc>\n\t\t<lastmod>" . $date . "</lastmod>\n\t\t<changefreq>" . $imagechangefreq . "</changefreq>\n\t\t<priority>0.6</priority>\n"); if (GOOGLE_SITEMAP) { $data .= getSitemapGoogleImageVideoExtras($albumobj, $imageobj, NULL); } $data .= sitemap_echonl("</url>"); break; } } } } $data .= sitemap_echonl('</urlset>'); // End off the <urlset> tag } return $data; }
/** * currently this splitts only sitemaps for albums and its images. Spliting the images itself requires a major rework... * * Gets links to all images for all albums (album by album) * * @return string */ function getSitemapImages() { global $_zp_gallery, $sitemap_number; $data = ''; $sitemap_locales = generateLanguageList(); $imagechangefreq = getOption('sitemap_changefreq_images'); $imagelastmod = getOption('sitemap_lastmod_images'); $limit = sitemap_getDBLimit(1); $albums = array(); getSitemapAlbumList($_zp_gallery, $albums, 'passImages'); $offset = $sitemap_number - 1; $albums = array_slice($albums, $offset, SITEMAP_CHUNK); if ($albums) { $data .= sitemap_echonl('<?xml version="1.0" encoding="UTF-8"?>'); $data .= sitemap_echonl('<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'); foreach ($albums as $album) { set_time_limit(120); // Extend script timeout to allow for gathering the images. $albumobj = new Album($_zp_gallery, $album['folder']); $images = $albumobj->getImages(); // print plain images links if available if ($images) { foreach ($images as $image) { $imageobj = newImage($albumobj, $image); $ext = strtolower(strrchr($imageobj->filename, ".")); if (getOption('sitemap_google')) { if ($ext == '.mp3' || $ext == '.txt' || $ext == '.html' || $ext == '.htm') { // since the Google extensions do not cover audio we list mp3s extra to not exclude them! $printimage = true; } else { $printimage = false; } } else { $printimage = true; } if ($printimage) { $date = sitemap_getDateformat($imageobj, $imagelastmod); if (sitemap_multilingual()) { foreach ($sitemap_locales as $locale) { $path = FULLWEBPATH . '/' . rewrite_path($locale . '/' . pathurlencode($albumobj->name) . '/' . urlencode($imageobj->filename) . IM_SUFFIX, '?album=' . pathurlencode($albumobj->name) . '&image=' . urlencode($imageobj->filename), false); $data .= sitemap_echonl("\t<url>\n\t\t<loc>" . $path . "</loc>\n\t\t<lastmod>" . $date . "</lastmod>\n\t\t<changefreq>" . $imagechangefreq . "</changefreq>\n\t\t<priority>0.6</priority>\n\t</url>"); } } else { $path = FULLWEBPATH . '/' . rewrite_path(pathurlencode($albumobj->name) . '/' . urlencode($imageobj->filename) . IM_SUFFIX, '?album=' . pathurlencode($albumobj->name) . '&image=' . urlencode($imageobj->filename), false); $data .= sitemap_echonl("\t<url>\n\t\t<loc>" . $path . "</loc>\n\t\t<lastmod>" . $date . "</lastmod>\n\t\t<changefreq>" . $imagechangefreq . "</changefreq>\n\t\t<priority>0.6</priority>\n\t</url>"); } } } } } $data .= sitemap_echonl('</urlset>'); // End off the <urlset> tag } return $data; }