[dokuwiki] Proposal: FS#113, notify changes
- From: Steven Danz <steven-danz@xxxxxxxxx>
- To: dokuwiki@xxxxxxxxxxxxx
- Date: Tue, 21 Jun 2005 21:23:15 -0500
Hello
I've worked up a patch for a first pass at allowing users to elect to
have email sent to them when pages of the wiki are updated. Andreas
suggested I post it and something of an overview of the approach to
generate some discussion. I haven't tried to 'darcs send' it, but I
could if that would be easier.
The idea is pretty simple. The patch adds a 'Track Changes' button at
the bottom of the page along side the Logout button. It only shows up
after a user has logged in as a login id will be needed later to look up
their email address. If the user presses the 'Track Changes' button,
their user id is added to a .mlist file that has the same base name and
lives in the same area at the .txt file for that page. If the user's id
is already in the .mlist file, the button reads 'Ignore Changes' and
pressing it removes the user from the .mlist file. I've tried to
leverage the locking routines to lock the file during writes, with a
wait/retry if the file is locked during an update. I've only added the
button text definitions to the English lang.php file at this time.
To send the mail, the notify() routine was updated to step through the
users in the .mlist file, looking up their user data to get their email
address and groups, and then checking the ACL permissions for the user.
If the user is allowed to read the page, they are included in the same
email that gets sent to the $conf['notify'] user. I put in the ACL
lookup just in case a user had permission to read the page, added
themselves to the .mlist, and then had the permission removed.
That pretty much covers it. We just started using DokuWiki at work, and
it has been a big hit. So far, this is the only feature that has been
requested, so I thought I would give it a try.
Let me know what you think, and thanks for your time.
Steven
New patches:
[track_changes.patch
Steven Danz <steven-danz@xxxxxxxxx>**20050622021728
First pass at chanegs to implement FS 113, a way to allow users to
'track' pages and receive email each time a page changes.
] {
hunk ./inc/actions.php 35
+
+ //check if user is asking to track a page
+ if($ACT == 'track' || $ACT == 'ignore')
+ $ACT = act_track($ACT);
hunk ./inc/actions.php 104
- 'diff','recent','backlink','admin',)) === false
+
'diff','recent','backlink','admin','track','ignore',)) === false
hunk ./inc/actions.php 271
+
+ return 'show';
+}
+
+/**
+ * Handle 'track', 'ignore'
+ *
+ * @author Steven Danz <steven-danz@xxxxxxxxx>
+ */
+function act_track($act){
+ global $ID;
+ global $INFO;
+
+ $try = 0;
+ while ($try < 5 && ($lockedby=checklock($ID,'mlist'))) {
+ $try++;
+ if ($try < 5) {
+ sleep(3);
+ }
+ }
+ if (!$lockedby) {
+ lock($ID,'mlist');
+ }
+ if (checklock($ID,'mlist')) {
+ msg('Failed to get lock on tracking file in 15 seconds, please try again
later', -1);
+ } else {
+ $tracking = tracking($ID, $_SERVER['REMOTE_USER']);
+ if ($act=='track' && !$tracking){
+ if ($INFO['userinfo']['mail']){
+ $file=wikiMN($ID);
+ $fh = fopen($file,'a');
+ if($fh){
+ fputs($fh,$_SERVER['REMOTE_USER']."\n");
+ fclose($fh);
+ }
+ msg('Added '.$INFO['userinfo']['name'].' to tracking list for '.$ID,0);
+ } else {
+ msg('There is no address associated with your login, you cannot be
added to the tracking list',-1);
+ }
+ } elseif ($act=='ignore' && $tracking){
+ $file=wikiMN($ID);
+ $mlist = file($file);
+ $fh = fopen($file,'w');
+ foreach ($mlist as $who) {
+ $who = rtrim($who);
+ if ($who!=$_SERVER['REMOTE_USER']) {
+ fputs($fh,$who."\n");
+ } else {
+ msg('Removed '.$INFO['userinfo']['name'].' from the tracking list
for '.$ID,0);
+ }
+ }
+ fclose($fh);
+ }
+
+ unlock($ID,'mlist');
+ }
hunk ./inc/common.php 303
-function checklock($id){
+function checklock($id,$type='wiki'){
hunk ./inc/common.php 305
- $lock = wikiFN($id).'.lock';
+ if (empty($type) || $type=='wiki') {
+ $lock = wikiFN($id).'.lock';
+ } elseif ($type=='mlist'){
+ $lock = wikiMN($id).'.lock';
+ } else {
+ msg('Cannot check lock on unknown file type '.$type, -1);
+ return true;
+ }
hunk ./inc/common.php 337
-function lock($id){
- $lock = wikiFN($id).'.lock';
+function lock($id,$type='wiki'){
+ if (empty($type) || $type=='wiki') {
+ $lock = wikiFN($id).'.lock';
+ } elseif ($type=='mlist'){
+ $lock = wikiMN($id).'.lock';
+ } else {
+ msg('Cannot lock unknown file type '.$type, -1);
+ return true;
+ }
+
hunk ./inc/common.php 360
-function unlock($id){
- $lock = wikiFN($id).'.lock';
+function unlock($id,$type='wiki'){
+ if (empty($type) || $type=='wiki') {
+ $lock = wikiFN($id).'.lock';
+ } elseif ($type=='mlist'){
+ $lock = wikiMN($id).'.lock';
+ } else {
+ msg('Cannot unlock unknown file type '.$type, -1);
+ return true;
+ }
+
hunk ./inc/common.php 603
+ $mfile=wikiMN($id);
+ if (file_exists($mfile)) {
+ @unlink($mfile);
+ }
hunk ./inc/common.php 659
- if(empty($conf['notify'])) return; //notify enabled?
+
+ $mlist = array();
+
+ $file=wikiMN($id);
+ if (file_exists($file)) {
+ $mlist = file($file);
+ }
+
+ if(empty($conf['notify']) && count($mlist) == 0) return; //notify enabled?
hunk ./inc/common.php 695
- mail_send($conf['notify'],$subject,$text,$conf['mailfrom']);
+ $bcc = '';
+ if(count($mlist) > 0) {
+ foreach ($mlist as $who) {
+ $who = rtrim($who);
+ $info = auth_getUserData($who);
+ $level = auth_aclcheck($id,$who,$info['grps']);
+ if ($level >= AUTH_READ) {
+ if (strcasecmp($info['mail'],$conf['notify']) != 0) {
+ if (empty($bcc)) {
+ $bcc = $info['mail'];
+ } else {
+ $bcc = "$bcc,".$info['mail'];
+ }
+ }
+ }
+ }
+ }
+
+ mail_send($conf['notify'],$subject,$text,$conf['mailfrom'],'',$bcc);
hunk ./inc/common.php 896
+/**
+ * Let us know if a user is tracking a page
+ *
+ * @author Steven Danz <steven-danz@xxxxxxxxx>
+ */
+function tracking($id,$uid){
+ $file=wikiMN($id);
+ if (file_exists($file)) {
+ $mlist = file($file);
+ foreach ($mlist as $who) {
+ $who = rtrim($who);
+ if ($who==$uid) {
+ return true;
+ }
+ }
+ }
+ return false;
+}
hunk ./inc/lang/en/lang.php 35
+$lang['btn_track'] = 'Track Changes';
+$lang['btn_ignore'] = 'Ignore Changes';
hunk ./inc/pageutils.php 134
+ * returns the full path to the mailist specified by ID
+ *
+ * The filename is URL encoded to protect Unicode chars
+ *
+ * @author Steven Danz <steven-danz@xxxxxxxxx>
+ */
+function wikiMN($id){
+ global $conf;
+ $id = cleanID($id);
+ $id = str_replace(':','/',$id);
+ $fn = $conf['datadir'].'/'.utf8_encodeFN($id).'.mlist';
+ return $fn;
+}
+
+/**
hunk ./inc/template.php 106
+ case 'track':
+ html_track();
+ break;
+ case 'ignore':
+ html_ignore();
+ break;
hunk ./inc/template.php 268
+ global $ACT;
hunk ./inc/template.php 311
+ case 'track':
+ if($conf['useacl'] && $ACT == 'show'){
+ if($_SERVER['REMOTE_USER']){
+ if(tracking($ID,$_SERVER['REMOTE_USER'])){
+ print html_btn('ignore',$ID,'',array('do' => 'ignore',));
+ } else {
+ print html_btn('track',$ID,'',array('do' => 'track',));
+ }
+ }
+ }
+ break;
hunk ./inc/template.php 407
+ break;
+ case 'track':
+ if($conf['useacl']){
+ if($_SERVER['REMOTE_USER']){
+ if(tracking($ID,$_SERVER['REMOTE_USER'])){
+
tpl_link(wl($ID,'do=ignore'),$pre.$lang['btn_ignore'].$suf,'class="action"');
+ } else {
+
tpl_link(wl($ID,'do=track'),$pre.$lang['btn_track'].$suf,'class="action"');
+ }
+ }
+ }
hunk ./lib/tpl/default/main.php 119
+ <?php tpl_button('track')?>
}
Context:
[do not use params parameter in call to mail() if unneeded #397
andi@xxxxxxxxxxxxxx**20050620203612]
[handle missing users.auth and acl.auth gracefully
andi@xxxxxxxxxxxxxx**20050620203400]
[ability to derefence ldap aliases #406
Holger Müller <zarath@xxxxxx>**20050620194652]
[basque update
xezpeleta@xxxxxxxxxxxxx**20050620193046]
[option merge of refcheck and refcount
matthiasgrimm@xxxxxxxxxxxxxxxxxxxxx**20050617201556
The options refcheck and refcount were merged to refcheck. This reduces
configuration options and make the function more robust.
]
[japanese language files
Davilin <webmaster@xxxxxxxxxxx>**20050618071754]
[fixed bug for MySQL passcrypt
dave.winter@xxxxxxxxxxxxxxxxx**20050617124215
Write the long patch description into this file.
The first line of this file will be the patch name.
Everything in this file from the above ***DARCS*** line on will be ignored.
This patch contains the following changes:
M ./inc/auth/mysql.php -1 +2
]
[minor fixes
andi@xxxxxxxxxxxxxx**20050617175013]
[XML conformity for media reference dialog
matthiasgrimm@xxxxxxxxxxxxxxxxxxxxx**20050617131041
XML has problems with the usual PHP shortcuts '<?' or '<?='.
This patch replaces such shortcuts with the XML compliant
versions in the mediafile references dialog. It is handled
separately because the reference check patch is not yet
merged to the upstream source
]
[make DokuWiki xml conform
matthiasgrimm@xxxxxxxxxxxxxxxxxxxxx**20050617130335
XML has problems with usual PHP shortcuts like '<?' or '<?='.
This patch replaces such shortcuts with the XML compliant
versions:
'<?' -> '<?php'
'<?=' -> '<?php echo'
]
[locks must not survive logoff
matthiasgrimm@xxxxxxxxxxxxxxxxxxxxx**20050617121838
If a user logout during editing an article, this article will be blocked
until end of timeout. This patch removes an open lock, if the user log off.
]
[search fix FS#395
matthiasgrimm@xxxxxxxxxxxxxxxxxxxxx**20050617113855
This patch fixes FS#395 and another bug in the fulltext search
which accepts single '+' and '-' signs as search input.
]
[media file reference missing file fix
matthiasgrimm@xxxxxxxxxxxxxxxxxxxxx**20050616171239
This file is missing in the media file reference checker patch
]
[media reference check part 2
matthiasgrimm@xxxxxxxxxxxxxxxxxxxxx**20050616163425
Part 1 only checks for the existance of references.
Part 2 will show where this references are so that the user
could easily find them.
Both parts are configurable:
refcheck=1 enables the reference checker
refcount defines how much references were collected during a check run
refshow =1 enables that the collected references were shown.
]
[media reference check
matthiasgrimm@xxxxxxxxxxxxxxxxxxxxx**20050605185038
This patch implements the first step of a media file reference
checker. Every time the user wanted to delete a media file
it would be ckecked for still existing references to this media
file. File deletion is denied if this media file is still in use.
]
[spellchecker fix for ignoring links
andi@xxxxxxxxxxxxxx**20050617094826]
[use $conf[title] in notify mails #374
andi@xxxxxxxxxxxxxx**20050617084820]
[spanish language update
Adrián Ariza <adrian_ariza.ciudad.com.ar>**20050616161741]
[correction of typos
matthiasgrimm@xxxxxxxxxxxxxxxxxxxxx**20050615175208
A wrong variable name was used in the english language file and
an gramatically mistake in function comments was corrected.
]
[Norwegian Language Update
Jorge Barrera Grandon <jorge@xxxxxxxxxxxxxxxxx>**20050615083147]
[fix for interwiki gif icons
andi@xxxxxxxxxxxxxx**20050614175335]
[Spellchecker: use UTF-8 workaround only if needed
andi@xxxxxxxxxxxxxx**20050614174004
The spellchecker now tests the browsers UTF-8 compliance and only uses
the entitiy encoding if needed. This hopefully fixes problems with
Safari.
]
[spellchecker should not check links
matthiasgrimm@xxxxxxxxxxxxxxxxxxxxx**20050613215834
The spellchecker should not check links because this are
mostly no real words. This patch installs some filters
so that links won't be transfered to the spellchecker.
]
[spellchecker button control
matthiasgrimm@xxxxxxxxxxxxxxxxxxxxx**20050613182725
This patch replaces the big textual spellchecker controls with
a nice one using toolbar like buttons
]
[spellchecker fix for broken aspell
matthiasgrimm@xxxxxxxxxxxxxxxxxxxxx**20050612154241
The current Aspell version has a bug that causes a corrupt output file.
Output lines beginning with '?' weren't terminated with a newline.
This patch fixes the broken output format.
It is not possible to detect automatically if a Aspell version handles
'?'-lines correctly. Therefore DokuWiki checks for Aspells version
number and corrects the output format accordingly if version <= 0.60.3.
This is todays latest release so that we must have an eye on this
problem and prove wether future Aspell versions would still have this
bug. If so, the number in the version number test in /inc/aspell.php
must be adapted.
]
[lexer support for subpatterns, fixed windowsshare links #368
andi@xxxxxxxxxxxxxx**20050612183557]
[mysql auth: added support for old passchecking method #359
andi@xxxxxxxxxxxxxx**20050612111044
This patch changes the mysql auth mechanism to support the old
method of password checking (leaving it to the DB) as well as
the new one. Which one is used is decided on which option is
defined:
$conf['auth']['mysql']['passcheck'] now behaves as in older
releases, You can use %u, %g and %p where %p contains the
cleartext password entered by the user. Access is granted
if the SQL statement returns one result row.
if $conf['auth']['mysql']['getpass'] is defined it is used
to fetch the crypted password from the database which is then
checked with auth_verifyPassword() - This is the preferred
method.
Users of the devel need to change their config by renaming
passcheck to getpass
]
[aspell error workaround
matthiasgrimm@xxxxxxxxxxxxxxxxxxxxx**20050611144306
Aspell breaks its own output format due to undocumented features.
This patch worked around this error. Problems regarding freezing
of the spellchecker or jammed wiki pages through the spellchecker
are solved.
]
[Update and fix in Portuguese (Brazil) translation
loug85@xxxxxxxxx**20050611174723]
[small spellchecker fix for suggestions with spaces or singlequotes
andi@xxxxxxxxxxxxxx**20050611123804]
[spellchecker: compensate for aspell error and blocking problems
andi@xxxxxxxxxxxxxx**20050611121059
Sometimes Aspell seems to output not enough blank lines to signal
a line change. This patch tries to compensate for this by trying
the next two lines as well.
This patch also fixes a problem were reading from aspell could
produce a deadlock on the socket and would cause the spellchecker
to never return
]
[spellchecker fixes for Konqeror
andi@xxxxxxxxxxxxxx**20050611092916
Konqeror seems to ignore the charset=utf-8 header in XMLhttpRequests
responses as workaround all multibyte chars in answers from
spellcheck.php are now encoded as numeric entities and decoded back
on the clientside.
Spellchecking now works for me with Firefox 1.04, MSIE 6, Opera 8 and
Konqeror 3.3.2. It should also work with Safari and all current
Mozilla-based Browsers.
]
[Added option to manually change a misspelled word
andi@xxxxxxxxxxxxxx**20050609233643]
[Spellchecker fix for large files
andi@xxxxxxxxxxxxxx**20050609230143]
[spellchecker fix for eating whitespaces
andi@xxxxxxxxxxxxxx**20050609183709]
[danish language update
koeppe <koeppe@xxxxxxxx>**20050609170153]
[proper quoting of single quotes in spellcheck
andi@xxxxxxxxxxxxxx**20050609161958]
[spellchecker style fix for Safari
andi@xxxxxxxxxxxxxx**20050609111344]
[session_write_close added #364
andi@xxxxxxxxxxxxxx**20050608213514
I just learned that PHP does lock it's session objects. This is realy
bad if you have multiple images in a page as each one will call fetch.php
which locks the session, so everything can only be loaded sequentially.
The fix for this is to close the session after using it which is after doing
the auth and the breadcrumbs. I added the needed calls everywhere.
]
[Allow source view with read only permissions #383
andi@xxxxxxxxxxxxxx**20050608210912]
[fixed grammar in de lang file
andi@xxxxxxxxxxxxxx**20050608210819]
[da language update
andi@xxxxxxxxxxxxxx**20050608201217]
[nl language update
Jack van Klaren <dokuwiki@xxxxxxxxxxxxxxxxx>**20050608201144]
[heading buttons height adjustment
matthiasgrimm@xxxxxxxxxxxxxxxxxxxxx**20050608172429
The editor buttons for the headlines were 1px to high. This patch
fixes that.
]
[fixed JS error when spellchecker is disabled
andi@xxxxxxxxxxxxxx**20050608194746]
[Spellchecker fixes
andi@xxxxxxxxxxxxxx**20050608182758
The spellchecker now works in IE6, Firefox and Opera 8 :-)
SACK was updated to the latest release (plus a minor fix)
Proper UTF-8 headers were added to the AJAX PHP backends
]
[et language update
Kaiko Kaur <kaiko@xxxxxxxxxxxxxx>**20050607200902]
[da update
koeppe <koeppe@xxxxxxxx>**20050607200309]
[IE secedit button fix
matthiasgrimm@xxxxxxxxxxxxxxxxxxxxx**20050607164818
IE displays the sector edit buttons bigger than designed.
This is a known problem of the special Microsoft box model
the IE uses. This patch adjusts the buttons height to the
desired value but they are still too wide. As I understand
certain internet sources right: There is no solution for
this. Whatever, let's enjoy what we have.
]
[AJAX spellchecker #29
andi@xxxxxxxxxxxxxx**20050607194456
This is nearly a complete rewrite of the gmail like AJAX spellchecker
from http://www.broken-notebook.com/spell_checker/index.php
Here are the differences and features
* seemless integrated into DokuWiki
* no need for the pspell extension
* needs GNU aspell installed (not sure about the version I guess
0.60+ for UTF8)
* needs PHP 4.3.0+
* uses SACK for AJAX
* gets errors and suggestions in one transfer
So far only tested in Firefox. It should work in IE, Safari and
Opera 8, too. Please test and report back.
]
[TOC arrow with simple transparency
matthiasgrimm@xxxxxxxxxxxxxxxxxxxxx**20050606163659
This patch exchanges the images for the TOC arrow from
PNG with alpha channel to GIF with transparent background.
This is done because the IE doesn't cope with transparent
PNG images very well. Shame on you Microsoft.
]
[IE text entry height adjustment
matthiasgrimm@xxxxxxxxxxxxxxxxxxxxx**20050606165106
The height of text entry field look different in height between
IE and Firefox. This patch adjusts the CSS files that both look
the same.
]
[cache control header
matthiasgrimm@xxxxxxxxxxxxxxxxxxxxx**20050606154420
This patch adds a cache control header to fetch.php. Without
this header media files can't be opened and viewed with third
party programs directly from the IE browser window. For eg.
Acrobat Reader will display an error message after clicking
on a link to a PDF file. Firefox will work without it.
]
[Extending useheading
chris@xxxxxxxxxxxxxxxxx**20050605132931
This patch will extend the useheading configuration setting to apply to
- search page
- backlinks page
- recent changes page
]
[fetch directory structure fix
matthiasgrimm@xxxxxxxxxxxxxxxxxxxxx**20050605130154
fetch.php was not fully adapted to the new directory structure - fixed
]
[media popup directory structure fix
matthiasgrimm@xxxxxxxxxxxxxxxxxxxxx**20050605125410
The media popup was not fully adapted to the new directory
structure - fixed
]
[moved lang directory into inc dir
andi@xxxxxxxxxxxxxx**20050605110714]
[Strike-through Quick Button
chris@xxxxxxxxxxxxx**20050605110302]
[extended search fix no. 2
matthiasgrimm@xxxxxxxxxxxxxxxxxxxxx**20050605085854
The last patches confused darcs so we get a mixed up code.
This patch corrected the mess hopefully.
]
[directory layout cleanup !IMPORTANT
andi@xxxxxxxxxxxxxx**20050605103842
This patch changes the directory structure of dokuwiki as suggested
in http://www.freelists.org/archives/dokuwiki/06-2005/msg00045.html
As the changes.log is not managed through darcs you need to move it your
self to the new location in data/changes.log
I think I modified the code at all nessessary places, but I may have
forgotten a few things.
]
[extended search fix
matthiasgrimm@xxxxxxxxxxxxxxxxxxxxx**20050604212026
This patch fixes a bug in the search code and did some
optimizations. Furtheron queries with only excluded
words will be rejected because they won't produce
usable output and waste only time.
]
[extended search fix
matthiasgrimm@xxxxxxxxxxxxxxxxxxxxx*-20050604194621
This patch fixes a bug in the search code and did some
small optimizations.
The possibility to start a search with _only_ excluded
words (only words start with a minus sign) was disabled
because this seem to crash PHP 4.3.10 (at least the ppc
version :-()
]
[much better Opera 8 AJAX fix (no fallback to GET needed)
andi@xxxxxxxxxxxxxx**20050604215355]
[AJAX fix for Opera 8
andi@xxxxxxxxxxxxxx**20050604211320]
[extended search fix
matthiasgrimm@xxxxxxxxxxxxxxxxxxxxx**20050604194621
This patch fixes a bug in the search code and did some
small optimizations.
The possibility to start a search with _only_ excluded
words (only words start with a minus sign) was disabled
because this seem to crash PHP 4.3.10 (at least the ppc
version :-()
]
[removed SACK warning for older browsers #369
andi@xxxxxxxxxxxxxx**20050604185143
Older Browsers (Opera) got a warning from the new AJAX stuff. It's a bug
in SACK described at
http://twilightuniverse.com/2005/05/sack-of-ajax/#comment-594
I just removed it from tw-sack.js
I also added the line suggested at
http://twilightuniverse.com/2005/05/sack-of-ajax/#comment-597 - not
used yet but may come in handy
]
[nl update
Jack van Klaren <dokuwiki@xxxxxxxxxxxxxxxxx>**20050604184408]
[Mediafile Deletion and Overwrite Handling #200
andi@xxxxxxxxxxxxxx**20050603205501
This patch enhances the ACL feature by adding another Permission called DELETE
- this permission
allows a user to delete or overwrite existing mediafiles. Users with UPLOAD
permission are no longer
allowed to overwrite media files.
Users whith DELETE permissions now need to check an additional checkbox to
overwrite existing files,
this is to prevent accidently deletions.
Please note: If no ACL is used UPLOAD rights are assumed for everybody - not
DELETE rights. This
changes the behaviour from previous versions as UPLOAD does not allow
overwriting anymore.
]
[extended search function
matthiasgrimm@xxxxxxxxxxxxxxxxxxxxx**20050603182746
The DokuWiki search function uses 'OR' to combine
multiple search words. This behaviour is unusual and
not very helpful to narrow the search results.
This patch changed the behaviour to 'AND'. Multiple
search words will reduce the count of search results.
It uses assertions now. This has the big advantage
that only one regular expression have to be processed
for each file and the behaviour can be changed easily.
The functionallity has been extended: Words with a
preceding minus sign (-) will be excluded from and
words with a preceding plus sign (+) will be included
in the search results. Is a preceding sign is missing
(+) is assumed.
]
[keep search input on search page
matthiasgrimm@xxxxxxxxxxxxxxxxxxxxx**20050601163504
This patch modifies the search input form so that the search input
is kept as long as the user stays on the search page. This is pure
comfort because he is able to optimise his query step by step without
the need of typing in the query multiple times.
]
[String quoting in TOC toggle code
matthiasgrimm@xxxxxxxxxxxxxxxxxxxxx**20050531193827
This patch changed the string quoting in the TOC toggle button code.
The HTML code looks better.
]
[toc toggle button
matthiasgrimm@xxxxxxxxxxxxxxxxxxxxx**20050531184155
The TOC toggle button was very small and inconspicuous. This patch
replaces the old one with small arrows placed at the right border
of the TOC header.
Code cleanup in html.php: html_toc() and html_list_toc() are obsolete
and have been removed.
]
[add a back button to parent page
matthiasgrimm@xxxxxxxxxxxxxxxxxxxxx**20050519174025
This patch extends the template functions with back
button linking to the current pages' parent if
available. Both tpl_button() and tpl_actionlink()
are supported.
For this to work the first page in the namespace must
have the same name as the namespace itself. The 'back'
button of every page in this namespace links to
namespace:namespace. The 'back' button of the page
namespace:namespace links to the first page of the
containing namespace and so forth until the start page
has been reached.
Because of the precondition decribed above, the default
template hasn't got the new 'back' button. It is reserved
for custom made templates and installations which take
care of the precondition.
]
[TAG develsnap 2005-05-31
andi@xxxxxxxxxxxxxx**20050531214447]
Patch bundle hash:
a2a33ad0adfddc1105092ae8f4ae7638bab2fb25
- Follow-Ups:
- [dokuwiki] Re: Proposal: FS#113, notify changes
- From: Andreas Gohr
Other related posts:
- » [dokuwiki] Proposal: FS#113, notify changes
- » [dokuwiki] Re: Proposal: FS#113, notify changes
- » [dokuwiki] Re: Proposal: FS#113, notify changes
- » [dokuwiki] Re: Proposal: FS#113, notify changes
- » [dokuwiki] Re: Proposal: FS#113, notify changes
- » [dokuwiki] Re: Proposal: FS#113, notify changes
- » [dokuwiki] Re: Proposal: FS#113, notify changes
- [dokuwiki] Re: Proposal: FS#113, notify changes
- From: Andreas Gohr