Example #1
0
function guiBacklinks(&$session, $page_name)
{
    $session->trace(TC_Gui1, 'pluginBacklinks');
    $name = $page_name;
    $condition = '(text like ' . dbSqlString($session, '%' . $name . '%');
    if (normalizeWikiName($session, $name)) {
        $condition .= ' or text like ' . dbSqlString($session, '%' . $name . '%');
    }
    $condition .= ') and replacedby is NULL';
    if (!($ids = dbColumnList($session, T_Text, 'distinct page', $condition))) {
        guiParagraph($session, 'keine Verweise auf ' . $page_name . ' gefunden', false);
    } else {
        echo TAG_PARAGRAPH;
        echo 'Es gibt folgende Verweise auf ';
        guiInternLink($session, encodeWikiName($session, $name), $page_name);
        echo TAG_PARAGRAPH_END;
        echo TAG_ULIST;
        foreach ($ids as $ii => $id) {
            $page = dbGetRecordById($session, T_Page, $id, 'name');
            echo TAG_LISTITEM;
            guiInternLink($session, encodeWikiName($session, $page[0]), $page[0]);
            echo TAG_LISTITEM_END;
        }
        echo TAG_ULIST_END;
    }
}
Example #2
0
function admRename(&$session, $message)
{
    global $rename_oldname, $rename_newname, $rename_backlinks;
    $session->trace(TC_Gui1, 'admRename');
    guiHeader($session, 'Umbenennen einer Seite');
    guiHeadline($session, 1, 'Umbenennen einer Seite');
    if (!empty($message)) {
        guiParagraph($session, $message, false);
    }
    guiStartForm($session, 'Form', P_Rename);
    echo '<table border="0">';
    echo '<tr><td>Bisheriger Name:</td><td>';
    guiTextField('rename_oldname', $rename_oldname, 64, 64);
    echo '<tr><td>Neuer Name:</td><td>';
    guiTextField('rename_newname', $rename_newname, 64, 64);
    echo '</td></tr>' . "\n";
    echo '<tr><td></td><td>';
    guiButton('rename_info', 'Info');
    if (!empty($rename_oldname) && !empty($rename_newname)) {
        echo ' | ';
    }
    guiButton('rename_rename', 'Umbenennen');
    echo '<br>';
    guiCheckBox('rename_backlinks', 'Alle Verweise umbenennen', !isset($rename_backlinks) || $rename_backlinks == C_CHECKBOX_TRUE);
    echo '</td></tr></table>' . "\n";
    guiFinishForm($session);
    if (!empty($rename_oldname) && dbPageId($session, $rename_oldname) > 0) {
        $row = dbFirstRecord($session, 'select page,text,createdby,createdat from ' . dbTable($session, T_Text) . ' where replacedby is null and text like ' . dbSqlString($session, "%{$rename_oldname}%"));
        if (!$row) {
            guiParagraph($session, '+++ keine Verweise gefunden', false);
        } else {
            echo '<table border="1"><tr><td>Seite:</td><td>Typ:</td>' . '<td>von</td><td>Letzte &Auml;nderung</td><td>Fundstelle</td></tr>';
            while ($row) {
                $pagerecord = dbGetRecordById($session, T_Page, $row[0], 'name,type');
                $text = findTextInLine($row[1], $rename_oldname, 10, true);
                if (!empty($text)) {
                    echo "\n<tr><td>";
                    guiInternLink($session, encodeWikiName($session, $pagerecord[0]), $pagerecord[0], M_Base);
                    echo '</td><td>';
                    echo $pagerecord[1];
                    echo '</td><td>';
                    echo $row[2];
                    echo '</td><td>';
                    echo htmlentities($row[3]);
                    echo '</td><td>';
                    echo $text;
                    echo "</td><tr>\n";
                }
                $row = dbNextRecord($session);
            }
            echo "\n</table>\n";
        }
    }
    guiFinishBody($session, null);
}
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);
}
Example #4
0
 function setMacro($name, $value)
 {
     switch ($name) {
         case TM_PageName:
             $value = encodeWikiName($this, $value);
             break;
         case TM_PageLink:
             $value = encodeWikiName($this, $value);
             break;
         case TM_PageChangedBy:
             $value = htmlentities($value);
             break;
         default:
             break;
     }
     $this->fMacros[$name] = $value;
 }
