The
TWikiImplementations example twiki application dynamically creates a form that will create a new topic by using GMTIME. That works great until you submit from the same link more than once, in which case you stomp on a previously submitted topic. (We're using for project tracking.)
I made a small change to the edit script to allow this to be done in a mostly race-condition-free manner.
#
# Allow for dynamic topic creation if it contains a string of 10 x's XXXXXX
#
if ( $theTopic =~ /X{10}/o ) {
$theTopic =~ s|X{10}X*|substr(int($$) . int(rand(100000)) . int(time), 0, 10)|e;
}
I'd like to see something like this in the standard twiki. It basically just does a mktemp() style replacement.
The way I did it above is just a quick hack. It might make sense to add an extra parameter to the edit script dynamicname=1 or similar, and only do the substitution if that is set.
--
NathanNeulinger - 25 Feb 2003
File::Temp allows safely create unique file names - and IIRC it's part of standard perl distro?
--
PeterMasiar - 26 Feb 2003
for our bug tracking system I use sequential numbers. so far my extremely dumb method has not shown signs of slowing down (i start at one and increment until i can't find a topic, and use that).
--
SvenDowideit - 26 Feb 2003
I have attached a diff to the current cvs that uses my sequential topic numbers. The other thing is that it test to see if the topic, or a lock for that topic exists to stop overwriting other new topic entries. (it also has my HIDETEXTAREA tag) - I like the X{10} syntax - its simpler than the extra parameter
PeterT, can we add this to the main code?
--
SvenDowideit - 19 Mar 2003
I think this is a good idea. People are likely to want different ways of doing the numbering. I would suggest:
- Introduce the above xxx form
- Add a plugin hook to allow for other forms of numbering, might want to allow for different xxx format.
--
JohnTalintyre - 13 Jan 2004
To implement a Bug tracking system using DEVELOP, this patch will need to change a so that it is done in the save script. This is because there is no locking of a topic on edit in Dakar anymore. (and It makes the topic name creation more dynamic)
I also need a way to
HideTWikiEditTextArea
--
SvenDowideit - 1 May 2003
I just commited r4262 - a version of this feature that will eventually slow down your system
- as I'm using it for the upcoming
DevelopBranchBugTrackingSystem
--
SvenDowideit - 04 May 2005
I'm not sure if this is the official 'doc' for the implemented feature in Dakar, but I came here via the 4.0.2. feature list. I've changed the CurrentState to MergedToCore, since it's been released.
My question: I've built a small news apllication with the sequential numbering. To build a nice UI, I'd like to create links to the previous and the next news item. Is there a way to create these links in a template, i.e. without knowing the exact sequential number?
T.I.A.
--
JosMaccabiani - 13 May 2006
I was able to partly answer my own question using
SpreadSheetPlugin. If your dynamic topic name is TestTopicXXXXXXXXXX, then use:
Previous topic: TestTopic%CALC{"$SUM($VALUE(%TOPIC%),-1)"}%
Next topic: TestTopic%CALC{"$SUM($VALUE(%TOPIC%),+1)"}%
Of course, this doesn't work for the first topic, and for the last topic. For these topics, nothing should be displayed
--
JosMaccabiani - 13 May 2006
See proposed improvement at
AutoIncTopicNameOnSave.
--
PeterThoeny - 19 Jul 2006