* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
+if (!defined('GNUSOCIAL')) { exit(1); }
// @todo XXX: Add documentation.
class InviteAction extends Action
return;
}
- function isReadOnly($args)
+ function isReadOnly(array $args=array())
{
return false;
}
- function handle($args)
+ function handle(array $args=array())
{
parent::handle($args);
if (!common_config('invite', 'enabled')) {
$bestname = $profile->getBestName();
$sitename = common_config('site', 'name');
$personal = $this->trimmed('personal');
+ $language = $this->trimmed('language');
$addresses = explode("\n", $this->trimmed('addresses'));
foreach ($addresses as $email) {
foreach ($addresses as $email) {
$email = common_canonical_email($email);
- $other = User::getKV('email', $email);
- if ($other) {
+ try {
+ // If this user is already registered, subscribe to it!
+ $other = Profile::getByEmail($email);
if ($user->isSubscribed($other)) {
$this->already[] = $other;
} else {
- subs_subscribe_to($user, $other);
- $this->subbed[] = $other;
+ try {
+ Subscription::ensureStart($profile, $other);
+ $this->subbed[] = $other;
+ } catch (Exception $e) {
+ // subscription failed, but keep working
+ common_debug('Invitation-based subscription failed: '.$e->getMessage());
+ }
}
- } else {
+ } catch (NoSuchUserException $e) {
+ // If email was not known, let's send an invite!
$this->sent[] = $email;
- $this->sendInvitation($email, $user, $personal);
+ $this->sendInvitation($email, $user, $personal, $language);
}
}
}
}
- function sendInvitation($email, $user, $personal)
+ function sendInvitation($email, $user, $personal, $language)
{
$profile = $user->getProfile();
$bestname = $profile->getBestName();
$title = (empty($personal)) ? 'invite' : 'invitepersonal';
// @todo FIXME: i18n issue.
- $inviteTemplate = DocFile::forTitle($title, DocFile::mailPaths());
+ $inviteTemplate = DocFile::forTitle($title, DocFile::mailPaths(), $language);
$body = $inviteTemplate->toHTML(array('inviter' => $bestname,
'inviterurl' => $profile->profileurl,