Models

These are the most important models:

Note: To use methods prefixed by the_ you will need to decorate the object like this: my_model = my_model.decorate
Sample:

post10 = current_site.the_post(10).decorate
puts post10.the_title


More information about models and queries here.


User  
the_id return  the identifier
the_name  return the full name 
the_avatar  return the avatar for this user, default: assets/admin/img/no_image.jpg
the_slogan  return the slogan for this user, default: Hello World
the_contents return all contents created by this user in current site
the_username return the username of this user
the_role return the role of this user
the_url(url_params) Return the public url for this object using current locale and extra vars passed.
as_path: (boolean) return the path instead full url, 
locale: custom locale
my_user.the_url(my_var: 'one', locale: "gp") ==> https://my_site/profile/1-my.name.html?my_var=one
User administration  
my_site.users.where(role: "admin") select all users with role admin
my_site.users.create({email: 'admin@local.com', username: 'admin', password: 'admin', password_confirmation: 'admin' })  Create a new user for my_site
my_site.users.where(username: "admin").first Select the user with username = admin 
my_site.users.where(username: "admin").first.destroy destroy the user 
my_user.admin? check if this user is an administrator
my_user.get_role(site) return the role of this user for site 
my_user.assign_site(site) assign this user for site 
Configurations and custom fields here  
   
Category  
the_id return the identifier
the_title  return the title for current locale (language)
the_slug  return the slug for current locale
the_content  return the description for current locale
the_excerpt(qty_chars = 200) return excerpt for this post type. qty_chars: total or characters maximum 
the_posts() return all posts contents for this category (active_record) filtered by permissions + hidden posts + roles + etc...
in return object, you can add custom where's or pagination like here:
https://edgeguides.rubyonrails.org/active_record_querying.html
the_post(slug_or_id)  search a post with id (integer) or slug (string)
the_url(url_params)

Return the public url for this object using current locale and extra vars passed.
as_path: (boolean) return the path instead full url, 
locale: custom locale
my_post.the_url(my_var: 'one', locale: "gp") ==> https://my_site/gp/mypost/?my_var=one

the_categories  Return children categories 
the_category(slug_or_id) return a child category from this category with id (integer) or by slug (string)
generate_breadcrumb(add_post_type = true, is_parent = false) add_post_type: true/false to include post type link
is_parent: true/false (internal control)
the_thumb_url(default: nil) return thumbnail for this post type
default: if thumbnail is not present, will render default
the_breadcrumb(add_post_type = true) draw breadcrumb for this model
add_post_type: true/false to include post type link
set_decoration_locale(locale) Set a new locale for current model, sample: set_decoration_locale(:en) 
the_created_at(format = 'long') return created at date formatted 
the_keywords return the keywords for this model
Category administration  
the_edit_url  Return the edit url
my_post_type.categories.create({name: 'My Category',
slug: 'my_category', parent: model_posttype_or_category.id})
Create a new category for my_post_type with slug: "my_category".
parent: id of a category or a post_type
my_posttype.the_category(slug_or_id).destroy destroy a category from this post_type with id (integer) or by slug (string)
Configurations and custom fields here  
   
Post  
the_id return the identifier
the_title return the title for current locale (language)
the_slug return the slug for current locale
the_excerpt(qty_chars = 200) return excerpt for this post type
qty_chars: total or characters maximum
the_content return the content for current locale + shortcodes executed
the_thumb_url(default = nil) return thumbnail image for this post
default: default image if thumbails not exist
if default is empty, post_type default thumb will be returned
the_breadcrumb(add_post_type = true) draw breadcrumb for this model
add_post_type: true/false to include post type link
set_decoration_locale(locale) Set a new locale for current model, sample: set_decoration_locale(:en) 
the_created_at(format = 'long') return created at date formatted 
the_keywords return the keywords for this model
the_url(url_params) Return the public url for this object using current locale and extra vars passed.
as_path: (boolean) return the path instead full url, 
locale: custom locale
my_post.the_url(my_var: 'one', locale: "gp") ==> https://my_site/gp/mypost/?my_var=one
has_thumb? Check if current content has uploaded a thumbnail image
the_thumb(img_args = {}) show thumbnail image as html
the_link_thumb(link_args = {}, img_args = {}) show link and thumbnail included as html, link_args: html attributes for link, img_args: html attributes for image
the_categories return all categories assigned for this post filtered by permissions + hidden posts + roles + etc...
the_tags  return all post_tags assigned for this post
the_comments return all main comments approved, not include answers
can_visit? check if the content can be visited
can_commented? check if the content permit create comments
the_post_type return the parent post_type model
the_field_content(field_key) return custom field content with key field_key, translated and short codes evaluated like the content
Post administration  
my_post_type.posts.create({title: title, slug: slug,
content: content, user_id: user.id, status: 'published'})
Create a new post with status published
my_post_type.the_post("my_post").destroy destroy the post with slug = my_post
mypost.template return template assigned to this post
mypost.published?
mypost.pending?
mypost.draft?
mypost.trash?
 Check post status
