'; $xml .= ''; if (!isset($_GET['noconfig']) || (!$_GET['noconfig'])) { $xml .= ''; // Print out the config vars programmatically so that any future additions // automatically get brought into the XML // Unset any sensitive config information unset($config['admin_username']); unset($config['admin_password']); unset($config['admin_email']); unset($config['basedir']); foreach ($config as $var => $val) { $xml .= '<'.$var.'>'.$val.''; } $xml .= ''; } // Now comes the fun // There are 10 arguments that this file takes // // collections // albums // pictures // comments // all // collection_id // album_id // picture_id // comment_id // limit // all=1 is the same as collections=1&albums=1&pictures=1&comments=1 if (isset($_GET['all']) && ($_GET['all'] == 1)) { $_GET['collections'] = 1; $_GET['albums'] = 1; $_GET['pictures'] = 1; $_GET['comments'] = 1; } if (isset($_GET['limit'])) { $limit = intval($_GET['limit']); $limitType = ''; } else { $limit = 0; $limitType = ''; } // If any *_id arguments are set, the level arguments for that level and above // must be unset to avoid showing the levels that do not eventually contain // that *_id if (isset($_GET['comment_id'])) { unset($_GET['collections']); unset($_GET['albums']); unset($_GET['pictures']); unset($_GET['comments']); $limit = 0; $limitType = ''; } else if (isset($_GET['picture_id'])) { unset($_GET['collections']); unset($_GET['albums']); unset($_GET['pictures']); if ($limit > 0) { if (!empty($_GET['comments'])) { $limitType = 'comments'; } else { $limitType = ''; $limit = 0; } } } else if (isset($_GET['album_id'])) { unset($_GET['collections']); unset($_GET['albums']); if ($limit > 0) { if (!empty($_GET['pictures'])) { $limitType = 'pictures'; } else if (!empty($_GET['comments'])) { $limitType = 'comments'; } else { $limitType = ''; $limit = 0; } } } else if (isset($_GET['collection_id'])) { unset($_GET['collections']); if ($limit > 0) { if (!empty($_GET['albums'])) { $limitType = 'albums'; } else if (!empty($_GET['pictures'])) { $limitType = 'pictures'; } else if (!empty($_GET['comments'])) { $limitType = 'comments'; } else { $limitType = ''; $limit = 0; } } } if (($limit > 0) && ($limitType == '')) { if ($limit > 0) { if (!empty($_GET['collections'])) { $limitType = 'collections'; } else if (!empty($_GET['albums'])) { $limitType = 'albums'; } else if (!empty($_GET['pictures'])) { $limitType = 'pictures'; } else if (!empty($_GET['comments'])) { $limitType = 'comments'; } else { $limit = 0; $limitType = ''; } } } if (isset($_GET['collections']) || isset($_GET['albums']) || isset($_GET['pictures']) || isset($_GET['comments']) || isset($_GET['collection_id']) || isset($_GET['album_id']) || isset($_GET['picture_id']) || isset($_GET['comment_id'])) { if (isset($_GET['collection_id'])) { $collections = array(get_collection_by_id($_GET['collection_id'])); } else if (isset($_GET['collections'])) { $collections = get_collections('mod', 'DESC'); } else if (isset($_GET['albums']) || isset($_GET['album_id']) || isset($_GET['pictures']) || isset($_GET['picture_id']) || isset($_GET['comments']) || isset($_GET['comment_id'])) { $collections = get_collection_ids('mod', 'DESC'); } else { $collections = array(); } // $total counts the number of items that are being limited that have been returned. // When total equals the limit, we're done. $total = 0; foreach ($collections as $collection) { // A collection's tag is only shown if all collections are being shown // or if this specific collection was specified by collection_id if ((isset($_GET['collections']) && ($_GET['collections'] == 1)) || (isset($_GET['collection_id']) && ($_GET['collection_id'] == $collection['id']))) { if ($limitType == 'collections') { if ($total == $limit) { break; } $total++; } $collection['thumb_path'] = 'plog-thumb.php?id='.$collection['thumbnail_id']; $xml .= ' $val) { $xml .= ' '.$var.'="'.htmlspecialchars($val).'"'; } $xml .= '>'; } if (isset($_GET['albums']) || isset($_GET['album_id'])) { $albums = get_albums($collection['id'], 'mod', 'DESC'); } else if (isset($_GET['pictures']) || isset($_GET['picture_id']) || isset($_GET['comments']) || isset($_GET['comment_id'])) { $albums = get_album_ids($collection['id'], 'mod', 'DESC'); } else { $albums = array(); } foreach ($albums as $album) { if ((isset($_GET['collection_id']) && ($_GET['collection_id'] == $album['collection_id'])) || !isset($_GET['collection_id'])) { if ((isset($_GET['albums']) && ($_GET['albums'] == 1)) || (isset($_GET['album_id']) && ($_GET['album_id'] == $album['album_id']))) { if ($limitType == 'albums') { if ($total == $limit) { break; } $total++; } $album['album_path'] = sanitize_filename($album['collection_name']).'/'.sanitize_filename($album['album_name']).'/'; $album['thumb_path'] = 'plog-thumb.php?id='.$album['thumbnail_id']; $xml .= ' $val) { $xml .= ' '.$var.'="'.htmlspecialchars($val).'"'; } $xml .= '>'; } if (isset($_GET['pictures'])) { $pictures = get_pictures($album['album_id'], 'mod', 'DESC'); } else if (isset($_GET['picture_id'])) { $pic = get_picture_by_id($_GET['picture_id'], $album['album_id']); if ($pic) { $pictures = array($pic); } else { $pictures = array(); } } else if (isset($_GET['comments']) || isset($_GET['comment_id'])) { $pictures = get_picture_ids($album['album_id'], 'mod', 'DESC'); } else { $pictures = array(); } foreach ($pictures as $picture) { if ((isset($_GET['album_id']) && ($_GET['album_id'] == $picture['parent_album'])) || !isset($_GET['album_id'])) { if ((isset($_GET['pictures']) && ($_GET['pictures'] == 1)) || (isset($_GET['picture_id']) && ($_GET['picture_id'] == $picture['id']))) { if ($limitType == 'pictures') { if ($total == $limit) { break; } $total++; } $picture['sm_thumb_path'] = 'plog-thumb.php?id='.$picture['id']; $picture['lg_thumb_path'] = 'plog-thumb.php?id='.$picture['id'].'&type=2'; $xml .= ' $val) { $xml .= ' '.$var.'="'.htmlspecialchars($val).'"'; } $xml .= '>'; } if (isset($_GET['comments']) || isset($_GET['comment_id'])) { $comments = plogger_get_comments($picture['id'], 'mod', 'DESC'); foreach ($comments as $comment) { if ((isset($_GET['picture_id']) && ($_GET['picture_id'] == $comment['parent_id'])) || !isset($_GET['picture_id'])) { if ((isset($_GET['comments']) && ($_GET['comments'] == 1)) || (isset($_GET['comment_id']) && ($_GET['comment_id'] == $comment['id']))) { if ($limitType == 'comments') { if ($total == $limit) { break; } $total++; } $xml .= ' $val) { $xml .= ' '.$var.'="'.htmlspecialchars($val).'"'; } $xml .= '/>'; } } } } if ((isset($_GET['pictures']) && ($_GET['pictures'] == 1)) || (isset($_GET['picture_id']) && ($_GET['picture_id'] == $picture['id']))) { $xml .= ''; } } } if ((isset($_GET['albums']) && ($_GET['albums'] == 1)) || (isset($_GET['album_id']) && ($_GET['album_id'] == $album['album_id']))) { $xml .= ''; } } } if ((isset($_GET['collections']) && ($_GET['collections'] == 1)) || (isset($_GET['collection_id']) && ($_GET['collection_id'] == $collection['id']))) { $xml .= ''; } } } $xml .= ''; echo $xml; close_db(); exit; function get_collection_ids($sort = 'alpha', $order = 'DESC') { global $config; if ($sort == 'mod') { $query = "SELECT `c`.`id` FROM `".PLOGGER_TABLE_PREFIX."pictures` AS `i` LEFT JOIN `".PLOGGER_TABLE_PREFIX."collections` AS `c` ON `i`.`parent_collection`=`c`.`id` GROUP BY `i`.`parent_collection` ORDER BY `i`.`date_submitted` "; if ($order == 'ASC') { $query .= ' ASC '; } else { $query .= ' DESC '; } } else { $query = "SELECT `c`.`id` FROM `".PLOGGER_TABLE_PREFIX."collections` AS `c` ORDER BY `c`.`name` "; if ($order == 'ASC') { $query .= ' ASC '; } else { $query .= ' DESC '; } } $resultCollection = run_query($query); $collections = array(); while ($collection = mysql_fetch_assoc($resultCollection)) { $collections[$collection['id']] = $collection; } return $collections; } function get_album_ids($collection_id = null, $sort = 'alpha', $order = 'DESC') { global $config; $albums = array(); if ($sort == 'mod') { $query = "SELECT `a`.`id` AS `album_id` FROM `".PLOGGER_TABLE_PREFIX."pictures` AS `i` LEFT JOIN `".PLOGGER_TABLE_PREFIX."albums` AS `a` ON `i`.`parent_album`=`a`.`id`"; if ($collection_id) { $query .= " WHERE `i`.`parent_collection`=".intval($collection_id); } $query .= " GROUP BY `i`.`parent_album` ORDER BY `i`.`date_submitted` "; if ($order == 'ASC') { $query .= ' ASC '; } else { $query .= ' DESC '; } } else { $query = "SELECT `a`.`id` AS `album_id` FROM `".PLOGGER_TABLE_PREFIX."albums` AS `a` LEFT JOIN `".PLOGGER_TABLE_PREFIX."collections` AS `c` ON `a`.`parent_id`=`c`.`id`"; if ($collection_id) { $query .= " WHERE `c`.id=".intval($collection_id)." "; } $query .= " ORDER BY `c`.`name` ASC, `a`.`name` ASC"; } $result = run_query($query); while ($album = mysql_fetch_assoc($result)) { $albums[$album['album_id']] = $album; } return $albums; } function get_picture_ids($album_id, $order = 'alpha', $sort = 'DESC') { global $config; $query = "SELECT `p`.`id` FROM `".PLOGGER_TABLE_PREFIX."pictures` AS `p` LEFT JOIN `".PLOGGER_TABLE_PREFIX."albums` AS `a` ON `p`.`parent_album`=`a`.`id` WHERE `a`.`id`=".intval($album_id); if ($order == 'mod') { $query .= " ORDER BY `p`.`date_submitted` "; } else { $query .= " ORDER BY `p`.`caption` "; } if ($sort == 'ASC') { $query .= ' ASC '; } else { $query .= ' DESC '; } $result = run_query($query); $pictures = array(); while ($row = mysql_fetch_assoc($result)) { $pictures[$row['id']] = $row; } return $pictures; } ?>