Ejemplo n.º 1
0
function admExportPagesAnswer(&$session)
{
    global $export_pattern, $export_exists, $export_type, $export_export, $export_preview;
    $session->trace(TC_Gui1, 'admExportPagesAnswer');
    $message = null;
    if (isset($export_export)) {
        if (empty($export_pattern)) {
            $message = '+++ kein Suchmuster angegeben';
        } else {
            $page_list = dbIdList($session, T_Page, admBuildCondition($session, $export_pattern));
            if (!($file = fopen(FN_PageExport, 'w'))) {
                $message = 'kann Datei nicht öffnen: ' . FN_PageExport;
            } else {
                $prefix = $session->fDbTablePrefix;
                fputs($file, '/* Export ' . "\n" . 'am: ' . strftime("%Y.%m.%d %H:%M:%S") . "\n" . 'von: ' . $session->fUserName . "\n" . 'Modus: ' . $export_type . "\n" . 'Prefix: ' . $prefix . "\n" . 'Seiten: ' . implode(', ', $page_list) . "\n" . "*/\n");
                foreach ($page_list as $ii => $page_id) {
                    $page = dbGetRecordById($session, T_Page, $page_id, 'name,type,readgroup,writegroup');
                    $text_id = dbSingleValue($session, 'select max(id) from ' . dbTable($session, T_Text) . ' where page=' . (0 + $page_id));
                    $text = dbGetRecordById($session, T_Text, $text_id, 'type,createdby,createdat,text');
                    if ($export_type == 'insert') {
                        fputs($file, 'insert into ' . $prefix . 'page(id,name,type,readgroup,writegroup) values (' . (0 + $page_id) . ',' . dbSqlString($session, $page[0]) . ',' . dbSqlString($session, $page[1]) . ',' . (0 + $page[2]) . ',' . (0 + $page[3]) . ');' . "\n");
                        fputs($file, 'insert into ' . $prefix . 'text(page,type,createdby,createdat,text) values (' . (0 + $page_id) . ',' . dbSqlString($session, $text[0]) . ',' . dbSqlString($session, $text[1]) . ',' . dbSqlString($session, $text[2]) . ',' . dbSqlString($session, $text[3]) . ');' . "\n");
                    } else {
                        fputs($file, '/* Seite ' . $page[0] . "*/\n");
                        fputs($file, '/* delete from ' . $prefix . dbTable($session, T_Text) . ' where page=' . $page_id . ';' . "\n*/\n");
                        fputs($file, 'update ' . $prefix . 'page set type=' . dbSqlString($session, $page[1]) . ' where name=' . dbSqlString($session, $page[0]) . ';' . "\n");
                        fputs($file, 'insert into ' . $prefix . 'text(page,createdby,createdat,text) values (' . (0 + $page_id) . ',' . dbSqlString($session, $text[0]) . ',' . dbSqlString($session, $text[1]) . ',' . dbSqlString($session, $text[2]) . ',' . dbSqlString($session, $text[3]) . ');' . "\n");
                    }
                }
                fclose($file);
                $export_exists = FN_PageExport;
                $message = 'Datei ' . FN_PageExport . ' wurde exportiert';
            }
        }
    }
    admExportPages($session, $message);
}
Ejemplo n.º 2
0
function dbGetAndStoreMacroPattern(&$session)
{
    $session->trace(TC_Db2, 'dbGetAndStoreMacroPattern:');
    $theme = $session->fUserTheme;
    $pattern = dbGetParam($session, $theme, Th_MacroPattern);
    if (empty($pattern)) {
        $row = dbFirstRecord($session, 'select name from ' . dbTable($session, T_Macro) . ' where theme=' . Theme_All . ' or theme=' . ($theme + 0) . ' order by name');
        $last_var = null;
        $open_parenthesis = false;
        while ($row) {
            $pos = strpos($row[0], ':');
            if ($pos <= 0) {
                $val = $row[0];
                $var = null;
            } else {
                $var = substr($row[0], 0, $pos + 1);
                $val = substr($row[0], $pos + 1);
            }
            $session->trace(TC_Db3, 'dbGetAndStoreMacroPattern-2: ' . $pos . ' ' . $var . ' / ' . $val);
            if ($var != $last_var) {
                $session->trace(TC_Db2, 'dbGetAndStoreMacroPattern-3: ');
                if ($open_parenthesis) {
                    $session->trace(TC_Db2, 'dbGetAndStoreMacroPattern-4: ');
                    $pattern .= ')';
                    $open_parenthesis = false;
                }
                $last_var = $var;
                if (!empty($var)) {
                    $session->trace(TC_Db2, 'dbGetAndStoreMacroPattern-5: ' . $pattern);
                    $val = $var . '(' . $val;
                    $open_parenthesis = true;
                }
            }
            $new = '|' . $val;
            if (getPos($pattern, $new . '|') < 0) {
                $pattern .= $new;
            }
            $row = dbNextRecord($session);
        }
        if ($open_parenthesis) {
            $pattern .= ')';
        }
        $id = dbSingleValue($session, 'select id from ' . dbTable($session, T_Param) . ' where theme=' . (0 + $theme) . ' and pos=' . Th_MacroPattern);
        if ($id > 0) {
            dbUpdateRaw($session, T_Param, $id, 'text=' . dbSqlString($session, $pattern));
            $session->trace(TC_Db1, "dbGetAndStoreMacroPattern: Id: {$id} Th: {$theme} P: {$pattern}");
        }
    }
    return $pattern;
}
Ejemplo n.º 3
0
function instImportPages(&$session, $import_file, $import_replace)
{
    $message = null;
    if (!file_exists($import_file)) {
        $message = "Datei nicht gefunden: " . $import_file;
    } elseif (checkDB($session, $message) == DB_EXISTS) {
        $file = fopen($import_file, "r");
        $count_inserts = 0;
        $count_updates = 0;
        $count_lines = 0;
        while ($line = fgets($file)) {
            if (preg_match('/^#name=(\\S+)\\tlines=(\\d+)\\ttype=(\\w+)\\t/', $line, $param)) {
                $name = $param[1];
                $lines = $param[2];
                $type = $param[3];
                $session->trace(TC_Gui1, 'instImportPagesAnswer-2: ' . $line);
                if (($page = dbPageId($session, $name)) > 0) {
                    $count_updates++;
                    if ($import_replace) {
                        dbDeleteByClause($session, T_Text, 'page=' . $page);
                    }
                } else {
                    $page = dbInsert($session, T_Page, 'name,type', dbSqlString($session, $name) . ',' . dbSqlString($session, $type));
                    $count_inserts++;
                }
                $text = "";
                $session->trace(TC_Gui1, 'instImportPagesAnswer-3: ' . $lines);
                $count_lines += $lines;
                for ($ii = 0; $ii < $lines; $ii++) {
                    $text .= fgets($file);
                }
                if ($import_replace) {
                    $old_id = dbSingleValue($session, 'select max(id) from ' . dbTable($session, T_Text) . ' where page=' . (0 + $page));
                }
                $text_id = dbInsert($session, T_Text, 'page,type,text', $page . ',' . dbSqlString($session, $type) . ',' . dbSqlString($session, $text));
                if ($import_replace && $old_id > 0) {
                    dbUpdate($session, T_Text, $old_id, 'replacedby=' . $text_id);
                }
            }
        }
        fclose($file);
        $message = 'Datei ' . $import_file . ' wurde eingelesen. Neu: ' . (0 + $count_inserts) . ' Geändert: ' . (0 + $count_updates) . ' Zeilen: ' . (0 + $count_lines);
    }
    return $message;
}
Ejemplo n.º 4
0
function guiShowPageById(&$session, $page, $text_id)
{
    $session->trace(TC_Gui1, 'guiShowPageById: ' . $page . '/' . $text_id);
    list($name, $type, $readgroup) = dbGetRecordById($session, T_Page, $page, 'name,type,readgroup');
    if (!empty($text_id) && $text_id > 0) {
        $count_newer = dbSingleValue($session, 'select count(id) from ' . dbTable($session, T_Text) . ' where page=' . (0 + $page) . ' and id>' . $text_id);
    } else {
        $count_newer = 0;
        list($text_id) = dbGetRecordByClause($session, T_Text, 'max(id)', 'page=' . (0 + $page));
    }
    $session->trace(TC_Gui1, 'guiShowPageById-2: ' . $count_newer);
    list($content, $created_at, $created_by) = dbGetRecordById($session, T_Text, $text_id, 'text,createdat,createdby');
    $has_changed = $name != $session->fPageURL;
    $session->SetPageData($name, $created_at, $created_by);
    if ($has_changed) {
        $session->SetLocation($name);
    }
    $header = $count_newer == 0 ? $session->fPageURL : $session->fPageURL . ' (Version ' . $text_id . ')';
    if ($type == TT_Wiki) {
        guiStandardHeader($session, $header, Th_HeaderWiki, Th_BodyStartWiki);
    } else {
        guiStandardHeader($session, $header, Th_HeaderHTML, Th_BodyStartHTML);
    }
    if ($count_newer > 0) {
        guiParagraph($session, 'Achtung: es existier' . ($count_newer == 1 ? 't eine neuere Version' : 'en ' . $count_newer . ' neuere Versionen'), false);
    }
    guiFormatPage($session, $type, $content);
    guiStandardBodyEnd($session, $type == TT_Wiki ? Th_BodyEndWiki : Th_BodyEndHTML);
}
Ejemplo n.º 5
0
 function getMacro($name)
 {
     $this->trace(TC_Session3, 'getMacro');
     if (isset($this->fMacros[$name])) {
         $value = $this->fMacros[$name];
     } else {
         $value = '';
         switch ($name) {
             case TM_CurrentUser:
                 $value = htmlentities($this->fUserName);
                 break;
             case TM_CurrentDate:
                 $value = strftime('%Y.%m.%d');
                 break;
             case TM_CurrentDateTime:
                 $value = strftime('%Y.%m.%d %H:%M');
                 break;
             case TM_PageTitle:
                 $value = getMacro(TM_BasarName);
                 break;
             case TM_Newline:
                 $value = tagNewline;
                 break;
             case TM_RuntimeSecMilli:
             case TM_RuntimeSecMicro:
                 $value = $this->getRuntimeSec($name == TM_RuntimeSecMilli);
                 break;
             default:
                 # $this->trace (TC_X, "getMacro: $name");
                 $value = dbSingleValue($this, 'select value from ' . dbTable($this, T_Macro) . ' where name=' . dbSqlString($this, $name) . ' and ' . '(theme=' . ($this->fUserTheme + 0) . ' or theme=' . Theme_All . ') order by theme desc');
                 # $this->trace (TC_X, "getMacro: $name: $value");
                 break;
         }
         $this->trace(TC_Session2, 'getMacro-2: ' . $name . '=' . $value);
         if ($name != TM_RuntimeSecMicro && $name != TM_RuntimeSecMicro) {
             $this->fMacros[$name] = $value;
         }
     }
     $this->trace(TC_Session3, 'getMacro-3: ' . $name . '=' . $value);
     return $value;
 }
