コード例 #1
0
ファイル: ForumHelpers.php プロジェクト: ratbird/hope
 /**
  * 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;
 }
コード例 #2
0
ファイル: wiki.inc.php プロジェクト: ratbird/hope
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"]);
}