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 demonstrate an easy and fast way of configuring Tiki Wiki CMS Groupware for the purpose of having a central repository for a knowledge base.

I will also explain how to manage permissions for various use cases, how to separate different topics, how to access stored knowledge.


Full Description

This presentation will start with a minimal Tiki site and show how to build structures of pages and file repositories.


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.


HOWTO


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.
SettingsControl Panel
Switch to advanced mode: Switch from Basic to Advanced then Set as my default.
Look & FeelTheme
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

Copy to clipboard
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

Recap

Preference wiki url scheme set (Preference name: wiki_url_scheme)
Preference feature page title disabled (Preference name: feature_page_title)
Preference wiki page name above enabled (Preference name: wiki_page_name_above)
Preference wiki authors style set (Preference name: wiki_authors_style)
Preference wiki authors style by page enabled (Preference name: wiki_authors_style_by_page)
Preference feature wiki comments enabled (Preference name: feature_wiki_comments)
Preference feature wiki structure enabled (Preference name: feature_wiki_structure)
Preference feature wiki open as structure enabled (Preference name: feature_wiki_open_as_structure)
Preference feature wiki make structure enabled (Preference name: feature_wiki_make_structure)
Preference feature wiki categorize structure enabled (Preference name: feature_wiki_categorize_structure)
Preference feature listorphanStructure enabled (Preference name: feature_listorphanStructure)

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

Recap

Global permissions:
Added
Registered: tiki_p_search (tiki)
Deleted
Anonymous and all the children groups: tiki_p_download_files (file galleries)
Anonymous and all the children groups: tiki_p_view (wiki)
Anonymous and all the children groups: tiki_p_search (tiki)


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

Copy to clipboard
! 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


SettingsModules

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)

Recap

Object permissions for the category aacmee (ID 1):
Added

aacmee: tiki_p_blog_post (blogs)
aacmee: tiki_p_read_blog (blogs)
aacmee: tiki_p_view_category (category)
aacmee: tiki_p_add_object (category)
aacmee: tiki_p_remove_object (category)
aacmee: tiki_p_download_files (file galleries)
aacmee: tiki_p_upload_files (file galleries)
aacmee: tiki_p_list_file_galleries (file galleries)
aacmee: tiki_p_view_file_gallery (file galleries)
aacmee: tiki_p_admin_file_galleries (file galleries)
aacmee: tiki_p_batch_upload_files (file galleries)
aacmee: tiki_p_create_file_galleries (file galleries)
aacmee: tiki_p_edit_gallery_file (file galleries)
aacmee: tiki_p_remove_files (file galleries)
aacmee: tiki_p_view_fgal_explorer (file galleries)
aacmee: tiki_p_view_fgal_path (file galleries)
aacmee: tiki_p_upload_javascript (file galleries)
aacmee: tiki_p_view (wiki)
aacmee: tiki_p_edit (wiki)
aacmee: tiki_p_wiki_view_history (wiki)
aacmee: tiki_p_rollback (wiki)
aacmee: tiki_p_wiki_view_comments (wiki)
aacmee: tiki_p_edit_structures (wiki structure)
aacmee: tiki_p_modify_object_categories (tiki)

Create user account Vile Fox


"Admin Users" → fill

    • username: Vile Fox
    • × User must change password at next login.
    • email
    • × 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.


First create a projects file gallery to keep things orderly.

  • Create file Gallery aacmee in Projects → Keep track of number NNN
    • Optionally, create aacmeeInvoices


Group Monitor: aacmee

Create blog aacmee day-to-day interventions

  • Create blog aacmee day-to-day interventions

Description:
Tasks performed for AACMEE Corp. This is for keeping track of day-to-day interventions

  • Allow search


Categorize: aacmee

Save → Note number NNN

Group Monitor: aacmee

Create page aacmee - Homepage

aacmee - Homepage
Copy to clipboard
-= 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 - Homepage
Copy to clipboard
-= 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:

Data template
Copy to clipboard
__((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>__

Data already replaced with values you get if you start from scratch and follow the above instructions
Copy to clipboard
__((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.