00204: New FAQ system based on a ticket system
Description: Real big FAQs, all edited by hand are difficult to keep with pmwiki.
I need a FAQ that can be managed trough a ticket system (similar to what PITS is) and I can pay for it as long as it's not too expansive and if it doesn't go against the PmWiki:Philosophy? and if the system will be used and improved, by been released as a cookbook recipie.
Give me a few more details about how it should work and I'll see what I can put together (and what it might cost). Some initial questions:
- What fields does the basic input form need?
- How should the FAQ tickets be named/identified?
- What sort of output ordering needs to be available?
Instead of doing sequential tickets, as PITS does, it might be useful to take advantage of categories. Then we could have a sequence of pages that are included into the FAQ by simply placing a
[[!FAQ]] markup on them.
Basically, all I want is to have categories displaying the questions only (we have about 400 questions ) and the questions would be a link to the answers but i give you freedom, to think what is the best thing to do.
What about a real Ticket System?
It should include at least the following fields:
- Phone number
- email address
- Open/closed/Awaiting Feedback
- Ticket number (of course)
It should be possible to get the results on different pages:
- All open tickets
- All open ticket per Editor/Owner
- Closed tickets
- Closed tickets per Editor/Owner
- All tickets
I think the Editors/Owners should be listed on the main ticket page
What do you think? Klonk
You should take a look to [(approve links) edit diff] . This FAQ engine is PHP driven with a Mysql database backend. It is also Open Source and very powerful. Maybe this fits more to your needs (400 questions!!).
Modifying the ToDo script
You can create a ticketing system fairly easily, by modifying one of the ToDo scripts (XToDo), as follows. The idea is that you have two todoform markups: a standard one and a "full" one. The standard form is for users to make new requests. The "full" one is for the administrators.
Add a "todoformfull" markup, before "todoform". Add a parameter to XToDoFormMarkup, as shown. For the last parameter, a value of 0 refers to the standard form; a value of 1 refers to the full form.
Markup('todoformfull', 'inline', '/\\(:todoformfull\\s*(.*?):\\)/e', "Keep(XToDoFormMarkup('$pagename', '$1', 1),'')"); Markup('todoform', 'inline', '/\\(:todoform\\s*(.*?):\\)/e', "Keep(XToDoFormMarkup('$pagename', '$1', 0),'')");
You will have to modify other functions to include that last parameter, too. Here are examples.
function XToDoFormDisplay($pagename, $category, $full) function XToDoForm($item_id, $create_date, $action, $next_page, $group_name, $category, $owners, $selection, $submit_text, $full)
You then just change any parts of the script where you want ($full == 1) to do something special. I have a next_page going to a "thank you" page when $full==0. I remove other form fields from the standard from using these conditional statements.
-- Mike 07 Dec 2005