Committer: aurbanowich
LJSUP-7874 SMS notification - new featuresU trunk/bin/upgrading/en.dat U trunk/bin/upgrading/proplists.dat U trunk/cgi-bin/LJ/Event/Befriended.pm U trunk/cgi-bin/LJ/Event/Birthday.pm U trunk/cgi-bin/LJ/Event/CommunityInvite.pm U trunk/cgi-bin/LJ/Event/CommunityJoinRequest.pm U trunk/cgi-bin/LJ/Event/Defriended.pm U trunk/cgi-bin/LJ/Event/InvitedFriendJoins.pm U trunk/cgi-bin/LJ/Event/JournalNewEntry.pm U trunk/cgi-bin/LJ/Event/NewUserpic.pm U trunk/cgi-bin/LJ/Event/OfficialPost.pm U trunk/cgi-bin/LJ/Event/PollVote.pm U trunk/cgi-bin/LJ/Event/UserExpunged.pm U trunk/cgi-bin/LJ/Event/UserMessageRecvd.pm U trunk/cgi-bin/LJ/Event/UserMessageSent.pm U trunk/cgi-bin/LJ/Event/UserNewEntry.pm U trunk/cgi-bin/LJ/Event.pm U trunk/cgi-bin/LJ/Widget/SubscribeInterface.pm U trunk/htdocs/manage/profile/index.bml U trunk/htdocs/manage/profile/index.bml.text
Modified: trunk/bin/upgrading/en.dat =================================================================== --- trunk/bin/upgrading/en.dat 2011-02-25 08:28:36 UTC (rev 18410) +++ trunk/bin/upgrading/en.dat 2011-02-25 09:02:46 UTC (rev 18411) @@ -2851,6 +2851,48 @@ notification_method.sms-ru.title=SMS +notification.sms.befriended=[[friend]] has added you to their friends list. Reply with ADD [[friend]] to add them [[disclaimer]] + +notification.sms.birthday=[[user]]'s birthday is on [[bday]]! + +notification.sms.communityinvite=[[inviter]] sent you an invitation to join the community [[comm]]. Visit the invitation page to accept + +notification.sms.communityjoinrequest=[[requestor]] requests membership in [[comm]]. Visit community settings to approve. + +notification.sms.defriended=[[friend]] has removed you from their Friends list. + +notification.sms.invitedfriendjoins=A friend you invited has created the journal [[friend]] + +notification.sms.invitedfriendjoins_uknown=A friend you invited has created a journal. + +notification.sms.journalnewentry=[[poster]] has posted with a new entry. To view, send READ [[journal]] to read it. [[disclaimer]] + +notification.sms.journalnewentry_comm=[[poster]] has posted with a new entry in [[journal]]. To view, send READ [[journal]] to read it. [[disclaimer]] + +notification.sms.newuserpic=[[journal]] has uploaded a new userpic. You can view it at: [[pic_url]] + +notification.sms.newvgift=[[journal]] has received a new virtual gift. + +notification.sms.officialpost=There is a new [[abbrev]] announcement in [[journal]]. Reply with READ [[journal]] to read it. [[disclaimer]] + +notification.sms.pollvote=[[voter]] has voted in [[pollname]] at [[entry_url]] + +notification.sms.userexpunged=[[journal]] has been purged. + +notification.sms.usermessagerecvd=You've received a new message "[[subject]]" from [[user]] + +notification.sms.usermessagesent=message sent to [[user]]. + +notification.sms.usernewentry=User '[[user]]' posted in their journal + +notification.sms.usernewentry_comm=User '[[user]]' posted '[[journal]]' + +sms.numbernotverified=Number not verified. + +sms.uknowncommand=Incorrect request. + +sms.unsubscribesuccesseful=You have successful unsubscribed from LiveJournal sms notification. + number.million|staleness=1 number.million=[[number]] million Modified: trunk/bin/upgrading/proplists.dat =================================================================== --- trunk/bin/upgrading/proplists.dat 2011-02-25 08:28:36 UTC (rev 18410) +++ trunk/bin/upgrading/proplists.dat 2011-02-25 09:02:46 UTC (rev 18411) @@ -1094,6 +1094,14 @@ multihomed: 0 prettyname: What "yes" SMS message means +userproplist.smsru_interval: + cldversion: 4 + datatype: char + des: Interval for SMSru notifications. fortmat start_hour-end_hour + indexed: 0 + multihomed: 0 + prettyname: Interval for SMSru notifications + userproplist.state: cldversion: 4 datatype: char Modified: trunk/cgi-bin/LJ/Event/Befriended.pm =================================================================== --- trunk/cgi-bin/LJ/Event/Befriended.pm 2011-02-25 08:28:36 UTC (rev 18410) +++ trunk/cgi-bin/LJ/Event/Befriended.pm 2011-02-25 09:02:46 UTC (rev 18411) @@ -125,10 +125,18 @@ } sub as_sms { - my $self = shift; - return sprintf("%s has added you to their friends list. Reply with ADD %s to add them " . - "to your friends list. $LJ::SMS_DISCLAIMER", - $self->friend->user, $self->friend->user); + my ($self, $u) = @_; + my $lang = $u->prop('browselang') || $LJ::DEFAULT_LANG; + + my $tinyurl = LJ::API::BitLy->shorten( "http://m.livejournal.com/read/user/".$self->friend->user ); + undef $tinyurl if $tinyurl =~ /^500/; + +# [[friend]] has added you to their friends list. Reply with ADD [[friend]] to add them [[disclaimer]] + return LJ::Lang::get_text($lang, 'notification.sms.befriended', undef, { + friend => $self->friend->user, + disclaimer => $LJ::SMS_DISCLAIMER, + mobile_url => $tinyurl, + }); } sub as_alert { Modified: trunk/cgi-bin/LJ/Event/Birthday.pm =================================================================== --- trunk/cgi-bin/LJ/Event/Birthday.pm 2011-02-25 08:28:36 UTC (rev 18410) +++ trunk/cgi-bin/LJ/Event/Birthday.pm 2011-02-25 09:02:46 UTC (rev 18411) @@ -36,11 +36,18 @@ } sub as_string { - my $self = shift; + my ($self, $u) = @_; + my $lang = ($u && $u->prop('browselang')) || $LJ::DEFAULT_LANG; - return sprintf("%s's birthday is on %s!", - $self->bdayuser->display_username, - $self->bday); +# [[user]]'s birthday is on [[bday]]! + return LJ::Lang::get_text($lang, 'notification.sms.birthday', undef, { + user => $self->bdayuser->display_username, + bday => $self->bday, + }); + +# return sprintf("%s's birthday is on %s!", +# $self->bdayuser->display_username, +# $self->bday); } sub as_alert { Modified: trunk/cgi-bin/LJ/Event/CommunityInvite.pm =================================================================== --- trunk/cgi-bin/LJ/Event/CommunityInvite.pm 2011-02-25 08:28:36 UTC (rev 18410) +++ trunk/cgi-bin/LJ/Event/CommunityInvite.pm 2011-02-25 09:02:46 UTC (rev 18411) @@ -127,11 +127,18 @@ } sub as_sms { - my $self = shift; + my ($self, $u) = @_; + my $lang = ($u && $u->prop('browselang')) || $LJ::DEFAULT_LANG; - return sprintf("%s sent you an invitation to join the community %s. Visit the invitation page to accept", - $self->inviter->display_username, - $self->comm->display_username); +# [[inviter]] sent you an invitation to join the community [[comm]]. Visit the invitation page to accept + return LJ::Lang::get_text($lang, 'notification.sms.communityinvite', undef, { + inviter => $self->inviter->display_username, + comm => $self->comm->display_username, + }); + +# return sprintf("%s sent you an invitation to join the community %s. Visit the invitation page to accept", +# $self->inviter->display_username, +# $self->comm->display_username); } sub as_alert { Modified: trunk/cgi-bin/LJ/Event/CommunityJoinRequest.pm =================================================================== --- trunk/cgi-bin/LJ/Event/CommunityJoinRequest.pm 2011-02-25 08:28:36 UTC (rev 18410) +++ trunk/cgi-bin/LJ/Event/CommunityJoinRequest.pm 2011-02-25 09:02:46 UTC (rev 18411) @@ -135,11 +135,14 @@ } sub as_sms { - my $self = shift; + my ($self, $u) = @_; + my $lang = ($u && $u->prop('browselang')) || $LJ::DEFAULT_LANG; - return sprintf("%s requests membership in %s. Visit community settings to approve.", - $self->requestor->display_username, - $self->comm->display_username); +# [[requestor]] requests membership in [[comm]]. Visit community settings to approve. + return LJ::Lang::get_text($lang, 'notification.sms.communityjoinrequest', undef, { + requestor => $self->requestor->display_username, + comm => $self->comm->display_username, + }); } sub as_alert { Modified: trunk/cgi-bin/LJ/Event/Defriended.pm =================================================================== --- trunk/cgi-bin/LJ/Event/Defriended.pm 2011-02-25 08:28:36 UTC (rev 18410) +++ trunk/cgi-bin/LJ/Event/Defriended.pm 2011-02-25 09:02:46 UTC (rev 18411) @@ -108,9 +108,20 @@ } sub as_string { - my $self = shift; - return sprintf("%s has removed you from their Friends list.", - $self->friend->{user}); + my ($self, $u) = @_; + my $lang = ($u && $u->prop('browselang')) || $LJ::DEFAULT_LANG; + + my $tinyurl = LJ::API::BitLy->shorten( "http://m.livejournal.com/read/user/".$self->friend->{user} ); + undef $tinyurl if $tinyurl =~ /^500/; + +# [[friend]] has removed you from their Friends list. + return LJ::Lang::get_text($lang, 'notification.sms.defriended', undef, { + friend => $self->friend->{user}, + mobile_url => $tinyurl, + }); + +# return sprintf("%s has removed you from their Friends list.", +# $self->friend->{user}); } sub as_alert { Modified: trunk/cgi-bin/LJ/Event/InvitedFriendJoins.pm =================================================================== --- trunk/cgi-bin/LJ/Event/InvitedFriendJoins.pm 2011-02-25 08:28:36 UTC (rev 18410) +++ trunk/cgi-bin/LJ/Event/InvitedFriendJoins.pm 2011-02-25 09:02:46 UTC (rev 18411) @@ -101,12 +101,23 @@ } sub as_string { - my $self = shift; + my ($self, $u) = @_; + my $lang = ($u && $u->prop('browselang')) || $LJ::DEFAULT_LANG; + + my $tinyurl; + if( $self->friend->user ){ + $tinyurl = LJ::API::BitLy->shorten( "http://m.livejournal.com/read/user/".$self->friend->user ); + undef $tinyurl if $tinyurl =~ /^500/; + } + + my $mlstring = $self->friend ? 'notification.sms.invitedfriendjoins' : 'notification.sms.invitedfriendjoins_uknown'; +# A friend you invited has created a journal. +# A friend you invited has created the journal [[friend]] + return LJ::Lang::get_text($lang, $mlstring, undef, { + friend => $self->friend->user, + mobile_url => $tinyurl, + }); - return 'A friend you invited has created a journal.' - unless $self->friend; - - return sprintf "A friend you invited has created the journal %s", $self->friend->user; } sub as_alert { Modified: trunk/cgi-bin/LJ/Event/JournalNewEntry.pm =================================================================== --- trunk/cgi-bin/LJ/Event/JournalNewEntry.pm 2011-02-25 08:28:36 UTC (rev 18410) +++ trunk/cgi-bin/LJ/Event/JournalNewEntry.pm 2011-02-25 09:02:46 UTC (rev 18411) @@ -78,11 +78,23 @@ } sub as_sms { - my $self = shift; + my ($self, $u) = @_; + my $lang = ($u && $u->prop('browselang')) || $LJ::DEFAULT_LANG; + + my $tinyurl; + $tinyurl = LJ::API::BitLy->shorten( "http://m.livejournal.com/read/user/" + . $self->entry->journal->user . '/' . $self->entry->ditemid . '/' ); + undef $tinyurl if $tinyurl =~ /^500/; - my $incomm = $self->entry->journal->is_comm ? " in " . $self->entry->journal->user : ''; - sprintf("%s has posted with a new entry$incomm. To view, send READ %s to read it. $LJ::SMS_DISCLAIMER", - $self->entry->poster->user, $self->entry->journal->user); + my $mlstrng = $self->entry->journal->is_comm ? 'notification.sms.journalnewentry_comm' : 'notification.sms.journalnewentry'; +# [[poster]] has posted with a new entry. To view, send READ [[journal]] to read it. [[disclaimer]] +# [[poster]] has posted with a new entry in [[journal]]. To view, send READ [[journal]] to read it. [[disclaimer]] + + return LJ::Lang::get_text($lang, $mlstrng, undef, { + poster => $self->entry->poster->user, + journal => $self->entry->journal->user, + mobile_url => $tinyurl, + }); } sub as_alert { Modified: trunk/cgi-bin/LJ/Event/NewUserpic.pm =================================================================== --- trunk/cgi-bin/LJ/Event/NewUserpic.pm 2011-02-25 08:28:36 UTC (rev 18410) +++ trunk/cgi-bin/LJ/Event/NewUserpic.pm 2011-02-25 09:02:46 UTC (rev 18411) @@ -26,10 +26,14 @@ } sub as_sms { - my $self = shift; + my ($self, $u) = @_; + my $lang = ($u && $u->prop('browselang')) || $LJ::DEFAULT_LANG; - return $self->event_journal->display_username . " has uploaded a new userpic. You can view it at: " . - $self->userpic->url; +# [[journal]] has uploaded a new userpic. You can view it at: [[pic_url]] + return LJ::Lang::get_text($lang, 'notification.sms.newuserpic', undef, { + journal => $self->event_journal->display_username, + pic_url => $self->userpic->url, + }); } # esn.new_userpic.alert=[[who]] has uploaded a new userpic. You can view it at: [[userpic]]. Modified: trunk/cgi-bin/LJ/Event/OfficialPost.pm =================================================================== --- trunk/cgi-bin/LJ/Event/OfficialPost.pm 2011-02-25 08:28:36 UTC (rev 18410) +++ trunk/cgi-bin/LJ/Event/OfficialPost.pm 2011-02-25 09:02:46 UTC (rev 18411) @@ -124,11 +124,21 @@ } sub as_sms { - my $self = shift; + my ($self, $u) = @_; + my $lang = ($u && $u->prop('browselang')) || $LJ::DEFAULT_LANG; my $entry = $self->entry or return "(Invalid entry)"; - return sprintf("There is a new $LJ::SITENAMEABBREV announcement in %s. " . - "Reply with READ %s to read it. $LJ::SMS_DISCLAIMER", - $entry->journal->display_username, $entry->journal->display_username); + + my $tinyurl = LJ::API::BitLy->shorten( 'http://m.livejournal.com/read/user/' + . $entry->journal->user . '/' . $entry->ditemid . '/' ); + undef $tinyurl if $tinyurl =~ /^500/; + +# There is a new [[abbrev]] announcement in [[journal]]. Reply with READ [[journal]] to read it. [[disclaimer]] + return LJ::Lang::get_text($lang, 'notification.sms.officialpost', undef, { + abbrev => $LJ::SITENAMEABBREV, + journal => $entry->journal->display_username, + disclaimer => $LJ::SMS_DISCLAIMER, + mobile_url => $tinyurl, + }); } # esn.officialpost.alert=There is a new [[sitenameabbrev]] announcement in [[username]]. Reply with READ [[username]] to read it. Standard rates apply. Modified: trunk/cgi-bin/LJ/Event/PollVote.pm =================================================================== --- trunk/cgi-bin/LJ/Event/PollVote.pm 2011-02-25 08:28:36 UTC (rev 18410) +++ trunk/cgi-bin/LJ/Event/PollVote.pm 2011-02-25 09:02:46 UTC (rev 18411) @@ -54,9 +54,15 @@ ## notification methods sub as_string { - my $self = shift; - return sprintf("%s has voted in %s at %s", - $self->voter->display_username, $self->pollname, $self->entry->url); + my ($self, $u) = @_; + my $lang = ($u && $u->prop('browselang')) || $LJ::DEFAULT_LANG; + +# [[voter]] has voted in [[pollname]] at [[entry_url]] + return LJ::Lang::get_text($lang, 'notification.sms.pollvote', undef, { + voter => $self->voter->display_username, + pollname => $self->pollname, + entry_url => $self->entry->url + }); } sub as_html { Modified: trunk/cgi-bin/LJ/Event/UserExpunged.pm =================================================================== --- trunk/cgi-bin/LJ/Event/UserExpunged.pm 2011-02-25 08:28:36 UTC (rev 18410) +++ trunk/cgi-bin/LJ/Event/UserExpunged.pm 2011-02-25 09:02:46 UTC (rev 18411) @@ -11,8 +11,13 @@ } sub as_string { - my $self = shift; - return $self->event_journal->display_username . " has been purged."; + my ($self, $u) = @_; + my $lang = ($u && $u->prop('browselang')) || $LJ::DEFAULT_LANG; + +# [[journal]] has been purged. + return LJ::Lang::get_text($lang, 'notification.sms.userexpunged', undef, { + journal => $self->event_journal->display_username, + }); } sub as_alert { Modified: trunk/cgi-bin/LJ/Event/UserMessageRecvd.pm =================================================================== --- trunk/cgi-bin/LJ/Event/UserMessageRecvd.pm 2011-02-25 08:28:36 UTC (rev 18410) +++ trunk/cgi-bin/LJ/Event/UserMessageRecvd.pm 2011-02-25 09:02:46 UTC (rev 18411) @@ -128,12 +128,17 @@ } sub as_sms { - my $self = shift; + my ($self, $u) = @_; + my $lang = ($u && $u->prop('browselang')) || $LJ::DEFAULT_LANG; my $subject = $self->load_message->subject; my $other_u = $self->load_message->other_u; - return sprintf("You've received a new message \"%s\" from %s", - $subject, $other_u->user); + +# You've received a new message "[[subject]]" from [[user]] + return LJ::Lang::get_text($lang, 'notification.sms.usermessagerecvd', undef, { + subject => $subject, + user => $other_u->user, + }); } sub as_alert { Modified: trunk/cgi-bin/LJ/Event/UserMessageSent.pm =================================================================== --- trunk/cgi-bin/LJ/Event/UserMessageSent.pm 2011-02-25 08:28:36 UTC (rev 18410) +++ trunk/cgi-bin/LJ/Event/UserMessageSent.pm 2011-02-25 09:02:46 UTC (rev 18411) @@ -45,11 +45,15 @@ } sub as_string { - my $self = shift; + my ($self, $u) = @_; + my $lang = ($u && $u->prop('browselang')) || $LJ::DEFAULT_LANG; my $other_u = $self->load_message->other_u; - return sprintf("message sent to %s.", - $other_u->{user}); + +# message sent to [[user]]. + return LJ::Lang::get_text($lang, 'notification.sms.usermessagesent', undef, { + user => $other_u->{user}, + }); } sub subscription_as_html {''} Modified: trunk/cgi-bin/LJ/Event/UserNewEntry.pm =================================================================== --- trunk/cgi-bin/LJ/Event/UserNewEntry.pm 2011-02-25 08:28:36 UTC (rev 18410) +++ trunk/cgi-bin/LJ/Event/UserNewEntry.pm 2011-02-25 09:02:46 UTC (rev 18411) @@ -100,16 +100,22 @@ } sub as_sms { - my $self = shift; + my ($self, $u) = @_; + my $lang = ($u && $u->prop('browselang')) || $LJ::DEFAULT_LANG; my $entry = $self->entry; - my $where = "in their journal"; - unless ($entry->posterid == $entry->journalid) { - $where = "in '" . $entry->journal->{user} . "'"; - } - - return sprintf("User '%s' posted $where", $self->poster->{user}); - + my $mlstring = ($entry->posterid == $entry->journalid)? 'notification.sms.usernewentry':'notification.sms.usernewentry_comm'; + my $tinyurl = LJ::API::BitLy->shorten( 'http://m.livejournal.com/read/user/' + . $entry->journal->user . '/' . $entry->ditemid . '/' ); + undef $tinyurl if $tinyurl =~ /^500/; + +# User '[[user]]' posted in their journal +# User '[[user]]' posted '[[journal]]' + return LJ::Lang::get_text($lang, '.string', undef, { + user => $self->poster->{user}, + journal => $entry->journal->{user}, + mobile_url => $tinyurl, + }); } # esn.user_new_entry.in_their_journal.alert=User '[[user]]' posted in their journal Modified: trunk/cgi-bin/LJ/Event.pm =================================================================== --- trunk/cgi-bin/LJ/Event.pm 2011-02-25 08:28:36 UTC (rev 18410) +++ trunk/cgi-bin/LJ/Event.pm 2011-02-25 09:02:46 UTC (rev 18411) @@ -481,9 +481,9 @@ # # $txtlj->send($u, $event->as_sms($u)); sub as_sms { - my $self = shift; + my ($self, $u) = @_; return LJ::Text->truncate_with_ellipsis( - 'str' => $self->as_string, + 'str' => $self->as_string($u), 'bytes' => 160, 'ellipsis' => '...', ); Modified: trunk/cgi-bin/LJ/Widget/SubscribeInterface.pm =================================================================== --- trunk/cgi-bin/LJ/Widget/SubscribeInterface.pm 2011-02-25 08:28:36 UTC (rev 18410) +++ trunk/cgi-bin/LJ/Widget/SubscribeInterface.pm 2011-02-25 09:02:46 UTC (rev 18411) @@ -30,10 +30,6 @@ ){ @ntypes = grep { $_ ne 'LJ::NotificationMethod::SMSru' ? 1 : 0 } @ntypes; } - ## LJSUP-7040. We are disable using SMS Notifications for Basic accounts - if (!$u->get_cap('paid') && !$u->in_class('plus')) { - @ntypes = grep { $_ ne 'LJ::NotificationMethod::SMSru' ? 1 : 0 } @ntypes; - } my $colnum = scalar(@ntypes) + 1; Modified: trunk/htdocs/manage/profile/index.bml =================================================================== --- trunk/htdocs/manage/profile/index.bml 2011-02-25 08:28:36 UTC (rev 18410) +++ trunk/htdocs/manage/profile/index.bml 2011-02-25 09:02:46 UTC (rev 18411) @@ -491,15 +491,8 @@ my $text_messaging_country = ($country eq 'RU') || ($country eq 'KZ'); $ret .= "<a name='txtmsg'></a><div class='section_head'>" . ($text_messaging_country ? $ML{'.section.phone'} : $ML{'.section.textmsg'}) . "\n"; - unless (LJ::get_cap($u, "textmessaging")) { - my $inline; - if ($inline .= LJ::run_hook("cprod_inline", $u, 'TextMessaging')) { - $ret .= "</div>$inline"; - } else { - $ret .= "</div>".BML::ml('cprod.textmessaging.text3.v1'); - } - } - if (LJ::get_cap($u, "textmessaging")) { + + if ($text_messaging_country || LJ::get_cap($u, "textmessaging")) { my $tminfo = LJ::TextMessage->tm_info($u, remap_result => 1); foreach (values %$tminfo) { LJ::text_out(\$_); } $tminfo->{'security'} = "N" if ($u->{'txtmsg_status'} eq 'off' || $u->{'txtmsg_status'} eq 'none'); @@ -541,8 +534,7 @@ $ret .= '<li class="b-manage-smsn-sms">'; #$ret .= '<select name="txtmsg_number_code" class="b-manage-smsn-code" disabled="disabled"><option value="+7">+7</option></select>' . ' '; $ret .= LJ::html_text({ 'name' => 'txtmsg_number', 'value' => $tminfo->{'number'}, 'size' => '16', 'maxlength' => '16', 'class' => 'b-manage-smsn-phone' }); - $ret .= '<br /><span class="helper">' . $ML{'.section.textmsg.example_us'} . '</span></li>' if $country eq 'US'; - $ret .= '<br /><span class="helper">' . $ML{'.section.textmsg.example_ru'} . '</span></li>' if $country eq 'RU'; + $ret .= '<br /><span class="helper">' . $ML{'.section.textmsg.example_' . ($text_messaging_country?'ru':'us')} . '</span></li>'; $ret .= '<br /><span class="helper">' . $ML{'.section.textmsg.example_kz'} . '</span></li>' if $country eq 'KZ'; $ret .= '<li class="b-manage-smsn-status"><i class="i-manage-smsn-icon"></i><i class="help-icon">' . LJ::help_icon('sms_notification') . '</i><span class="i-bubble b-bubble-lite"><i class="i-bubble-arrow-border"></i><i class="i-bubble-arrow"></i><span>' . $ML{'.section.textmsg.info'} . ' </span></span></li>'; $ret .= "<li class='b-manage-smsn-btn'><input type='button' name='sendsms' value='$ML{'.section.textmsg.button'}' disabled='disabled' /></li>"; @@ -554,6 +546,29 @@ $ret .= '<div class="helper">' . $ML{'.section.textmsg.adv'} . '</div>'; } $ret .= "</td></tr>\n"; + + if( $text_messaging_country && LJ::NotificationMethod::SMSru->configured_for_user($u) ){ + my($start, $end) = split /-/, $u->prop( 'smsru_interval' ); + $ret .= "<tr id=\"sms_time\"><td class='field_name'>$ML{'.fn.smsinterval'}</td><td>"; + $ret .= BML::ml(".fn.smsinterval.info", {url=>'manage'}) . "<br />"; + + $ret .= LJ::html_check({ 'type' => 'check', 'name' => 'sms_interval', 'id' => 'sms_interval', + 'selected' => defined $start }); + $ret .= "<label for='sms_interval'>$ML{'.fn.smsinterval.limitrange'}</label><br/>"; + + my @sms_time = map {$_ => sprintf("%02d:00", $_)} (0 .. 23); + $ret .= "<label for='sms_interval_start'>$ML{'.fn.smsinterval.start'}</label>"; + $ret .= LJ::html_select({ 'name' => 'sms_interval_start', + 'selected' => $start || 9, }, + @sms_time); + $ret .= "<label for='sms_interval_end'>$ML{'.fn.smsinterval.end'}</label>"; + $ret .= LJ::html_select({ 'name' => 'sms_interval_end', + 'selected' => $end || 1, }, + @sms_time); + $ret .= BML::ml(".fn.smsinterval.localtime") . "<br />"; + $ret .= "</td></tr>\n"; + } + $ret .= "</table>\n"; $ret .= "<script type='text/javascript'>"; @@ -575,8 +590,15 @@ for qw(already_use correctNum requestsent smssent badtrans notasubscriber singlelimitexceeded totallimitexceeded verified wrongcode linkexpired techerror); $ret .= "}</script>\n"; + }else{ + my $inline; + if ($inline .= LJ::run_hook("cprod_inline", $u, 'TextMessaging')) { + $ret .= "</div>$inline"; + } else { + $ret .= "</div>".BML::ml('cprod.textmessaging.text3.v1'); + } } - + ## FRIENDS $ret .= "<div class='section_head'>$ML{'.section.friends'}</div>\n"; @@ -698,7 +720,21 @@ } } } + + if( defined $POST{sms_interval} || defined $POST{sms_interval_start} + || defined $POST{sms_interval_end}){ + if( $POST{sms_interval} ){ + my $start = $POST{sms_interval_start}+0; + my $end = $POST{sms_interval_end}+0; + $start = 9 unless ($start >= 0) && ($start <= 23); + $end = 1 unless ($end >= 0) && ($end <= 23); + $u->set_prop( smsru_interval => "$start-$end" ); + }else{ + $u->set_prop( smsru_interval => undef ); + } + } + # FIXME: validation AND POSTING are handled by widgets' handle_post() methods # (introduce validate_post() ?) my $save_search_index = $POST{'opt_showlocation'} =~ /^[YR]$/; Modified: trunk/htdocs/manage/profile/index.bml.text =================================================================== --- trunk/htdocs/manage/profile/index.bml.text 2011-02-25 08:28:36 UTC (rev 18410) +++ trunk/htdocs/manage/profile/index.bml.text 2011-02-25 09:02:46 UTC (rev 18411) @@ -169,6 +169,18 @@ .fn.vernum=Verification number +.fn.smsinterval=SMS Interval + +.fn.smsinterval.info=You can manage your subscriptions <a href="[[url]]">here</a> + +.fn.smsinterval.limitrange=Limit range + +.fn.smsinterval.start=Send from + +.fn.smsinterval.end=till + +.fn.smsinterval.localtime=you local timezone. + .fn.zip=ZIP Code .friendof=Show other users who have friended you, but you have not friended