ShinyCMS Developer Documentation
Supporting code: model concerns
In the core plugin
- CanHide - check or change visible/hidden status of content
- HasEmail - sets/searches/validates canonical_email as well as email
- HasPublicName   - .namemethod - returns public_name if set, internal_name otherwise
- HasReadableName - get a human-readable (and optionally, localised) version of model's class name
- HasTags - pulls in ActsAsTaggableOn and adds helper methods to hide tags on hidden content
- HasTeaser - generate a 'teaser' from first N paragraphs of a longer post
- HasToken - common behaviour for models with UUID token attributes
- HasVotes - pulls in ActsAsVotable, plus method to get URL-safe class name
- 
SoftDelete - adds soft delete (from acts_as_paranoid gem) 
- 
HasSlug - for models with a slug attribute (usually for URLs) 
- HasSlugUniqueInMonth - slug is only unique within a month (includes HasSlug)
- 
HasSlugUniqueInSection - slug is only unique within a section (includes HasSlug) 
- 
ProvidesDemoSiteData - for models that may provide data for the demo site 
- 
ProvidesSitemapData - for models that may provide data for the sitemap 
- 
Post - common behaviour for 'posts' (e.g. ShinyBlog::Post, ShinyNews::Post) (includes CanHide, HasReadableName, HasSlugUniqueInMonth, HasTags, HasTeaser, HasVotes, and SoftDelete) 
Templates and templated content
- Template - common attributes and behaviour for any kind of layout template
- HTMLTemplate - HTML-based layout templates (e.g. ShinyPages::Template) (includes Template)
- 
MJMLTemplate - MJML-based layout templates (e.g. ShinyNewsletters::Template) (includes Template) 
- 
HasTemplate - content that has its layout defined by a template (e.g. ShinyPages::Page, ShinyNewsletters::Edition) 
- 
Element - common behaviour for elements of templates and templated content 
- TemplateElement - elements of a layout template (e.g. ShinyPages::TemplateElement, ShinyNewsletters::TemplateElement) (includes Element)
In feature plugins
- ShinySearch::Searchable - for models that want to be discoverable by the search feature