Example #5
0
function admRename(&$session, $message)
{
    $session->trace(TC_Gui1, 'admRename');
    admStandardHeader($session, 'Umbenennen einer Seite');
    if (!empty($message)) {
        guiParagraph($session, $message, false);
    }
    guiStartForm($session);
    outTableAndRecord();
    outTableTextField($session, 'Bisheriger Name:', 'rename_oldname', null, 64, 64);
    outTableRecordDelim();
    outTableTextField($session, 'Neuer Name:', 'rename_newname', null, 64, 64);
    outTableRecordDelim();
    outTableCell(' ');
    outTableDelim();
    outButton($session, 'rename_info', 'Info');
    if (!empty($_POST['rename_oldname']) && !empty($_POST['rename_newname'])) {
        echo ' | ';
        outButton($session, 'rename_rename', 'Umbenennen');
        outNewline();
        outCheckBox($session, 'rename_backlinks', 'Alle Verweise umbenennen', null);
    }
    outTableDelimAndRecordEnd();
    outTableEnd();
    guiFinishForm($session);
    if (!empty($_POST['rename_oldname']) && dbPageId($session, $_POST['rename_oldname']) > 0) {
        $row = dbFirstRecord($session, 'select page,text,createdby,createdat from ' . dbTable($session, T_Text) . ' where replacedby is null and text like ' . dbSqlString($session, '%' . $_POST['rename_oldname'] . '%'));
        if (!$row) {
            guiParagraph($session, '+++ keine Verweise gefunden', false);
        } else {
            outTableAndRecord(1);
            outTableCellStrong('Seite');
            outTableCellStrong('Typ');
            outTableCellStrong('von');
            outTableCellStrong('Letzte &Auml;nderung');
            outTableCellStrong('Fundstelle');
            outTableCellStrong('Seite');
            outTableRecordEnd();
            while ($row) {
                $pagerecord = dbGetRecordById($session, T_Page, $row[0], 'name,type');
                $text = findTextInLine($row[1], $_POST['rename_oldname'], 10, true);
                if (!empty($text)) {
                    outTableRecord();
                    outTableInternLink($session, null, encodeWikiName($session, $pagerecord[0]), $pagerecord[0], M_Base);
                    outTableCell($pagerecord[1]);
                    outTableCell($row[2]);
                    outTableCell(htmlentities($row[3]));
                    outTableCell($text);
                    outTableRecordEnd();
                }
                $row = dbNextRecord($session);
            }
            outTableEnd();
        }
    }
    admFinishBody($session);
}
Example #6
0
 function replaceMacrosNoHTML($text)
 {
     $this->trace(TC_Session2, 'replaceMacrosNoHTML: ' . $text);
     $count = 0;
     $again = ($pos = strpos($text, Macro_Char)) >= 0 && is_int($pos);
     $this->trace(TC_Session3, 'replaceMacrosNoHTML-2: ' . (0 + $again));
     while ($again) {
         $again = false;
         if (($pos = strpos($text, TM_MacroPrefix)) >= 0 && is_int($pos)) {
             $text = preg_replace($this->fMacroReplacementKeys, $this->fMacroReplacementValues, $text);
             $this->trace(TC_Session3, 'replaceMacrosNoHTML-3: ' . $text);
             if (++$count < 6) {
                 $again = true;
             } else {
                 $macroname = substr($text, $pos, 20);
                 $this->trace(TC_Error, 'replaceMacrosNoHTML: zu verschachtelt: Pos: ' . $pos . " Makro: {$macroname}  {$text}");
                 break;
             }
         }
         $text = str_replace(TM_CurrentUser, htmlentities($this->fUserName), $text);
         $text = str_replace(TM_CurrentDate, strftime('%Y.%m.%d'), $text);
         $text = str_replace(TM_CurrentDateTime, strftime('%Y.%m.%d %H:%M'), $text);
         $text = str_replace(TM_PageName, $this->fPageName, $text);
         $text = str_replace(TM_PageLink, encodeWikiName($this, $this->fPageName), $text);
         $text = str_replace(TM_PageTitle, $this->fPageTitle, $text);
         $text = str_replace(TM_BasarName, $this->fMacroBasarName, $text);
         $text = str_replace(TM_PageChangedAt, $this->fPageChangedAt, $text);
         if (($pos = strpos($text, TM_RuntimePrefix)) >= 0 && is_int($pos)) {
             $time = getMicroTime($this) - $this->fStartTime;
             $pos = strpos($time, '.');
             $text = str_replace(TM_RuntimeSecMilli, substr($time, 0, $pos + 4), $text);
             $text = str_replace(TM_RuntimeSecMicro, substr($time, 0, $pos + 4), $text);
         }
         $text = str_replace(TM_PageChangedBy, htmlentities($this->fPageChangedBy), $text);
     }
     #$this->trace (TC_Session2, 'replaceMacrosNoHTML-e: ' . $text);
     return $text;
 }
Example #7
0
function writeWikiName($name, $text, &$status)
{
    $status->trace(TC_Util2, "WriteWikiName: {$name} / {$text}");
    if (empty($text)) {
        $text = $name;
    }
    if (substr($name, 0, 1) == "!") {
        echo htmlentities(substr($name, 1));
    } else {
        $link = encodeWikiName($status->fSession, $name);
        if (dbPageId($status->fSession, $name) > 0) {
            guiInternLink($status->fSession, $link, $text);
        } else {
            guiPageReference($status->fSession, $link, $text);
        }
    }
}