PageRenderTime 54ms CodeModel.GetById 26ms RepoModel.GetById 0ms app.codeStats 0ms

/Site/subscription.php

https://github.com/kainbacher/Notethrower
PHP | 273 lines | 110 code | 38 blank | 125 comment | 12 complexity | 7c1fc9d0dd785a092468a6a95c1fa167 MD5 | raw file
  1. <?php
  2. include_once('../Includes/Init.php'); // must be included first
  3. include_once('../Includes/Config.php');
  4. include_once('../Includes/Snippets.php');
  5. include_once('../Includes/TemplateUtil.php');
  6. include_once('../Includes/DB/Subscription.php');
  7. include_once('../Includes/Mailer/MailUtil.php');
  8. if(get_param('referrer') == 'batcholdartists'){
  9. /*
  10. Invitation sent on 20.09.2011 - 15:34. DONT REPEAT!!!
  11. $oldartists = Subscription::fetch_notethrower_artists();
  12. for($i=0; $i < count($oldartists); $i++){
  13. $artist = $oldartists[$i];
  14. $referral_url = 'http://oneloudr.com/invite/'.$artist['rand_str'];
  15. $emailtext = processTpl('Subscription/emailtextoldartists.html', array(
  16. '${username}' => $artist['username'],
  17. '${referralUrl}' => $referral_url
  18. ));
  19. $email_sent = sendEmail($artist['email_address'], 'Your ONELOUDR Invitation', $emailtext);
  20. if($email_sent){
  21. echo 'Invitation for "'.$artist['username'].'" successfully sent<br />';
  22. }
  23. //echo $email_sent;
  24. //echo 'name: '.$artist['username'].'<br />';
  25. }
  26. */
  27. exit;
  28. }
  29. $referrer = Subscription::fetch_for_rand_str(get_param('referrer'));
  30. if(!$referrer->id){
  31. //if no referral -> just die
  32. //uncomment when we open the subscription for everyone
  33. displayStartpage();
  34. exit;
  35. }
  36. if(get_param('action')=='success' && $referrer->id){
  37. displaySuccess($referrer);
  38. exit;
  39. }
  40. //$error = processTpl('Subscription/err_email_wrongformat.html');
  41. if(get_param('username')){
  42. $username = get_param('username');
  43. if(get_param('email')){
  44. $email = get_param('email');
  45. if(Subscription::fetch_for_email(get_param('email'))){
  46. $error = processTpl('Subscription/err_email_exists.html');
  47. displayStepTwo($referrer, $username, $email, $error);
  48. exit;
  49. } elseif(email_syntax_ok($email) == false){
  50. $error = processTpl('Subscription/err_email_wrongformat.html');
  51. displayStepTwo($referrer, $username, $email, $error);
  52. exit;
  53. } else {
  54. $subscription = new Subscription();
  55. processParams($subscription, $referrer->id);
  56. $subscription->insert();
  57. $referal_url = 'http://oneloudr.com/invite/'.$subscription->rand_str;
  58. $emailtext = processTpl('Subscription/emailtext.html', array(
  59. '${username}' => $username,
  60. '${referralUrl}' => $referal_url
  61. ));
  62. $email_sent = sendEmail($subscription->email_address, 'Your ONELOUDR Invitation', $emailtext);
  63. //prevent reload
  64. header('Location: ' . $GLOBALS['BASE_URL'] . 'invite/'.$subscription->rand_str.'/success');
  65. //header('Location: subscription.php?action=success&code='.$subscription->rand_str);
  66. exit;
  67. }
  68. }
  69. //error checks
  70. if(strlen($username) < 3){
  71. $error = processTpl('Subscription/err_username_tooshort.html');
  72. displayStepOne($referrer, $username, $error);
  73. exit;
  74. } elseif(strlen($username) > 50){
  75. $error = processTpl('Subscription/err_username_toolong.html');
  76. displayStepOne($referrer, $username, $error);
  77. exit;
  78. } elseif(Subscription::fetch_for_username($username)){
  79. $error = processTpl('Subscription/err_username_exists.html');
  80. displayStepOne($referrer, $username, $error);
  81. exit;
  82. }
  83. displayStepTwo($referrer, $username);
  84. } else {
  85. displayStepOne($referrer);
  86. }
  87. function buildSubscriptionHeader($title){
  88. return processTpl('Subscription/pageHeader.html', array(
  89. '${pageTitle}' => escape($title)
  90. ));
  91. }
  92. function buildSubscriptionFooter(){
  93. return processTpl('Subscription/pageFooter.html');
  94. }
  95. function displayStartpage(){
  96. processAndPrintTpl('Subscription/index.html', array(
  97. '${Common/pageHeader}' => buildSubscriptionHeader('Welcome'),
  98. '${Common/pageFooter}' => buildSubscriptionFooter()
  99. ));
  100. }
  101. function displayStepOne($referrer, $username = null, $error = null){
  102. processAndPrintTpl('Subscription/step_one.html', array(
  103. '${Common/pageHeader}' => buildSubscriptionHeader('Signup'),
  104. '${Optional/username}' => $username,
  105. '${Optional/error}' => $error,
  106. '${formAction}' => '/invite/'.$referrer->rand_str,
  107. '${Common/pageFooter}' => buildSubscriptionFooter()
  108. ));
  109. }
  110. function displayStepTwo($referrer, $username, $email = null, $error = null){
  111. processAndPrintTpl('Subscription/step_two.html', array(
  112. '${Common/pageHeader}' => buildSubscriptionHeader('Signup - Step 2'),
  113. '${Optional/error}' => $error,
  114. '${Optional/email}' => $email,
  115. '${username}' => $username,
  116. '${formAction}' => '/invite/'.$referrer->rand_str,
  117. '${userName}' => get_param('username'),
  118. '${Common/pageFooter}' => buildSubscriptionFooter()
  119. ));
  120. }
  121. function displaySuccess($referrer){
  122. processAndPrintTpl('Subscription/step_three.html', array(
  123. '${Common/pageHeader}' => buildSubscriptionHeader('Signup - Success'),
  124. '${referalUrl}' => 'http://oneloudr.com/invite/'.$referrer->rand_str,
  125. '${Common/pageFooter}' => buildSubscriptionFooter()
  126. ));
  127. }
  128. function processParams($subscription, $referrerid = 0){
  129. $subscription->username = get_param('username');
  130. $subscription->email_address = get_param('email');
  131. $subscription->rand_str = rand_char();
  132. $subscription->referrer_id = $referrerid;
  133. }
  134. /*
  135. *
  136. *
  137. if(get_param('action') == 'success'){
  138. $subscription = Subscription::fetch_for_rand_str(get_param('code'));
  139. $referal_url = $_SERVER['HTTP_REFERER'].'?referrer='.$subscription->rand_str;
  140. processAndPrintTpl('Subscription/step_three.html', array(
  141. '${Common/pageHeader}' => buildPageHeader('Subscription Title - Success'),
  142. '${referalUrl}' => $referal_url,
  143. '${Common/pageFooter}' => buildPageFooter()
  144. ));
  145. exit;
  146. }
  147. if(get_param('username') && get_param('email') && email_syntax_ok(get_param('email'))){
  148. $emailcheck = Subscription::fetch_for_email(get_param('email'));
  149. if($emailcheck){
  150. header('Location: subscription.php?action=error&type=email');
  151. exit;
  152. }else {
  153. $subscription = new Subscription();
  154. processParams($subscription);
  155. $subscription->insert();
  156. $referal_url = $_SERVER['HTTP_REFERER'].'?referrer='.$subscription->rand_str;
  157. $email_sent = sendEmail($subscription->email_address, 'Your ONELOUDR Subscription',
  158. 'Hey ' . $subscription->username . "\n" .
  159. 'Your referral-url: '. $referal_url . "\n");
  160. //prevent reload
  161. header('Location: subscription.php?action=success&code='.$subscription->rand_str);
  162. exit;
  163. }
  164. } elseif(get_param('username') && (strlen(get_param('username')) >= 3)){
  165. $error = false;
  166. if(get_param('email') && email_syntax_ok(get_param('email')) == false){
  167. $error = processTpl('Subscription/err_email_wrongformat.html');
  168. }
  169. //check if user already exists:
  170. $namecheck = Subscription::fetch_for_username(get_param('username'));
  171. if($namecheck){
  172. header('Location: subscription.php?action=error&type=name');
  173. exit;
  174. }
  175. processAndPrintTpl('Subscription/step_two.html', array(
  176. '${Common/pageHeader}' => buildPageHeader('Subscription Title - Step 2'),
  177. '${Optional/referrerId}' => get_param('referrerid'),
  178. '${Optional/error}' => $error,
  179. '${phpSelf}' => basename($_SERVER['PHP_SELF'], '.php'),
  180. '${userName}' => get_param('username'),
  181. '${Common/pageFooter}' => buildPageFooter()
  182. ));
  183. } else{
  184. $error = false;
  185. if(get_param('username')){
  186. if(strlen(get_param('username')) <= 3){
  187. $error = processTpl('Subscription/err_username_tooshort.html');
  188. } elseif(strlen(get_param('username')) > 50){
  189. $error = processTpl('Subscription/err_username_toolong.html');
  190. }
  191. }
  192. if(get_param('action') == 'error'){
  193. if(get_param('type') == 'name'){
  194. $error = processTpl('Subscription/err_username_exists.html');
  195. } elseif (get_param('type') == 'email'){
  196. $error = processTpl('Subscription/err_email_exists.html');
  197. }
  198. }
  199. $referrer = false;
  200. $referrer_name = false;
  201. if(get_param('referrer')){
  202. $referrer = Subscription::fetch_for_rand_str(get_param('referrer'));
  203. $referrer_name = processTpl('Subscription/msg_referredby.html', array(
  204. '${referrer_name}' => $referrer->username
  205. ));
  206. }
  207. processAndPrintTpl('Subscription/step_one.html', array(
  208. '${Common/pageHeader}' => buildPageHeader('Subscription Title'),
  209. '${Optional/referrerName}' => $referrer_name,
  210. '${Optional/referrerId}' => $referrer->id,
  211. '${Optional/error}' => $error,
  212. '${phpSelf}' => '/invite/',
  213. '${Common/pageFooter}' => buildPageFooter()
  214. ));
  215. }
  216. */
  217. ?>