check_feature('feature_invite'); function tiki_invited() { global $user; $userlib = TikiLib::lib('user'); $tikilib = TikiLib::lib('tiki'); $smarty = TikiLib::lib('smarty'); $invite = (int)isset($_REQUEST['invite']) ? $_REQUEST['invite'] : 0; $email = isset($_REQUEST['email']) ? $_REQUEST['email'] : null; if (($invite <= 0) || empty($email)) { die("invalid request"); } $res = $tikilib->query( "SELECT * FROM tiki_invited WHERE id_invite=? AND email=? AND used=?", [$invite, $email, "no"] ); $invited = $res->fetchRow(); if (! is_array($invited)) { $error = tra("This invitation does not exist or is deprecated"); $smarty->assign('error', $error); $smarty->assign('mid', 'tiki-invited.tpl'); $smarty->display("tiki.tpl"); return; } $smarty->assign("invite", $invite); $smarty->assign("email", $email); $res = $tikilib->query("SELECT * FROM tiki_invite WHERE id=?", [$invite]); $inviterow = $res->fetchRow(); if (! is_array($inviterow)) { die("(bug) This invitation does not exist or is deprecated"); } if (isset($_POST['validate-existing-account'])) { $groups = $tikilib->getOne( "SELECT `tiki_invite`.`groups` FROM `tiki_invited` LEFT JOIN `tiki_invite` ON `tiki_invite`.`id` = `tiki_invited`.`id_invite` WHERE `tiki_invited`.`id` = ?", [$invited['id']] ); $groups = explode(',', $groups); foreach ($groups as $group) { $userlib->assign_user_to_group($user, trim($group)); } $tikilib->query("UPDATE tiki_invited SET used=?, used_on_user=? WHERE id=?", ["logged", $user, $invited['id']]); if (! empty($inviterow['wikipageafter'])) { $_SERVER['SCRIPT_URI'] = empty($_SERVER['SCRIPT_URI']) ? 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] : $_SERVER['SCRIPT_URI']; $redirect = str_replace('tiki-invited.php', 'tiki-index.php?page=', $_SERVER['SCRIPT_URI']) . urlencode($inviterow['wikipageafter']); header('Location: ' . $redirect); exit; } $error = tra("Congratulations! You are now part of this invitation group(s)"); $smarty->assign('error', $error); $smarty->assign('mid', 'tiki-invited.tpl'); $smarty->display("tiki.tpl"); return; } else { $text = TikiLib::lib('parser')->parse_data($inviterow['wikicontent']); $text = str_replace('{email}', $invited['email'], $text); $text = str_replace('{firstname}', $invited['firstname'], $text); $text = str_replace('{lastname}', $invited['lastname'], $text); $smarty->assign('parsed', $text); } $smarty->assign('mid', 'tiki-invited.tpl'); $smarty->display("tiki.tpl"); } tiki_invited();