# Knowledge Console UI Hooks The Knowledge Console supports declarative framework to define hooks in JSON format to add the following capabilities: * Add a custom button in the user options menu in the top toolbar. * Add a custom button in the article toolbar or the article options menu. * Hide default buttons from the user interface. * Modify CKEditor configuration (without adding extra plugins). ### Add Top Toolbar Buttons Use the *topToolbarButtons()* hook to include custom buttons in the user options menu. The object is an array of buttons. The structure for the button data is described in the following section: ##### Object + **name**: Name of the custom toolbar button. + *Required*: Yes + **l10n_name**: Localized name of the custom toolbar button. It is a key-value pair. + Available language keys: + *en-us, de-de-, es-es, fr-ca, fr-fr, it-it, ja-jp, ko-kr, nl-nl, pt-br, pt-pt, zh-cn, ru-ru, pl-pl, cs-cz, da-da, sv-sv* + *value*: One of the above + **url**: URL to invoke. Users can also pass parameters such as `userId` and `refurl` in the URL. See an example for more details. + *Required*: Yes + *value*: `userId`, `refURL` + **urlParams**: Additional parameters to be passed along with the URL. + accessorType: Access to an object + *value*: `sessionStorage`, `localStorage`, `user`, `userGroups`, `url` + accessor: The object key whose value is to be set + *value*: `name`, `id`, etc. + accessorParser + *value*: `int`, `json`, `date` + accessorPath: Path for JSON if `accessorParser` is in JSON format + key: URL param name + **mode**: Open as a modal or in a new window. Defaults to window + *value*: `iframe`, `window` + **icon**: Image URL or Base64 + **conditions**: If not provided, the button is always shown. + accessorType: Access to an object + *value*: `sessionStorage`, `localStorage`, `user`, `userGroups`, `url` + accessor: The object key whose value it is to be compared. This key is used to look inside `accessorType` and can be a JSON path. For `userGroups` use `name` or `id` only. + accessorParser + accessorPath: Path for JSON if `accessorParser` is JSON + value: Value to be compared, or an object for fetching value. + valueType + *value*: `localStorage` or `sessionStorage` + valueAccessor: Key to be used to fetch value from `localStorage` or `sessionStorage` + valueParser + *value*: `int`, `json`, `date` + valuePath: Path for JSON if `valueParser` is JSON. + operator: Comparison operator. *contains()* and *notcontains()* only work if accessed value is type string. For values of array type and user group, *has()* and *nothas()* should be used. + boolean: Boolean operator + *value*: `and`, `or` + conditions: Nested condition object ``` { "topToolbarButtons": [ { "name": "Top Button egain", "_comment_name": "// TODO need to think about l10n", "l10n_name": { "en-us": "Top English name", "de-de": "De name", "es-es": "es name", "fr-ca": "fr name", "fr-fr": "fr fr name", "it-it": "it name", "ja-jp": "ja name", "ko-kr": "ko name", "nl-nl": "nl name", "pt-br": "pt name", "pt-pt": "pt pt name", "zh-cn": "zh name", "ru-ru": "ru name", "pl-pl": "pl name", "cs-cz": "cs name", "da-da": "da name", "sv-sv": "sv name" }, "_comment_icon": "", "url": "https://ussuhvvm0048.egdemo.info/duo.html?a={userId}", "mode": "window", "_comment_mode": "iframe, window", "icon": "data:image/png;base64,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", "hide": false } ] } ``` ### Add Custom Article Buttons Use the *customArticleButtons()* hook to include custom buttons in the article toolbar or in the article options menu. ##### Object Attributes + **name**: Name of the custom article button + *Required*: Yes + **l10n_name**: Localized name of the custom toolbar button. It is a key-value pair. + Available language keys: + *en-us, de-de, es-es, fr-ca, fr-fr, it-it, ja-jp, ko-kr, nl-nl, pt-br, pt-pt, zh-cn, ru-ru, pl-pl, cs-cz, da-da, sv-sv* + **position**: Display in the article toolbar or in the articles options menu + *Required*: Yes + *value*: `toolbar`, `more` + **url**: URL to invoke, passes the user or article parameters. + *Required*: Yes + *value*: `usrId`, `articleId`, `versionId`, `lastModified`, `refURL` + **urlParams**: Additional parameters to be passed with the URL + accessorType: Access to an object + *value*: `sessionStorage`, `localStorage`, `article`, `user`, `userGroups`, `url` + accessor: The object key whose value is to be set + *value*: `name`, `id`, `defaultKbLanguage`, `lastModified.date`, etc. + accessorParser + *value*: `int`, `json`, `date` + accessorPath: Path for JSON if accessorParser is JSON + key: URL param name + **mode**: Open as a modal or in a new window + *Required*: Yes + *value*: `iframe`, `window` + **title**: Title of the modal window + **l10_title**: Localized title of the modal window. It is a key-value pair. + Available language keys: + *en-us, de-de, es-es, fr-ca, fr-fr, it-it, ja-jp, ko-kr, nl-nl, pt-br, pt-pt, zh-cn, ru-ru, pl-pl, cs-cz, da-da, sv-sv* + **icon**: Image URL or Base64 + **conditions** + accessorType: Access to an object + *value*: `sessionStorage`, `localStorage`, `article`, `user`, `userGroups`, `url` + accessor: The object key whose value is to be compared. This key is used to look inside `accessorType`. It can be a JSON path. For `userGroups`, use `name` or `id` only. + accessorParser + *value*: `int`, `json`, `date` + accessorPath: Path for JSON if accessorParser is JSON + value: Value to be compared, or an object for fetching value. + valueType + *value*: `localStorage` or `sessionStorage` + valueAccessor: Key to be used to fetch value from `localStorage` or `sessionStorage` + valueParser + *value*: `int`, `json`, `date` + valuePath: Path for JSON if valueParser is JSON + operator: Comparison operator. `contains` and `notcontains` only work if accessed value is a string. For values of array type and user group, `has` and `nothas` should be used. + *value*: `equal`, `notequal`, `gt`, `gte`, `lt`, `lte`, `contains`, `notcontains`, `has`, `nothas` + boolean: Boolean operator + *value*: `and`, `or` + conditions: Nested condition object ``` { "customArticleButtons": [ { "name": "Custom egain", "l10n_name": { "en-us": "English name", "de-de": "De name", "es-es": "es name", "fr-ca": "fr name", "fr-fr": "fr fr name", "it-it": "it name", "ja-jp": "ja name", "ko-kr": "ko name", "nl-nl": "nl name", "pt-br": "pt name", "pt-pt": "pt pt name", "zh-cn": "zh name", "ru-ru": "ru name", "pl-pl": "pl name", "cs-cz": "cs name", "da-da": "da name", "sv-sv": "sv name" }, "title": "Modal title", "l10n_title": { "en-us": "English modal title" }, "icon": "data:image/png;base64,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", "url": "https://ussuhvvm0048.egdemo.info/duo.html?a={articleId}&b={userId}&c={versionId}&d={lastModified}", "mode": "iframe", "_comment_mode": "iframe, window", "position": "toolbar", "_comment_position": "more, toolbar", "hide": false, "conditions": [ { "accessor": "versions.version[0].articleState", "operator": "equal", "_comment_operator": "equal, notequal, gt, gte, lt, lte", "value": "published", "boolean": "or" }, { "conditions": [ { "accessor": "versions.version[0].articleState", "operator": "equal", "value": "transient", "boolean": "and" }, { "accessor": "versions.version[0].lockedBy", "operator": "notequal", "value": null, "boolean": "and" } ], "boolean": "or" } ] }, { "name": "Custom egain2", "_comment_name": "// TODO need to think about l10n", "l10n_name": { "en-us": "English name more", "de-de": "De name", "es-es": "es name", "fr-ca": "fr name", "fr-fr": "fr fr name", "it-it": "it name", "ja-jp": "ja name", "ko-kr": "ko name", "nl-nl": "nl name", "pt-br": "pt name", "pt-pt": "pt pt name", "zh-cn": "zh name", "ru-ru": "ru name", "pl-pl": "pl name", "cs-cz": "cs name", "da-da": "da name", "sv-sv": "sv name" }, "_comment_icon": "", "url": "https://ussuhvvm0048.egdemo.info/duo.html?a={articleId}&b={userId}&c={versionId}&d={lastModified}", "mode": "window", "_comment_mode": "iframe, window", "position": "more", "_comment_position": "more, toolbar", "hide": false, "conditions": [ { "accessor": "versions.version[0].articleState", "operator": "equal", "_comment_operator": "equal, notequal, gt, gte, lt, lte", "value": "published", "boolean": "or" }, { "conditions": [ { "accessor": "versions.version[0].articleState", "operator": "equal", "value": "transient", "boolean": "and" }, { "accessor": "versions.version[0].lockedBy", "operator": "notequal", "value": null, "boolean": "and" } ], "boolean": "or" } ] } ] } ``` ### Hide Default Article Buttons Use the *hideOOBArticleButtons()* hook to hide default article buttons from the article toolbar or from the article options menu. ##### Object Attributes + **buttonName**: Name of the default article button + *Required*: yes + *value*: `publishDropDown`, `sendTo`, `checkOut`, `checkIn`, `close`, `publish` + **conditions**: If empty, the button is hidden. If evaluated as true, the button is hidden. + accessorType: Access to an object + *value*: `sessionStorage`, `localStorage`, `article`, `user`, `userGroups`, `url` + accessor: The object key whose value is to be compared. This key is used to look inside `accessorType`. It can be a JSON path. For userGroups, use `name` or `id` only. + accessorParser + *value*: `int`, `json`, `date` + value: Value to be compared, or an object for fetching value + valueType + *value*: `localStorage` or `sessionStorage` + valueAccessor: Key to be used to fetch value from localStorage or sessionStorage + valueParser + *value*: `int`, `json`, `date` + valuePath: Path for JSON if valueParser is JSON + operator: Comparison operator. `contains` and `notcontains` only work if accessed value is a string. For values of array type and user group, `has` and `nothas` should be used. + *value*: `equal`, `notequal`, `gt`, `gte`, `lt`, `lte`, `contains`, `notcontains`, `has`, `nothas` + boolean: Boolean operator + *value*: `and`, `or` + conditions: Nested condition object ``` { "hideOOBArticleButtons": [ { "buttonName": "testButton", "_comment_buttonName": "publishDropDown, sendTo, checkOut, checkIn, close, publish", "conditions": [ { "accessor": "versions.version[0].articleState", "operator": "equal", "_comment_operator": "equal, notequal, gt, gte, lt, lte", "value": "published", "boolean": "or" }, { "conditions": [ { "accessor": "versions.version[0].articleState", "operator": "equal", "value": "transient", "boolean": "and" }, { "accessor": "versions.version[0].lockedBy", "operator": "notequal", "value": null, "boolean": "and" } ], "boolean": "or" } ] } ] } ``` ### Modify CKEditor Configuration Use the *ckeditor4Config()* hook to define CKEditor configuration. It follows the CKEditor config structure. Additionally, use *ckeditor4ExtraPlugin()* to define the path of extra plugins that need to be loaded. This is an array of objects defined by the following structure: ##### Object Attributes + name: Name of plugin + path: URL of plugin, usually the path to the plugin file. ``` { "ckeditorConfig": { "toolbar": { "items": [ "sourceEditing" ] } } } ```