Tiki services
Services in Tiki are PHP classes.
Services execute certain actions (eg: insert, update, delete, list, etc).
Services vs libs
Tiki libs
provide a reusable functionality to other Tiki components. For example, the Tiki syntax parser is a library used by many other components that need transform Tiki syntax in HTML.
But if you need to provide data or functionality to a component outside Tiki, like a third-party javascript component, you have to use Services. For example, the "Favorite" service lets third party javascript components add and retrieve user's favorites list.
Service catalogue
The Tiki services folders containing Controller files, lives under lib/core/Services/.
Each folder containing a Tiki service is registered in the file db/config/controllers.xml
For example, the Wiki service is available in folder lib/core/Services/Wiki/ and its controllers are registered in controllers.xml like below.
<service id="tiki.controller.wiki" class="Services_Wiki_Controller"/>
Actions
A service can contain one or more controllers. The Wiki, for example, contains two controllers: Services_Wiki_StructureController
and Services_Wiki_Controller
.
Public and private functions
Smarty tpl
Using $input
$input holds all information passed to the action (variables with values). This needs to be extracted and validated in the action.
Using $confirm
In the smarty templates put a $confirm
variable, this helps to identify if the action is to be executed.
Why? For a given action the same smarty tpl is used for creating a new item and updating an existing one.
Calling a service through a button/link
1) use service
2) use bootstrap_modal