Skip to main content

Slots available for admin panel plugins

This document lists all the slots available for admin panel plugins in Kuroco.

Admin panel plugin settings

When configuring admin panel plugins, you must include the following information to specify where and under what conditions the plugins will be placed:

  • Slot
  • Slot parameters

Slot

A slot is a location identifier for plugins. Provide both the target page URL and the slot to specify where a plugin will be inserted on the page.

Slot parameter

The slot parameter indicates the display conditions of a plugin. For example, you may want to insert a plugin only for pages that match a specific ID. Different parameters are available depending on the slot.

List of slots for Vue.js plugins

Below is a list of slots that can be used for Vue plugins, along with information on their functions, settings, and props (if available).

Universal plugin settings

The settings below apply to all target slots. For this reason, they have been omitted from the slot descriptions.

ParentChildPurposeDescriptionExample
SourceURLURL location of bundle filesSpecify the path of the directory containing manifest.json.
(Note: You can use any path, but it must match the one under publicPath in rcms-js.config.js.)
  • Relative format (for KurocoFiles): /files/user/mng_vue_components
  • Absolute format (external host): https://.../files/user/mng_vue_components

Content module

Available slots in the Content module

Content structure - Additional fields

Any additional field on the content editor screen

Image from Gyazo

All repetitions of an additional field (if it has been set to be repeated)

Image from Gyazo

All (sub-)fields within a grouped field

Image from Gyazo

Plugin settings

ParentChildValueDescriptionExample
SourceComponent nameComponent name (optional value)ContentTextInput
Manifest keyvendors.\*;{ComponentName}.\*vendors.\*;ContentTextInput.\*
TargetPage URI/topics/topics_edit/
Slot nameext_{N}, where {N} is the field numberName of the additional field to be replaced by the plugin. (Note: For grouped fields, use only the name of the first field in the group.)ext_1

Slot parameters

ParameterValueDescriptionExample
topics_group_idtopics_group_id={G}, where {G} is the topic group ID (content structure ID)Content structure ID to be replaced by the plugintopics_group_id=1

Props

There are 2 types of props for Vue component. Next values will be propagated to the component by default:

NameTypeDescription
topics_group_idNumberTopic group ID (content structure ID)
extConfigArrayArray containing the additional field settings as objects (for the number of repetitions)
  • ext_col_nm: Extended field key
  • ext_slug: Identifier
  • title: Field name
  • value: Input value
  • options: Options for selection-type fields
  • limits: Input restrictions

You also can specify any component-specific props:

Image from Gyazo

Property typeSampleDescription
Static"test": "test_value"Any JSON-valid value
Member info"member_id": "MEMBER::member_id"Logged in member info. Format: MEMBER::field_name. Next fields are available:
  • member_id
  • email
  • name1
  • name2
Predefined constants"url": "CONST::ROOT_URL"Any constant defined at the "Enviroment" -> "Constants" page. Format: CONST::constant_name.

Source examples

Content editor

Any field on the content editor screen

Image from Gyazo

Plugin settings

ParentChildValueDescriptionExample
SourceComponent nameComponent name (optional value)ContentEditForm
Manifest keyvendors.\*;{ComponentName}.\*vendors.\*;ContentEditForm.\*
TargetPage URI/topics/topics_edit/URL of the content editor page
Slot nameedit_form

Slot parameters

ParameterValueDescriptionExample
topics_group_idtopics_group_id={G}, where {G} is the topic group ID (content structure ID)Content structure ID to be replaced by the plugintopics_group_id=1

Props

NameTypeDescription
topics_idNumberContent ID (topic ID)
topics_group_idNumberTopic group ID (content structure ID)
ext_itemsArrayAdditional field structure
formDataObjectInput data
DG_CODEStringCSRF token
categoryCountNumberNumber of content categories
categoryOptionsObjectContent category options
topicsFlagOptionsObjectOther settings - "Show in list" options
regularFlagOptionsObjectOther settings - "Display on top" options
memberGroupOptionsObjectOther settings - "access authorization" options
relatedTagsObjectRelated tags
notifOptionsObjectPublishing integration settings - "Sync notifications" options
githubWorkflowOptionsObjectGitHub Workflow options

