Revision [12337]
This is an old revision of SuggestionBox made by JonathanMitchem on 2005-12-19 17:42:45.
Suggestion Box
New Wikka Tracker available
We are happy to announce that Wikka has just opened a dedicated issue tracker. We are currently migrating open issues, bugs and feature requests from this site to the new server. Should you need to report new bugs/issues or suggest new features, you are invited to use the tracker. Thanks for your understanding.
Feedback is welcomed and appreciated. Use the form or edit this page.
Please help to keep this page readable: add new entries at the top (right below the form) and add a header!
Bugs vs. feature suggestions
Please post issues/bugs to the appropriate page:- General bugs/issues: WikkaBugs
- CSS layout issues: WikkaCSS
- SuggestionsArchive for resolved suggestions
Issues often asked for
see also:
Fill in the form below to send us your comments:
Accesskeys for the footer functions
accesskeys are great for more tech savvy users, a real time saver.
it is trivial to add these, just edit actions/footer.php find the <a href>
and add accesskey="key".
i have added "e" for edit, "h" history, "r" for revisions, and "s" for the searchbox.
it would be also nice to add "c" for CategoryCategory but the i am not that
familiar with the header generating (yet).
should i submit this as a patch? how does one submit patches?
IE SCREW UP
Does a fresh install not work at all with IE? Im getting a screen w/o any css formatting..ANSWER:
Check the file wikka.config.php
Probably you forgot the trailing slash at the end of your wikki path, Look for: "base_url"
--TomEk
On WikiEdit
Search within the textbox: its pain to find where you want to edit in long pages.How about integrating a search function in wikiEdit, or implementing paragraph editing like wikipedia.
Also how about anchor in wikiedit and a way to link to them ?
--GiorgosKontopoulos
- Hi George, have a look at AnchorAction (including my mods at the bottom of the page).
See http://www.dynamicdrive.com/dynamicindex11/findpage.htm for a "search in page" feature you might consider adding in. --GmBowen
wikiwyg
copied from UnderDevelopment --NilsLindenbergNot sure where an appropriate place for feature requests is so here goes:
http://ross.typepad.com/blog/2005/08/wikiwyg.html
--gw.netwide.com.au (2005-08-22 02:28:01)
now supports IE....see www.wikiwyg.net --GmBowen
Automatic conversion from HTML to WakkiWiki syntax
Does such thing exist? For a number of other Wikies, it does.It should be nice (one could say, essential) to have this here, too.
--CsillagKristof
:Try out http://diberri.dyndns.org/html2wiki.html (Won't work with tables yet). --NilsLindenberg
Improved code for error messages in Action() method
The Action() method in wikka.php produces errors in some cases; the error class was implemented as a span rather than directly on the <em> element surrounding the message. The span elements are superfluous and bad coding style.Change:
- function Action($action, $forceLinkTracking = 0)
- {
- // only search for parameters if there is a space
- {
- // treat everything after the first whitespace as parameter
- // extract $action and $vars_temp ("raw" attributes)
- if ($action) {
- // match all attributes (key and value)
- // prepare an array for extract() to work with (in $this->IncludeBuffered())
- $vars[$matches[1][$a]] = $matches[2][$a];
- }
- }
- } else {
- return "<span class='error'><em>Unknown action; the action name must not contain special characters.</em></span>"; // <<< the pattern ([A-Za-z0-9])\s+ didn't match!
- }
- }
- if (!preg_match("/^[a-zA-Z0-9]+$/", $action)) return "<span class='error'><em>Unknown action; the action name must not contain special characters.</em></span>";
- if (!$forceLinkTracking) $this->StopLinkTracking();
- $result = $this->IncludeBuffered(strtolower($action).".php", "<em>Unknown action \"$action\"</em>", $vars, $this->config["action_path"]);
- $this->StartLinkTracking();
- return $result;
- }
to:
// JW Action() modified to allow attributes in single quotes
// JW 2005-07-08 error class moved to em
function Action($action, $forceLinkTracking = 0)
{
$action = trim($action);
$vars=array();
// only search for parameters if there is a space
if (is_int(strpos($action, ' ')))
{
// treat everything after the first whitespace as parameter
preg_match('/^([A-Za-z0-9]*)\s+(.*)$/', $action, $matches);
// extract $action and $vars_temp ("raw" attributes)
list(, $action, $vars_temp) = $matches;
if ($action) {
// match all attributes (key and value)
preg_match_all('/([A-Za-z0-9]*)=("|\')(.*)\\2/U', $vars_temp, $matches);
// prepare an array for extract() to work with (in $this->IncludeBuffered())
if (is_array($matches)) {
for ($a = 0; $a < count($matches[0]); $a++) {
$vars[$matches[1][$a]] = $matches[3][$a];
}
}
$vars['wikka_vars'] = trim($vars_temp); // <<< add the buffered parameter-string to the array
} else {
#return '<span class="error"><em>Unknown action; the action name must not contain special characters.</em></span>'; // <<< the pattern ([A-Za-z0-9])\s+ didn't match!
return '<em class="error">Unknown action; the action name must not contain special characters.</em>'; // <<< the pattern ([A-Za-z0-9])\s+ didn't match!
}
}
#if (!preg_match('/^[a-zA-Z0-9]+$/', $action)) return '<span class="error"><em>Unknown action; the action name must not contain special characters.</em></span>';
if (!preg_match('/^[a-zA-Z0-9]+$/', $action)) return '<em class="error">Unknown action; the action name must not contain special characters.</em>';
if (!$forceLinkTracking) $this->StopLinkTracking();
#$result = $this->IncludeBuffered(strtolower($action).'.php', '<em>Unknown action "'.$action.'"</em>', $vars, $this->config['action_path']);
$result = $this->IncludeBuffered(strtolower($action).'.php', '<em class="error">Unknown action "'.$action.'"</em>', $vars, $this->config['action_path']);
$this->StartLinkTracking();
return $result;
}
// JW 2005-07-08 error class moved to em
function Action($action, $forceLinkTracking = 0)
{
$action = trim($action);
$vars=array();
// only search for parameters if there is a space
if (is_int(strpos($action, ' ')))
{
// treat everything after the first whitespace as parameter
preg_match('/^([A-Za-z0-9]*)\s+(.*)$/', $action, $matches);
// extract $action and $vars_temp ("raw" attributes)
list(, $action, $vars_temp) = $matches;
if ($action) {
// match all attributes (key and value)
preg_match_all('/([A-Za-z0-9]*)=("|\')(.*)\\2/U', $vars_temp, $matches);
// prepare an array for extract() to work with (in $this->IncludeBuffered())
if (is_array($matches)) {
for ($a = 0; $a < count($matches[0]); $a++) {
$vars[$matches[1][$a]] = $matches[3][$a];
}
}
$vars['wikka_vars'] = trim($vars_temp); // <<< add the buffered parameter-string to the array
} else {
#return '<span class="error"><em>Unknown action; the action name must not contain special characters.</em></span>'; // <<< the pattern ([A-Za-z0-9])\s+ didn't match!
return '<em class="error">Unknown action; the action name must not contain special characters.</em>'; // <<< the pattern ([A-Za-z0-9])\s+ didn't match!
}
}
#if (!preg_match('/^[a-zA-Z0-9]+$/', $action)) return '<span class="error"><em>Unknown action; the action name must not contain special characters.</em></span>';
if (!preg_match('/^[a-zA-Z0-9]+$/', $action)) return '<em class="error">Unknown action; the action name must not contain special characters.</em>';
if (!$forceLinkTracking) $this->StopLinkTracking();
#$result = $this->IncludeBuffered(strtolower($action).'.php', '<em>Unknown action "'.$action.'"</em>', $vars, $this->config['action_path']);
$result = $this->IncludeBuffered(strtolower($action).'.php', '<em class="error">Unknown action "'.$action.'"</em>', $vars, $this->config['action_path']);
$this->StartLinkTracking();
return $result;
}
Now implemented as beta on this site. --JavaWoman
Files Management
copied from FilesManagementSolution --JWLink to files, rather than upload? Would it be possible to add the functionality so that rather than store the files within the Wikki, there was an option box for 'link' as well as upload. This would be useful on internal wikki deployments where you want to avoid file duplication by allowing users to point at the file to create a link to that file on a separate internal server. - RogerD
Exclude certain CamelCase words from formatting
Popular Scottish surnames such as McKenna are wrongly being interpreted as WikiNames - is there any way to prevent that happening?
-- host86-133-223-194.range86-133.btcentralplus.com (2005-07-09 13:23:06)
How about something like a lookup table where WikiAdmins enter a list of words that will be ignored for formatting on all pages? -- JsnX
- Sounds like a nice addition. Two suggestions: 1) CamelCase parsing should be made optional in the config file. 2) the list of words to be skipped could be implemented as a wiki page (something similar has been proposed for menus, acronyms and group management): this would make it a lot easier to maintain the list. My 2 cents -- DarTar
- Displaying words with capital letters in the "middle" as WikiNames is a real problem. I don't want to turn off the automatic parsing because these words ARE WikiNames in most cases. It seems to me that a lookup table (e.g. a list of words as a wiki page) costs a lot of time to maintain. My suggestion is simple: "McKenna" should be interpreted as a wiki name. "Mc _ Kenna" (with underscore) should NOT be interpreted as a wiki name but written without underscore. "Mc _ _ Kenna" (with multiple underscores) should be converted to "Mc _ Kenna" (ignore the spaces, please). -- MichaelSchams
- Ok this is probably stupid to point out but if you put double double quotes around words they aren't parsed by the wiki so if you want McKenna to not become a link you can say McKenna and voila... -- DanielMcNair (who has this problem regularly...) (-:
Automatic summary
copied from Sourceforge --NilsLindenbergIs it possible to display through an action a little summary of the categories and sub categories available from the page we are in ?
Improving Wikka
A nice list of suggestions can be found at: By Blood and bone.
Import WikiPedia database
How can I import the Wikipedia database? I don't want to use MediaWiki. Any idea?- Sorry, there is no filter yet to convert MediaWiki content to WikkaWiki content, but it sounds like a nice feature suggestion. After all MW markup is quite stable... This said, do you really mean you want to import the actual Wikipedia database and have it run on a different wiki engine? -- DarTar
- Yes, i want. It would be great. Maybe other sites will change to WikkaWikki when they can import a MediaWiki databse.
Note on edit, mandatory field
I think it would be a good ide to let the administrator choose if the field is mandatory.If it is, the form doesn't submit until there is content into it, and it should warn too with an alertbox.
Only a little bit of PHP is necessary, the big part is in JS, if i don't make any mistake...
--SamuelDr
- Actually, for the most basic validation, you don't even need any JS. I have implemented both, but the integration of the client side validation using JS is a bit of a hack (and needs to be streamlined, and own't currently work as an administrator setting), so I'm a bit hesistant to publish it (also I'm not sure on what page, I'm still a bit new here).
- The server side validation goes like this. First, add a line to wikka.config.php:
-
"edit_note_required" => true,
- Then modify handlers/page/edit.php. Find the code that says
-
// check for overwriting
if ($this->page)
{
if ($this->page['id'] != $_POST['previous'])
{
$error = 'OVERWRITE ALERT: This page was modified by someone else while you were editing it.<br />'."\n".'Please copy your changes and re-edit this page.';
}
}
- and modify it so it says:
-
// check for overwriting
if ($this->page)
{
if ($this->page['id'] != $_POST['previous'])
{
$error = 'OVERWRITE ALERT: This page was modified by someone else while you were editing it.<br />'."\n".'Please copy your changes and re-edit this page.';
}
}
// check for edit note
if ($this->config['edit_note_required'] && $_POST['note']=='')
{
$error .= 'EDIT NOTE ALERT: You must include an edit note!<br/>'."\n";
}
Login using retrieved password
The password retrieved from forgotten password does not work for me. Is there some setting in php4 or mysql that would allow md5(md5(password)) == md5(password) to return true? Since the password sent is the hash of the clear-text password, the current line in usersettings.php compares a hash of the hashed password to the hashed password, I think. I've found the correct code elsewhere in usersettings.php.// usersettings.php line 130 fixed
if ($existingUser["password"] == md5($_POST["password"]) || $existingUser["password"]==$_POST["password"])
if ($existingUser["password"] == md5($_POST["password"]) || $existingUser["password"]==$_POST["password"])
This is the current version:
The first one works for me. Is there a problem with security in using that version?
-CharlotteFischer
- Charlotte, you are correct in that the code doesn't work as is. We are working on splitting up the whole (confusing) login/usersettings form into separate actions and forms; logging in with a "temporary" password should then not only be separate, but also force the user to immediately choose a new password since sending a password by email is inherently insecure. Until we have that in place in a future release, your workaround is a good one (I came up with the same ;-)); but it's up to you to decide how acceptable it is in your application to let the user continue to login with an emailed password. --JavaWoman
Order of comments
WikiJochen made a comment on my page that would like to see the latest comment shown first and not last. --NilsLindenbergOwn comments editing
I think that it would be a good option to allow one to edit its own comments, sometimes, I make mistakes when commenting, typos or language things (i'm a foreigner) and I want my texts to all look clean.Currently, we can still copy and then delete the comment, but it is a pain to do so... sorry, I'm lazy, just like many other people. --SamuelDr
- SamuelDr, this is a good suggestion. I've had the same thought about needing the ability to edit comments. The problem with "copy and then delete" is this can only be done until someone else comments. Otherwise the comments will be out of order. Consider it on the todo list for a future release. -- JsnX
Google Sitemap
See here pushing the sturcture and changes of wikka to google could be an interesting (optional) feature. --NilsLindenberg- Apparently Google uses URLs to deduce the structure of your site in order to crawl it more efficiently (if it uses the information at all, which is not guaranteed); but our URLs inherently do not map to any structure (that's because a wiki essentially is a network, not a hierarchy). The only case I could see where it might possibly help is with orphan pages - in other words pages that are not linked to from any other page - so Google can find them; but then again, if you have a link to to an orphan pages page somewhere and you don't tell Google to not follow the links on that page, Google can find orphan pages as well. So I don't really see how this could actually help, given the "lack of structure" of a wiki. --JavaWoman
versioning of attachments
copied from a comment from AttachmentInfo --NilsLindenbergDoes Wikka support versioning of attachments?
IMHO a good idea. --Nils
- See allso WikkaLogicalDataModel --JavaWoman
Making PageIndex go faster
By default PageIndex uses $this->LoadAllPages() which reads your whole site into one array. If you would use a new function like $this->LoadAllPagesInfo() you will get the same info but without the 'body' content. This should speed up PageIndex a bit on larger sites...- Find in wikka.php (Around 33%)
function LoadAllPages() { return $this->LoadAll("select * from ".$this->config["table_prefix"]."pages where latest = 'Y' order by tag"); }
And replace it with:
function LoadAllPages() { return $this->LoadAll("select * from ".$this->config["table_prefix"]."pages where latest = 'Y' order by tag"); }
function LoadAllPagesInfo() { return $this->LoadAll("select id,tag,time,owner,user,latest,note from ".$this->config["table_prefix"]."pages where latest = 'Y' order by tag"); }
function LoadAllPagesInfo() { return $this->LoadAll("select id,tag,time,owner,user,latest,note from ".$this->config["table_prefix"]."pages where latest = 'Y' order by tag"); }
- Find in actions/pageindex.php (top)
if ($pages = $this->LoadAllPages())
And replace it with:
if ($pages = $this->LoadAllPagesInfo())
- Same trick as in (2) can be done in actions/mypages.php...
- See the first item on WikkaOptimization, too --NilsLindenberg
Generate ID in forms; allow class
I know we've dicussed this multiple times but could not find an actual suggestion; I've made it into a semi-spec.Every form really should have an id (attribute) to provide a 'hook' for styling (and JavaScript, if desired). We have a FormOpen() method in the core that should be used to generate the opening form tag (and its counterpart FormClose()) - but this method does not generate an ID nor accept a parameter to create one. It should be able to do both:
- accept an optional parameter specifying an id and - if specified - use this to generate an id attribute
- if the parameter is not specified, generate one using some algorithm to ensure it will be unique on the page (possibly using all provided parameters to create a hash, supplemented with a sequence number); only problem is this id might change when adding / inserting another form into a page but that could be worked around by actually specifying an id.
- accept an optional parameter specifying a class and - if specified - use this to generate a class attribute (and no class attribute if not specified).
- An implementation for this is now coded and tested (and will soon be added as a beta feature on this site). See AdvancedFormOpen and GenerateUniqueId for the code --JavaWoman
Hiding anonymous host/IP from non-administrators
On the Wiki I run, it is not desireable for the IP/hostname of anonymous users to be displayed to just anyone. I've made a small modification to hide the IP/hostname of anonymous users to users that (a) Are not administrators, and (b) not themselves. In handlers/page/show.php, around line 80 you can find:print("\t<div class=\"commentinfo\">\n-- ".$this->Format($comment["user"])." (".$comment["time"].")\n");
I modified this to:
if ($this->IsAdmin() || $current_user == $comment["user"] || $this->LoadUser($comment["user"]))
{
print("\t<div class=\"commentinfo\">\n-- ".$this->Format($comment["user"])." (".$comment["time"].")\n");
}
else
{
print("\t<div class=\"commentinfo\">\n-- Anonymous#".str_pad(dechex(crc32($comment["user"])), 8, "0", STR_PAD_LEFT)." (".$comment["time"].")\n");
}
And in actions/recentlycommented.php:
{
print("\t<div class=\"commentinfo\">\n-- ".$this->Format($comment["user"])." (".$comment["time"].")\n");
}
else
{
print("\t<div class=\"commentinfo\">\n-- Anonymous#".str_pad(dechex(crc32($comment["user"])), 8, "0", STR_PAD_LEFT)." (".$comment["time"].")\n");
}
if (!$this->LoadUser($comment_by)) $comment_by .= " (unregistered user)";
was changed to:
if (!$this->IsAdmin() && $this->GetUserName() != $comment_by && !$this->LoaderUser($comment_by))
{
$comment_by = "Anonymous#".str_pad(dechex(crc32($comment_by)), 8, "0", STR_PAD_LEFT);
}
And in actions/recentcomments.php:
after this add:
{
$comment_by = "Anonymous#".str_pad(dechex(crc32($comment_by)), 8, "0", STR_PAD_LEFT);
}
if (!$this->IsAdmin() && $this->GetUserName() != $comment["user"] && !$this->LoaderUser($comment["user"]))
{
$comment["user"] = "Anonymous#".str_pad(dechex(crc32($comment["user"])), 8, "0", STR_PAD_LEFT);
}
{
$comment["user"] = "Anonymous#".str_pad(dechex(crc32($comment["user"])), 8, "0", STR_PAD_LEFT);
}
You will probably need to also update the XML handlers and the history page handler, but right now anonymous users cannot edit pages on my Wiki. (actions/recentchanges.php, handlers/page/really don't want them to have 2 seperate usernames/ passwords. Therefore ideally I would like the wikka to use the usertable from phpBB... Has anybody else done something like this? -- KiltanneN
- One solution that I've used is to set up a registration page that registers the user into both the bulletin board and the wiki user tables. I've then removed the registration screens from each of the two. Users can then log into either of them using the same username and password. Of course, this only works when registering "new" users...one would have to write a script to copy existing users from the bulletin board into the wiki user tables for current users. --GmBowen
- Not a bad idea - but breaks down for password changes and also name changes... I am going to try and build what I have described. I will make notes over here: UseThephpBBUserTable -- KiltanneN
- See also WikkaWithphpBB --JavaWoman
Documentation
copied to DocumentationDiscussion. --NilsLindenbergPages linking to nonexisting pages
As MovieLady pointed out somewhere, it could be usefull to see if there are pages linking to a non existing page (for example when you have renamed the page and have to update the links).The following solution just prints out the links, without any other text ("the following pages link here") - which should be better placed in the backlinks action.
Change in handlers/page/show.php the lines with if (!this->page) to:
- if (!$this->page)
- {
- print("<p>This page doesn't exist yet. Maybe you want to <a href=\"".$this->Href("edit")."\">create</a> it?</p>");
- print $this->Action("backlinks")."</div>";
- }
- What's the </div> for? I see no opening <div>. --JavaWoman
- it closes the <div class="page">. --NilsLindenberg
- But I don't
- Ok, I was a littler bit short here :) the show handler opens a <div class="page"> before doing anything else (like the "has access"/page is existing check). So it has to be closed (and actually is closed) in every one of the three cases (1. no access to the page 2.pages is not existing 3.pages is displayed). In the official version it is closed after the "create it". I just moved it to have the backlinks inside the page-class (should have written that earlier :) --NilsLindenberg.
- All right :) I guess the show handler is just sloppily written. If you open a div no matter what conditions apply, then you also close it no matter what, i.e., opened
Sending 403 headers
(related to the Search engine results inflation item below)For pages to which the user has no read-access, do you think it might be feasible/interesting to send - along with the You aren't allowed to read this page message - a HTTP header like the following:
-- DarTar
- Oh, and maybe 404 headers for missing pages (which would help prevent SE from spidering links to non existing pages)? -- DarTar
Numbers as page names?
I'm curious about the Wikka convention that numbers cannot be page names. I'd like to be able to create "date page" (e.g. 2005-02-26) for notes and journaling, so this is a feature I'd definitely suggest.BTW, doing something along the lines of "journal/2005-02-26" or "journal_2005..." wants to create an external link.
Thx, RobertDaeley
- Agreed, we should drop this restriction. Numbers in page names might also be useful to use Wikka as a bliki engine, i.e. a hybrid blog/wiki software which is drawing increasing attention in the SocialSoftware social software community. Robert, take a look at this user-contributed plugin, which allows creating a calendar with single pages for days: JwCalendarWithPageCreation -- DarTar
Configurable name for Wikka engine
I think it might be interesting for many of our users if we gave the possibility - in the install/upgrade wizard - to rename the engine from wikka.php to something else (for instance, index.php). This might be useful in cases where RR are off and the user wants to avoid long URLs: http://www.mydomain.com/wiki/wikka.php?wakka=HomePage can then become http://www.mydomain.com/wiki/?wakka=HomePage. The name should be specified as an option in wikka.config.php, for instance"wikka_engine" => "wikka.php",
This option might also allow using different engines (say, different versions of wikka.php) on the same installation.
-- DarTar
Search engine results inflation
I have recently installed Wikka on my personal website. Everything works fine, except that the TextSearch link in the page header (which I masked through CSS - I don't want to hack the code) produces dozens of search results that I really don't want to be cached on Google. Same story applies to the revisions and history links that are cached on search engines: this is what happens in the case of our main server. I'd also would like to avoid default wiki pages (like SandBox, MyPages, UserSettings etc.) to be crawled and cached (simply setting ACLs to !*-!*-!* won't do the job). Maybe we should think of a way to allow the user to decide what kind of content of her Wikka-powered site should be spidered by SE and what content should not. -- DarTar- I think I've suggested before that the SandBox should not be indexed - the way to avoid this would be to add the appropriate meta tag to the page's head. That concept could easily be extended by allowing a WikiAdmin (not the WikiUser!) to define a list of pages where such a meta tag would be inserted. Generating a little text note to the effect for
For Better Overview
1. It often takes too much time to check if a wiki has changed and what has changed. In the case of wikkawiki one has to check RecentChanges as well as RecentlyCommented. A combined page would be more convenient - RicharD- Hope you have a large screen: SoWhatAreTheNews --ChristianBarthelemy
- Nice one, Christian! While you're at it, you might want to add the RecentComments page (or its content) as well, so you get a better overview of all recent comments and not just
Generate page from an external database
As described in DynamicPageGeneration I'd like to create a mailling-like system to fill in pages containig custom fields with data from an external database or a simple table. This could be done through a few actions or by writing a new handler.This idea can be extended to an inline editor to add/remove/edit entries in this external table if wikka store creditentials with write access in its own tables.
The main goal is to integrate data from an existing knoweldge base in a wikka based documentation repository.
DotMG insists about favicon.ico and robots.txt
Please add the following two lines to ./.htaccessRewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteCond %{REQUEST_URI} !=/robots.txt
RewriteRule ^(.*)$ wikka.php?wakka=$1 [QSA,L]
This will prevent /favicon.ico and /robots.txt from being redirected to wikka.php?wakka=favicon.ico RewriteCond %{REQUEST_URI} !=/robots.txt
RewriteRule ^(.*)$ wikka.php?wakka=$1 [QSA,L]
With these 2 lines, we don't have to modify wikka.php as suggested in FaviconDotIco --DotMG
- It can be done more generically by simply preventing rewiting happening when the requested URL matches an existing file or directory:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
The first line excludes any directory, the second any existing file (which would include robots.txt and
Category Icons
Create a table which maintains a mapping between wikka categories and an associated predefined icon graphic. When the directive {category_icon} is used the category's icon is dropped into the page at the location of invocation. -KarmaTester- Karma, we are actually considering the possibility of integrating a set of GPL'ed icons (and the relevant actions/formatters) in Wikka. Stay tuned... -- DarTar
- You're more than welcome to use our icon action and icons: WikiIcons which were copyleft from here. The icons were auto-generated from the SVG versions at various sizes, you can take what you want. Only problem is they are PNG's -great in ANY browser but IE!!! --IanAndolina
- Some more at IconsInWikka -- ChristianBarthelemy
Automatic Table of Content Generation
A table of contents {TOC} directive is replaced by an ordered list of defined headers in the wiki page. This makes it easier to navigate pages which are very long like this one. -KarmaTester- Have a look at TableofcontentsAction for some ideas about creating a TOC (automatically or triggered by an action...) --JavaWoman
Wikka markup inside tables
- I think it would be nice if you could use wikka markup (**bold**, //italics//, __underline__, etc.) inside of tables. - RichardTerry- Richard, thanks for the feedback. It is on my agenda to look at another solution for tables. My plan is to allow straight HTML table syntax after running it through the "safehtml" checker. But I need to check that there are no security risks with this first. Also, I'll take a peak at your suggestion too. -- JsnX
- Check out my proposal for an extended TableAction which does provide this. (TableAction is intended as a preliminary solution until we have table markup.) --JavaWoman
Robot Friendly Pages
Right now (1.1.6.0), if a non-existant page is requested, the wiki returns status code 200, which will cause the page to be indexed by search engine spiders. It'd probably be better to return 404 (not found) or 410 (gone) or include robots exclusion meta tags in the pages that don't exist. --BarkerJr
- Ah, maybe this is why a now non-existent page that I deleted 2 months ago is still getting 50hits or so a day from the porn/vicodin/viagra sites that linked to it (don't ask
- See RobotFriendly. --DotMG
Kant-en-klaar code blocks
A micro-idea before going to bed. We all know it's a bad idea to copy code blocks from the formatted version of a page.
If I want to test some freshly posted code, here's what I have to do:
- open a /raw version of the page;
- scan the page for the chunk of code I want to save (this can be pretty difficult on long source pages with no syntax highlighting);
- open a text editor;
- copy the code block;
- paste it in the text editor;
- save the file.
Wouldn't it be nice to have at the end of each code block a small link pointing to a handler allowing the user to download the code block with the right name and the right extension just with one click?
See GrabCodeHandler for a first proposal -- DarTar
Security Verification Test from Wikini
On the top of most page handlers, the Wikini developers have:// Vérification de sécurité if (!defined("WIKINI_VERSION")) { die ("accès direct interdit"); }
I'm not sure what exactly this does, can anyone enlighten me; and if it is a good idea, then it should considered for Wikka too... --IanAndolina
- This is to ensure that a hacker can't view a page directly, with url like http://wikka.jsnx.com/actions/recentchanges.php. If this technique is possible, he (the hacker) can send request to make your wikka site output error strings. But in wakka forks, this will result in handlers "page/recentchanges.php.php" not found, if rewriteengine is on. If else, I' ll test it and I'll tell you. The simplest workaround, if it's the case is to add a .htaccess file at ./actions, .handlers/page directories, with the content : Deny from all. --DotMG
mod_rewrite idea (.htaccess)
(The following was copied from a comment on ModRewrite -- JavaWoman)Hi, I discovered that the default .htaccess included did not work for my setup up. I needed to include RewriteBase /directory/ as well since Wikka is installed in a subdirectory. I hope this helps anyone having trouble getting Wikka to work.
-- h-67-102-97-191.mclnva23.covad.net (2005-02-11 04:49:37)
The installer correctly deduces the base path for the configuration; it could conceivably also detect if it's sitting in a subdirectory, and if so, dynamically change the .htaccess file and include the correct RewriteBase statement to take care of this. --JavaWoman
Separation of Wakka class from wikka.php
I use wikka as wiki engine of my page.IMO, the wikka.php file is too big to be one single file. I suggest that we separate the Wakka class into new file, say Wakka.class.php
And then in the wikka.php, e.g at line where the Wakka class previously located, simply we put:
include ('Wakka.class.php');
-- DiN
- DiN, this is a
- Maybe a folder called classes? the handlers/page/diff has a bunch of classes inside, too. --NilsLindenberg
- With my current proposed structure on WikkaCodeStructure, it would go into the library folder; classes that are shared, into library/common. I prefer a
Inherit ACL from 'parents'
Create a page and when creating a page from there, give the option to copy the ACL of the first page.Should pages be linked in some form to some documents given the fact that Wikka is flat, not hierarchic.
ForTheLazy - chatlog and summary.
-- FreekNL
- IMO the acl system has to be dumped and/or renewed/rewrittem to accomodate usergroups..
- I have been thinking of presenting a modification that will actually implement this user managment system ..
- having privileges for each page is making userprofile-specific-features on Wikka efficiently non-existant.
- The ability to create custom usergoups ( aka levels, profiles etc. ) would enable the addition such features
- ( ip/hostname display , access to special parts of the wiki and such .. ) -- GeorgePetsagourakis
Paragraph instead of line-breaks
(copied from WhatsNew -- DarTar)Why is it that the formatter creates line breaks instead of paragraphs? I've been trying to figure out a way to get Wikka to do this, but it may be nice for there to be some sort of option in a future release. Paragraphs tend to be more useful for doing CSS formatting.
-- ScumBle
+1 — semantically, Wikka's current lack of proper paragraphs and liberal sprinkling of line breaks is really undesirble. I made a hack-mod on my wakka some time ago in formatter/wakka.php (just after the preg_replace_callback):
$pattern2 = "/^(\040|\t)*(?!<|\040)(.+)$/m"; //matches any line with no <element> (and variable leading space) - assume a paragraph
$replace2 = "<p>\\2</p>";
$text=preg_replace($pattern2,$replace2,$text);
$pattern1 = "/^(\040|\t)*(<(?!hr|(\/|)h[1-6]|br|(\/|)li|(\/|)[uo]l|(\/|)div|(\/|)p).*)$/m"; //matches any <element>text lines not considered block formatting
$replace1 = "<p>\\2</p>";
$text=preg_replace($pattern1,$replace1,$text);
$replace2 = "<p>\\2</p>";
$text=preg_replace($pattern2,$replace2,$text);
$pattern1 = "/^(\040|\t)*(<(?!hr|(\/|)h[1-6]|br|(\/|)li|(\/|)[uo]l|(\/|)div|(\/|)p).*)$/m"; //matches any <element>text lines not considered block formatting
$replace1 = "<p>\\2</p>";
$text=preg_replace($pattern1,$replace1,$text);
I don't know how that will affect wikka (it was designed for my formatting which is different to wikka slightly), and there is probably a much better way to do it (call a post-formatter?), but it is possible using a small modification at least... --IanAndolina
Save Pages to PDF Format
(copied from WikkaDevelopment --Nils)Page output to an Adobe pdf file using FPDF.
E-mail this page facility
--JamesMcl
Usergroups
(copied from WikkaDevelopment --Nils)Yet another idea from me:
Usergroups. So i can create a group of users, and just write that group into the ACLs...
- Take a look at GroupManagement (which doesn't seem to be finished) - or at ACLsWithUserGroups."In work" for Wikka-pages
(copied from WikkaDevelopment --Nils)Add a page property, 'Status' [?] that can be used to facilitate code development within Wikka. Imagine a very basic CVS system. A user can change the status to "In use' while considering improvements to the code, and then change it to 'Available' when done. This may prevent this scenario:
- Multiple users see the same code and concurrently start working on changes.
- One user posts his changes.
- Another user posts his changes without realizing that the code had been updated.
OR
- Another user has to go back through his code and incorporate the changes made by the first user.
- Comments:
- Dangerous! Consider the following scenario: user has been hard at work all week, now it's Friday afternoon and there's some time to do an edit or three. User opens each page in a browser tab, marking all three as "in use" and starts to edit them. Clickety-click. Suddenly user realises he has to run to catch the train home. Run! On the train, user realises the three pages are still open in the browser and "in use". "No matter", thinks our user, "it's always quiet during the weekend and I'll get back to it first thing Monday morning. On Sunday afternoon, user plays soccer, as he always does, and breaks a leg, which he usually doesn't do. User is transported to hospital where he has to stay for four weeks. ... A bit exceptional maybe - but what do you do with "dangling in uses" and when (how) are they considered "dangling" in the first place? --JW
- Good point, but this modification would be only an informational resource to facilitate user communication. Techically, users could still update the page any time they wanted. It would just be a courtesy to hold back if you saw that a page was 'in use.' I didn't mention it above, but I planned to also add a field that would timestamp when the status was last changed. So in your scenario, we would see that the page had been marked as 'in use' for several days and feel free to ignore it. However, this does bring up the idea that it would be good to also have a 'note' box available for updating the page status -- used for comments such as, "should have the code updated within a few hours." Better now? -- JsnX
- I've got code/table changes done that indicate if anybody (other than oneself) opened the page to "edit" in the last 15 minutes. It's on an iteration that isn't "live" right now (it's part of an earlier installation of wikka that we just haven't brought the code forward from yet), but I can make it that way so you can test out the functionality if you want. Since much of our site will be geared towards small teams doing collaborative editing, it was designed so that editing conflicts would not occur. Let me know if you want me to get it installed at a test site. -- GmBowen
- I agree, it's an important issue (some Wakka forks have already addressed the problem of concurrent editing) -- DarTar
- JsnX: If it's purely informational, that's better; I thought the intention was some kind of locking. So you'd have something like:
- -state: in use | available
- -timestamp: in use since
- -note: applies to the in use state only
- Then - would the state apply to the logical page or to a particular version? If the latter, what happens if a page is reverted to that version? What happens to the state when another user goes ahead and edits the page anyway?
- And I still think you'd need some kind of admin function to "clear" dangling in use states that are older than xx minutes/hours/days.
- GmBowen: is yours completely automatic or user-initiated? What happens in the run off to catch the train scenario? -- JavaWoman
- (i) it's purely informational, not a "lock"...it sets a red exclamation mark beside the page name at the top if the "edit" link (or double click) has been used in the last 15 minutes by anybody other than yourself (ii) it's automatic (iii) the "train scenario" can't happen. It doesn't check if "saved" or not, just whether an edit was started in the last 15 minutes. This means that if the person doing the edit hasn't saved in the last 15 minutes when editing then the exclamation mark isn't activated for another user. But, people should save edits every 15 minutes anyways methinks. It's not "foolproof", but was meant to avoid many sorts of common editing conflicts on collaborative documents. It's not a very "big" edit of the wikka code actually. The edit.php script timestamps the most recent version of the page when it is activated, and there's a small addition to header.php that checks when the page is loaded to see if the current time is < 15 minutes from that timestamp & if so shows an exclamation mark. Finally, there's a small linked graphic that "refreshes" the page beside "homepage" and the "edit" link (essentially, it's just a link to the page itself) so a user can check the edit status before deciding to edit it themselves. For server load reasons I decided to not have an automatic check (once every 5 minutes for example) since most people read & don't edit much of the time so it made sense more to encourage people to check edit status themselves. Of course, it would also be possible to have edit.php check to see if the file was edited in last 15 minutes and if so, ask the user if they wanted to continue with their own edit. Hmmm...I'll have to think about that. As it sits it worked pretty well when tested (but remember, I'm into small group collaborative writing tasks....I'm not sure how it would work if the pages were "open" to everyone). It originally took me several hours to write the code myself, but I'm sure it would take JW or DarTar or Jason maybe 30 minutes....and the code would probably be more efficient (I'm not a real coder remember :-( ) -- GmBowen (aka Mike) (I've now provided my code & mods @ [GmBowenRecentEditCheck] for people to play with)
Searching (in) comments
(copied from WikkaDevelopment --Nils)Add the ability to 'search for all comments by user X'. How this might be useful: I want to find a comment by JavaWoman (really?), but I can't remember which page it was on -- she's quite prolific! -- (I admit I'm easily distracted. What am I doing here, now!? :)) so I use this new function to list all of her comments.
- Yes. And related: an extension of this or the general search function to search by
- Agreed. -- JsnX
- Nice idea :). For
- In general....given the complexity (and utility) of some of the conversations now happening in the comments, I think that we should consider either (i) the current textsearch being expanded to include the comments, or (ii) a separate action be written directed at searching the comments table (possibly an easier route). The latter might mean we consider renaming the search pages to SearchText, SearchTextExtended & SearchComments. [I now realize that this "search comments" feature is a "lost" feature. I realize now that
Order of the text-search
(copied from WikkaDevelopment --Nils)It would be good if the text-search would be sorted in some way. If I search for example for "GmBowen", a page with the exact match (his userpage) should be on the top of the results. The next results perhaps in alphabetical order? --NilsLindenberg
Highlight unseen Recentchanges
(copied from WikkaDevelopment --NilsLindenberg)Add fields to the 'users' table [?] to track when RecentChanges and RecentlyCommented were last viewed. Then RecentChanges and RecentlyCommented can by modified to highlight new items since the user last viewed the page.
- If it's only for highlighting, OK, but I'm not waiting for that. If it's for filtering, please no. I quite often trace back several days to re-review pages or comments --JW
- OK. Point taken. I was considering doing some form of filtering, but will now only consider higlighting, as requested. -- JsnX
- I totally agree with JW's point -- DarTar
- Actually, I
"target=" in external links?
Is there a way to include a target in a link, so that the Link opens in a new window?- Yeap, use this directly within the wikka page you are working on
-
<A href="http://google.com" TARGET="_blank">Google</A>
- It will show up a normal link Google
- In this case the
- Assuming this is what you were originally after, it has the advantage of no code changes. NickDamoulakis
--GregorLindner
Signature
(copied from WikkaFaq, but perhaps better at WantedFormatters? --NilsLindenberg)Does Wikka support automatic user signatures in pages (not comments)? I need some code so that users don't need to enter their username and time/date when they are working on a page in ThreadMode. I've searched in the docs, but I could not find anything about this, any ideas?
-- JeroenJansen (2005-01-28 11:35:43)
- Jeroen, there is a hack for automatically adding a user's signature in WakkaWiki posted by NickK on his homepage. It should be easy to adapt to Wikka. -- DarTar
- Dartar, just saw your reply. Thanks for the hint! --JeroenJansen
Easy way of adding links
Most wikis I have set up have the need for a page containing a list of links. It would be great if Wikka could support this in some way - such as providing an easy way of adding links to a configured page. One way of doing this could be a simple Java Scriptlet that you configure with the address of the link page. Then, you mark a link in a web-page, click on the scriptlet, enter a short description and bang - the link is added to the wiki page.The del.icio.us page offers some user contributed hacks which may be a starting point.
-- MatthewLangham
- MatthewLangham, I propose AddLinkAction as solution for adding links on a page in a structured way. I also added (under the Beta section at the end) a JavaScript-link that you need to bookmark to fast add a link in two mouse clicks... (Works with Firefox and IE under XP, still needs testing with other browsers) -- OnegWR
Create rewrite rules on install
Since I installed wikka in a subdirectory under the domain root I needed to add the following to the .htaccess file just under "RewriteEngine on":RewriteBase /subdirectory/
Devs, how about writing the .htaccess rules at the same time you write out the wikka.config.php file since you automatically pickup the wiki base location at that point?
-kt
-- KarmaTester (2005-01-26 06:52:07)
Image dimensions
The AddingImages image action really needs the ability to specify image height and width. :) --MovieLady
- I agree that it would be better to have defined width and height in the resulting img element: faster output, and no "jumping" pages. However, PHP can easily derive these dimensions by itself - would that be sufficient or do you think it's also necessary to be able to override the actual dimensions of the image file? --JavaWoman
- There surely will be users which want to do that. My suggestion (if possible): allow height and width as optional input. If nothing the variables should be filled with the values of the image. --NilsLindenberg
- Noted. More
- Yes, that exactly, Nils. LOL Lemme get my list, JW. ;) Seriously, though, I really like what you all have done with this wikki, and the multitude of suggestions are only because I'm getting invested in it. *g* I've been sick or I would've worked on the DeleteSpamAction changes sooner so I could feel like I was actually doing more than "I want it to do this!" ;) --MovieLady
- That's great, Christian, thank you! --MovieLady
Clearing ACLs
There should be a button on the ACL page to "Reset ACLs to Default". What this would do is delete the record for the current page from the acls table. There is a distinction between setting the ACLs to the sites default values and not having ACLs defined for a page. If the ACLs are set and the default values get changed, the page will remain at the set values. However, if no ACLs are defined, the page will always use the default values.
To help show the distinction, there should be a visual indicator on the ACL handler page which states whether the page has ACLs defined or is using the site's default values. Basically, just check for a record in the acls table for the current page, and display a message accordingly. -- JsnX
User registration control
It would nice to have the registration function check to make sure there isn't another account with the same email already registered so that one person doesn't clutter up the db with multiple accounts. (Or at least the configurable option to check for only one email/one account.)It should also then be easier (I would think) to use it to essentially ban by email address; if the registration process checked for an email in the user table, found that it was already in use and didn't let the person create a new username, one could use the wonderful ACLsWithUserGroups hack that Christian created to make a list of banned users by username. Yeah, yeah, folks who want to abuse the system could always create new email addresses on the various free sites, but that's an awful lot of work, and this would at least slow down some of it. --MovieLady
- You know how many TestUsers my Wikka already has? *g* This should do the job (this time no config option, sorry jw :)
-
function ExistsEmail($email)
{
$count = 0;
$query = "SELECT COUNT(email)
FROM ".$this->config['table_prefix']."users
WHERE email='".mysql_real_escape_string($email)."'";
if ($r = $this->Query($query))
{
$count = mysql_result($r,0);
mysql_free_result($r);
}
return ($count > 0) ? TRUE : FALSE;
}
- Place this function in wikka.php right after function UserWantsComments(). And change in actions/usersettings.php the following line:
to
else if (strlen($password) < 5) $error = "Password too short.";
else if ($this->ExistsEmail($email)) $error = "You already have a username.";
- LOL I can imagine. Thanks so much for this - I'll try it out this evening. --MovieLady
- Speaking of registration control, note to self: make a configuration option to turn off new account registrations. Some sites might be private and not want people registering. Admin privilege should override this and still show the registration fields in usersettings, to save the admin from having to go into the database manually to add acounts or some other hack. -- JsnX
- (you saw UserRegistration by Nils? I think it, or something like it, should be standard. mike)
- Doh! I somehow missed that. That's pretty much what I had in mind. Nice job, Nils! :) -- JsnX
- Thank you. About your Admin-adding-user case: that's an addition to UserAdmin, not for usersettings. --NilsLindenberg
- there's also code around that uses GD & that could be built onto Nils' code that generates a "registration password" automatically and outputs it as a distorted graphic image.....the code is intended to befuddle auto spam registers & thus stop open-registration sites from being hit by spam bots that register themselves as users. Ultimately, as the bots become more sophisticated I think we'll have to use something like that or else sites like this one (with open registration) will be victimized. Here and here are examples of what I mean (I like the simplicity of the first version in the second example). -- GmBowen
- Yes, "Captcha" is an old trick - it will keep out some bots (but not all) and it will keep many people out, too, like those who are visually handicapped (not just people who are totally blind - being colorblind may be enough to be defeated by such tricks). Add a sound equivalent? Well, there are people who are deaf and blind. Are we going to deny them access to our wikis? I'm not in favor of making Wikka inaccessible when we should be working towards making it more accessible. --JavaWoman.
RSS options
It would be wonderful to be able to choose what kind of RSS feed is created for a page. For example, {{rss}}/{{rss show="1"}} could show only the headlines and the update field (current setting), {{rss show="2"}} could show a blurb of the updated info, {{rss show="3"}} could show the whole update. --MovieLady
Embed a blurb from a news page into another page?
I currently have no idea how one would approach this, but thought I'd toss it out there for others to think over. I would find it really useful to have an announcement action (maybe {{news}}?) that I could use which displays only the most recent (configurable) number (e.g. {{news show="2"}} would show the most recent two entries from the page) of entries from a specific (configurable or static?) page. Right now I do this by hand, adding the current announcement to both the front page and the news archive page (so I'll have a history of the announcements), and boy, what a pita! What I'd like to be able to do is just edit the news page and have it automatically update what displays in the news area on the front page. Possible, or am I smoking something I need to share? ;) --MovieLady
- I am doing this using the IncludeAction - at least you only update one page (TheNews). --ChristianBarthelemy
- Thanks, I'll try that out. --MovieLady
- Did you do anything to get it to add only part of the page being included (for example, down to the first horizontal line)? --MovieLady
- Nope. I just only keep the news updated in TheNews page so that the whole page is displayed when included. --ChristianBarthelemy
- Ah well, I'll keep working on trying to figure out a way to do it. *g* Thanks! :) --MovieLady
Logging-out
Perhaps the installer should tell the user that he will be logged-out (because of the new cookie-names). Would be nicer. Btw, the /setup directory needs an update (or better the files in it). --NilsLindenbergBacklinks
It would be wonderful to have the option to display the results of the {{backlinks}} action in columns, similar to what {{Category col="3"}} allows you to do. --MovieLady
- Noted - good suggestion. --JavaWoman
backlinks.php
if ($pages = $this->LoadPagesLinkingTo($this->getPageTag())) {
foreach ($pages as $page) {
$links[] = $this->Link($page["tag"]);
}
// #MW:commented print(implode("<br />\n", $links));
// #MW: Ja, här ska jag fixa stöd för kolumner via parametern col
if (!isset($col)) $col=1;
$out = "<table width='100% border='0''><tr>";
$count = 0;
while (list($key, $val) = each($links)) {
if($count == $col) { $out .= "</tr><tr>"; $count = 0; }
$out .= "<td>" . $val . "</td>";
$count++;
}
$out .= "</tr></table>";
print $out;
foreach ($pages as $page) {
$links[] = $this->Link($page["tag"]);
}
// #MW:commented print(implode("<br />\n", $links));
// #MW: Ja, här ska jag fixa stöd för kolumner via parametern col
if (!isset($col)) $col=1;
$out = "<table width='100% border='0''><tr>";
$count = 0;
while (list($key, $val) = each($links)) {
if($count == $col) { $out .= "</tr><tr>"; $count = 0; }
$out .= "<td>" . $val . "</td>";
$count++;
}
$out .= "</tr></table>";
print $out;
Language file
I would be nice to see all phrases put into a single file. This would allow to translate the wiki in a few hours without changes every single file.- Look at DotMgs approach at WikkaInternationalization. But at least it should work for languages in the range of the "normal" (ascii?) code. If you are interested, you should start a page in where we can collected the hard-coded sentences (would wait for the .6 relase, anyway). --NilsLindenberg
- The most flexible and powerful way to support i18n is still Gettext which is supported by PHP. If we go in that direction (likely), manually creating a "language file" is needless work since Gettext does all that automatically for you. And it supports options for handling plurals and such which simple string-to-string language files cannot handle. The problem is that code needs to be written in a way to properly be able to use Gettext, so that translatable strings do contain whole phrases with punctuation and do not contain any HTML markup (actually this is true for simple laguage files as well). Currently our code is not "in shape" for i18n though, so that's the first job we'll have to tackle. --JavaWoman
User names
Is there any likelihood of non-wikiname usernames (e.g. Movielady) in the future? It's one of the things I've been asked a lot by the users of the site I use Wikka for. (Most often heard comment: "but other wikis I've used let me do it!") Obviously it's possible to create non-wikiname pages, so why not usernames? (I have looked on the site, but I've probably missed the explanation.)
I also agree with Nils that it would be really wonderful if some sort of default user page was created when a person creates an account.
- Should not be that difficult? In usersettings.php there is a part where a new user is created. After the mysql query which adds the user to the user-base, another query which inserts the user-page to the pages table is needed. Anybody here whos good in creating mysql-queries? --NilsLindenberg
- Automatically creating a user page should certainly be possible (easy enough). But while on some Wikis you may have a small group of people regularly contributing, on others many people may register just to post one or two things, and then disappear, never even look at their user page - and you'd end up with a lot of empty pages, all of which will show up in the PageIndex. So it really should be a (WikiAdmin) option to determine whether user pages are automatically created or not. --JavaWoman
- Excellent point, hadn't thought about that. :) --MovieLady
- See AutomaticUserPageCreation for a first version. Or test it [http://www.niehle.info/UserRegistration here] And it is of course an additional config-option :) --NilsLindenberg
- Fabulous! I'll check it out. --MovieLady
Y'all are doing a marvelous job, BTW and it is greatly appreciated! :) (I will try to contribute as I can, but honestly, some of the programming is beyond me at the moment.) --MovieLady
I actually hacked UserSettings.php to allow for non-wikinames. Just change lines such as 152 and 179 from:
if (!$this->IsWikiName($name)) $error = "User name must be WikiName formatted!";
to something like:
if(false);
Then modify header.php so that the username is Wikified. So change a certain line (I modified my Wikka so much that I can't give accurate lines) to:
echo "You are ".$this->Link($this->GetUserName());
I'm not sure how well this will work in the long run, but it worked for me!
-- MikeXstudios
- Good idea, except that having a non-wikiname causes problems elsewhere. For instance, I edited my db by hand and changed a couple of names to non-wikinames, and then one of the users with a non-wikiname forgot (sigh) her password. She tried to request a new one, but the temporary password function wouldn't recognize her username as being valid. And that's certainly not the only place that checks for a valid username. (The automatic sig on comments doesn't show a hotlink to a username if it's not a wikiname, either.) Just FYI. :) --MovieLady
- I do really want to use non-wikinames (or just turn wikinames off completely somehow). The temp pass and comments can be easily modified, comments can use the same header code above if the user exists. I know many of us are used to wikinames, but it is extremely odd and intimidating to newbies. Thats why Mediawiki dropped all wikinames so not to intimidate anyone and lessen the learning curve. So I hope there is some way to make wikinames an optional thing. --RyanKnoll
Finally using CVS?
I apologize since this idea has been suggested before, and I believe the developers are working to implement it already. However, with the beta of 1.1.6.0 released, I think it would be a good time now to start using CVS. This allows for better collaboration and as each bug fix or feature is implemented, developers and testers can grab new copies and work out further bugs. In addition, this allows more outsiders to participate in the code development process and not wait as long from the transition of releases.Also, I am willing to help with the CVS migration process if needed and help anyone who is interested in learning how to use CVS.
-- MikeXstudios
- There is a cvs version of wikka at sourceforge. Just has to be updated --NilsLindenberg
- Actually, Nils, we need a lot more than "just updating" the CVS at Sourceforge. We need to integrate CVS in our development process - and develop a process for doing so. That requires a bit of planning... :) And while at least some of us have experience with source control systems, at the same time some of us don't have experience with CVS specifically, so a bit of study will be required before we can start planning. Help with learning how to use CVS
- The "just was meant as an addition to existing ("Of course" would have been better, though :). I just wanted to point out the existing (or better non-existing ;) usage of sourceforge, in case Mike does not no. It is obviously to me that you have to integrate it into your development-process, otherwise it would not be out of date (*duck & run* ;) --NilsLindenberg
- Hi Nils. Actually, I did find Wikka's CVS repository at SF weeks ago, but I forgot to mention it in my above post. JavaWoman pretty much echoed my thoughts. We need to actively use CVS/update it constantly as changes are made. I run a project called Xcomic that uses Sourceforge's CVS a lot, so I have some experience with that. In addition, I recently set something up for my project that I think will be pretty cool if Wikka decides to really use CVS: a commit mailing list. Anytime someone makes a change to the CVS (modification, addition, or deletion), an automatically generated email will be sent to anyone on the suscribers list detailing the files changed and the areas changed (a diff). In any case, version 1.1.6.0-beta4 should be committed and access should be given to a few main developers. Then smaller contributors (like me) can send code changes to the main developers who subsequently commit. --MikeXstudios
- Mike, I for one would welcome your insights in using CVS. Both DarTar and I have some ideas about how we want it set up - but no experience in doing so (in CVS). May I suggest you join our developers mailing list? For this type of thing I think that would be the best medium to discuss thoughs and methods. I like the idea of a commit mailing list. --JavaWoman
List of special actions?
A complete reference list of all the special actions (e.g. {{nocomments}}, {{Category}}, etc.) would be really nice. --MovieLady- Have a look at UsingActions which has a current list of available actions. We're working on automatic actions documentation, so that both that list (expanded with short descriptions), and documentation pages for individual actions will pull content from the actions files themselves. (Not for 1.1.6.0, but likely the version after that.) --JavaWoman
- Thank you! I figured something like that somewhere, but couldn't find it. :) I'm more than happy to help out with documentation if you need help! --MovieLady
Allow spaces in pagetitle
Allow Spaces in the document title and replace it later with "-" to optimize it for search engines.- Wikka already uses the SmartTitle formatter, which displays the highest-level header present in the page (like: ===== This is the main heading) as a HTML title. See for instance the title of FormattingRules. -- DarTar
User-defined formatting rules
It would be nice if Wikka supported some way to add in user defined wikki formatting rules (that is, without editing ./formatters/wakka.php). Not sure what that would look like. A few thoughts I've had:- An array in wikka.config.php
- A function defined in a standard place (like ./formatters/wakka_user.php). ./formatters/wakka.php could then call that function, if it exists). Maybe even a flag in wikka.config.php to enable it.
Local links
It would be nice if a link to the same host as the wikka install was not flagged as 'external'. I've added a 'hack' to my personal page: KickTheDonkey. Works fine here.--KickTheDonkey
Compile Category action
A "compile category" action. Right now, if I go to CategoryDocumentation I can see a list of all of the pages in this category...but it still requires a lot of snooping to find what I want. As an administrator I'd like to provide a pdf "booklet" of all of that output for users to download. To make this now would mean going to and printing each and every page (using a software tool, TO a pdf file). Ugh. An action that let me go {{compile category="CategoryDocumentation"}} to generate a single web page of all of that documentation would be quite useful because then I could just print it to a pdf file once.....then I could provide a link to the PDF file so users could download it and print it off.Compatibility & Installer
(Copied from comment on WikkaInstallation, I support this proposal - and agree that @ in front of a statement should generally be avoided, unless any errors are actually dealt with. (Layout slightly adapted.) --JavaWoman)IMPORTANT: installer uses TOO MUCH "@" before all mysql calls...
-- 213-140-6-98.fastres.net
- Compatibility-problem is solved now, text moved below to Resolved Suggestions->Compatibility with PHP 4.1.x) --NilsLindenberg
Handling the config
I have three questions about the config. See HandlingWikkaConfig.--NilsLindenberg
See also WikkaSecureConfig for a possible new appraoch. --JavaWoman
Markup for code not to be shown
I read this suggestion elsewhere (not in wikka I don't think...some other wiki I think) and didn't think anything about it at the time, but now with the showpagecode action (Mod042fShowPageCodeHandler) am thinking that maybe some wiki markup for "comment text" that is not shown by the code interpreter might be useful (in other words, visible when editing the page, visible when showing the code, NOT visible when just viewing page). I suspect it might be simple to add this....am I wrong?? -- GmBowen (Mike)
Essentially you can already do this -- well, mostly -- since Wikka supports HTML markup: just enclose the element to be hidden in HTML (SGML) comments: <!-- at the start and --> at the end, and then mark the whole as being HTML. One gotcha: the content between inside the comment declaration cannot itself contain a double dash (hyphen) since that would terminate the comment. And a proviso: HTML should be enabled. --JavaWoman
I played with this a little and did a modification of formatters/wakka.php (see here) that got rid of monospace and replaced it with the comment brackets. It works okay, although it does leave a blank line in the code. I tried making my own format within that code (using ^^) and got nowhere....but what I did works okay. Thanks for your feedback...it provided info I needed to do the change in the wakka file. -- Mike
But why make a modification at all? HTML is already supported. Do you see the commented out text? It's right here in my reply; edit the page to see it. :) --JavaWoman
Ha...I learned something here....I didn't have HTML turned on in the config file (oops!)....however, one thing to remember is that I'm dealing with a different "audience" for using this wikka tool (13-18 year olds, many not computer literate at all, and who would be completely alienated by even thinking about using html...although maybe not all that different from an "average" user) and I'm trying to have it as useable as possible for them. For that group, there's a big difference between typing ## twice when they might want to add a comment they don't want anyone else to see as they're reading the document, like a thought they don't want to forget, and having to remember BOTH of "<!--" AND "-->" (with the double quotes remember). From a useability perspective the latter is a LOT more difficult, and therefore students would be much less likely to use it (altho' the ability to drop in quick notes would be quite useful to the writing process....like I use the post it boxes in MSWord). Imagine them writing an essay that they want comments back on from the teacher or other students. They would never put "off-topic commentary" (to remind themselves of a reference, etc) into the overall "visible" body in a way that you and I might (it runs completely against how students write in school culture)...although such personal sorts of comments might be really useful when re-editing the document. My overall schtick is trying to provide a scaffolding of use so that complete newbies can better proceed to more sophisticated usage...and part of how I do this is considering the culture they work in and how they use similar tools in the context that I'm interested in them using the wiki....which is what many of my comments and additions here are all about eh. ; ) I agree though that for my useage, and for your useage, what you're suggesting makes complete sense....and besides, why do we need monospace anyways?? {grin} -- Mike
Ah, yes, I see your point about the "available" commenting method being unusable for your (and similar) audience. (One could possibly extend the WikeEdit toolbar to provide an easy "commenting out" action though) On the other hand, maybe you don't need monospace, but I, often writing about code (and planning Wikis where users would do the same), need it all the time: I use it as a "fake" inline code markup (see my new JwCalendar page for an example :)); real inline code markup might be nice, of course, but I still wouldn't want to give up monospace markup! So, I'd suggest a choosing different set of characters (possibly a combination of two different characters, we're fast running out of candidates!). --JavaWoman
My, uh, comment on monospace was a "poking fun" "tongue in cheek" kind of comment (meant in the kindest possible ways) that programmers use monospace a lot (which is probably why it's there), whereas non-computer sorts don't.....my (maniacal?) focus is on the latter groups eh? LOL. I did try to have code in formatters/page/wakka.php to add in ^^ as code for commenting, but I couldn't get it working...which is why I switched to just replacing monospace. Do I need to edit a file other than that one to get it to work?? I couldn't find another relevant file, but I might have missed something. I've played with editing the wikiedit toolbar before (I now have Image Manager in mine to make placing images easier (from the students personal directories)) and will add in code (either for the replaced monospace or some other code (if I can get it working)) for commenting at some point. -- Mike
Heh, poke fun all you like. ;-) I know us coder types can take thinks rather literally sometimes (and some of us make an art of that! "can you pass the salt?" "yes.").
About not getting ^^ working - without looking up the Formatter code, I think you'd need to add both the code to handle the "tags" and the appropriate regular expressions, I think. Did you do that? Everywhere? If not, does that hint help at all? --JavaWoman
Oh, regex stuff. Ugh. I don't understand those worth a darn. (although some comments here last week helped me understand them a little) Okay, thanks for the hint. I'll have to tackle it a bit later (got marking to do). -- Mike
Online editing of mindmaps would be great
(copied from Sourceforge.net --NilsLindenberg)It would be great, if users should work together on mindmaps.
Maybe by downloading/ Open With FreeMind and then having a possiblity to save changes in FreeMind directly back to the online mindmap.
How to format code to get two % characters without space together?
I want to produce a code sample page in wikka with DOS batch code. The code syntax requires two percent characters together to markup a variable. Example: % %variable% % (without the spaces). Wikka always tries to format the text as code, even if I format the DOS code inside a code block, even if Imarked it as code with two percent characters like this here
Is there a solution? I could not find a literal entity for "percent"
You could use % which is the numerical entity reference for the percent sign: % - but *within* a code block an entity is "escaped" - a problem by itself, and so it wouldn't help. See:
some text with %% embedded in it
But it should be possible to just plug in a piece of code without having to worry about which characters and strings to somehow escape - maybe the double percent isn't such a happy choice for Wiki markup of "code"; should we find a character combination that is less likely to be a syntactical meaning in an artificial language? (And how do you markup Wiki markup as code?) -- JavaWoman
How about the € (euro) Symbol? Or is it to new? --NilsLindenberg
The main problem with the € (euro) symbol is not that it's new, but that it's hard to type: most keyboards don't have the symbol. And it might occur in code as well (imagine a sample conversion routine). Wiki markup should be easy to type. So we need a symbol (or sumbol combination, maybe), that's:
- easy to type
- not likely to occur in any programming code (note "likely" - you can never completely exclude it; think of APL!)
-- JavaWoman
markup of diff pages
The 'diff' facility is if course nice - and essential to a Wiki. But I note the differences are marked up only with classes which match to coloring in the stylesheet. If we're doing XHTML, we could do that a little better (as well as more accessible!): the del and ins elements are created to markup deletions and insertions: fully semantic markup!My proposal:
- mark up a deletion with the <del>...</del> tag; since we actually know the timestamp of the change, add that in the
- mark up an insertion with the <ins>...</ins> tag; same recipe for the timestamp
- then use the stylesheet to render those two in whatever font/coloring you like (even as done now) - but note that most browsers have a default rendering anyway
See 9.4 Marking document changes: The INS and DEL elements for all the details (HTML 4.01 since that's where all the semantics are).
--JavaWoman (standards junkie)
This is related - I found that the diff engine and page history sometimes forgot to close tags. With a list of lists, the indents would get carried forward. Check out my hack. Not CSS compliant by any means, but then again, your suggestion isn't either (list tags are not closed etc etc). I reckon you would probably have to parse each addition/deletion through the SafeHTML checker. -- Sam
Assuming you mean XHTML compliant (sorry) my suggestion certainly is (believe me, I would never suggest anything that isn't XHTML compliant) - I just forgot to mention that closing tags properly is a prerequisite... although I did point to the actual standard which indicates how ins and del must maintain proper tag nesting.
You're right though, I did notice that lists don't seem to be closed properly. I think that should be fixed first (it's a bug, not sure it's recorded as such yet) - then you can do more semantic markup.
-- JavaWoman (standards junkie)
You mean something like that?:
// deletions else if ($thing == ""¥¥") { $timestamp = $wakka->GetPageTime(); //hopefully this function returns the right format? return (++$trigger_deleted % 2 ? "<DEL datetime=\"$timestamp\">" : "</DEL>"); }
(naturely the rest has to be changed too)
--NilsLindenberg
showing comments
Working on a test installation, I found the user setting "Show comments by default" did not work. Testing it here, I found it doesn't work here, either.Haven't dug in the code yet to find where this should happen (but will).
I'm quite happy with Wikka's capabilities out of the box - good starting point! :) I'll likely stay with it - but I'll probably make some extensions... (such as an option to require confirmation of a registration before allowing edit access - validates email).
Great work! JavaWoman
It does work.... just not as might be expected. Comment preference is stored for each page as you browse the wiki. So, if you browse a few pages with comments not showing, it remembers this. Then if you update your preferences and return to the same pages, it still remembers that your previous preference was not to see comments on those pages.
Try this:
- Browse to UserSettings and check off "Show comments by default" and click "Update Settings".
- Now
- Open back up your browser and go to the same pages......
- Comments are now showing by default, right?
- JsnX
Right. I see it does work. ;) Somewhat, um, counterintuitive, though. So I guess my suggestion then becomes that when a user configuration is changed, this change should immediately be stored in the user session/cookie so it's active right from that moment (without closing the browser). That would, I think, be more in line with expected behavior. Possible? (I haven't looked at that area of the code yet.) --JavaWoman.
Language support
I was searching almost whole site to check what kind of languages are supported by this wiki. I was unsuccessful. Is it possible to put somewhere (main page, release note, futures section…) some information about languages they are supported?
Thanks MDD
Problem: Scrolling in the search - field
Not worth to mention but now I am here I write it. Text in the search field is a little bit scrollable. Again ... ;-)
-- SkyWalk
Question: note?
It is me again! What is the function of the "Please add a note on your edit" - field? Again and again: Keep on the good work.
-- SkyWalk
- this note is shown in some lists like the RecentChanges and the page revisions. it's just a little helper to keep the wiki organized and has no effect on the page itself. use it whenever you can to drop a short abstract of what has changed, even if you have corrected some typos to let others know that no essential changes were made. it is a really useful feature --DreckFehler
- maybe we could have a level switch on that feature, constituting it obligatory, optional, or off... an addittion to the conf will be neccessary thought.. --GeorgePetsagourakis
Problem: Five Line Breaks
Just a small problem i found. If you insert five line breaks at the end of a site, the footer jumps into the box.
After all a nice wikki. Keep on the good work.
-- SkyWalk
DB Export
ExportDB : as i'm discovering Wikki (and WikkaWiki) and playing with it on my main server and on my laptop (which too runs an Apache installation), I
was needing a quickly way of making export of my database. So I wrote a quick (and dirty ...) export page to get all the replace SQL commands to populate an instance.
I too may use this in the future to quickly backup an online Wikki site. See this additionnal page for the code : CodeExportdb
-- SergiO
Code block formatting
I was converting a document to Wikka markup format, and I was trying to display MySQL (Console) Table output using the "Code" formatters %%. Everything that appears in a code block is formatted using a monospace font (as I expect), however, since the Edit page handler converts every instance of 4 spaces to a tab, the spacing is thrown off. Below is an example (Select some of the whitespace with your mouse to see the tabs):---------------------------------------------------------------- OBJECT_TYPE COUNT(*) ------------------ ---------- FUNCTION 12 INDEX 55 LOB 4 PACKAGE 2 PACKAGE BODY 2 SEQUENCE 9 TABLE 37 TRIGGER 6 VIEW 1 9 rows selected no rows selected --------------------------------------------------------------------
The edit page handler seems to convert spaces to tabs throughout the entire document, including Code blocks.
From edit.php
Is there any way to make the edit handler leave the spaces alone inside of code blocks?
Thanks! -RichardTerry
Noted. Try commenting out that line for a temporary workaround. -- JsnX
// $body = str_replace(" ", "\t", $body);
Various suggestions
- See MarkHissinkMuller for things I would like to see in Wakka/Wacko/Wikka. Feel free to add/discuss.Other method to attach files
- I'd like a way to attach files to a page without having to include the {{files}} action. I like using the action to link to attachments, but I'd rather click a link at the bottom of each page to reach the attach form or to see which files are attached to the page. (I'm a PHP newbie, so It would probably take me some time to make a handler to do what I want.) Actually, now I'm kind of used to having all of my attached images displaying at the bottom of the screen, so this isn't a big deal. If I really don't want the attachment list (usually a bunch of images) to display I just remove the {{files}} from the page. -RichardTerryInstallation problem - UTF-8?
- Not a suggestion, but problems: with installing 1.1.3 on a Win 32 Apache 2, with Php 4.3.8 and Mysql 4.1.3. Upgrading from wakka 0.1.2 didn't work (ended with: "creating comment table - failed - hmm"). So I thought I'd do a fresh install. Everything went fine, but there seems to be some problem with utf8. Even when I set the charset in header.php to utf-8, the page is all scrambled. However, in phpMyAdmin, the text in the pages table shows up fine. Any clues? (I need utf-8, by the way ...) BirgitKellner.Sorry if this was the wrong place for posting this, and feel free to move it to a more appropriate one.
wikka don't support utf-8 yet. this issue is discussed here: WikkaInternationalization (and should be moved from there to its own page, 'cause it's not a trivial problem ;) --moved to HandlingUTF8 ). anyway, i'm afraid you won't find comprehensive help in that discussion. it's not enough to change the meta-tag. that only tells the browser to assume a charset, which in fact isn't used.
i haven't spent much time on that issue, although i am (or should be) interested in it. but be assured that it's not a simple config-value to be squeezed to solve the problem. i hope the discussion mentioned above will get more precise in the next days, as i would appreciate any hint how to start to despair of it ;) i think in long terms it's a must to support different charsets. -- DreckFehler
Add page link & other suggestions
- It would be Really Nice to be able to have an
- It would be nice if ACLs were somehow inheiritable from their creating pages (Created either the current way or via the above described method)
- Is it possible to define User Groups to simplify editing ACLs also.
- I tried to do something with ACLsWithUserGroups.
- Finally, (although I think I can possibly do this one myself) , On the Editor Page a link to the standard FormattingRules page would be most useful. Especially if it opened in a different window.
Regards Simon H.
- I like the
Mod_rewrite
take a look at FaviconDotIco and RobotsDotTxtDisable CamelCase
While I understand the arguments in favor of CamelCase, I prefer not to use it. Given how incredibly simple it is to modify Wikka for non CamelCase use (remove one line in formatters/wakka.php, and replace a regex in wikka.php, wouldn't it be simple just to add an admin option to turn it on and off?Rename Pages
It would be nice to be able to rename pages and automatically update all backlinks to point to the right page.Example: I have a HomePage which has a link to MyIdeas on it. Let's say I realized that all these ideas are Wikka related, so I want to rename the page to MyWikkaIdeas. Any link to MyIdeas (such as that on HomePage) should now be changed to point to MyWikkaIdeas.
- JonathanMitchem
- Yeah, so I found this... RefactorWiki which supposedly does exactly that (hasn't been tested)
CategoryDevelopmentSuggestions