1<?php
2/**
3 * Sitemap Tools
4 *
5 * Tool to generate sitemaps
6 *
7 * @package admin
8 */
9define('OFFSET_PATH', 3);
10
11require_once(dirname(dirname(dirname(__FILE__))) . '/admin-globals.php');
12require_once(SERVERPATH . '/' . ZENFOLDER . '/template-functions.php');
13
14admin_securityChecks(ADMIN_RIGHTS, currentRelativeURL());
15
16if (!zp_loggedin(OVERVIEW_RIGHTS)) { // prevent nefarious access to this page.
17	redirectURL(FULLWEBPATH . '/' . ZENFOLDER . '/admin.php?from=' . currentRelativeURL());
18}
19if (isset($_GET['clearsitemapcache'])) {
20	sitemap::clearCache();
21	redirectURL(FULLWEBPATH . '/' . ZENFOLDER . '/' . PLUGIN_FOLDER . '/sitemap-extended/sitemap-extended-admin.php');
22}
23
24$webpath = WEBPATH . '/' . ZENFOLDER . '/';
25$zenphoto_tabs['overview']['subtabs'] = array(gettext('Sitemap') => FULLWEBPATH . '/' . ZENFOLDER . '/' . PLUGIN_FOLDER . '/sitemap-extended/sitemap-extended-admin.php');
26printAdminHeader('overview', 'sitemap');
27if (isset($_GET['generatesitemaps'])) {
28	$_zp_loggedin = NULL;
29	$_sitemap_number = sanitize_numeric($_GET['number']);
30	$sitemap_index = sitemap::getIndexLinks();
31	$sitemap_albums = sitemap::getAlbums();
32	$sitemap_images = sitemap::getImages();
33	if (extensionEnabled('zenpage')) {
34		$sitemap_newsindex = sitemap::getZenpageNewsIndex();
35		$sitemap_articles = sitemap::getZenpageNewsArticles();
36		$sitemap_categories = sitemap::getZenpageNewsCategories();
37		$sitemap_pages = sitemap::getZenpagePages();
38	}
39	$numberAppend = '';
40	if (isset($_GET['generatesitemaps']) &&
41					(!empty($sitemap_index) || !empty($sitemap_albums) || !empty($sitemap_images) || !empty($sitemap_newsindex) || !empty($sitemap_articles) || !empty($sitemap_categories) || !empty($sitemap_pages))) {
42		$numberAppend = '-' . floor( ($_sitemap_number / SITEMAP_CHUNK) + 1 );
43		$metaURL = 'sitemap-extended-admin.php?generatesitemaps&amp;number=' . ($_sitemap_number + SITEMAP_CHUNK);
44	} else {
45		$metaURL = '';
46	}
47	if (!empty($metaURL)) {
48		?>
49		<meta http-equiv="refresh" content="1; url=<?php echo $metaURL; ?>" />
50		<?php
51	}
52} // if(isset($_GET['generatesitemaps']) end
53?>
54<link rel="stylesheet" href="<?php echo WEBPATH . '/' . ZENFOLDER; ?>/admin-statistics.css" type="text/css" media="screen" />
55<script type="text/javascript">
56	// <!-- <![CDATA[
57	$(document).ready(function() {
58		/*	$(".colorbox").colorbox({
59		 iframe: false,
60		 inline:true,
61		 href: '#sitemap',
62		 width: 90%,
63		 photo: false,
64		 close: '<?php echo gettext("close"); ?>'
65		 }); */
66	});
67	// ]]> -->
68</script>
69<?php
70echo '</head>';
71?>
72
73<body>
74	<?php
75	printLogoAndLinks();
76	?>
77	<div id="main">
78		<span id="top"></span>
79		<?php printTabs();
80		?>
81		<div id="content">
82			<?php printSubtabs(); ?>
83			<div class="tabbox">
84				<?php zp_apply_filter('admin_note', 'sitemap', ''); ?>
85				<h1><?php echo gettext('Sitemap tools'); ?></h1>
86				<?php if (!isset($_GET['generatesitemaps']) && !isset($_GET['clearsitemapcache'])) { ?>
87					<p class="notebox"><?php echo gettext('<strong>NOTE:</strong> If your theme uses different custom settings instead of the backend options the sitemaps may not match your site.'); ?></p>
88					<p><?php echo gettext('This creates individual static xml sitemap files of the following items:'); ?></p>
89					<ul>
90						<li><strong><?php echo gettext('Zenphoto items'); ?></strong>
91							<ul>
92								<li><em><?php echo gettext('Index pages'); ?></em></li>
93								<li><?php echo gettext('<em>Albums</em>: These are split into multiple sitemaps.'); ?></li>
94								<li><?php echo gettext('<em>Images</em>: These are split into multiple sitemaps.'); ?></li>
95							</ul>
96						</li>
97						<li><strong><?php echo gettext('Zenpage CMS items (if the plugin is enabled)'); ?></strong>
98							<ul>
99								<li><em><?php echo gettext('News index'); ?></em></li>
100								<li><em><?php echo gettext('News Articles'); ?></em></li>
101								<li><em><?php echo gettext('News categories'); ?></em></li>
102								<li><em><?php echo gettext('Pages'); ?></em></li>
103							</ul>
104						</li>
105					</ul>
106					<p><?php echo gettext('Additionally a sitemapindex file is created that points to the separate ones above. You can reference this sitemapindex file in your robots.txt file or submit its url to services like Google via <code>www.yourdomain.com/zenphoto/index.php?sitemap</code>'); ?></p>
107					<p><?php printf(gettext('The sitemap cache is cleared if you create new ones. All files are stored in the <code>/%s/sitemap/</code> folder.'), STATIC_CACHE_FOLDER); ?></p>
108					<p class="buttons"><a href="sitemap-extended-admin.php?generatesitemaps&amp;number=1"><?php echo gettext("Generate sitemaps"); ?></a></p>
109					<p class="buttons"><a href="sitemap-extended-admin.php?clearsitemapcache"><?php echo gettext("Clear sitemap cache"); ?></a></p>
110					<br style="clear: both" /><br />
111					<?php
112					sitemap::printAvailableSitemaps();
113				} // isset generate sitemaps / clearsitemap cache
114				if (isset($_GET['generatesitemaps'])) {
115
116					// clear cache before creating new ones
117					if ($_sitemap_number == 1) {
118						sitemap::clearCache();
119					}
120					echo '<ul>';
121					sitemap::generateCacheFile('sitemap-zenphoto-index', $sitemap_index);
122					sitemap::generateCacheFile('sitemap-zenphoto-albums' . $numberAppend, $sitemap_albums);
123					sitemap::generateCacheFile('sitemap-zenphoto-images' . $numberAppend, $sitemap_images);
124					if (extensionEnabled('zenpage')) {
125						sitemap::generateCacheFile('sitemap-zenpage-newsindex', $sitemap_newsindex);
126						sitemap::generateCacheFile('sitemap-zenpage-news', $sitemap_articles);
127						sitemap::generateCacheFile('sitemap-zenpage-categories', $sitemap_categories);
128						sitemap::generateCacheFile('sitemap-zenpage-pages', $sitemap_pages);
129					}
130					echo '</ul>';
131					if (!empty($metaURL)) {
132						echo '<p><img src="../../images/ajax-loader.gif" alt="" /><br /><br />' . gettext('Sitemap files are being generated...Patience please.') . '</p>';
133					} else {
134						sitemap::generateIndexCacheFile();
135						?>
136						<script type="text/javascript">
137							// <!-- <![CDATA[
138							$(document).ready(function() {
139								window.location = "<?php echo WEBPATH . '/' . ZENFOLDER . '/' . PLUGIN_FOLDER; ?>/sitemap-extended/sitemap-extended-admin.php";
140							});
141							// ]]> -->
142						</script>
143						<?php
144					}
145				}
146				?>
147			</div><!-- tabbox -->
148		</div><!-- content -->
149	</div><!-- main -->
150	<?php printAdminFooter(); ?>
151</body>
152<?php echo "</html>"; ?>
153