Content list

Any entry in the content list

Image from Gyazo

Plugin settings

ParentChildValueDescriptionExample
SourceComponent nameTopicsListComponent name (optional value)
Manifest keyvendors.\*;TopicsList.\*
TargetPage URI/topics/topics_list/URL of the content list page
Slot namemodules/topics/TopicsList

Props

NameTypeDescription
topics_group_idNumberTopic group ID (content structure ID)

Form module

Available slots in the Form module

Form editor - [Report] tab

Insert new component on the report screen

Image from Gyazo

Plugin settings

ParentChildValueDescriptionExample
SourceComponent nameTopicsListComponent name (optional value)InquiryListTop
Manifest keyvendors.\*;{ComponentName}.\*vendors.\*;InquiryListTop.\*
TargetPage URI/inquiry/inquiry_report/
Slot namelist_main_top

Form editor - [Submissions] tab (top)

Insert new component at the top of the Submissions screen

Image from Gyazo

Plugin settings

ParentChildValueDescriptionExample
SourceComponent nameComponent name (optional value)InquiryListTop
Manifest keyvendors.\*;{ComponentName}.\*vendors.\*;InquiryListTop.\*
TargetPage URI/inquiry/inquiry_bn_list/
Slot namelist_main_top

Form editor - [Submissions] tab (list)

Any entry on the Submissions screen

Image from Gyazo

Plugin settings

ParentChildValueDescriptionExample
SourceComponent nameInquiryBnListVue component name (optional value)
Manifest keyvendors.\*;InquiryBnList.\*
TargetPage URI/inquiry/inquiry_bn_list/URL of the submissions list page
Slot namemodules/inquiry/InquiryBnList
Slot parameter-

Member module

Available slots in the Member module

Member editor

Any additional field on the member editor screen

Image from Gyazo

Plugin settings

ParentChildValueDescriptionExample
SourceComponent nameComponent name (optional value)MemberTextInput
Manifest keyvendors.\*;{ComponentName}.\*vendors.\*;MemberTextInput.\*
TargetPage URI/member/member_edit/URL of the member editor page
Slot nameIdentifier of the target additional fieldVariable name defined in the additional field settingsext_text

Props

NameTypeDescription
valueanyInput value
extConfigObjectAdditional field structure
member_idNumberTarget member ID
group_idsArrayAll Group IDs that the target member belongs to

List of slots for CSS plugins

Below is a list of slots available for CSS plugins, along with information on their functions, settings, and props (if available).

info

For more information on how to configure CSS plugins, see Tutorial: Apply CSS to a Kuroco management screen with the plugin.

<head> tag

Plugin settings

ParentChildValueDescriptionExample
SourceURLURL of the CSS file
  • Relative format (for KurocoFiles): /files/user/css/plugin.css
  • Absolute format (external host): https://.../files/user/css/plugin.css
TargetPage URIOptional URIPath of the page using the CSS
Slot namehead

Slot parameters

ParameterValueDescriptionExample
topics_group_idtopics_group_id={G}, where {G} is the topic group ID (content structure ID)Content structure ID to be replaced by the plugintopics_group_id=1
ParameterValueDescriptionExample
group_id
  • group_id=G
  • group_id[]=G
where G is the target group ID
Apply the CSS to all users belonging to the specified group
  • Apply to members in Group 2: group_id=2
  • Apply to members in Group 2 or Group 3: group_id[]=2&group_id[]=3
group_id[not]
  • group_id[not]=G
  • group_id[not][]=G
where G is the target group ID to be excluded
Apply the CSS to all users who do not belong to the specified group
  • Apply to members not in Group 2: group_id[not]=2
  • Apply to members not in Group 2 or Group 3: group_id[not][]=2&group_id[not][]=3

Support

If you have any other questions, please contact us or check out Our Slack Community.