PageRenderTime 45ms CodeModel.GetById 11ms RepoModel.GetById 1ms app.codeStats 0ms

/www/tmp/mod_stardust_land/helper.php

https://bitbucket.org/VirtualReality/joomla
PHP | 201 lines | 172 code | 19 blank | 10 comment | 14 complexity | 28c933a4a52aa283e0840599924d13c7 MD5 | raw file
  1. <?php
  2. defined('_JEXEC') or die('Direct Access to this location is not allowed.');
  3. class ModStarDust_LandHelper
  4. {
  5. function SendToPayPal($user, $PAYPAL_URL,$NOTIFY_URL,$PAYPAL_ACCOUNT,$RETURN_URL,$DO_NOTIFICATION,$NOTIFICATION_EMAIL,$STARDUST_SERVICE_URL)
  6. {
  7. $session =& JFactory::getSession();
  8. $aconfig = ModStarDust_LandHelper::GetConfigSettings();
  9. $UUID = ModStarDust_LandHelper::GetUserUUID($user);
  10. $found = array();
  11. $found[0] = json_encode(array('Method' => 'OrderSubscription', 'WebPassword' => md5($aconfig['webui_password']), 'toId' => $UUID, 'regionName' => $_POST["name"], 'notes' => $_POST["notes"], 'subscription_id' => $_POST["idx"]));
  12. $do_post_request = ModStarDust_LandHelper::do_post_request($found, $STARDUST_SERVICE_URL);
  13. $recieved = json_decode($do_post_request);
  14. // echo '<pre>';
  15. // var_dump($UUID);
  16. // var_dump($recieved);
  17. // var_dump($do_post_requested);
  18. // echo '</pre>';
  19. if ($recieved->{'Verified'} == "true")
  20. {
  21. $productInfo = ModStarDust_LandHelper::GetProductInfo($aconfig );
  22. $pid = $recieved->{'purchaseID'};
  23. $session->set('paypalAmount', $productInfo["price"]);
  24. $session->set('purchase_id', $pid);
  25. $session->set('paypalPurchaseItem', $productInfo["name"]);
  26. header("Location: /send_to_paypal.php");
  27. return "";
  28. }
  29. else
  30. {
  31. if ($recieved->{'Reason'} != "")
  32. {
  33. return $recieved->{'Reason'};
  34. }
  35. else
  36. {
  37. return "Unknown Error. Please try again in a bit.";
  38. }
  39. }
  40. }
  41. function ValidateForm()
  42. {
  43. if (empty($_POST["agree"]))
  44. {
  45. return "You must agree with the Terms Of Service";
  46. }
  47. if (empty($_POST["name"]))
  48. {
  49. return "You must name your Island";
  50. }
  51. else
  52. {
  53. return ModStarDust_LandHelper::CheckSimExist();
  54. }
  55. }
  56. function CheckSimExist()
  57. {
  58. $aconfig = ModStarDust_LandHelper::GetConfigSettings();
  59. $options = array();
  60. $option['driver'] = $aconfig['aurora_database_type'];
  61. $option['host'] = $aconfig['aurora_database_host'];
  62. $option['database'] = $aconfig['aurora_database_name'];
  63. $option['user'] = $aconfig['aurora_database_user'];
  64. $option['password'] = $aconfig['aurora_database_pass'];
  65. $count = ModStarDust_LandHelper::CheckSimExist1($option) + ModStarDust_LandHelper::CheckSimExist2($option);
  66. if ($count == 0) return "";
  67. else return "This region name is already in use.";
  68. }
  69. function CheckSimExist1($option)
  70. {
  71. $db = &JDatabase::getInstance( $option );
  72. $query = "SELECT count(*) FROM gridregions WHERE RegionName = '".$_POST[name]."'";
  73. $db->setQuery( $query );
  74. $result = $db->loadResult();
  75. return $result;
  76. }
  77. function CheckSimExist2($option)
  78. {
  79. $db = &JDatabase::getInstance( $option );
  80. $query = "SELECT count(*) FROM stardust_purchased WHERE RegionName = '".$_POST[name]."' AND Complete = 1";
  81. $db->setQuery( $query );
  82. $result = $db->loadResult();
  83. return $result;
  84. }
  85. function GetProductInfo($aconfig)
  86. {
  87. $options = array();
  88. $option['driver'] = $aconfig['aurora_database_type'];
  89. $option['host'] = $aconfig['aurora_database_host'];
  90. $option['database'] = $aconfig['aurora_database_name'];
  91. $option['user'] = $aconfig['aurora_database_user'];
  92. $option['password'] = $aconfig['aurora_database_pass'];
  93. $db = &JDatabase::getInstance( $option );
  94. $query = "SELECT name, price FROM stardust_subscriptions WHERE id = '".$_POST["idx"]."' AND active = 1";
  95. $db->setQuery( $query );
  96. $results = $db->loadRow();
  97. $results2= array();
  98. $results2["name"] = $results[0];
  99. $results2["price"] = $results[1] / 100.0;
  100. return $results2;
  101. }
  102. function GetItemsForSale()
  103. {
  104. $aconfig = ModStarDust_LandHelper::GetConfigSettings();
  105. $options = array();
  106. $option['driver'] = $aconfig['aurora_database_type'];
  107. $option['host'] = $aconfig['aurora_database_host'];
  108. $option['database'] = $aconfig['aurora_database_name'];
  109. $option['user'] = $aconfig['aurora_database_user'];
  110. $option['password'] = $aconfig['aurora_database_pass'];
  111. $db = &JDatabase::getInstance( $option );
  112. $sql = "SELECT `id`, `name`, `description`, `price`, `active` FROM `stardust_subscriptions` WHERE `active` = 1";
  113. $db->setQuery( $sql );
  114. $items = ($items = $db->loadAssocList())?$items:array();
  115. $returnValue = array();
  116. $returnValue[0] = $items;
  117. return $items;
  118. }
  119. function do_post_request($found, $STARDUST_SERVICE_URL)
  120. {
  121. $params = array('http' => array(
  122. 'method' => 'POST',
  123. 'content' => implode(',', $found)
  124. ));
  125. $ctx = stream_context_create($params);
  126. $timeout = 15;
  127. $old = ini_set('default_socket_timeout', $timeout);
  128. $fp = @fopen($STARDUST_SERVICE_URL, 'rb', false, $ctx);
  129. ini_set('default_socket_timeout', $old);
  130. if ($fp) {
  131. stream_set_timeout($fp, $timeout);
  132. stream_set_blocking($fp, 3);
  133. } else{
  134. if ($fp) fclose($fp);
  135. return false;
  136. }
  137. $response = @stream_get_contents($fp);
  138. if ($fp) fclose($fp);
  139. return $response;
  140. }
  141. function GetUserUUID($user)
  142. {
  143. $db =& JFactory::getDBO();
  144. $query = 'SELECT `uuid`'
  145. . ' FROM #__aurorasim_user'
  146. . ' WHERE joomla_userid=' . $user->id;
  147. $db->setQuery( $query );
  148. $result = $db->loadResult();
  149. return $result;
  150. }
  151. function GetConfigSettings()
  152. {
  153. @$aconfigSettings = array();
  154. $configCount = count($aconfigSettings);
  155. if ($configCount == 0)
  156. {
  157. $db =& JFactory::getDBO();
  158. $query = 'SELECT `webui_gridname`, `webui_url`, `webui_texture_url`, `webui_password`, `isdefault`, `aurora_database_type`, `aurora_database_host`, `aurora_database_name`, `aurora_database_user`, `aurora_database_pass` '
  159. . ' FROM #__aurorasim'
  160. . ' WHERE isdefault = 1' ;
  161. $db->setQuery( $query );
  162. $results = $db->loadRow();
  163. $aconfigSettings['webui_gridname'] = $results['0'];
  164. $aconfigSettings['webui_url'] = $results['1'];
  165. $aconfigSettings['webui_texture_url'] = $results['2'];
  166. $aconfigSettings['webui_password'] = $results['3'];
  167. $aconfigSettings['isdefault'] = $results['4'];
  168. $aconfigSettings['aurora_database_type'] = $results['5'];
  169. $aconfigSettings['aurora_database_host'] = $results['6'];
  170. $aconfigSettings['aurora_database_name'] = $results['7'];
  171. $aconfigSettings['aurora_database_user'] = $results['8'];
  172. $aconfigSettings['aurora_database_pass'] = $results['9'];
  173. }
  174. // echo '<pre>';
  175. // var_dump($aconfigSettings);
  176. // var_dump($results);
  177. // echo '</pre>';
  178. // throw new Exception("Problem with nothing.. just testing");
  179. return $aconfigSettings;
  180. }
  181. } //end ModHelloWorld2Helper
  182. ?>