<?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;
    }
}