mypost.author return User owner of this post
Configurations and custom fields here  
   
PostType  
the_id return the identifier
the_title  return the title for current locale (language)
the_slug return the slug for current locale 
the_content return the description for current locale
the_excerpt(qty_chars = 200)  return excerpt for this post type. qty_chars: total or characters maximum
the_posts return all posts contents for this category (active_record) filtered by permissions + hidden posts + roles + etc...
in return object, you can add custom where's or pagination like here:
https://edgeguides.rubyonrails.org/active_record_querying.html
the_post(slug_or_id) search a post with id (integer) or slug (string)
the_url(url_params) Return the public url for this object using current locale and extra vars passed.
as_path: (boolean) return the path instead full url, 
locale: custom locale
my_post.the_url(my_var: 'one', locale: "gp") ==> https://my_site/gp/mypost/?my_var=one
the_breadcrumb(add_post_type = true) draw breadcrumb for this model, add_post_type: true/false to include post type link
set_decoration_locale(locale) Set a new locale for current model, sample: set_decoration_locale(:en) 
the_created_at(format = 'long') return created at date formatted 
the_keywords return the keywords for this model
the_categories return all main categories of current post_type
the_post_tags return all post_tags for the post_type (active_record) filtered by permissions + hidden posts + roles + etc...
in return object, you can add custom where's or pagination like here:
https://edgeguides.rubyonrails.org/active_record_querying.html
the_thumb_url(default = nil) return thumbnail for this post type
default: if thumbnail is not present, will render default
posttype administration  
add_post(args) add a post for current model, where args include:
  tilte: title for post, => required
  content: html text content, => required
  thumb: image url, => default (empty). check here for uploads.
  has_comments: 0|1, => default (0)
  categories: [1,3,4,5], => default (empty)
  tags: String comma separated, => default (empty)
  slug: string key for post, => default (empty)
  summary: String resume (optional)} => default (empty)
return created post object if it was created, else return array of errors
the_edit_url  Return the edit url for this object
current_site.the_post_type("layout").present? check if a post is already registered. return true/false

pt = current_site.post_types.create(name: "Home Layout", slug: "layout")

Create a new post type for current site.
To customize configurations, you need to use:
my_post_type.set_option("has_summary", true); my_post_type.set_option("has_category", true) and so on...

my_post_type.set_settings({has_category: false, has_tags: false, .......}) #set multiple settings

Available options are: 

{has_category: false, has_tags: false, has_summary: false, has_content: true, has_comments: false, has_picture: false, has_template: false, has_keywords: false}

current_site.the_post_type("layout").destroy

delete a post_type from current site

ptype.manage_categories?

Check if this post type can manage categories
ptype.manage_tags? Check if this post type can manage tags
ptype.set_settings({}) Set settings for this post type
Available settings: {has_category: false, has_tags: false, has_summary: true, has_content: true, has_comments: false, has_picture: true, has_template: false, has_keywords: true}
ptype.set_setting(key, value) Set or update a setting for this post type
ptype.ful_categories Return all categories (include children) from this post type
ptype.show_for_admin_menu? Check if this post type is listed on admin -> contents -> menu
ptype.toggle_show_for_admin_menu(flag) Hide or Show this post type on admin -> contents -> menu
true => enable, false => disable
Configurations and custom fields here  
   
PostTag  return the title for current locale (language)
the_id return the identifier
the_title return the title for current locale (language) 
the_slug  return the slug for current locale
the_content  return the description for current locale
the_excerpt(qty_chars = 200) return excerpt for this post type, qty_chars: total or characters maximum 
the_posts return all posts contents for this category (active_record) filtered by permissions + hidden posts + roles + etc...
in return object, you can add custom where's or pagination like here:
https://edgeguides.rubyonrails.org/active_record_querying.html
the_post(slug_or_id) search a post with id (integer) or slug (string)
the_url(url-params)

Return the public url for this object using current locale and extra vars passed.
as_path: (boolean) return the path instead full url, 
locale: custom locale
my_post.the_url(my_var: 'one', locale: "gp") ==> https://my_site/gp/mypost/?my_var=one

