Easy setup of a wiki-based knowledge management system using Tiki
Link to event: https://fosdem.org/2019/schedule/event/collab_tiki_wiki_knowledge_base/
Link to longer, uninterrupted video (tutorial): https://www.dailymotion.com/video/x72oqxe
Abstract:
I will also explain how to manage permissions for various use cases, how to separate different topics, how to access stored knowledge.
Full Description
I will show how to configure permissions for a publically visible and editable knowledge base, or separate knowledge bases which are restricted to groups of users and invisible to others, or intermediate scenarios with groups of editors and groups of read-only viewers.
I will show the basics of how to make the knowledge acessible, searchable, navigatable and allow comments from people who can only view it.
Table of contents
We start with a real-life Tiki website right after the installer was run.
Tiki version is Tiki 18 LTS (Long Term Support)
Nothing special except I put my email in Sender email field because I want people who get automated notifications to reply to me in an easy way.
Setting Tiki
I did the demo on a local VM http://fosdem.alsawiki.com You need to adapt links shown below to your own site.
Special for the FOSDEM presentation: theme trick
I set a different theme for admins than normal users to make it clear if it's an admin's view or a user's view for the people who watch the vidéo.
Settings → Control Panel
Switch to advanced mode: Switch from Basic
to Advanced
then Set as my default.
→ Look & Feel → Theme
Site theme: Slate
Group theme: check
Settings → Groups → Admins
Admins group theme: Default
Now admin views are mostly white and anonymous browsing or normal users are grey.
General Tiki improvements
I set a number of configurations which make sense for our use case or are required for the site to perform as we want.
activate features http://fosdem.alsawiki.com/tiki-admin.php?page=features
- Blogs
- Category
- Group watches
General configurations http://fosdem.alsawiki.com/tiki-admin.php?page=general&cookietab=3
- Use group homepages
- Go to the group homepage only if logging in from the default homepage
Look & Feel
→ Custom CSS
footer#footer { text-align: center; } footer { border-top: 1px solid; }
Admin Wiki
- General Preferences
- Wiki URL scheme: Replace spaces with underscores
- uncheck
Display page name as page title - Display page name above page
- List authors: collaborative
- Allow override per page
- Features
- Comments below wiki pages
- Structures
- Make structure from page
- Categorize structure pages together
- Disable inherited direct object permissions
- Pages not in structure
Set up global permissions
- Blogs
none - Category
none - Comments
add Registered can read comments
add Registered can post comments - File galleries
delete Can download files
none - Group
none - User
none - Wiki
delete Can view page/pages
none - wiki structure
none - Tiki
change Registered can search
Reload user browser: Lost access to everything, as expected.
Ugly message: Let's fix that.
Reorganise modules and HomePage
For the benefit of visitors.
HomePage
! Welcome to this FOSDEM talk demo site The purpose of this website is to demonstrate how to set up a site for collaborating efficiently with different customers which don't know about each other. As a Tiki and Free Software specialist freelancer, I have been using this system for my own communication with my customers for 8 years. They like it.
Remove list of authors.
Edit HomePage object permissions
Anonymous can view
Set Modules
Settings → Modules
Move login module from top to left
position: 1
mode: module
Add Since last visit to right section
Only visible to Registered
Add Search module to right (with more time, it might be nicer in top section but detailed placing requires CSS)
Restrict Menu 42 module to Admins
Reload user browser: View the site for Anonymous users (not logged in)
Create a new workspace for AACMEE Corp (aacmee)
Totally fictitious Corporation, don't sue! 😊
Create category aacmee
- "Categories" → "Admin Categories" → Name : aacmee
Uncheck Apply parent category permissions
Create group aacmee
- Description: People involved in AACMEE Corp's projects.
- Inherit permissions directly from following groups: Registered
- Group Home page: aacmee - Homepage
- Set default Category: aacmee
Default category assigned to uncategorised objects edited by a user with this default group
Set Group permissions for category aacmee
"Categories" → "Admin Categories" → aacmee (spanner) → Permissions
Select group aacmee for display.
All permissions are set for group aacme
- blogs
Can post to a blog (tiki_p_blog_post)
Can read blogs (tiki_p_read_blog)' - category
Can see the category in a listing (tiki_p_view_category)
Can add objects to the category (tiki_p_modify_object_categories permission required) (tiki_p_add_object)
Can remove objects from the category (tiki_p_modify_object_categories permission required) (tiki_p_remove_object) - comments
Can post new comments (tiki_p_post_comments)
Can read comments (tiki_p_read_comments) - file galleries
(all but Can assign permissions to file galleries (tiki_p_assign_perm_file_gallery)) - group
(none) - wiki
Can view page/pages (tiki_p_view)
Can edit pages (tiki_p_edit)
Can view wiki history (tiki_p_wiki_view_history)
Can roll back pages (tiki_p_rollback)
Can view wiki comments (tiki_p_wiki_view_comments) - wiki structure
Can create and edit structures (tiki_p_edit_structures) - Tiki
Can change the categories of an object (tiki_p_modify_object_categories)
Create user account Vile Fox
"Admin Users" → fill
- username: Vile Fox
- × User must change password at next login.
- × Send an email to the user in order to allow him to validate his account.
(no self-registration, only professional contacts known beforehand here)
Set him in group aacmee
, also as the default group
There won't be a confirmation mail (this is a demo running on a VM). Force validation as admin (right-hand spanner for user)
Log in and set the password for Vile Fox
Tip: For the demo, we create it early and actually use it. In real life, use "switch user" as an admin in the login module for testing what he can see and do.
Create file Gallery aacmee
First create a projects file gallery to keep things orderly.
- Create file Gallery aacmee in Projects → Keep track of number NNN
- Optionally, create aacmee → Invoices
Group Monitor: aacmee
Create blog aacmee day-to-day interventions
- Create blog aacmee day-to-day interventions
Description:
- Allow search
Categorize: aacmee
→ Save → Note number NNN
Group Monitor: aacmee
Create page aacmee - Homepage
-= aacmee =- This section is reserved for people involved in ACME Corp and can be accessed by the following. {userlist sort="asc" link="userinfo" realname="y" group="aacmee"} {DIV(class="row")}{DIV(class="col")} __Pages of interest__ __((aacmee - HomePage))__ {toc showdesc="0"}{DIV}{DIV(class="col")}[tiki-view_blog.php?blogId=XXX|Last posts] [tiki-blog_post.php?blogId=XXX|{div type="span" class="icon icon-post fa fa-pen fa-fw " title="New post" alt="New post"}] {bloglist Id="XXX" simpleList="y"}[tiki-view_blog.php?blogId=XXX|Last posts] [tiki-blog_post.php?blogId=XXX|{div type="span" class="icon icon-post fa fa-pen fa-fw " title="New post" alt="New post"}]{DIV}{DIV} {FADE(label="Documents" icon="y")} {files galleryId="XXX" showaction="y" showfind="y" showtitle="n" showicon="y" showfilename="n" recursive="y" withsubgals="y"}{FADE}
-= aacmee =- This section is reserved for people involved in ACME Corp and can be accessed by the following. {userlist sort="asc" link="userinfo" realname="y" group="aacmee"} {DIV(class="col-xs-6")} __Pages of interest__ __((aacmee - HomePage))__ {toc showdesc="0"}{DIV}{DIV(class="col-xs-6")}[tiki-view_blog.php?blogId=XXX|Last posts] [tiki-blog_post.php?blogId=XXX|{div type="span" class="icon icon-post fa fa-pencil fa-fw " title="New post" alt="New post"}] {bloglist Id="XXX" simpleList="y"}[tiki-view_blog.php?blogId=XXX|Last posts] [tiki-blog_post.php?blogId=XXX|{div type="span" class="icon icon-post fa fa-pencil fa-fw " title="New post" alt="New post"}]{DIV} {FADE(label="Documents" icon="y")} {files galleryId="XXX" showaction="y" showfind="y" showtitle="n" showicon="y" showfilename="n" recursive="y" withsubgals="y"}{FADE}
(Tiki 18 used Bootstrap 3 and the third-party fontawesome library glyphs changed names)
- Make Structure on aacmee - Homepage
- Categorise all pages in structure together → aacmee
Note structure number: NMM
http://projects.alsawiki.com/tiki-edit_structure.php?page=aacmee+-+Homepage&page_ref_id=NMM
Group monitor structure: aacmee
Create custom module
So as to let users and yourself find their way.
Admin → Modules
Create new custom module
Name: Custom menu aacmee
Title: aacmee
x ← Must be wiki parsed.
Data:
__((aacmee - HomePage))__ {module module="menu" notitle="y" nobox="y" structureId="XXX" type="vert"} __[fileXXX|Documents]__ __[blogXXX|Day-to-day activity] <a href="tiki-blog_post.php?blogId=XXX"><span class="icon icon-post fa fa-pencil fa-fw " title="New post" alt="New post" ></span></a>__
__((aacmee - HomePage))__ {module module="menu" notitle="y" nobox="y" structureId="1" type="vert"} __[file5|Documents]__ __[blog5|Day-to-day activity] <a href="tiki-blog_post.php?blogId=5"><span class="icon icon-post fa fa-pencil fa-fw " title="New post" alt="New post" ></span></a>__
→ Create
Click Assign
Position: Left
Order: 2
Groups: aacmee
→ Assign
Edit again (double click)
Groups: aacmee
Flip: y
Exit Modules
Validate
That's it
You can add other customers and other companies and they won't see each other.
Yet you can communicate with them and changes trigger email notifications.
Extensions and improvements
Please remember that more communication channels does not necessary lead to better communication. As an example, a small addition to the above would be to create a bug tracker for a customer/project. This would be done just like adding the blog or the file galleries above. Yet, in 8 years only a single customer of mine wanted to communicate using a bug tracker.
If you feel constrained by the end result of the above and you would like full control of forms, processes and such, you can have a much more elaborate site and more customisation using Tiki's trackers feature (which really stands for our inbuilt database/forms system).
That's more complex than the above, but also way more powerful.
Yes, if you want more control than a plain blog, you can rewrite the blog feature using trackers. Same for file galleries.
But that's off-topic.