[dw-free] URL for community rules / welcome
[commit: http://hg.dwscoalition.org/dw-free/rev/f666763b15e4]
http://bugs.dwscoalition.org/show_bug.cgi?id=2336
http://communityname.dreamwidth.org/guidelines points to the community's
posting guidelines entry if provided by the community (linked to when
joining)
Patch by
afuna.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=2336
http://communityname.dreamwidth.org/guidelines points to the community's
posting guidelines entry if provided by the community (linked to when
joining)
Patch by
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Files modified:
- bin/upgrading/en.dat
- cgi-bin/DW/Controller/Misc.pm
- cgi-bin/LJ/User.pm
- htdocs/community/join.bml
- htdocs/community/settings.bml
- htdocs/community/settings.bml.text
- htdocs/manage/circle/add.bml
-------------------------------------------------------------------------------- diff -r e1b59dbfb947 -r f666763b15e4 bin/upgrading/en.dat --- a/bin/upgrading/en.dat Mon Aug 30 16:40:13 2010 +0800 +++ b/bin/upgrading/en.dat Mon Aug 30 18:41:45 2010 +0800 @@ -1196,6 +1196,10 @@ error.deleted.title=Deleted Account error.deleted.title=Deleted Account error.expiredchal=Login window expired. Please try again. + +error.guidelines.none=[[user]] has not defined an entry for their community guidelines. See <a [[aopts]]>their profile</a> for further information about the community. + +error.guidelines.notcomm=Community guidelines are only available for communities. error.interest.bytes=Sorry, you have listed an interest with [[bytes]] bytes. Each interest has a limit of [[bytes_max]] bytes. Any changes you made to your interests were not saved. Go back and remove, or modify "[[int]]". diff -r e1b59dbfb947 -r f666763b15e4 cgi-bin/DW/Controller/Misc.pm --- a/cgi-bin/DW/Controller/Misc.pm Mon Aug 30 16:40:13 2010 +0800 +++ b/cgi-bin/DW/Controller/Misc.pm Mon Aug 30 18:41:45 2010 +0800 @@ -27,6 +27,7 @@ use DW::Template; DW::Routing->register_string( '/misc/whereami', \&whereami_handler, app => 1 ); DW::Routing->register_string( '/pubkey', \&pubkey_handler, app => 1 ); +DW::Routing->register_string( '/guidelines', \&community_guidelines, user => 1 ); # handles the /misc/whereami page sub whereami_handler { @@ -52,4 +53,22 @@ sub pubkey_handler { return DW::Template->render_template( 'misc/pubkey.tt', $rv ); } +sub community_guidelines { + my ( $opts ) = @_; + my $r = DW::Request->get; + + my $u = LJ::load_user( $opts->username ); + return error_ml( 'error.invaliduser' ) + unless LJ::isu( $u ); + + return error_ml( 'error.guidelines.notcomm' ) + unless $u->is_community; + + my $guidelines_entry = $u->get_posting_guidelines_entry; + return error_ml( 'error.guidelines.none', { user => $u->ljuser_display, aopts => "href='" . $u->profile_url . "'" } ) + unless $guidelines_entry; + + return $r->redirect( $guidelines_entry->url ); +} + 1; diff -r e1b59dbfb947 -r f666763b15e4 cgi-bin/LJ/User.pm --- a/cgi-bin/LJ/User.pm Mon Aug 30 16:40:13 2010 +0800 +++ b/cgi-bin/LJ/User.pm Mon Aug 30 18:41:45 2010 +0800 @@ -2704,6 +2704,16 @@ sub get_posting_guidelines_entry { return undef; } +sub posting_guidelines_url { + my $u = $_[0]; + + return "" unless $u->is_community; + + my $posting_guidelines = $u->posting_guidelines_entry; + return "" unless $posting_guidelines; + + return $u->journal_base . "/guidelines"; +} sub profile_url { my ($u, %opts) = @_; diff -r e1b59dbfb947 -r f666763b15e4 htdocs/community/join.bml --- a/htdocs/community/join.bml Mon Aug 30 16:40:13 2010 +0800 +++ b/htdocs/community/join.bml Mon Aug 30 18:41:45 2010 +0800 @@ -135,10 +135,7 @@ body<= my $post_url; $post_url = $LJ::SITEROOT . "/update?usejournal=" . $cu->user if $show_join_post_link && $remote->can_post_to( $cu ); - my $posting_guidelines_entry = $cu->get_posting_guidelines_entry; - my $posting_guidelines_entry_url; - $posting_guidelines_entry_url = $posting_guidelines_entry->url - if $posting_guidelines_entry; + my $posting_guidelines_entry_url = $cu->posting_guidelines_url; $ret .= "<?h1 $ML{'.success'} h1?><?p " . BML::ml('.label.membernow6', { 'commname' => LJ::ljuser($cu) }) . " p?>"; diff -r e1b59dbfb947 -r f666763b15e4 htdocs/community/settings.bml --- a/htdocs/community/settings.bml Mon Aug 30 16:40:13 2010 +0800 +++ b/htdocs/community/settings.bml Mon Aug 30 18:41:45 2010 +0800 @@ -191,8 +191,13 @@ body<= } $ret .= "<?p $ML{'.label.rellinks'} <ul><li><a href='" . $cu->journal_base . "'>$ML{'.label.commsite'}</a></li>"; - $ret .= "<li><a href='" . $cu->profile_url() . "'>$ML{'.label.comminfo'}</a></li><li>" - . BML::ml('.label.managepage', { 'aopts' => 'href="/community/manage"' }) . "</li></ul> p?>"; + $ret .= "<li><a href='" . $cu->profile_url() . "'>$ML{'.label.comminfo'}</a></li>" + . "<li>" . BML::ml('.label.managepage', { aopts => 'href="/community/manage"' }) . "</li>"; + + my $posting_guidelines_url = $cu->posting_guidelines_url; + $ret .= "<li>" . BML::ml('.label.guidelines', { aopts => "href='$posting_guidelines_url'"} ) . "</li>" + if $posting_guidelines_url; + $ret .= "</ul> p?>"; return $ret; } diff -r e1b59dbfb947 -r f666763b15e4 htdocs/community/settings.bml.text --- a/htdocs/community/settings.bml.text Mon Aug 30 16:40:13 2010 +0800 +++ b/htdocs/community/settings.bml.text Mon Aug 30 18:41:45 2010 +0800 @@ -58,6 +58,8 @@ .label.community=Community: +.label.guidelines=<a [[aopts]]>Community guidelines</a> - consistent link to your community guidelines entry + .label.howoperates=Choose how your community operates. You can change these later. .label.maintainer=Maintainer: diff -r e1b59dbfb947 -r f666763b15e4 htdocs/manage/circle/add.bml --- a/htdocs/manage/circle/add.bml Mon Aug 30 16:40:13 2010 +0800 +++ b/htdocs/manage/circle/add.bml Mon Aug 30 18:41:45 2010 +0800 @@ -122,9 +122,7 @@ _c?> my $posting_guidelines_entry_url; my $post_url; if ( $u->is_community ) { - my $posting_guidelines_entry = $u->get_posting_guidelines_entry; - $posting_guidelines_entry_url = $posting_guidelines_entry->url - if $posting_guidelines_entry; + $posting_guidelines_entry_url = $u->posting_guidelines_url; my $show_join_post_link = $u->hide_join_post_link ? 0 : 1; $post_url = $LJ::SITEROOT . "/update?usejournal=" . $u->user if $show_join_post_link && $remote->can_post_to( $u ); --------------------------------------------------------------------------------