Loading...
 
Skip to main content

History: Tips and Tricks

Source of version: 14 (current)

Copy to clipboard
            This page is still in development and will continuously be evolving as more people share their Profiles Tips and Tricks. Please consider any information you read on this page as opinions from experienced Profile Developers that may help you as you take the dive towards creating your first profile. 

These Tips and Tricks are by no means a manual on how to configure or create your profiles.  Profiles are very flexible and we encourage you to explore what can be accomplished with them. Be creative and please feel free to contribute back your Tips and Tricks to help others learn from your experiences.

{maketoc}

!Configuring Profiles
!! Basic hints
* Make sure that you keep the right indentation in your profile, if you copy YAML code from other profiles. This is a known source of trouble while creating a new profile.
* As a starter, you might want to copy a working featured profile page in your new page, and continue making changes from there; i.e. deleting uneeded settings, or setting options off/on as desired.
* For preferences, a good place to get the right syntax is to click on some checkboxes in your local tiki installation, apply changes, and copy the keywords for those preferences, since they have the right syntax. 

!!Configuration Layout

When creating Tiki Profiles you will notice that debugging can be difficult.  Although you can organize your profile any way your wish; you will notice that as you create more complex profiles debugging will become a pain if your Profile is disorganized. Here is a good order to ensure your profile is maintainable, easy to debug and ensure references get properly set. The idea behind the following flow is creating your profile from low level objects and moving up towards high level user interface configuration.

__Objects__
Anything that will generate an ID except for Modules & Menus (they get assigned in the UI section)
*Wiki Pages
*Forums
*Blogs
*etc...

__Features__
Turn on and off what you want activated

__Permissions__
Groups and Perms (also include Categories attached to any groups)

__UI__
Create the Modules & Menus you want and assign a theme

__Preferences__
Usually things found in the Admin -> General Section

!!Configuration Layout - Sample
__Objects__

''Wiki Pages''
{CODE(caption=>YAML,wrap=1)}
objects:
  -
    type: wiki_page
    ref: homepage_wiki_include
    data:
      name: HomePage
      description: HomePage
      lang: en
      mode: create_or_update
      content: wikicontent:HomePage


{CODE}


''File Gallery''
{CODE(caption=>YAML)}
objects:
 -
  type: file_gallery
  ref: site_file_gallery
  data:
   name: site images
   description: site images
   owner: admin
   archives: 0
   flags: [ public, visible, lockable ]
   column: [ icon, name, created, creator, files ]

{CODE}
__Features__

''Wiki''
{CODE(caption=>YAML)}
preferences:
 feature_wiki: y
 feature_lastChanges: y
 feature_history: y
 feature_source: y
 feature_listPages: y
 feature_wiki_comments: y
 wiki_comments_displayed_default: y
 feature_warn_on_edit: y
 feature_wiki_pictures: y
 feature_page_title: y
 feature_wikiwords: y
 feature_wikiwords_usedash: y
 feature_wiki_plurals: y
 feature_wiki_ext_icon: y
 feature_wiki_userpage: y
 feature_wiki_protect_email: y
 feature_wiki_1like_redirection: y
 wiki_edit_section: y
 wiki_list_name: y
 wiki_list_hits: y
 wiki_list_lastmodif: y
 wiki_list_user: y
 wiki_list_comment: y
 wiki_list_description: y
 wiki_list_versions: y
{CODE}

''Forums''
{CODE(caption=>YAML)}
preferences:
 feature_forums: y
 feature_forum_parse: y
 feature_forum_replyempty: y
 feature_forums_search: y
 feature_forum_content_search: y
 forum_list_topics: y
 forum_list_posts: y
 forum_list_lastpost: y
 forum_list_visits: y
 forum_list_desc: y
 forum_thread_defaults_by_forum: y
{CODE}

__Permissions__
{CODE(caption=>YAML, wrap=1)}
permissions:
 Anonymous:
  allow:
  deny: [ view ]
 Registered:
  description: 
  allow:
   - view
   - edit
   - read_comments
   - forum_post
   - forum_post_topic
   - forum_vote
  deny:
   - wiki_view_history
   - wiki_view_source
 Master:
  description: 
  include: Registered
  allow:
   - wiki_view_history
   - wiki_view_source
  deny: [  ]

 
{CODE}

__User Interface__

''Top Menu''
{CODE(caption=>YAML,wrap=1)}
objects:
 -
  type: menu
  ref: main_menu
  data:
   name: Main Menu
   description: links that appear in the top navigation bar 
   items:
     - 
      name: Home
      url: ((HomePage))
      groups: [ Anonymous ]
     - 
      name: About Us
      url: ((About Us))
      groups: [ Anonymous ]
     - 
      name: Contact Us
      url: tiki-contact.php
      groups: [ Anonymous ]


{CODE}





!Upgrading Profiles

When running the same profile twice either to test new options or actually to try and upgrade. You will notice that certain objects will be created twice. If duplication of objects is causing your profile upgrade to break menu links or make your site behave strange it is then a good idea to divide your profile into sub profiles each with their own specific task. 

A good example of how to separate your profile into sub profiles is to create one Profile for:
*Objects
*Features & Permissions
*User Interface (Modules, Menu's, Theme)

__Please Note__ that the downfall of this method means that you will not be able to use Profile References when referring to objects. Please review the Pros and Cons section before making a decision on how to manage your profile. You can also refer to the HOW TO section to see examples of assigning an object with a ((HOW TO - Assign Object Using Reference|Reference)) and Without a ((HOW TO - Assign Object Without Using Reference|Reference)) 

^ Note: You can reference objects in an other profile (see ((Object References))). If the profile containing it is already installed, the same object will be re-used. ^

!!Sub Profile - Pros
*Objects do not get duplicated when upgrading parts of profile
*Profile is easier to manage especially when multiple people are working on it
*You can use sub profiles as building blocks for other use cases (use Objects and Features combined with different UI Profile to create different applications)

!!Sub Profile - Cons
*You cannot use Profile References
*You need to run all of your Sub Profiles to complete your installation