Ejemplo n.º 6
0
function baseLastChanges(&$session)
{
    $headline = 'Übersicht über die letzten Änderungen';
    guiStandardHeader($session, $headline, Th_StandardHeader, Th_StandardBodyStart);
    if (!isset($_POST['last_days']) || $_POST['last_days'] < 1) {
        $_POST['last_days'] = 7;
    }
    guiStartForm($session);
    outParagraph($session);
    echo 'Zeitraum: die letzten ';
    outTextField($session, 'last_days', $_POST['last_days'], 3, 4);
    echo ' Tage ';
    outButton($session, 'last_refresh', 'Aktualisieren');
    outParagraphEnd($session);
    outTable();
    for ($day = 0; $day <= $_POST['last_days']; $day++) {
        $date = localtime(time() - $day * 86400);
        $time_0 = strftime('%Y.%m.%d', time() - $day * 86400);
        $time_2 = mktime(0, 0, 0, $date[4] + 1, $date[3], $date[5]);
        $time_1 = dbSqlDateTime($session, $time_2);
        $condition = 't.createdat>=' . $time_1 . ' and t.createdat<=' . str_replace('00:00:00', '23:59:59', $time_1);
        $rec = dbFirstRecord($session, 'select t.id,p.name,t.createdby,t.createdat,t.replacedby,p.id from ' . dbTable($session, T_Text) . ' t, ' . dbTable($session, T_Page) . ' p where p.id=t.page and ' . $condition . ' order by createdat desc');
        if ($rec) {
            outTableRecord();
            outTableCellStrong($time_0);
            outTableRecordEnd();
            do {
                $text_id = $rec[0] + 0;
                $page_id = $rec[5] + 0;
                $page_name = $rec[1];
                $page_link = encodeWikiName($session, $page_name);
                outTableRecord();
                outTableCell(dbSingleValue($session, 'select min(id) from ' . dbTable($session, T_Text) . ' where page=' . $page_id) == $text_id ? 'Neu' : 'Änderung');
                outTableInternLink($session, null, $page_link . '?action=' . A_ShowText . '&page_id=' . $page_id . '&text_id=' . $text_id, $text_id);
                outTableInternLink($session, null, $page_link, $page_name);
                outTableAuthorLink($session, $rec[2]);
                outTableCell(dbSqlDateToText($session, $rec[3]));
                $pred_rec = dbSingleValue($session, 'select max(id) from ' . dbTable($session, T_Text) . ' where page=' . $page_id . ' and createdat<' . dbSqlDateTime($session, $time_2));
                if ($pred_rec > 0) {
                    outTableInternLink($session, null, $page_link . '?action=' . A_Diff . '&text_id=' . $text_id . '&text_id2=' . $pred_rec, 'Unterschied zum Vortag (' . $pred_rec . ')');
                }
                outTableRecordEnd();
            } while (($rec = dbNextRecord($session)) != null);
        }
    }
    outTableEnd();
    guiStandardBodyEnd($session, Th_StandardBodyEnd);
}
Ejemplo n.º 7
0
function baseThread(&$session)
{
    global $thread_id, $posting_id, $page_no;
    $session->trace(TC_Gui1, 'baseThread');
    if (empty($thread_id)) {
        if (empty($posting_id)) {
            $thread_id = 1;
        } else {
            $thread_id = dbSingleValue($session, 'select top from ' . dbTable($session, T_Posting) . " where id={$posting_id}");
            if (empty($thread_id)) {
                $thread_id = $posting_id;
            }
        }
    }
    if (!isset($page_no)) {
        $page_no = isset($posting_id) ? dbPageOfPosting($session, $thread_id, $posting_id) : 1;
    }
    $id_list = dbIdListOfThreadPage($session, $thread_id, $page_no);
    $thread = dbGetRecordById($session, T_Posting, $thread_id, 'author,subject,text,createdat,changedby,changedat,calls,forum');
    dbThreadInfo($session, $thread_id, $answers, $pages, $last);
    $thread_date = dbSqlDateToText($session, $thread[3]);
    $forum = dbGetRecordById($session, T_Forum, $thread[7], 'name');
    guiStandardHeader($session, 'Thema: ' . $thread[1], Th_ThreadHeader, Th_ThreadBodyStart);
    guiParagraph($session, $thread[0] . ', ' . $thread_date . ', ' . (0 + $answers) . ' Antwort' . ($answers == 1 ? ', ' : 'en, ') . $pages . ' Seite' . ($pages == 1 ? '' : 'n'), true);
    echo '<table width="100%" border="0"><tr><td>';
    echo 'Forum: ';
    guiInternLink($session, P_Forum . '?forum_id=' . $thread[7], $forum[0]);
    if ($pages > 1) {
        echo '</td><td style="text-align: right">';
        guiPageLinks($session, P_Thread . '?action=' . A_ShowThread . '&thread_id=' . $thread_id, $page_no, $pages);
    }
    echo "</td></tr></table>\n";
    dbUpdateRaw($session, T_Posting, $thread_id, 'calls=calls+1');
    echo '<table width="100%" border="0">' . "\n";
    // Autor Thema-Text
    foreach ($id_list as $ii => $id) {
        # echo "alle Postings: $ii / $id<br>";
        if ($id == $thread_id) {
            $posting = $thread;
        } else {
            $posting = dbGetRecordById($session, T_Posting, $id, 'author,subject,text,createdat,changedby,changedat');
        }
        dbGetAuthorInfo($session, $posting[0], $author_link, $postings, $avatar, $ranking);
        echo '<tr><td style="vertical-align:top">';
        guiLine(1);
        echo $thread[0] . '<br/>' . ($postings + 0) . ' Beitr&auml;ge<br/>' . $ranking;
        if (!empty($avatar)) {
            echo '<br/>' . $avatar;
        }
        echo '</td><td>';
        guiLine(1);
        if ($id == $thread_id) {
            guiHeadline($session, 3, 'Thema: ' . $posting[1]);
        } else {
            guiHeadline($session, 3, 'Antwort ' . ($ii + $session->fUserPostingsPerPage * ($page_no - 1)) . ': ' . $posting[1]);
        }
        echo 'Geschrieben am ' . dbSqlDateToText($session, $posting[3]);
        if (strcmp($posting[5], $posting[3]) != 0) {
            echo ' Letzte &Auml;nderung: ' . dbSqlDateToText($session, $posting[5]);
            if (!empty($posting[4]) && strcmp($posting[4], $posting[0]) != 0) {
                echo ' von ' . $posting[5];
            }
        }
        echo '<br/>';
        wikiToHTML($session, $posting[2]);
        echo '<p>';
        guiInternLink($session, P_Thread . '?action=' . A_Answer . "&thread_id={$thread_id}&reference_id={$id}", 'Antworten');
        if (strcmp($posting[0], $session->fUserName) == 0) {
            echo ' ';
            guiInternLink($session, P_Thread . '?action=' . A_ChangeThread . "&thread_id={$thread_id}&posting_id={$id}", 'Ändern');
            echo "</p>\n";
        }
        echo "</td><tr>\n";
    }
    echo "</table>\n";
    guiStandardBodyEnd($session, Th_ThreadBodyEnd);
}
Ejemplo n.º 8
0
function addressEditCardAnswer(&$session)
{
    $session->trace(TC_Gui1, 'addressEditCardAnswer');
    $session->trace(TC_X, 'addressEditCardAnswer');
    $message = null;
    if (isset($_POST['card_change'])) {
        $session->trace(TC_Gui1, 'addressEditcard-change entdeckt');
        $name = $_POST['card_lastname'];
        $email = $_POST['card_emailprivate'];
        $id = $_POST['card_id'];
        $books = $_POST['card_books'];
        if (empty($name)) {
            $message = 'Bitte Nachnamen angeben';
        } else {
            if (empty($books)) {
                $message = 'Bitte mindestens ein Adressbuch angeben';
            } else {
                if (($msg2 = addressCheckBooks($session, $books, $id_list)) != null) {
                    $message = $msg2;
                } else {
                    if (!empty($email) && dbSingleValue($session, 'select count(id) from ' . dbTable($session, Tab_Card) . ' where emailprivate=' . dbSqlString($session, $email) . ' and id<>' . (0 + $id)) > 0) {
                        $rec = dbGetRecordByClause($session, Tab_Card, 'id,firstname,lastname,city', ' emailprivate=' . dbSqlString($session, $email) . ' and id<>' . (0 + $id));
                        $message = "Adresskarte mit EMai-Adresse {$email} existiert schon: '" . $rec[1] . ' ' . $rec[2] . ' ' . $rec[3] . ' (' . $rec[0] . ')';
                    } else {
                        dbUpdate($session, Tab_Card, $id, 'firstname=' . dbSqlString($session, $_POST['card_firstname']) . ',lastname=' . dbSqlString($session, $_POST['card_lastname']) . ',nickname=' . dbSqlString($session, $_POST['card_nickname']) . ',emailprivate=' . dbSqlString($session, $_POST['card_emailprivate']) . ',emailprivate2=' . dbSqlString($session, $_POST['card_emailprivate2']) . ',phoneprivate=' . dbSqlString($session, $_POST['card_phoneprivate']) . ',phoneprivate2=' . dbSqlString($session, $_POST['card_phoneprivate2']) . ',faxprivate=' . dbSqlString($session, $_POST['card_faxprivate']) . ',mobileprivate=' . dbSqlString($session, $_POST['card_mobileprivate']) . ',emailoffice=' . dbSqlString($session, $_POST['card_emailoffice']) . ',emailoffice2=' . dbSqlString($session, $_POST['card_emailoffice2']) . ',phoneoffice=' . dbSqlString($session, $_POST['card_phoneoffice']) . ',phoneoffice2=' . dbSqlString($session, $_POST['card_phoneoffice2']) . ',faxoffice=' . dbSqlString($session, $_POST['card_faxoffice']) . ',mobileoffice=' . dbSqlString($session, $_POST['card_mobileoffice']) . ',street=' . dbSqlString($session, $_POST['card_street']) . ',country=' . dbSqlString($session, $_POST['card_country']) . ',zip=' . dbSqlString($session, $_POST['card_zip']) . ',city=' . dbSqlString($session, $_POST['card_city']) . ',functions=' . dbSqlString($session, $_POST['card_functions']) . ',notes=' . dbSqlString($session, $_POST['card_notes']) . ',');
                        $message = "Adresskarte {$name} wurde geändert.";
                    }
                }
            }
        }
    } elseif (isset($_POST['card_new'])) {
        $session->trace(TC_Gui1, 'addressEditCard-new entdeckt');
        $name = $_POST['card_lastname'];
        dbInsert($session, Tab_Card, 'firstname,lastname,nickname,' . 'emailprivate,emailprivate2,phoneprivate,phoneprivate2,faxprivate,mobileprivate,' . 'emailoffice,emailoffice2,phoneoffice,phoneoffice2,faxoffice,mobileoffice,' . 'street,country,zip,city,functions,notes', dbSqlString($session, $_POST['card_firstname']) . ',' . dbSqlString($session, $_POST['card_lastname']) . ',' . dbSqlString($session, $_POST['card_nickname']) . ',' . dbSqlString($session, $_POST['card_emailprivate']) . ',' . dbSqlString($session, $_POST['card_emailprivate2']) . ',' . dbSqlString($session, $_POST['card_phoneprivate']) . ',' . dbSqlString($session, $_POST['card_phoneprivate2']) . ',' . dbSqlString($session, $_POST['card_faxprivate']) . ',' . dbSqlString($session, $_POST['card_mobileprivate']) . ',' . dbSqlString($session, $_POST['card_emailoffice']) . ',' . dbSqlString($session, $_POST['card_emailoffice2']) . ',' . dbSqlString($session, $_POST['card_phoneoffice']) . ',' . dbSqlString($session, $_POST['card_phoneoffice2']) . ',' . dbSqlString($session, $_POST['card_faxoffice']) . ',' . dbSqlString($session, $_POST['card_mobileoffice']) . ',' . dbSqlString($session, $_POST['card_street']) . ',' . dbSqlString($session, $_POST['card_country']) . ',' . dbSqlString($session, $_POST['card_zip']) . ',' . dbSqlString($session, $_POST['card_city']) . ',' . dbSqlString($session, $_POST['card_functions']) . ',' . dbSqlString($session, $_POST['card_notes']));
        $message = "Adresskarte {$name} wurde erstellt.";
    }
    addressEditcard($session, $message);
}
Ejemplo n.º 9
0
function admOptionsAnswer(&$session)
{
    $session->trace(TC_Gui1, 'admOptionsAnswer');
    $message = null;
    if (isset($_POST['opt_save'])) {
        if ($_POST['opt_basarname'] == $session->getMacro(TM_BasarName)) {
            $message = 'Basarname wurde nicht gespeichert, da gleich.' . tagNewline();
        } else {
            $id = dbSingleValue($session, 'select id from ' . dbTable($session, T_Macro) . ' where theme=' . Theme_All . ' and name=' . dbSqlString($session, TM_BasarName));
            dbUpdateRaw($session, T_Macro, $id, 'value=' . dbSqlString($session, $_POST['opt_basarname']));
            $message = 'Basarname wurde geändert.' . tagNewline();
        }
        if ($_POST['opt_webmaster'] == $session->getMacro(TM_Webmaster)) {
            $message .= 'Webmaster wurde nicht gespeichert, da gleich.' . tagNewline();
        } else {
            $id = dbSingleValue($session, 'select id from ' . dbTable($session, T_Macro) . ' where theme=' . Theme_All . ' and name=' . dbSqlString($session, TM_Webmaster));
            dbUpdateRaw($session, T_Macro, $id, 'value=' . dbSqlString($session, $_POST['opt_webmaster']));
            $message .= 'Webmaster wurde geändert.' . tagNewline();
        }
    } elseif (isset($_POST['opt_upload'])) {
        $message = guiUploadFileAnswer($session, 'opt_upload', PATH_DELIM . 'pic' . PATH_DELIM, 'logo.png');
    }
    admOptions($session, $message);
}
Ejemplo n.º 10
0
function dbForumName(&$session, $id, $with_link)
{
    $session->trace(TC_Db3 + TC_Query, "dbForumName: {$id}");
    $rc = dbSingleValue($session, 'select name from ' . dbTable($session, T_Forum) . ' where id=' . $id);
    if ($with_link) {
        $rc = guiInternLinkString($session, P_Forum . '?forum_id=' . $id, $rc);
    }
    return $rc;
}
Ejemplo n.º 11
0
function baseLastChanges(&$session)
{
    global $last_days;
    $headline = 'Übersicht über die letzten Änderungen';
    guiStandardHeader($session, $headline, Th_StandardHeader, Th_StandardBodyStart);
    if (!isset($last_days) || $last_days < 1) {
        $last_days = 7;
    }
    guiStartForm($session);
    echo '<p>Zeitraum: die letzten ';
    guiTextField('last_days', $last_days, 3, 4);
    echo ' Tage ';
    guiButton('last_refresh', 'Aktualisieren');
    echo '</p>' . "\n";
    echo '<table border="0">' . "\n";
    for ($day = 0; $day <= $last_days; $day++) {
        $date = localtime(time() - $day * 86400);
        $time_0 = strftime('%Y.%m.%d', time() - $day * 86400);
        $time_2 = mktime(0, 0, 0, $date[4] + 1, $date[3], $date[5]);
        $time_1 = dbSqlDateTime($session, $time_2);
        $condition = 't.createdat>=' . $time_1 . ' and t.createdat<=' . str_replace('00:00:00', '23:59:59', $time_1);
        $rec = dbFirstRecord($session, 'select t.id,p.name,t.createdby,t.createdat,t.replacedby,p.id from ' . dbTable($session, T_Text) . ' t, ' . dbTable($session, T_Page) . ' p where p.id=t.page and ' . $condition . ' order by createdat desc');
        if ($rec) {
            echo '<tr><td><b>';
            echo $time_0;
            echo '</b></td></tr>' . "\n";
            do {
                echo '<tr><td>';
                echo dbSingleValue($session, 'select min(id) from ' . dbTable($session, T_Text) . ' where page=' . $rec[5]) == $rec[0] ? 'Neu' : 'Änderung';
                echo '</td><td>';
                echo $rec[0];
                echo '</td><td>';
                echo guiInternLink($session, $rec[1], $rec[1]);
                echo '</td><td>';
                guiAuthorLink($session, $rec[2]);
                echo '</td><td>';
                echo dbSqlDateToText($session, $rec[3]);
                $pred_rec = dbSingleValue($session, 'select max(id) from ' . dbTable($session, T_Text) . ' where page=' . $rec[5] . ' and createdat<' . dbSqlDateTime($session, $time_2));
                if ($pred_rec > 0) {
                    echo '</td><td>';
                    guiInternLink($session, $rec[5] . '?action=' . A_Diff . '&text_id=' . $rec[0] . '&text_id2=' . $pred_rec, 'Unterschied zum Vortag (' . $pred_rec . ')');
                }
                echo '</td></tr>' . "\n";
            } while (($rec = dbNextRecord($session)) != null);
        }
        /*		if (false){
        		$ids = dbIdList2 ($session, T_Text, 'distinct page', $condition);
        		if ($ids) {
        			echo '<tr><td><b>';
        			echo $time_0;
        			echo'</b></td></tr>' . "\n";
        			foreach ($ids as $ii => $pageid) {
        				$page = dbGetRecordById ($session, T_Page, $pageid, 'name');
        				$text = dbFirstRecord ($session,
        					'select id,createdby,createdat,replacedby from '
        				. dbTable ($session, T_Text) . ' where page=' . (0 + $pageid)
        				. ' and ' . $condition . ' order by id desc');
        				$count = 0;
        				while ($text) {
        					$pred_text = dbSingleValue ($session, 'select max(id) from '
        						. dbTable ($session, T_Text) . ' where page=' . $pageid
        						. ' and createdat<'
        						. dbSqlDateTime ($session, $time_2));
        					echo '<tr><td>';
        					echo dbSingleValue ($session, 'select min(id) from '
        						. dbTable ($session, T_Text) . ' where page=' . $pageid)
        						== $text [0] ? 'Neu' : 'Änderung';
        					echo '</td><td>';
        					echo $text [0];
        					echo '</td><td>';
        					echo $count++ > 0 ? htmlentities ($page [0])
        						: guiInternLink ($session, $page [0], $page [0]);
        					echo '</td><td>';
        					guiAuthorLink ($session, $text [1]);
        					echo '</td><td>';
        					echo dbSqlDateToText ($session, $text [2]);
        					if ($pred_text > 0) {
        						echo '</td><td>';
        						guiInternLink ($session, $page [0] . '?action=' . A_Diff
        							. '&text_id=' . $pred_text . '&text_id2=' . $text [0],
        							'Unterschied zum Vortag (' . $pred_text . ')');
        					}
        					echo '</td></tr>' . "\n";
        					$text = dbNextRecord ($session);
        				}
        			}
        		}
        		} */
    }
    echo '</table>';
    guiStandardBodyEnd($session, Th_StandardBodyEnd);
}