the_breadcrumb(add_post_type = true) draw breadcrumb for this model, add_post_type: true/false to include post type link
set_decoration_locale(locale) Set a new locale for current model, sample: set_decoration_locale(:en) 
the_created_at(format = 'long') return created at date formatted (long|short)
the_keywords return the keywords for this model
the_edit_url  Return the edit url for this object
 Configurations and custom fields here  
   
Site  
the_id return the identifier
the_title  return the title for current locale (language)
the_slug  return the slug for current locale
the_content  return the description for current locale
the_excerpt(qty_chars = 200)  return excerpt for this post type, qty_chars: total or characters maximum
the_posts(slug_or_id = nil) return all contents for this site registered for post_type = slug (filter visibility, hidden, expired, ...)
slug_or_id: slug (string) or id(integer) of the post_type
if slug is not present, then this will return all posts for this site
the_post(slug_or_id)  search a post with id (integer) or slug (string) from this site
   
the_url(locale = nil, as_path = true)  return the public url for current locale, as_path: true => return the path and not full url, locale: nil => return current locale
the_breadcrumb(add_post_type = true) draw breadcrumb for this model, add_post_type: true/false to include post type link
set_decoration_locale(locale) Set a new locale for current model, sample: set_decoration_locale(:en) 
the_created_at  return created at date formatted 
the_keywords return the keywords for this model
the_logo   
the_icon  
the_contents(slug_or_id='post') return all contents from this site registered for post_type = slug_or_id (filter visibility, hidden, expired, ...)
slug_or_id: slug (string) or id(integer) of the post_type, default 'post'
the_category(slug_or_id) return the category with id or slug from this site
slug_or_id: slug (string) or id(integer) of the category
the_categories return all main categories
the_full_categories return all categories
the_tags return all tags
the_post_types return all post types
the_post_type(slug) return the post type with slug = slug
draw_languages(list_class = "language_list list-inline pull-right",
current_page = false)
draw languages configured for this site
the_languages return Array of languages configured for this site
visitor_role return the role_id of current visitor for this site, if the visitor was not logged in, then return -1
get_plugin(plugin_slug) return plugin model with slug plugin_slug
plugin_installed?(plugin_key) check if plugin_key is already installed for this site
get_theme(theme_slug = nil) return theme model with slug theme_slug for this site
theme_slug: (optional) if it is null, this will return current theme for this site
the_admin_url Return the admin root url for this site
the_edit_url  Return edit url for this Site
Site administration  
site = Site.create(name: "My Site", slug: "my_site") create a new site
site.destroy destroy site
site.users return all users assigned to this site (Check config/system.json to configure share users between sites)
site.nav_menus nav menus collection registered on this site
site.widgets return all widgets registered for this site
site.sidebars return all sidebars registered for this site
site.user_roles return all user roles registered for this site
site.custom_field_groups return all custom field groups registered on this site
site.plugins.active return all plugins installed for this site
site.set_admin_language(lang) set the language for admin panel
site.get_admin_language return current admin language configured
site.main_site? check if this site is the primary site (first site)
   
 Configurations and custom fields here  
   
Theme  
 the_id  
 settings return a Hash with config.json values
Configurations and custom fields here  
   
Plugin  
active? check if current plugin is installed
installed_version return the installed version of current plugin
old_version? verify if installed version is equal to current plugin files
settings return a Hash with config.json values
Configurations and custom fields here  
   
PostComment  
the_created_at(format= :long) return created at date formatted 
the_user return user model (owner) of this comment
is_approved?  Check if current comment was approved.
 Configurations and custom fields here  
   
Widget  
current_site.widgets.create(params)

Create a new widget: {title: "my widget title", slug: "my_widget_slug", description: "my descr"}

the_title  
the_content   
render  Render the widget with its template
Configurations and custom fields here All custom fields assigned to a widget, this will be shown on sidebar editor 
   
Sidebar  
current_site.sidebars.create(params)  Create a new sidebar: {title: "my sidebar title", slug: "my_sidebar_slug", description: "my descr", render_file: "render_file_path"}
add_widget(widget, data = {})

Add or update a widget assigned into this sidebar.

assign the widget into this sidebar, widget: string(slug)/object, data: {title, content}. Return Assing_widget.

To this result you can do:

Assing_widget.set_field_values(params[:field_options])

get_widgets return all widgets assigned from this sidebar 
get_widget(slug_widget)  get specific widget assigned from this sidebar
destroy_widget(slug_widget) destroy the widget assigned from this sidebar
Configurations and custom fields here  
   
NavMenu  
current_site.nav_menus.create
(name: "My menu", slug: "left_main_menu")
 Create a new menu and return a NavMenu model
Configurations and custom fields here