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]; }
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]; }
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); }
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]; }
/** * 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]; }
function MimeifyPages($pagehashes) { $npages = sizeof($pagehashes); for ($i = 0; $i < $npages; $i++) { $parts[$i] = MimeifyPage($pagehashes[$i]); } return $npages == 1 ? $parts[0] : MimeMultipart($parts); }