/** * Create a pdf of all postings belonging to the passed seminar located * under the passed topic_id. The PDF is dispatched automatically. * * BEWARE: This function never returns, it dies after the PDF has been * (succesfully or not) dispatched. * * @param string $seminar_id * @param string $parent_id */ static function createPdf($seminar_id, $parent_id = null) { $seminar_name = get_object_name($seminar_id, 'sem'); $data = ForumEntry::getList('dump', $parent_id ?: $seminar_id); $first_page = true; $document = new ExportPDF(); $document->SetTitle(_('Forum')); $document->setHeaderTitle(sprintf(_("Forum \"%s\""), $seminar_name['name'])); $document->addPage(); foreach ($data['list'] as $entry) { if (Config::get()->FORUM_ANONYMOUS_POSTINGS && $entry['anonymous']) { $author = _('anonym'); } else { $author = $entry['author']; } if ($entry['depth'] == 1) { if (!$first_page) { $document->addPage(); } $first_page = false; $document->addContent('++++**' . _('Bereich') . ': ' . $entry['name_raw'] . '**++++' . "\n"); $document->addContent($entry['content_raw']); $document->addContent("\n\n"); } else { if ($entry['depth'] == 2) { $document->addContent('++**' . _('Thema') . ': ' . $entry['name_raw'] . '**++' . "\n"); $document->addContent('%%' . sprintf(_('erstellt von %s am %s'), $author, strftime('%A %d. %B %Y, %H:%M', (int) $entry['mkdate'])) . '%%' . "\n"); $document->addContent($entry['content_raw']); $document->addContent("\n\n"); } else { if ($entry['depth'] == 3) { $document->addContent('**' . $entry['name_raw'] . '**' . "\n"); $document->addContent('%%' . sprintf(_('erstellt von %s am %s'), $author, strftime('%A %d. %B %Y, %H:%M', (int) $entry['mkdate'])) . '%%' . "\n"); $document->addContent($entry['content_raw']); $document->addContent("\n--\n"); } } } } $document->dispatch($seminar_name['name'] . " - Forum"); die; }
function exportAllWikiPagesPDF($mode, $sortby) { global $SessSemName; $titlesortlink = "title"; $versionsortlink = "version"; $changesortlink = "lastchange"; switch ($sortby) { case 'title': // sort by keyword, prepare link for descending sorting $sort = " ORDER BY keyword"; break; case 'titledesc': // sort descending by keyword, prep link for asc. sort $sort = " ORDER BY keyword DESC"; break; case 'version': $sort = " ORDER BY versions DESC, keyword ASC"; break; case 'versiondesc': $sort = " ORDER BY versions, keyword ASC"; break; case 'lastchange': // sort by change date, default: newest first $sort = " ORDER BY lastchange DESC, keyword ASC"; break; case 'lastchangedesc': // sort by change date, oldest first $sort = " ORDER BY lastchange, keyword ASC"; break; } $query = "SELECT keyword, MAX(chdate) AS lastchange, COUNT(*) AS versions FROM wiki WHERE range_id = ? GROUP BY keyword {$sort}"; $parameters = array($SessSemName[1]); $statement = DBManager::get()->prepare($query); $statement->execute($parameters); $document = new ExportPDF(); $document->SetTitle(_('Wiki: ').htmlReady($wikiData["keyword"])); $document->setHeaderTitle(sprintf(_("Wiki von \"%s\""), $SessSemName[0])); while ($wikiData = $statement->fetch(PDO::FETCH_ASSOC)) { $pagedata = getLatestVersion($wikiData["keyword"], $SessSemName[1]); $document->setHeaderSubtitle(sprintf(_("Seite: %s"), $wikiData["keyword"])); $document->addPage(); $document->addContent(deleteWikiLinks($pagedata["body"])); } $document->dispatch($SessSemName[header_line]." - ".$wikiData["keyword"]); }