コード例 #1
0
function pugpig_get_atom_container($edition_id, $include_hidden = false, $search_term = null, $links = null, $content_filter = null)
{
    $edition = pugpig_get_edition($edition_id, $include_hidden, true, $search_term, $content_filter);
    $d = new DomDocument('1.0', 'UTF-8');
    $feed = $d->createElement('feed');
    $feed->setAttribute('xmlns', 'http://www.w3.org/2005/Atom');
    $feed->setAttribute('xmlns:app', 'http://www.w3.org/2007/app');
    $feed->setAttribute('xmlns:dcterms', 'http://purl.org/dc/terms/');
    $atom_edition_id = _pugpig_get_atom_tag_internal($edition['key']);
    // Generate unqiue IDs for each search
    if ($search_term) {
        $atom_edition_id .= "." . time();
    }
    $feed->appendChild(newElement($d, 'id', $atom_edition_id));
    $comment = ' ' . ($include_hidden ? "Atom Including Hidden Files - " : "Atom Contents Feeds - ");
    $comment .= "Generated: " . date(DATE_RFC822) . ' ';
    $feed->appendChild($d->createComment($comment));
    if ($content_filter) {
        $feed->appendChild($d->createComment(" Filter: " . $content_filter . ' '));
    }
    _pugpig_create_xml_link($d, $feed, array('rel' => 'self', 'type' => 'application/atom+xml', 'href' => pugpig_self_link()));
    // Enclosures
    if ($links) {
        foreach ($links as $link) {
            _pugpig_create_xml_link($d, $feed, $link);
        }
    }
    if ($search_term) {
        $feed->appendChild(newElement($d, 'title', "Search results for: '{$search_term}' - " . $edition['title']));
        $feed->appendChild(newElement($d, 'updated', pugpig_date3339()));
    } else {
        $feed->appendChild(newElement($d, 'title', $edition['title']));
        $feed->appendChild(newElement($d, 'updated', pugpig_date3339(pugpig_get_edition_update_date($edition, true))));
    }
    $author = $d->createElement('author');
    $author->appendChild($d->createElement('name', 'Pugpig'));
    $feed->appendChild($author);
    $all_pages = array();
    foreach ($edition['page_ids'] as $page_id) {
        $pages = pugpig_get_pages($page_id, $edition_id, $content_filter);
        $all_pages = array_merge($all_pages, $pages);
    }
    $all_pages = pugpig_post_process_pages($all_pages, $edition_id, $content_filter);
    foreach ($all_pages as $page) {
        if ($page['status'] == 'published') {
            // We only ever want published pages in these feeds
            $entry = pugpig_get_atom_entry($d, $page, $edition);
            $feed->appendChild($entry);
        }
    }
    $d->appendChild($feed);
    return $d;
}
コード例 #2
0
function pugpig_get_atom_container($edition_id, $include_hidden = FALSE)
{
    $edition = pugpig_get_edition($edition_id, $include_hidden);
    $d = new DomDocument('1.0', 'UTF-8');
    $feed = $d->createElement('feed');
    $feed->setAttribute('xmlns', 'http://www.w3.org/2005/Atom');
    $feed->setAttribute('xmlns:app', 'http://www.w3.org/2007/app');
    $feed->appendChild(newElement($d, 'id', pugpig_get_atom_tag($edition['key'])));
    $comment = ' ' . ($include_hidden ? "Atom Including Hidden Files - " : "Atom Contents Feeds - ");
    $comment .= "Generated: " . date(DATE_RFC822) . ' ';
    $feed->appendChild($d->createComment($comment));
    $link = $d->createElement('link');
    $link->setAttribute('rel', 'self');
    $link->setAttribute('type', 'application/atom+xml');
    $link->setAttribute('href', pugpig_self_link());
    $feed->appendChild($link);
    $feed->appendChild(newElement($d, 'title', $edition['title']));
    $feed->appendChild(newElement($d, 'updated', pugpig_date3339(pugpig_get_edition_update_date($edition, TRUE))));
    $author = $d->createElement('author');
    $author->appendChild($d->createElement('name', 'Pugpig'));
    $feed->appendChild($author);
    foreach ($edition['page_ids'] as $page_id) {
        $page = pugpig_get_page($page_id, $edition_id);
        // We only ever want published pages in these feeds
        if ($page['status'] == 'published') {
            $entry = pugpig_get_atom_entry($d, $page, $edition);
            $feed->appendChild($entry);
        }
    }
    $d->appendChild($feed);
    return $d;
}