In order to log into your organization's dashboard, proceed to the slickcms domain with your organization's slug as the subdomain:
https://myorg.slickcms.com
Creating any type of content in slickcms happens the exact same way:
/myorg/themes/[theme-slug]/
Rendering content on a page can be achieved in one of three ways:
Using .ejs (Embedded Javascript) templates, stored in your theme's folder under /templates
/myorg/themes/[theme-slug]/templates/index.ejs
SlickCMS will always default to an index.ejs file if a template has not been assigned to a page or not does exist.
To add an editable container to your template, simply add:
<%- await getContainer('[your-container-slug]'); %>
A container with a slug of "main" is available by default
The await keyword tells the container not to render until all content has been fetched and sorted.
There are multiple functions available to your ejs templates. Each one must be preceded by the await keyword:
Generates the head of the html document including page title, charset, viewport, seo content, social sharing content, etc.
Generates necessary scripts to run things like analytics for your live site, and other actions within your site's iframe preview in the dashboard.
Generates a menu based on your website's pages
Returns an html string of all content within a cms container
<%- await getContainer('sidebar'); %>
Returns an array of content from the slick api
<%- await getContent('members', {}, {last_name: -1}, 0); %>
Returns one object of content from the slick api based on the filters
<%- await getOne('pages', {slug: 'our-services'}); %>
Returns one object of content from the slick api based on the content's id
<%- await getContentById('page_content', 'fa92b7b6-67ab-498c-9a84-ca8f26252f48'); %>
Using your front-end javascript framework of choice, you can interact with containers just as you would rendering server-side.
Anywhere you'd like an editable container to appear in your template, simply add:
<div data-slick-container="[your-container-id]"></div>
This div will be completely replaced by any content added to the container.
Your application is hosted on a different platform, and simply uses SlickCMS's APIs to supply your content.
The flexibility of SlickCMS lies in the ability to create your own content types. To create a new standard content type or widget content type:
Title
The title of the field as it will appear when creating new content
Slug
The lowercase and underscore-separated version of the title that will represent the field in the database
Type
How the field will appear in the dashboard
Data Type
How the value will be stored in the database
Regex Pattern
Restrictions on what can be entered in the field
Content Type
Prepopulated with the current content type
Required
Whethere the field is required to be filled out for each content item
Show In Listing
Whether the field will be shown in the dashboard's content listing
Searchable
Whether a dashboard user can search for the particular field
https://yourdomain.com/s/api/[contentType]?[filters]
By default, the SlickCMS APIs will pull all content within your organization. This is useful for companies who share content across multiple channels, so that content does not need to be duplicated for each website or application. In order to pull content that lives only on your website, you will need to pass the site parameter.
For example, to pull all pages on a particular site:
https://yourdomain.com/s/api/pages?site=ecafdd04-1e0d-4f0c-b0f5-0befc9d72093
For multi-lingual sites, you would want to pull all pages with the language code that a user has requested:
https://yourdomain.com/s/api/pages?site=ecafdd04-1e0d-4f0c-b0f5-0befc9d72093&language_code=es_ES
For wildcard searches, simply add asterisks around the search term to find the term anywhere in the value, or at the end of the search term to find values that start with the term:
https://yourdomain.com/s/api/page_content?site=ecafdd04-1e0d-4f0c-b0f5-0befc9d72093&body=*services*
https://yourdomain.com/s/api/members?first_name=Jen* // will return Jen, Jenny, Jennifer, etc.
SlickCMS comes pre-installed with English (US) as the core language, but unlimited languages can be added.
To add a new language:
Media content works the same as any other content within SlickCMS, but gets a special grid view to make it easier to view image thumbnails.
All media hub content can with be linked to with a simple and uniform url pattern:
https://yourdomain.com/s/media/[media-id]
For example:
https://yourdomain.com/s/media/c32183d1-9b95-4033-b619-e4a9f3e83f37
Or via its real path in file system:
https://yourdomain.com/orgs/[org-slug]/media/[first-two-chars-of-media-id]/[media-id].[media-extension]
For example:
https://yourdomain.com/orgs/myorg/media/c3/c32183d1-9b95-4033-b619-e4a9f3e83f37.jpg