.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Jifty::Plugin::Comment::Model::Comment 3pm" .TH Jifty::Plugin::Comment::Model::Comment 3pm "2009-03-09" "perl v5.12.4" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Jifty::Plugin::Comment::Model::Comment \- comments attached to anything .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 3 \& # to customize... \& package App::Model::Comment; \& use base qw/ Jifty::Plugin::Comment::Model::Comment /; \& \& use Jifty::DBI::Schema; \& use App::Record schema { \& # Add a reference to the current user that creates this comment \& column by_user => \& references App::Model::User, \& ; \& }; \& \& # make it so that any logged user can comment, but anyone can view, except \& # that we don\*(Aqt really want everyone seeing all those personal bits... \& sub current_user_can { \& my $self = shift; \& my ($right, %args) = @_; \& \& if ($right eq \*(Aqcreate\*(Aq) { \& return 1 if $self\->current_user\->id; \& } \& \& if ($right eq \*(Aqread\*(Aq) { \& return $self\->published \& unless $args{column} =~ /^ \& (?: email \& | status \& | ip_addr \& | http_refer \& | http_user_agent ) $/x; \& } \& \& # otherwise only superuser gets in \& return $self\->SUPER::current_user_can(@_); \& } .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This model is the repository for all comments in your application, if you use the Jifty::Plugin::Comment plugin. .SH "SCHEMA" .IX Header "SCHEMA" .SS "title" .IX Subsection "title" This is the title of the comment. .SS "body" .IX Subsection "body" This is the body of the comment. .SS "created_on" .IX Subsection "created_on" This is the timestamp of when the comment was created. .SS "your_name" .IX Subsection "your_name" This is the name the author of the comment has claimed. .SS "web_site" .IX Subsection "web_site" This is the name of the web site the author claims as her own. .SS "email" .IX Subsection "email" This is the email address the author is claiming. .SS "published" .IX Subsection "published" This is a boolean flag indicating whether the comment should be shown or not when viewed. .SS "status" .IX Subsection "status" This is a flag containing one of two values: \*(L"spam\*(R" or \*(L"ham\*(R". It indicates whether the comment has been evaluated as spam or not by Net::Akismet. .SS "ip_addr" .IX Subsection "ip_addr" This is the \s-1IP\s0 address of the remote client of the author that made the comment. .SS "http_referer" .IX Subsection "http_referer" This is the \s-1HTTP\s0 referer that was sent by the browser when the author made the comment. .SS "http_user_agent" .IX Subsection "http_user_agent" This is the \s-1HTTP\s0 user agent that was sent by the browser when the author made the comment. .SH "METHODS" .IX Header "METHODS" .SS "table" .IX Subsection "table" Returns the database table name for the comments table. .SS "before_create" .IX Subsection "before_create" It is assumed that your comments will be made available for create with very little restriction. This trigger is used to perform aggressive cleanup on the data stored and will attempt to check to see if the comment is spam by using Net::Akismet. .SS "before_set_status" .IX Subsection "before_set_status" This trigger is called when changing the status of the message. If Net::Akismet is in use, this trigger will notify Akismet that this message is being marked as spam or as ham, depending upon the new value. .SS "current_user_can" .IX Subsection "current_user_can" This method is not actually implemented by this class, but you will either want to implementt this method in your application or add a \f(CW\*(C`before_access\*(C'\fR trigger that grants access. Otherwise, your comments won't be very interesting to anyone but a superuser. .PP See the \*(L"\s-1SYNOPSIS\s0\*(R" for a recommended implementation. .SH "AUTHOR" .IX Header "AUTHOR" Andrew Sterling Hanenkamp \f(CW\*(C`\*(C'\fR .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" Copyright 2007 Boomer Consulting, Inc. All Rights Reserved. .PP This program is free software and may be modified and distributed under the same terms as Perl itself.