Beispiel #1
0
 function export_wiki_page($pageName, $nversions = 1, $showLatest = false)
 {
     global $prefs;
     $head = '';
     $head .= 'Date: ' . $this->date_format('%a, %e %b %Y %H:%M:%S %O') . "\r\n";
     $head .= sprintf("Mime-Version: 1.0 (Produced by Tiki)\r\n");
     $info = $this->get_page_info($pageName);
     if ($prefs['flaggedrev_approval'] == 'y') {
         $flaggedrevisionlib = TikiLib::lib('flaggedrevision');
         if (!$showLatest && $flaggedrevisionlib->page_requires_approval($pageName)) {
             $data = $flaggedrevisionlib->get_version_with($pageName, 'moderation', 'OK');
             $info['data'] = '';
             if ($data) {
                 $info['data'] = $data['data'];
             }
         }
     }
     $parts = array();
     $parts[] = MimeifyPageRevision($info);
     if ($nversions > 1 || $nversions == 0) {
         $iter = $this->get_page_history($pageName);
         foreach ($iter as $revision) {
             $parts[] = MimeifyPageRevision($revision);
             if ($nversions > 0 && count($parts) >= $nversions) {
                 break;
             }
         }
     }
     if (count($parts) > 1) {
         return $head . MimeMultipart($parts);
     }
     assert($parts);
     return $head . $parts[0];
 }
Beispiel #2
0
 function export_wiki_page($page_id, $nversions = 1)
 {
     global $gBitSystem;
     $head = '';
     $head .= "Date: " . $gBitSystem->mServerTimestamp->get_rfc2822_datetime() . "\r\n";
     $head .= sprintf("Mime-Version: 1.0 (Produced by Tiki)\r\n");
     $iter = $this->get_page_history($page_id);
     $gWikiPage = new BitPage($page_id);
     $gWikiPage->load();
     $info = $gWikiPage->mInfo;
     $parts = array();
     $parts[] = MimeifyPageRevision($info);
     if ($nversions > 1 || $nversions == 0) {
         foreach ($iter as $revision) {
             $parts[] = MimeifyPageRevision($revision);
             if ($nversions > 0 && count($parts) >= $nversions) {
                 break;
             }
         }
     }
     if (count($parts) > 1) {
         return $head . MimeMultipart($parts);
     }
     assert($parts);
     return $head . $parts[0];
 }
Beispiel #3
0
function MailifyPage($pagehash, $oldpagehash = false)
{
    global $SERVER_ADMIN, $ArchivePageStore;
    $from = isset($SERVER_ADMIN) ? $SERVER_ADMIN : 'foo@bar';
    $head = "From {$from}  " . ctime(time()) . "\r\n";
    $head .= "Subject: " . encode_pagename_for_wikizip($pagehash['pagename']) . "\r\n";
    $head .= "From: {$from} (PhpWiki)\r\n";
    $head .= "Date: " . rfc1123date($pagehash['lastmodified']) . "\r\n";
    $head .= "Mime-Version: 1.0 (Produced by PhpWiki 1.1.x)\r\n";
    if (is_array($oldpagehash)) {
        return $head . MimeMultipart(array(MimeifyPage($oldpagehash), MimeifyPage($pagehash)));
    }
    return $head . MimeifyPage($pagehash);
}
Beispiel #4
0
 function export_wiki_page($pageName, $nversions = 1)
 {
     $head = '';
     $head .= "Date: " . $this->get_rfc2822_datetime() . "\r\n";
     $head .= sprintf("Mime-Version: 1.0 (Produced by Tiki)\r\n");
     $iter = $this->get_page_history($pageName);
     $info = $this->get_page_info($pageName);
     $parts = array();
     $parts[] = MimeifyPageRevision($info);
     if ($nversions > 1 || $nversions == 0) {
         foreach ($iter as $revision) {
             $parts[] = MimeifyPageRevision($revision);
             if ($nversions > 0 && count($parts) >= $nversions) {
                 break;
             }
         }
     }
     if (count($parts) > 1) {
         return $head . MimeMultipart($parts);
     }
     assert($parts);
     return $head . $parts[0];
 }
Beispiel #5
0
/**
 * For reference see:
 * http://www.nacs.uci.edu/indiv/ehood/MIME/2045/rfc2045.html
 * http://www.faqs.org/rfcs/rfc2045.html
 * (RFC 1521 has been superceeded by RFC 2045 & others).
 *
 * Also see http://www.faqs.org/rfcs/rfc2822.html
 */
function MailifyPage($page, $nversions = 1)
{
    $current = $page->getCurrentRevision();
    $head = '';
    if (STRICT_MAILABLE_PAGEDUMPS) {
        $from = defined('SERVER_ADMIN') ? SERVER_ADMIN : 'foo@bar';
        //This is for unix mailbox format: (not RFC (2)822)
        // $head .= "From $from  " . CTime(time()) . "\r\n";
        $head .= "Subject: " . rawurlencode($page->getName()) . "\r\n";
        $head .= "From: {$from} (PhpWiki)\r\n";
        // RFC 2822 requires only a Date: and originator (From:)
        // field, however the obsolete standard RFC 822 also
        // requires a destination field.
        $head .= "To: {$from} (PhpWiki)\r\n";
    }
    $head .= "Date: " . Rfc2822DateTime($current->get('mtime')) . "\r\n";
    $head .= sprintf("Mime-Version: 1.0 (Produced by PhpWiki %s)\r\n", PHPWIKI_VERSION);
    // This should just be entered by hand (or by script?)
    // in the actual pgsrc files, since only they should have
    // RCS ids.
    //$head .= "X-Rcs-Id: \$Id\$\r\n";
    $iter = $page->getAllRevisions();
    $parts = array();
    while ($revision = $iter->next()) {
        $parts[] = MimeifyPageRevision($page, $revision);
        if ($nversions > 0 && count($parts) >= $nversions) {
            break;
        }
    }
    if (count($parts) > 1) {
        return $head . MimeMultipart($parts);
    }
    assert($parts);
    return $head . $parts[0];
}
Beispiel #6
0
function MimeifyPages($pagehashes)
{
    $npages = sizeof($pagehashes);
    for ($i = 0; $i < $npages; $i++) {
        $parts[$i] = MimeifyPage($pagehashes[$i]);
    }
    return $npages == 1 ? $parts[0] : MimeMultipart($parts);
}