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; } }
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 Ä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); }
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; }
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 Ä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); }
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; }
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); } } }