Jump to content
Jade Shadows: Share Bug Reports and Feedback Here! ×

Anyone Else See...


thatdamnlobster
 Share

Recommended Posts

you mean this? 

 

 

array( 'title' => t('Access mod_warframe content'), ), ); } /** * Implements hook_menu(). */ function mod_warframe_menu() { $items = array(); $items['puzzle'] = array( 'title' => 'Puzzled?', 'page callback' => 'mod_warframe_puzzle', 'access arguments' => array('access content'), 'type' => MENU_NORMAL_ITEM ); $items['confirm'] = array( 'title' => 'Thank You', 'page callback' => 'mod_warframe_confirm', 'access arguments' => array('access content'), 'type' => MENU_NORMAL_ITEM ); /* $items['outreach'] = array( 'title' => 'Outreach', 'page callback' => 'mod_warframe_outreach', 'access arguments' => array('access warframe_authenticated content'), 'type' => MENU_NORMAL_ITEM ); */ $items['outreach_thanks'] = array( 'title' => 'Thank You', 'page callback' => 'mod_warframe_outreach_thanks', 'access arguments' => array('access warframe_authenticated content'), 'type' => MENU_NORMAL_ITEM ); $items['destek'] = array( 'title' => 'Durmapay Help', 'page callback' => 'mod_warframe_durma_help', 'access arguments' => array('access content'), 'type' => MENU_NORMAL_ITEM ); //admin menus $items['admin/config/content/warframe'] = array( 'title' => 'WarFrame Text and Email Settings', 'description' => 'Configuration of WarFrame module', 'page callback' => 'drupal_get_form', 'page arguments' => array('mod_warframe_admin'), 'access arguments' => array('access administration pages'), 'type' => MENU_NORMAL_ITEM, ); $items['admin/config/system/warframesettings'] = array( 'title' => 'WarFrame Module Settings', 'description' => 'Settings for WarFrame module', 'page callback' => 'drupal_get_form', 'page arguments' => array('mod_warframe_admin_settings'), 'access arguments' => array('access administration pages'), 'type' => MENU_NORMAL_ITEM, ); return $items; } function mod_warframe_admin($form, &$form_state) { global $user; $form = array(); $form['mod_warframe_confirm_text'] = array( '#type' => 'textarea', '#title' => t('Confirmation Page Text'), '#default_value' => variable_get('mod_warframe_confirm_text', array('value' => t('

Thank You!

Your Alias is reserved.

 

Want more? Download the full-res teaser image here

'), 'format' => NULL)), '#description' => t('The text displayed on the confirmation screen. The token {link} will be replaced with this user\'s confirmation link.'), '#required' => TRUE, ); $form['mod_warframe_unconfirm_text'] = array( '#type' => 'textarea', '#title' => t('Confirmation Error Page Text'), '#default_value' => variable_get('mod_warframe_unconfirm_text', array('value' => t('

We're sorry but we are unable to confirm your account information.

 

Please check the confirmation link that was sent in your email. If you have not yet registered, please return to the homepage.

'), 'format' => NULL)), '#description' => t('The text displayed on the confirmation screen when unsuccessful.'), '#required' => TRUE, ); $form['mod_warframe_email_confirm'] = array( '#type' => 'textarea', '#title' => t('Confirmation Email Text - Standard'), '#default_value' => variable_get('mod_warframe_email_confirm', t("Your Warframe account for {displayName} is almost ready for action! You are now on the wait list for the Closed Beta test!\n\nFollow this link to complete your registration: {link}\n\nJust can't wait for your Beta Key invite? Cut the line by purchasing a Founders Package and get instant access to the Closed Beta.\n\nWarframe is a co-op focused third-person action game brought to you by Digital Extremes.")), '#description' => t('The email that is sent to a user after confirming their registration. The token {link} will be replaced with this user\'s confirmation link.'), '#required' => TRUE, ); $form['mod_warframe_email_confirm_closed'] = array( '#type' => 'textarea', '#title' => t('Confirmation Email Text - Closed Beta'), '#default_value' => variable_get('mod_warframe_email_confirm_closed', t("Your Warframe account has been created! You are now on the list for the Closed Beta test!\n\nOver the next little while, we will keep you updated on all things Warframe - most importantly, when you can get into the Closed Beta.\n\nWarframe is a co-op focused third-person shooter brought to you by Digital Extremes.")), '#description' => t('The email that is sent to a user after confirming their registration. The token {link} will be replaced with this user\'s confirmation link. This email should reference beta key activation.'), '#required' => TRUE, ); $form['mod_warframe_email_activate'] = array( '#type' => 'textarea', '#title' => t('Activation Email Text'), '#default_value' => variable_get('mod_warframe_email_activate', t("Your Warframe account for {displayName} is almost ready for action!\n\nFollow this link to complete your registration: {link}\n\nWarframe is a co-op focused third-person action game brought to you by Digital Extremes.")), '#description' => t('The email that is sent to a user after activating their account. The token {link} will be replaced with this user\'s confirmation link.'), '#required' => TRUE, ); $form['mod_warframe_email_activate_closed'] = array( '#type' => 'textarea', '#title' => t('Activation Email Text - Closed Beta'), '#default_value' => variable_get('mod_warframe_email_activate_closed', t("Your Warframe account for {displayName} is almost ready for action! You are now on the wait list for the Closed Beta test!\n\nFollow this link to complete your registration: {link}\n\nJust can't wait for your Beta Key invite? Cut the line by purchasing a Founders Package and get instant access to the Closed Beta.\n\nWarframe is a co-op focused third-person action game brought to you by Digital Extremes.")), '#description' => t('The email that is sent to a user after activating their account. The token {link} will be replaced with this user\'s confirmation link.'), '#required' => TRUE, ); $form['mod_warframe_email_password_reset'] = array( '#type' => 'textarea', '#title' => t('Password Reset Email Text'), '#default_value' => variable_get('mod_warframe_email_password_reset', t("Someone has requested a password reset for your {displayName} account on Warframe.\n\nIf this is really you and you would like a new password please follow this link: {link}\n\nWarframe is a free-to-play co-op focused third-person action game brought to you by Digital Extremes.")), '#description' => t('The email that is sent to a user after resetting their password. The token {link} will be replaced with this user\'s confirmation link.'), '#required' => TRUE, ); $form['mod_warframe_email_alias_recovery'] = array( '#type' => 'textarea', '#title' => t('Alias Recovery Email Text'), '#default_value' => variable_get('mod_warframe_email_alias_recovery', t("You Warframe alias is: {displayName}. Visit our website: {link} WARFRAME is a co-op focused third-person shooter brought to you by Digital Extremes.")), '#description' => t('The email that is sent to a user after requesting their alias or display name. The token {link} will be replaced with this user\'s confirmation link.'), '#required' => TRUE, ); return system_settings_form($form); } function mod_warframe_admin_settings($form, &$form_state) { global $user; $form = array(); $form['mod_warframe_founder_status'] = array( '#type' => 'select', '#options' => array('open' => 'Open', 'members' => 'Members Only', 'closed' => 'Closed'), '#title' => t('Founders'), '#default_value' => variable_get('mod_warframe_founder_status', 'open'), '#description' => t('The Founders program can either be open to all registered users, open to Founders members only or closed to everyone.'), '#required' => TRUE, ); $form['mod_warframe_alias_change_cost'] = array( '#type' => 'textfield', '#title' => t('Alias Change Cost'), '#default_value' => variable_get('mod_warframe_alias_change_cost', '200'), '#size' => 6, '#maxlength' => 6, '#description' => t('The cost in platinum to change an alias'), '#required' => TRUE, ); $form['mod_warframe_credits_data'] = array( '#type' => 'textarea', '#title' => t('Credits Available'), '#default_value' => variable_get('mod_warframe_credits_data', '75|4.99|Best Value'), '#description' => t('A raw delimited string that gets parsed into an array. Use the format platinum-amount|required-text|value|optional-text with one value per line. ie. 2100|(1500 + 600 Bonus Pt)|99.99|Best Value or 75|4.99 Strings such as "Pt" and "USD" will be added automatically.'), '#required' => TRUE, ); $form['mod_warframe_buy_platinum_page_banner'] = array( '#type' => 'textfield', '#title' => t('Buy Platinum Banner NID'), '#default_value' => variable_get('mod_warframe_buy_platinum_page_banner', '411'), '#description' => t('The node id of the page containing the buy platinum header image'), '#required' => TRUE, ); $form['mod_warframe_buy_platinum_header'] = array( '#type' => 'textfield', '#title' => t('Buy Platinum Main Image NID'), '#default_value' => variable_get('mod_warframe_buy_platinum_header', '408'), '#description' => t('The node id of the page containing the main buy platinum image'), '#required' => TRUE, ); $form['mod_warframe_founders_data'] = array( '#type' => 'textarea', '#title' => t('Founders Packages'), '#default_value' => variable_get('mod_warframe_founders_data', 'founder1|Disciple|19.99|Disciple\rfounder2|Hunger|49.99|Hunger\rfounder3|Master|99.99|Master\efounder4|Grand Master|249.99|Grand Master'), '#description' => t('A raw delimited string that gets parsed into an array. Use the format platinum-amount|required-text|value|optional-text with one value per line. ie. founder2|49.99|Text Actual output of the buttons must be handled elsewhere.'), '#required' => TRUE, ); $form['mod_warframe_confirm_analytics'] = array( '#type' => 'textarea', '#title' => t('Confirm Page GoogleAnalytics Code'), '#default_value' => variable_get('mod_warframe_confirm_analytics', ''), '#description' => t('The GoogleAnalytics code to output on the confirm page only, below the main content. Include script tags and all other markup.') ); return system_settings_form($form); } /** * Implements hook_variable_info(). */ function mod_warframe_variable_info($options) { $variables['mod_warframe_confirm_text'] = array( 'type' => 'text', 'title' => t('Confirmation Page Text', array(), $options), 'default' => 'Your Warframe account has been created! You are now on the list for the Closed Beta test!\n\nOver the next little while, we will keep you updated on all things Warframe - most importantly, when you can get into the Closed Beta. \n\n\nWarframe is a co-op focused third-person shooter brought to you by Digital Extremes.', 'description' => t('The text displayed on the confirmation screen. The token {link} will be replaced with this user\'s confirmation link.'), 'required' => TRUE, 'localize' => TRUE, ); $variables['mod_warframe_unconfirm_text'] = array( 'type' => 'text', 'title' => t('Confirmation Error Page Text', array(), $options), 'default' => 'Your Warframe account has been created! You are now on the list for the Closed Beta test!\n\nOver the next little while, we will keep you updated on all things Warframe - most importantly, when you can get into the Closed Beta. \n\n\nWarframe is a co-op focused third-person shooter brought to you by Digital Extremes.', 'description' => t('The text displayed on the confirmation screen when unsuccessful.'), 'required' => TRUE, 'localize' => TRUE, ); $variables['mod_warframe_email_confirm'] = array( 'type' => 'text', 'title' => t('Confirmation Email Text - Standard', array(), $options), 'default' => 'Your Warframe account has been created! You are now on the list for the Closed Beta test!\n\nOver the next little while, we will keep you updated on all things Warframe - most importantly, when you can get into the Closed Beta. \n\n\nWarframe is a co-op focused third-person shooter brought to you by Digital Extremes.', 'description' => t('The email that is sent to a user after confirming their registration. The token {link} will be replaced with this user\'s confirmation link.'), 'required' => TRUE, 'localize' => TRUE, ); $variables['mod_warframe_email_confirm_closed'] = array( 'type' => 'text', 'title' => t('Confirmation Email Text - Closed Beta', array(), $options), 'default' => 'Your Warframe account has been created! You are now on the list for the Closed Beta test!\n\nOver the next little while, we will keep you updated on all things Warframe - most importantly, when you can get into the Closed Beta.\n\nWarframe is a co-op focused third-person shooter brought to you by Digital Extremes.', 'description' => t('The email that is sent to a user after confirming their registration. The token {link} will be replaced with this user\'s confirmation link.'), 'required' => TRUE, 'localize' => TRUE, ); $variables['mod_warframe_email_activate'] = array( 'type' => 'text', 'title' => t('Activation Email Text', array(), $options), 'default' => 'Your Warframe account has been created! You are now on the list for the Closed Beta test!\n\nOver the next little while, we will keep you updated on all things Warframe - most importantly, when you can get into the Closed Beta.\n\nWarframe is a co-op focused third-person shooter brought to you by Digital Extremes.', 'description' => t('The email that is sent to a user after activating their account. The token {link} will be replaced with this user\'s confirmation link.'), 'required' => TRUE, 'localize' => TRUE, ); $variables['mod_warframe_email_activate_closed'] = array( 'type' => 'text', 'title' => t('Activation Email Text - Closed Beta', array(), $options), 'default' => 'Your Warframe account for {displayName} is almost ready for action! Click the link below to participate in the Open Beta Weekend!\n\nFollow this link to activate your account and download the game: {link}\n\nWant to become a Warframe Founder? Check out our website to purchase a package before time runs out!\n\nWarframe is a co-op focused third-person action game brought to you by Digital Extremes.', 'description' => t('The email that is sent to a user after activating their account. The token {link} will be replaced with this user\'s confirmation link.'), 'required' => TRUE, 'localize' => TRUE, ); $variables['mod_warframe_email_password_reset'] = array( 'type' => 'text', 'title' => t('Password Reset Email Text', array(), $options), 'default' => 'Someone has requested a password reset for your {displayName} account on Warframe.\n\nIf this is really you and you would like a new password please follow this link: {link}\n\nWarframe is a free-to-play co-op focused third-person action game brought to you by Digital Extremes.', 'description' => t('The email that is sent to a user after resetting their password. The token {link} will be replaced with this user\'s confirmation link.'), 'required' => TRUE, 'localize' => TRUE, ); $variables['mod_warframe_email_alias_recovery'] = array( 'type' => 'text', 'title' => t('Alias Recovery Email Text', array(), $options), 'default' => 'You Warframe alias is: {displayName}. Visit our website: {link} WARFRAME is a co-op focused third-person shooter brought to you by Digital Extremes.', 'description' => t('The email that is sent to a user after requesting their alias or display name. The token {link} will be replaced with this user\'s confirmation link.'), 'required' => TRUE, 'localize' => TRUE, ); return $variables; } function mod_warframe_block_info() { $blocks = array(); $blocks['warframe_register'] = array( 'info' => t('PreRegistration Block'), 'cache' => DRUPAL_NO_CACHE ); $blocks['warframe_puzzle'] = array( 'info' => t('Puzzle Block'), 'cache' => DRUPAL_NO_CACHE ); $blocks['warframe_video'] = array( 'info' => t('Video'), 'cache' => DRUPAL_CACHE_GLOBAL ); return $blocks; } function mod_warframe_block_view($delta = '') { $block = array(); switch($delta){ case 'warframe_register': $block['subject'] = t('Pre-Register'); $block['content'] = mod_warframe_signup(); break; case 'warframe_puzzle': $block['subject'] = t('Puzzle'); $block['content'] = mod_warframe_puzzle(); break; case 'warframe_video': $block['subject'] = t('Video'); $block['content'] = mod_warframe_video(); break; } return $block; } function mod_warframe_signup() { $page = '

'; $page .= '
' . t('Sign Up Now!') . '
'; $page .= '
'; $page .= drupal_render(drupal_get_form('_mod_warframe_register_form')); $page .= '
 
'; $page .= '
'; $page .= '
 
'; $page .= '

'; return $page; } function mod_warframe_outreach() { $page = '

'; $page .= '
'; $page .= '

Organizing a large LAN Party? Growing your YouTube audience? Having a Warframe Clan event? Looking for Warframe to sponsor or support your event? Tell us about it and we’ll try to help if we can.


'; $page .= drupal_render(drupal_get_form('_mod_warframe_outreach_form')); $page .= '
 
'; $page .= '
'; $page .= '
 
'; $page .= '

'; return $page; } function mod_warframe_outreach_thanks(){ $page = '

'; $page .= '
'; $page .= '

'.t('Thanks for your outreach submission, someone will contact you shortly').'


'; $page .= '
 
'; $page .= '
'; $page .= '
 
'; $page .= '

'; return $page; } function mod_warframe_durma_help(){ $page = '

'; $page .= '

ÖDEMENIZI YAPARKEN BIR SORUN OLUŞTU. YANLIŞ BILGI GIRMIŞ OLABILIRSINIZ. VEYA TEKNIK BIR PROBLEM SEBEBI ILE HATA VERMIŞ OLABILIR. LÜTFEN TEKRAR DENEYINIZ.

'; $page .= '

Kredi kartınız ile alınabilecek hatalar :

'; $page .= '

  1. Ödeme öncesi cep telefon numaranızı giriniz. Sonrasında size 6 haneli bir şifre gelecektir. Onay kutusuna yazarak kredi kartı ile ödeme sayfasına ulaşınız.
  2. Kart bilgilerinizi doğru girdiğinizden emin olunuz. Ayrıca kartınızın limiti yetersiz olabilir. Kart limitinizi kontrol ediniz.
  3. Kartınızın son kullanma tarihinin geçmemiş olmasına ve arkasında 3 haneli CVC numarasını en sağdaki 3 haneyi yazdığınızı doğrulayınız.

'; $page .= '

Mobil Ödeme ile Platinum alırken hata yaşıyorsanız :

'; $page .= '

  1. Telefonunuzda yeterli TL nin bulunmasına dikkat ediniz.
  2. Eksi bakiyeler ile ödeme yapamazsınız.
  3. Ödemeniz esnasında karşınıza gelen ekranları zamanında takip ediniz. Zamanında gerekli kısımları doldurmaz iseniz ödemeniz tamamlanmaz.
  4. Turkcell, Vodafone ve Avea hatlarınız ile ödeme yapabilirsiniz. Diğer operatörler ile ödeme yapamazsınız.

'; $page .= '

Paypal ile Ödeme yaparken hata yaşıyorsanız :

'; $page .= '

  1. Paypal hesabınızın doğrulanmış olduğundan emin olunuz.
  2. Paypal hesabınızın bağlı bulunduğu kredi kartınızın limitinin yeterli olduğunu kontrol ediniz.
  3. Paypal ile ödemenizi tamamladığınızda Paypal üyeliğinizin kayıtlı olduğu mail adresinize bir şifre gelir. Bu şifreyi onay kutusuna girerek Paypal ödemenizi tamamlayabilirsiniz. Onayı tamamlanmayan Paypal ödemeleri iade edilecektir.

'; $page .= '

Epin ile Ödeme yaparken hata yaşıyorsanız :

'; $page .= '

  1. Aldığınız Epin’i doğru yazdığınızdan emin olun.
  2. Aldığınız Epin türünü doğru Platinum ürününe veya Founder Paketinde aktif ettiğinizden emin olun.
  3. Epini satın aldığınız yetkili satıcılarımıza başvurarak problem yaşadığınızı iletebilirsiniz. Veya destek@durmapay.com mail adresinden destek isteyebilirsiniz.

'; $page .= '

Tüm uygulamaları doğru yaptığınızı düşünüyorsanız ve halen hata alıyorsanız lütfen destek@durmapay.com destek bölümümüze mail atınız.

'; return $page; } //this block development suspended function mod_warframe_video() { $mod_warframe_video = variable_get('mod_warframe_video', array('value' => '

' 'format' => 'plaingoogtube')); $page = '
'; //$page .= render($mod_warframe_video); //$filter = new StdClass()->settings['googtube_method'] = 'embed'; $filter = array(); $page .= _googtube_process('
' $filter); $page .= '

'; return $page; } function mod_warframe_confirm() { $page = ''; if(isset($_GET['conf'])) { $conf = $_GET['conf']; $confirmed = _mod_warframe_confirm_code($conf); } else { $confirmed = false; } if($confirmed) { //page output $mod_warframe_confirm_text = variable_get('mod_warframe_confirm_text', array('value' => '', 'format' => NULL)); $reflink = url('signup', array('query' => array('ref' => $conf), 'absolute' => true)); $page_msg = $mod_warframe_confirm_text['value']; $page_msg = str_replace('{link}', $reflink, $page_msg); //send a final email to the user with the referral code if($confirmed > 0) { mod_warframe_mail_referral($conf); } $page .= $page_msg; } else { $mod_warframe_unconfirm_text = variable_get('mod_warframe_unconfirm_text', array('value' => 'Registration not confirmed', 'format' => NULL)); $page .= $mod_warframe_unconfirm_text['value']; } //add tracking code $analytics = variable_get('mod_warframe_confirm_analytics', ''); if($analytics != '') { $page .= $analytics; } return $page; } //used to validate preregistrations, expects an integer function _mod_warframe_refcode_to_id($conf) { return (intval($conf) ^ 0x01234567) - 0x04000000; } function _mod_warframe_id_to_refcode($id) { return (intval($id) + 0x04000000) ^ 0x01234567; } function _mod_warframe_confirm_code($conf) { if($conf == '') { return 0; } $id = _mod_warframe_refcode_to_id($conf); $sql = "UPDATE {accounts} SET active = 1 WHERE active = 0 AND id = :id"; $options = array('return' => Database::RETURN_AFFECTED); $result = db_query($sql, array(':id' => $id), $options); if($result == 1) { return 1; } $sql = "SELECT id FROM {accounts} WHERE id = :id"; $options = array('return' => Database::RETURN_AFFECTED); $result = db_query($sql, array(':id' => $id), $options); if($result == 1) { return -1; } return 0; } //user registration form function _mod_warframe_register_form($form, &$form_state) { $form = array(); $ref = (isset($_GET['ref']) ? $_GET['ref'] : ''); $steamId = (isset($_GET['steamId']) ? $_GET['steamId'] : ''); if(isset($_GET['durma']) && $_GET['durma'] = 1){ $_SESSION['durma'] = true; } $gfId = ''; if(isset($_GET['gfId']) && !isset($_SESSION['gfId'])){ $gfId = $_GET['gfId']; $_SESSION['gfId'] = $gfId; } else if(isset($_SESSION['gfId'])) { $gfId = $_SESSION['gfId']; } global $language; if($language->language != 'en'){ $thisLang = '/'.$language->language; } else { $thisLang = ''; } $email = (isset($_GET['email']) ? $_GET['email'] : ''); $form['email'] = array( '#type' => 'textfield', '#title' => t('Email'), '#description' => t("Please use a valid address. You'll receive an email from us shortly.
(Don't forget to check your junk folder as it may be filtered)."), '#required' => TRUE, '#size' => 30, '#maxlength' => 60, '#default_value' => $email ); $form['email2'] = array( '#type' => 'textfield', '#title' => t('Confirm Email'), '#description' => t("Please confirm your email address"), '#required' => TRUE, '#size' => 30, '#maxlength' => 60 ); $form['displayname'] = array( '#type' => 'textfield', '#title' => t('Alias'), '#description' => t('This will be your username in Warframe. Letters and numbers only, please.
Note: Warframe reserves the right to ban any account/alias deemed offensive.
Forgot your alias? Click Here'), '#required' => TRUE, '#size' => 30, '#maxlength' => 24 ); $form['password'] = array( '#type' => 'password', '#title' => t('Password'), '#size' => 60, '#maxlength' => 128, '#required' => TRUE, ); $form['confirm'] = array( '#type' => 'password', '#title' => t('Confirm Password'), '#size' => 60, '#maxlength' => 128, '#required' => TRUE, ); $form['mailinglist'] = array( '#type' => 'checkbox', '#title' => t('Yes, I’d like to receive news and updates from the Warframe development team.'), '#default_value' => true ); $form['user_agree'] = array( '#type' => 'checkbox', '#title' => t('I am over 13 and agree to the terms of use & privacy policy.') ); $form['ref'] = array( '#type' => 'hidden', '#value' => $ref ); $form['steamId'] = array( '#type' => 'hidden', '#value' => $steamId ); $form['gfId'] = array( '#type' => 'hidden', '#value' => $gfId ); //ANYTV VALUES if(isset($_SESSION['transaction_id'])){ $form['anytv_transaction_id'] = array( '#type'=>'hidden', '#value'=>$_SESSION['transaction_id'] ); } if(isset($_SESSION['adv_sub'])){ $form['anytv_adv_sub'] = array( '#type'=>'hidden', '#value'=>$_SESSION['adv_sub'] ); } $form['submit'] = array( '#type' => 'submit', '#value' => t('Sign Up') ); return $form; } function _mod_warframe_outreach_form($form, &$form_state) { $form = array(); $form['alias'] = array( '#type' => 'textfield', '#title' => t('Warframe Alias'), '#required' => TRUE, '#size' => 30, '#maxlength' => 60 ); $form['email'] = array( '#type' => 'textfield', '#title' => t('Email Address'), '#required' => TRUE, '#size' => 30, '#maxlength' => 60 ); $form['event'] = array( '#type' => 'textfield', '#title' => t('Event or Outlet(s) (ie.LAN Party, YouTube, Twitter, blog, event etc.)'), '#required' => TRUE, '#size' => 30, '#maxlength' => 24 ); $form['urls'] = array( '#type' => 'textfield', '#title' => t('URL(s)'), '#required' => TRUE, '#size' => 30 ); $form['eventdetails'] = array( '#type' => 'textarea', '#title' => t('Event or Outlet details (when, where, what, who)'), '#required' => TRUE ); $form['size'] = array( '#type' => 'textfield', '#title' => t('Expected Audience Size'), '#required' => TRUE, '#size' => 30 ); $form['typeofsupport'] = array( '#type' => 'textarea', '#title' => t('Type of Support (ie. Platinum or in-game item prizes, etc.)'), '#required' => TRUE ); $form['winnerdeets'] = array( '#type' => 'textarea', '#title' => t('Details on winner selection methods'), '#required' => TRUE ); $form['additionalinfo'] = array( '#type' => 'textarea', '#title' => t('Additional Information (please provide details that will help us determine how/if we can help)'), '#required' => TRUE ); $form['submit'] = array( '#type' => 'submit', '#value' => t('Submit') ); return $form; } function _mod_warframe_outreach_form_submit($form, &$form_state){ $body = "Outreach Submission\n\n"; $body .= 'Warframe Alias: '.$form_state['values']['alias']."\n\n"; $body .= 'Email: '.$form_state['values']['email']."\n\n"; $body .= 'Event or Outlet(s): '.$form_state['values']['event']."\n\n"; $body .= 'URL(s): '.$form_state['values']['urls']."\n\n"; $body .= 'Event or Outlet details: '.$form_state['values']['eventdetails']."\n\n"; $body .= 'Expected Audience Size: '.$form_state['values']['size']."\n\n"; $body .= 'Type of Support (ie. Platinum or in-game item prizes, etc.): '.$form_state['values']['typeofsupport']."\n\n"; $body .= 'Details on winner selection methods: '.$form_state['values']['winnerdeets']."\n\n"; $body .= 'Additional Information: '.$form_state['values']['additionalinfo']."\n\n"; $message = drupal_mail('mod_warframe', 'activate', 'adam.zwakenberg@digitalextremes.com', 'en', array('body' => $body, 'subject' => 'Outreach Submission', $from, TRUE)); drupal_goto('outreach_thanks'); } function get_email_domain($email) { list($user,$domain) = explode('@',$email); return($domain); } function valid_email_domain($email) { return checkdnsrr(get_email_domain($email),'MX'); } function _mod_warframe_register_form_validate($form, &$form_state) { $displayname = $form_state['values']['displayname']; $email = $form_state['values']['email']; $email2 = $form_state['values']['email2']; $password = $form_state['values']['password']; $confirm = $form_state['values']['confirm']; $user_agree = $form_state['values']['user_agree']; $mailing = $form_state['values']['mailinglist']; //ensure that user agreed if($user_agree != 1) { form_set_error('user_agree', t('You must be over 13 years old and agree to our privacy policy')); } $email_exists = 0; //check for existing user, valid email if(!valid_email_address($email) || !validEmail($email)) { form_set_error('email', 'Invalid email address'); } elseif(!valid_email_domain($email)) { form_set_error('email', 'Invalid email server: ' . get_email_domain($email)); } else { $email_exists = _mod_warframe_email_exists($email); //currently, all accounts will be active ones since we removed the confirmation page if($email_exists) { // exists and activated form_set_error('email', t('This email is already registered')); } } if($email != $email2){ $err_msg = t('Please confirm your email'); form_set_error('confirm', $err_msg); } //password if($password != $confirm) { $err_msg = t('New passwords do not match'); form_set_error('confirm', $err_msg); } if(strstr($email, 'rmqkr.net') !== FALSE){ $err_msg = t('Please sign up with a valid email domain'); form_set_error('confirm', $err_msg); } //check for malicious user names if($displayname == 'admin' || $displayname == 'administrator' || $displayname == 'warframe' || $displayname == 'threaddev' || preg_match("/^DE[A-Z][a-z]/", $displayname) || preg_match('/^DE_/', $displayname) || preg_match("/^CSR[A-Z][a-z]/", $displayname) || preg_match('/^CSR_/', $displayname) || preg_match("/^GM[A-Z][a-z]/", $displayname) || preg_match('/^GM_/', $displayname)) { form_set_error('displayname', t('This alias is not available')); } //check display name $name_exists = _mod_warframe_displayname_exists($displayname); //TODO: remove deprecated function //compare the alias and email address pair to the preregistration table //$nameEmailErr = _mod_warframe_displayname_email_match($displayname, $email); //check for aliases that express a lapse in moral judgement $bannedErr = _mod_warframe_displayname_banned($displayname); $valid_name = validateName($displayname); if($name_exists) { form_set_error('displayname', t('This alias is already registered')); } elseif(count($bannedErr) > 0) { form_set_error('displayname', t(implode(' ', $bannedErr))); } elseif(count($valid_name) > 0) { form_set_error('displayname', t('Invalid alias (only letters, numbers, periods, under-scores, and hyphens)')); } elseif(strlen($displayname) < 4) { form_set_error('displayname', t('Your alias must be at least 4 characters long')); } } function _mod_warframe_register_form_submit($form, &$form_state) { global $user; $region = warframe_auth_country_region(); $country_code = $_SESSION['country']; $displayName = $form_state['values']['displayname']; $email = $form_state['values']['email']; $password = $form_state['values']['password']; $ref = $form_state['values']['ref']; $steamId = $form_state['values']['steamId']; $gfId = $form_state['values']['gfId']; $mailing = intval($form_state['values']['mailinglist']); //anytv tracking if(isset($form_state['values']['anytv_transaction_id'])){ $anytv_transaction_id = $form_state['values']['anytv_transaction_id']; } if(isset($form_state['values']['anytv_adv_sub'])){ $anytv_adv_sub = $form_state['values']['anytv_adv_sub']; } //hash password $salt = substr(hash('whirlpool', uniqid(rand(), true)), 0, 16); $password = hash('whirlpool', $password); // plaintext to hash $password = $salt . hash('whirlpool', $salt . $password); // Salted $refid = NULL; //check to see if user followed a referral link if($ref != '') { $refid = _mod_warframe_refcode_to_id($ref); } $result = 0; //add user to mongodb and send email $nonce = CreateNonce(); $mongo = CreateMongo(); $accounts = $mongo->lotus->accounts; $accountAttribs = array ( 'Email' => strtolower($email), 'DisplayName' => $displayName, 'LowerName' => strtolower($displayName), // No case-insensitive indices in Mongo 'Password' => $password, 'Active' => 0, //this was -1 but on reg our user should be neither confirmed, nor active 'SubscribedToEmails' => $mailing, 'Created' => new MongoDate() ); if(isset($country_code) && $country_code != ''){ $accountAttribs['CountryCode'] = strtoupper($country_code); } //get signup page seesion, otherwise get drupal path and save custom signup page if(isset($_SESSION['SignupPage'])) { $form_path = $_SESSION['SignupPage']; } else { $form_path = drupal_get_path_alias(); } $accountAttribs['SignupPage'] = $form_path; if(isset($_SESSION['SubID'])) { $accountAttribs['AfilliateSubID'] = $_SESSION['SubID']; } if(isset($_SESSION['SubSubID'])) { $accountAttribs['AfilliateSubSubID'] = $_SESSION['SubSubID']; } if(isset($_SESSION['AffiliateCampaignID'])) { $accountAttribs['AffiliateCampaignID'] = $_SESSION['AffiliateCampaignID']; } if(isset($_SESSION['ClickID'])) { $accountAttribs['AffiliateClickID'] = $_SESSION['ClickID']; } if($steamId) { $accountAttribs['SteamId'] = $steamId; } if($gfId) { $check = $accounts->findOne(array('GfId'=>$gfId),array('GfId'=>true,'Active'=>true)); if(isset($check)){ $error = (isset($check['Active']) ? 'Account already active' : 'Unable to create Account Duplicate GFID'); drupal_set_message($error, 'error'); drupal_goto('signup'); } $accountAttribs['GfId'] = $gfId; } if(isset($_SESSION['durma'])){ $accountAttribs['durma'] = true; } if(isset($anytv_transaction_id) && $anytv_transaction_id != '') { $accountAttribs['AnyTVTransactionID'] = $anytv_transaction_id; } if(isset($anytv_adv_sub) && $anytv_adv_sub != '') { $accountAttribs['AnyTVAdvSub'] = $anytv_adv_sub; } if(isset($_SESSION['AffiliateUser'])){ $accountAttribs['AffiliateUser'] = $_SESSION['AffiliateUser']; } $_SESSION['AffiliateSrc'] = ''; if((isset($anytv_transaction_id) && $anytv_transaction_id != '') || (isset($anytv_adv_sub) && $anytv_adv_sub != '')) { $accountAttribs['AffiliateSrc'] = 'anytv'; } if(stristr($form_path, 'gg-en1')) { $accountAttribs['AffiliateSrc'] = 'gamegenetics'; } if(stristr($form_path, 'IQ-EN') || stristr($form_path, 'IQ-RU')) { $accountAttribs['AffiliateSrc'] = 'iqu'; } if(stristr($form_path, 'gao-en1')) { $accountAttribs['AffiliateSrc'] = 'gao'; } if(stristr($form_path, 'cp-en1') || stristr($form_path, 'cp-en2') || stristr($form_path, 'cp-jp1')) { $accountAttribs['AffiliateSrc'] = 'cpmstar'; } if(stristr($form_path, 'mo-en1')) { $accountAttribs['AffiliateSrc'] = 'motive'; } if(stristr($form_path, 'PM-EN1')) { $accountAttribs['AffiliateSrc'] = 'portmmo'; } if(stristr($form_path, 'gl-en1')) { $accountAttribs['AffiliateSrc'] = 'glispa'; } if(stristr($form_path, 'gl-en2')) { $accountAttribs['AffiliateSrc'] = 'glispa2'; } if(stristr($form_path, 'gl-en3')) { $accountAttribs['AffiliateSrc'] = 'glispa3'; } if(stristr($form_path, 'gl-en4')) { $accountAttribs['AffiliateSrc'] = 'glispa4'; } if(stristr($form_path, 'idg-en1')) { $accountAttribs['AffiliateSrc'] = 'idg'; } if(stristr($form_path, 'FM-en1')) { $accountAttribs['AffiliateSrc'] = 'fenix'; } if(stristr($form_path, 'adv-ru1')) { $accountAttribs['AffiliateSrc'] = 'advmaker'; } if(stristr($form_path, 'adg-en1')) { $accountAttribs['AffiliateSrc'] = 'adgorithmns'; } if(stristr($form_path, 'awa-en1')) { $accountAttribs['AffiliateSrc'] = 'alienwarearena'; } if(stristr($form_path, 'ad4-ru1') || stristr($form_path, 'ad4-en1') || stristr($form_path, 'ad4-en2') || stristr($form_path, 'ad4-jp1')) { $accountAttribs['AffiliateSrc'] = 'ad4game'; } if(stristr($form_path, 'gb-en1')) { $accountAttribs['AffiliateSrc'] = 'gamersbook'; } if(stristr($form_path, 'bf-en1')) { $accountAttribs['AffiliateSrc'] = 'blindferret'; } if(stristr($form_path, 'glc-hktw1')) { $accountAttribs['AffiliateSrc'] = 'glispacampaign-hktw'; } if(stristr($form_path, 'glc-ru1')) { $accountAttribs['AffiliateSrc'] = 'glispacampaign-ru'; } if(stristr($form_path, 'glc-de1') || stristr($form_path, 'glc-en1')) { $accountAttribs['AffiliateSrc'] = 'glispacampaign-en'; } if(stristr($form_path, 'um-en1')) { $accountAttribs['AffiliateSrc'] = 'underdog'; } if(stristr($form_path, 'ggbl-de1') || stristr($form_path, 'ggbl-en1') || stristr($form_path, 'ggbl-ru1') || stristr($form_path, 'ggbl-hktw')) { $accountAttribs['AffiliateSrc'] = 'ggblitz'; } if(stristr($form_path, 'glis-hwtk1')) { $accountAttribs['AffiliateSrc'] = 'glispblitzhk'; } if(stristr($form_path, 'adc1') || stristr($form_path, 'ac-fr-sea') || stristr($form_path, 'ac-fr-icm') || stristr($form_path, 'ac-fr-the') || stristr($form_path, 'ac-fr-kw') || stristr($form_path, 'ac-fr-yt') || stristr($form_path, 'ac-de-sea') || stristr($form_path, 'ac-de-icm') || stristr($form_path, 'ac-de-the') || stristr($form_path, 'ac-de-kw') || stristr($form_path, 'ac-de-yt') || stristr($form_path, 'ac-ru-sea') || stristr($form_path, 'ac-ru-icm') || stristr($form_path, 'ac-ru-the') || stristr($form_path, 'ac-ru-kw') || stristr($form_path, 'ac-de-yt') || stristr($form_path, 'ac-es-sea') || stristr($form_path, 'ac-es-icm') || stristr($form_path, 'ac-es-the') || stristr($form_path, 'ac-es-kw') || stristr($form_path, 'ac-es-yt') || stristr($form_path, 'acrm-de') || stristr($form_path, 'acrm-ru') || stristr($form_path, 'acrm-es') || stristr($form_path, 'acrm-fr')) { $accountAttribs['AffiliateSrc'] = 'adcologne'; } if(stristr($form_path, 'raptr')) { $accountAttribs['AffiliateSrc'] = 'RaptrPromo'; } if(stristr($form_path, 'ss-en1')) { $accountAttribs['AffiliateSrc'] = 'secco'; } if(stristr($form_path, 'sec-en1')) { $accountAttribs['AffiliateSrc'] = 'seccooffer'; } if(stristr($form_path, 'gl-pl1')) { $accountAttribs['AffiliateSrc'] = 'glispeaseur1'; } if(stristr($form_path, 'gl-ee1')) { $accountAttribs['AffiliateSrc'] = 'glispeaseur2'; } if(stristr($form_path, 'PCGamer')) { $accountAttribs['AffiliateSrc'] = 'PCGamer'; } if(stristr($form_path, 'computerbild')) { $accountAttribs['AffiliateSrc'] = 'ComputerBild'; } if(stristr($form_path, 'mat-en1') || stristr($form_path, 'mat-en2')) { $accountAttribs['AffiliateSrc'] = 'matomy'; } if(stristr($form_path, 'adp-en1')) { $accountAttribs['AffiliateSrc'] = 'adperio'; } if(stristr($form_path, 'lin-en1')) { $accountAttribs['AffiliateSrc'] = 'liniad'; } if(stristr($form_path, 'adc-en1')) { $accountAttribs['AffiliateSrc'] = 'adcash'; } if(stristr($form_path, 'an1')) { $accountAttribs['AffiliateSrc'] = 'AffiliateNetwork'; } if(stristr($form_path, 'go-na')) { $accountAttribs['AffiliateSrc'] = 'GoogleNorthAmerica'; } if(stristr($form_path, 'go-rm')) { $accountAttribs['AffiliateSrc'] = 'GoogleReMarketing'; } if(stristr($form_path, 'go-jp')) { $accountAttribs['AffiliateSrc'] = 'GoogleJapan'; } if(stristr($form_path, 'go-vi')) { $accountAttribs['AffiliateSrc'] = 'GoogleVideo'; } if(stristr($form_path, 'hf-en1') || stristr($form_path, 'hf-en2') || stristr($form_path, 'hf-en3')) { $accountAttribs['AffiliateSrc'] = 'hitfox'; } if(stristr($form_path, 'yhrm')) { $accountAttribs['AffiliateSrc'] = 'YahooRemarketing'; } if(stristr($form_path, 'yh')) { $accountAttribs['AffiliateSrc'] = 'Yahoo'; } if(stristr($form_path, 'ven-en1')) { $accountAttribs['AffiliateSrc'] = 'venatus'; } if(stristr($form_path, 'bit-en1')) { $accountAttribs['AffiliateSrc'] = 'bittorrent'; } if(stristr($form_path, 'nb-en2')) { $accountAttribs['AffiliateSrc'] = 'neverblue-en2'; } if(stristr($form_path, 'nb-en1')) { $accountAttribs['AffiliateSrc'] = 'neverblue-en1'; } if(stristr($form_path, 'nb-jp1')) { $accountAttribs['AffiliateSrc'] = 'neverblue-jp1'; } if(stristr($form_path, 'int-en1')) { $accountAttribs['AffiliateSrc'] = 'integrate'; } if(isset($accountAttribs['AffiliateSrc'])){ $_SESSION['AffiliateSrc'] = $accountAttribs['AffiliateSrc']; } if(isset($_SESSION['tempAffiliateSrc'])){ $accountAttribs['AffiliateSrc'] = $_SESSION['tempAffiliateSrc']; } try { $account = $accounts->insert($accountAttribs, array('safe' => true)); if(isset($account['err'])) { $error = t('There was a problem registering your account'); form_set_error('password', $error); watchdog('mod_warframe_auth', 'Error: @error for email @email', array('@error' => $error, '@email' => $email)); $keys->insert(array('key' => $key)); // Put the key back } $accountId = $accountAttribs['_id']; watchdog('mod_warframe_auth', 'account created with id @accountid', array('@accountid' => $accountId)); //send email to user $subject = t('Warframe Activation'); $body = variable_get('mod_warframe_email_activate', t("Your Warframe account for {displayName} is almost ready for action!\n\nFollow this link to complete your registration: {link}\n\nWarframe is a co-op focused third-person action game brought to you by Digital Extremes.")); $from = variable_get('site_mail', 'no-reply@digitalextremes.com'); //get confirmation code and replace {link} in body //$confcode = _mod_warframe_id_to_refcode($accountId); $confcode = $accountId; $conflink = url('activate/confirm', array('query' => array('conf' => $confcode), 'absolute' => true)); $body = str_replace('{link}', $conflink, $body); $body = str_replace('{displayName}', $displayName, $body); $_SESSION['tempAccId'] = $accountId; $message = drupal_mail('mod_warframe', 'activate', $email, user_preferred_language($user), array('body' => $body, 'subject' => $subject, $from, TRUE)); } catch(MongoCursorException $e) { $error = (isset($error) ? $error : $e->getMessage()); watchdog('mod_warframe_auth', 'Unable to create account @error', array('@error' => $error)); drupal_set_message($error, 'error'); } //redirect to thankyou node drupal_goto('thank-you'); } //helper functions for validation function _mod_warframe_email_exists($email) { $mongo = CreateMongo(); $accounts = $mongo->lotus->accounts; $account = $accounts->findOne ( array('Email' => $email), array ( 'Email' => true ) ); if($account) { return true; } else { return false; } } //check to see if display name already exists function _mod_warframe_displayname_exists($displayname) { $mongo = CreateMongo(); $accounts = $mongo->lotus->accounts; $account = $accounts->findOne ( array('LowerName' => strtolower($displayname)), array ( 'DisplayName' => true ) ); if($account) { return true; } else { return false; } } //check a submitted alias against a list of morally quesitonable words function _mod_warframe_displayname_banned($displayname) { $err_msg = array(); $displayname = strtolower($displayname); $sql = "SELECT word FROM {banned}"; $result = db_query($sql); foreach($result as $row) { $word = trim(strtolower($row->word)); $pos = strpos($displayname, $word); if ($pos !== false) { $err_msg[] = t('We reserve the right to ban any account/alias deemed offensive'); break; } } return $err_msg; } //return hashed password function _mod_warframe_hash_whirlpool($password) { $salt = substr(hash('whirlpool', uniqid(rand(), true)), 0, 16); $hash_password = hash('whirlpool', $password); $hash = $salt . hash('whirlpool', $salt . $hash_password); return $hash; } /** * Implements hook_form_alter(). */ function mod_warframe_form_alter(&$form, &$form_state, $form_id) { //add https property to any defined forms $secure_form_ids = array('_mod_warframe_puzzle_form', '_mod_warframe_register_form', '_mod_warframe_auth_login_form', '_mod_warframe_auth_activate_form', '_mod_warframe_auth_delete_account_form', '_mod_warframe_auth_forgot_password_form' ); if(in_array($form_id, $secure_form_ids)) { $form['#https'] = TRUE; } // Other modules may use #https to indicate that a form should be secured. if (!empty($form['#https']) && function_exists('securelogin_secure_form')) { securelogin_secure_form($form); } } //generate puzzle page function mod_warframe_puzzle() { $page = '

'; $page .= drupal_render(drupal_get_form('_mod_warframe_puzzle_form')); $page .= '
 
'; $page .= '
'; $page .= '
 
'; $page .= '

'; return $page; } //handle user guess of cryptic puzzle function _mod_warframe_puzzle_form($form, &$form_state) { $form = array(); $form['email'] = array( '#type' => 'textfield', '#title' => t('Email'), '#size' => 30, '#maxlength' => 60, '#required' => TRUE ); $form['answer'] = array( '#type' => 'textfield', '#title' => t('Solution'), '#size' => 30, '#maxlength' => 60, '#required' => TRUE ); $form['submit'] = array( '#type' => 'submit', '#value' => t('Solve') ); return $form; } function _mod_warframe_puzzle_form_validate($form, &$form_state) { $email = $form_state['values']['email']; $answer = $form_state['values']['answer']; //check for existing user $email_exists = _mod_warframe_email_exists($email); if(!$email_exists) { form_set_error('email', 'You must register first. ' . l('Click here', '')); } } function _mod_warframe_puzzle_form_submit($form, &$form_state) { global $user; //handle submission of code $email = $form_state['values']['email']; $answer = $form_state['values']['answer']; $solved = _mod_warframe_puzzle_correct($answer); if($solved) { //update user record to show that they have solved the puzzle _mod_warframe_puzzle_solved($email); drupal_set_message(t('Your reward awaits. An upgrade to your WARFRAME has been added to your account.')); drupal_set_message(t('You will hear soon if you have been chosen for the closed Beta Test. Stay Strong!')); } else { drupal_set_message(t('Nice try, but that\'s not right.')); } } //helper function to determine if solution is correct function _mod_warframe_puzzle_correct($answer) { $solution = variable_get('mod_warframe_puzzle_code', ''); if(strtolower($answer) == strtolower($solution)) { return true; } else { return false; } } function _mod_warframe_puzzle_solved($email) { $sql = "UPDATE {accounts} SET solvedPuzzle = 1 WHERE email = :email"; $result = db_query($sql, array(':email' => $email)); if($result) { return true; } else { return false; } } function mod_warframe_background_image($image = null) { $output = ''; //load default if image not supplied if(!isset($image)) { $image = _mod_warframe_splash_bg(); } if(isset($image)) { $image_uri = $image['uri']; $image_url = file_create_url($image_uri); if($image_url != '') { //output dynamic style for document background $output .= ''; } } return $output; } function _mod_warframe_splash_bg() { $nid = 0; $sql = "SELECT nid FROM {node} WHERE `type` = 'splash' AND sticky = 1 AND status = 1 ORDER BY changed DESC LIMIT 1"; $result = db_query($sql); foreach($result as $row) { $nid = $row->nid; } if($nid > 0) { $splash_node = node_load($nid); return $splash_node->field_image[LANGUAGE_NONE][0]; } return false; } //register email function mod_warframe_mail_register($id, $email, $displayName) { global $user; $subject = t('Warframe Registration'); $body = variable_get('mod_warframe_email_register', 'Thank you for registering. Click the link below to activate your account. {link}'); $from = variable_get('site_mail', 'no-reply@digitalextremes.com'); //get confirmation code and replace {link} in body $confcode = _mod_warframe_id_to_refcode($id); $conflink = url('confirm', array('query' => array('conf' => $confcode), 'absolute' => true)); $body = str_replace('{link}', $conflink, $body); $message = drupal_mail('mod_warframe', 'register', $email, user_preferred_language($user), array('body' => $body, 'subject' => $subject, $from, TRUE)); } //referral email function mod_warframe_mail_referral($conf) { global $user; $id = _mod_warframe_refcode_to_id($conf); $sql = "SELECT email FROM {accounts} WHERE id = :id"; $result = db_query($sql, array(':id' => $id)); foreach($result as $row) { $email = $row->email; $subject = t('Warframe Confirmation'); $body = variable_get('mod_warframe_email_confirm_closed', 'Thank you for confirming. Click the link below to activate your account. {link}'); $from = variable_get('site_mail', 'no-reply@digitalextremes.com'); //get confirmation code and replace {link} in body $reflink = url('', array('query' => array('ref' => $conf), 'absolute' => true)); $body = str_replace('{link}', $reflink, $body); $message = drupal_mail('mod_warframe', 'confirm', $email, user_preferred_language($user), array('body' => $body, 'subject' => $subject, $from, TRUE)); } } //email hook function mod_warframe_mail($key, &$message, $params) { if (isset($params['subject'])) { $message['subject'] = $params['subject']; } if (isset($params['body'])) { $message['body'][] = $params['body']; } if (isset($params['headers']) && is_array($params['headers'])) { $message['headers'] += $params['headers']; } }

Prime Time
TWITCH LIVESTREAM #13: Update 10 Q&A
TENNO REINFORCEMENTS
SURVIVAL WEEKEND IS COMPLETE!
WARFRAME AT PAX PRIME
 
NEWS
 
MagPrimeTeaser640x300web.jpg
PRIME TIME
Are you ready?
09/12/2013 - 11:37 | 
 
Livestream13image640x300ws.jpg
TWITCH LIVESTREAM #13: UPDATE 10 Q&A
Watch it now on YouTube!
09/03/2013 - 14:16 | 
 
TennoReinforcement-DualVastos-Website.jp
TENNO REINFORCEMENTS
Dual Vastos offer speed and accuracy
08/30/2013 - 15:13 | 
 
SurvivalWeekendRewards640x300wb.jpg
SURVIVAL WEEKEND IS COMPLETE!
Great job, Tenno!
08/30/2013 - 11:41 | 
 
PAXprime640x300ws.jpg
WARFRAME AT PAX PRIME
Thanks for visiting us!
08/29/2013 - 15:57 | 
 
PREVIEW
CONNECT
 
esrb.png nvidia_logo.png 

©2013 Digital Extremes Ltd. All rights reserved.
Warframe and the Warframe logo are trademarks of Digital Extremes Ltd.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...