<?php /** * @file * Pugpig WordPress Edition Feeds */ /* Licence: ============================================================================== (c) 2011, Kaldor Holdings Ltd This module is released under the GNU General Public License. See COPYRIGHT.txt and LICENSE.txt */ // Generate the ATOM feed for an edition. Send a 404 if the edition doesn't exist, or a 403 if not public $edition_id = ""; if (isset($_GET["edition_id"]) && !empty($_GET["edition_id"])) { $edition_id = $_GET["edition_id"]; } else { header('HTTP/1.1 404 Not Found'); exit; } $include_hidden = false; if (isset($_GET["include_hidden"]) && !empty($_GET["include_hidden"])) { $include_hidden = true; } generate_edition_atom_feed($edition_id, $include_hidden);
function pugpig_catch_request() { // HTML manifest if (pugpig_is_pugpig_manifest()) { if (!is_singular()) { header('HTTP/1.1 403 Forbidden'); echo "Not a valid pugpig request"; exit; } header("Content-Type: text/cache-manifest"); $post = get_queried_object(); if ($post->post_status != 'publish') { header('X-Pugpig-Status: unpublished'); } else { header('X-Pugpig-Status: published'); } echo pugpig_build_post_manifest_contents($post); exit; } // Package XML file if (pugpig_is_pugpig_package_xml()) { if (!is_singular()) { header('HTTP/1.1 403 Forbidden'); echo "Not a valid package request"; print_r($vars); exit; } $post = get_queried_object(); if ($post->post_type != PUGPIG_EDITION_POST_TYPE) { header('HTTP/1.1 403 Forbidden'); echo "Not a valid package XML request - object is not an edition"; exit; } if ($post->post_status != 'publish') { header('X-Pugpig-Status: unpublished'); } else { header('X-Pugpig-Status: published'); } package_edition_package_list($post); exit; } if (pugpig_is_pugpig_edition_atom_xml()) { if (!is_singular()) { header('HTTP/1.1 403 Forbidden'); echo "Not a singular valid atom feed request"; exit; } $post = get_queried_object(); if ($post->post_type != PUGPIG_EDITION_POST_TYPE) { header('HTTP/1.1 403 Forbidden'); echo "Not a valid atom XML request - object is not an edition"; exit; } // TODO: Think about different cache headers for searches? $search_term = null; if (isset($_GET["q"]) && !empty($_GET["q"])) { if (pugpig_should_allow_search()) { $search_term = $_GET["q"]; } } generate_edition_atom_feed($post->ID, false, $search_term); exit; } }