When creating object, auto-increment ids are used internally by Tikiwiki. Object references allow to track these object IDs during the profile creation to create relationships between the different objects.
The
object block contains all objects to be created.
CategoryTreeProfile
objects:
-
type: category
ref: profile_category
data:
name: Profiles
-
type: category
ref: app_category
data:
name: Tracker Applications
parent: $profile_category
-
type: category
data:
name: Site Samples
parent: $profile_category
As you can see, the profile defined here will create three distinct categories.
Profiles will be the parent category and contain two child categories. These child categories find their parent by using a reference (
$profile_category). This internal reference uses the name defined by the
ref attribute. For more information about the category object type, see CategoryHandler.
- Reference attributes (ref)
- are optional
- must be unique inside a profile
- can be useful to understand the ProfileHistory
- Internal references ($object_name)
- must refer to an existing object
- act as a variable
- must not cause circular dependencies between objects
- Inter-profile references ($ProfileName:object_name)
- must refer to an existing profile on the same site
- must not cause circular dependencies between profiles
- allow to refer to objects created by other profiles
- will cause the other profile to be installed
- Cross-site references ($example.com:ProfileName:object_name)
- must refer to a valid Tikiwiki installation
- allows to create custom profile extensions on a personal host
SampleDataProfile
objects:
-
type: wiki_page
ref: sample_page
data:
name: SampleProfile
category: $CategoryTreeProfile:app_category
content: |
...
References don't have to be in a logical place. Profiles are a big data structure. Each part may or may not be interpreted depending on what features are supported.
MyConfigurationRepositoryProfile
dependencies: # Could also be called dummy
- $profiles.tikiwiki.org:BugTrackerProfile:bug_tracker
- $profiles.tikiwiki.org:ClientManagementProfile:client_tracker
- $profiles.tikiwiki.org:SampleDataProfile:sample_page
By installing the
MyConfigurationRepositoryProfile profile, the following profiles would be installed:
- ))BugTrackerProfile((
- ))ClientManagementProfile((
- ))CategoryTreeProfile((
- ))SampleDataProfile((
- ))MyConfigurationRepositoryProfile((