NAME

Rapi::Blog::DB::Result::Post - Post row object

DESCRIPTION

This is the default Post Result class/row object for Rapi::Blog. The list_posts() template directive returns an array of these objects (in the sub property rows), and when viewing a post via a view_wrapper the associated post is available as the template variable Post.

This is a DBIx::Class::Row.

COLUMNS

id

Auto-increment post id. Read-only.

name

The unique name of the Post. The name is used to generate the public URL for the post. Should contain only lower case alpha characters, dash and underscore.

title

Human-friendly Post title

image

CAS image column ('cas_img'). Contains the sha1 of a file within the SimpleCAS.

ts

The declared Date/Time of the Post. Defaults to the timestamp of when the Post is created but can be set to anything.

create_ts

The real Date/Time the Post is created, read-only.

update_ts

The Date/Time of the last modification of the Post, read-only.

author

The author of the Post, FK to Rapi::Blog::DB::Result::User object. author is a relationship, the underlying foreign-key column is author_id which is hidden.

The author defaults to the user creating the Post, but if the user is an admin they can select a different user.

creator

The creator of the Post, FK to Rapi::Blog::DB::Result::User object. creator is a relationship, the underlying foreign-key column is creator_id which is hidden. Read-only.

updater

The last user who modified the Post, FK to Rapi::Blog::DB::Result::User object. updater is a relationship, the underlying foreign-key column is updater_id which is hidden. Read-only.

published

True or false bool value. Posts which are not published will not be listed in list_posts() and will return a 404 not found except for admins and the author of the Post.

publish_ts

The Date/Time the Post was marked published or undef if the Post is not published. Read-only.

size

The size in bytes of the body. Read-only.

tag_names

List of tag names for the Post as a space-separated string, read-only. Tags are defined by specifying them in Twitter #hashtag format in the Post body.

summary

The summary for the Post which is either set from custom_summary or auto-generated from the body. Read-only.

custom_summary

Custom summary for the Post. Setting any nonzero-length value will populate as the summary, while an empty string will cause summary to be auto-generated.

body

The main content body of the Post in HTML/Markdown format.

section

The section of the Post, if one is set, or undef. FK to Rapi::Blog::DB::Result::Section object. section is a relationship, the underlying foreign-key column is section_id which is hidden.

METHODS

comments

Multi-relationship to all the Comments of this Post.

hits

Multi-relationship to all the Hits of this Post. Hits record details of the HTTP request when record_hit is called from the view template.

hits post_tags

Multi-relationship recording the tags of this Post.

tag_names_list

List of tag names. Like tag_names but returns a list of strings rather than a single string.

num_categories

Returns the number of Categories this Post is in, which can be zero.

category_list

List of Category names (strings).

section_name

Returns the text name of the Section or undef if the Post has no Section set.

section_name_or

Convenience method, works just like section_names, except when there is no Section, the value of the supplied argument is returned instead of undef.

image_url

URL which can be used to access the image for the active site/scaffold.

public_url_path

URL path prefix to access the default public view of all Posts.

public_url

URL path prefix to access the default public view of this Post. This is just the public_url_path plus the name

preview_url_path

URL path prefix to access the public preview of all Posts. By default this is the same as public_url_path unless the Scaffold has defined preview_path. The preview is used to display the post in an iframe on the internal post page. This is useful to be able to show the post without the full navigation of the site.

preview_url

URL path prefix to access the public preview of this Post. This is just the preview_url_path plus the name

open_url_path

URL path to access the Post internally within the password-protected area of the site. This is the same page that opens if you double-click a Post from the Posts grid and is how you can edit a post. If the user is not logged in they will automatically be prompted to login.

Supports an optional mode argument which can be 'direct' or 'navable'. These are full-screen modes which will open the Post page without the full navigation tree and header. The 'direct' mode will be totally full-screen, while 'navable' will load a full-screen tabpanel which allows following links to related objects.

record_hit

Called to record the current request in the Hits table for the post. Designed to be called from the default view path in the scaffold.

can_delete

Util method returns true if the current user can delete the post. Will be true if the user is either an admin or or the author of the post.

can_modify

Util method returns true if the current user can modify the post. Will be true if the user is either an admin or or the author of the post.

can_change_author

Util method returns true if the current user can change the author of the post. Will be true if the user is an admin.

SEE ALSO

AUTHOR

Henry Van Styn <vanstyn@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2017 by IntelliTree Solutions llc.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.