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

/modules/XAffiliate/func.php

https://github.com/DX66/private_sales
PHP | 254 lines | 160 code | 37 blank | 57 comment | 27 complexity | baef9651e4b00e790e76b7be3514fd2a MD5 | raw file
  1. <?php
  2. /* vim: set ts=4 sw=4 sts=4 et: */
  3. /*****************************************************************************\
  4. +-----------------------------------------------------------------------------+
  5. | X-Cart |
  6. | Copyright (c) 2001-2011 Ruslan R. Fazlyev <rrf@x-cart.com> |
  7. | All rights reserved. |
  8. +-----------------------------------------------------------------------------+
  9. | PLEASE READ THE FULL TEXT OF SOFTWARE LICENSE AGREEMENT IN THE "COPYRIGHT" |
  10. | FILE PROVIDED WITH THIS DISTRIBUTION. THE AGREEMENT TEXT IS ALSO AVAILABLE |
  11. | AT THE FOLLOWING URL: http://www.x-cart.com/license.php |
  12. | |
  13. | THIS AGREEMENT EXPRESSES THE TERMS AND CONDITIONS ON WHICH YOU MAY USE |
  14. | THIS SOFTWARE PROGRAM AND ASSOCIATED DOCUMENTATION THAT RUSLAN R. |
  15. | FAZLYEV (hereinafter referred to as "THE AUTHOR") IS FURNISHING OR MAKING |
  16. | AVAILABLE TO YOU WITH THIS AGREEMENT (COLLECTIVELY, THE "SOFTWARE"). |
  17. | PLEASE REVIEW THE TERMS AND CONDITIONS OF THIS LICENSE AGREEMENT |
  18. | CAREFULLY BEFORE INSTALLING OR USING THE SOFTWARE. BY INSTALLING, |
  19. | COPYING OR OTHERWISE USING THE SOFTWARE, YOU AND YOUR COMPANY |
  20. | (COLLECTIVELY, "YOU") ARE ACCEPTING AND AGREEING TO THE TERMS OF THIS |
  21. | LICENSE AGREEMENT. IF YOU ARE NOT WILLING TO BE BOUND BY THIS |
  22. | AGREEMENT, DO NOT INSTALL OR USE THE SOFTWARE. VARIOUS COPYRIGHTS AND |
  23. | OTHER INTELLECTUAL PROPERTY RIGHTS PROTECT THE SOFTWARE. THIS |
  24. | AGREEMENT IS A LICENSE AGREEMENT THAT GIVES YOU LIMITED RIGHTS TO USE |
  25. | THE SOFTWARE AND NOT AN AGREEMENT FOR SALE OR FOR TRANSFER OF TITLE.|
  26. | THE AUTHOR RETAINS ALL RIGHTS NOT EXPRESSLY GRANTED BY THIS AGREEMENT. |
  27. | |
  28. | The Initial Developer of the Original Code is Ruslan R. Fazlyev |
  29. | Portions created by Ruslan R. Fazlyev are Copyright (C) 2001-2011 |
  30. | Ruslan R. Fazlyev. All Rights Reserved. |
  31. +-----------------------------------------------------------------------------+
  32. \*****************************************************************************/
  33. /**
  34. * Functions for XAffiliate module
  35. *
  36. * @category X-Cart
  37. * @package X-Cart
  38. * @subpackage Modules
  39. * @author Ruslan R. Fazlyev <rrf@x-cart.com>
  40. * @copyright Copyright (c) 2001-2011 Ruslan R. Fazlyev <rrf@x-cart.com>
  41. * @license http://www.x-cart.com/license.php X-Cart license agreement
  42. * @version $Id: func.php,v 1.31.2.1 2011/01/10 13:12:04 ferz Exp $
  43. * @link http://www.x-cart.com/
  44. * @see ____file_see____
  45. */
  46. if ( !defined('XCART_START') ) { header("Location: ../../"); die("Access denied"); }
  47. /**
  48. * Get partner affliates
  49. */
  50. function func_get_affiliates($user, $level = -1, $parent_level = 0)
  51. {
  52. global $sql_tbl, $config;
  53. if(!$user)
  54. return false;
  55. if($level == -1)
  56. $level = func_get_affiliate_level($user);
  57. $childs = func_query("SELECT * FROM $sql_tbl[customers] WHERE parent = '$user'");
  58. if ($childs) {
  59. for ($x = 0; $x < count($childs); $x++) {
  60. $childs[$x]['level'] = func_get_affiliate_level($childs[$x]['id']);
  61. $childs[$x]['level_delta'] = $childs[$x]['level'] - $parent_level + 1;
  62. $childs[$x]['sales'] = func_query_first_cell("SELECT SUM(commissions) FROM $sql_tbl[partner_payment] WHERE userid = '".$childs[$x]['id']."'");
  63. $tmp = func_get_affiliates($childs[$x]['id'], $level + 1, $parent_level);
  64. $childs_sales = 0;
  65. if ($tmp) {
  66. $childs[$x]['childs'] = $tmp;
  67. for ($y = 0; $y < count($tmp); $y++) {
  68. $childs_sales += $tmp[$y]['sales'] + $tmp[$y]['childs_sales'];
  69. }
  70. }
  71. $childs[$x]['childs_sales'] = $childs_sales;
  72. }
  73. }
  74. return $childs;
  75. }
  76. /**
  77. * Get affiliate level
  78. */
  79. function func_get_affiliate_level($user)
  80. {
  81. global $sql_tbl;
  82. if(!$user)
  83. return false;
  84. $level = 0;
  85. do {
  86. $user = func_query_first_cell("SELECT parent FROM $sql_tbl[customers] WHERE id = '$user'");
  87. $user = addslashes($user);
  88. $level++;
  89. } while($user);
  90. return $level;
  91. }
  92. /**
  93. * Get parents array
  94. */
  95. function func_get_parents($user)
  96. {
  97. global $sql_tbl, $config;
  98. $parent = func_query_first_cell("SELECT parent FROM $sql_tbl[customers] WHERE id = '$user'");
  99. if($parent) {
  100. $parents[] = array('userid' => $parent, 'level' => func_get_affiliate_level($parent));
  101. $parents = func_array_merge($parents, func_get_parents($parent));
  102. }
  103. return $parents;
  104. }
  105. /**
  106. * Clear statistics
  107. */
  108. function func_clear_stats_xaff($rsd_limit)
  109. {
  110. global $sql_tbl;
  111. if (empty($rsd_limit)) {
  112. db_query("DELETE FROM $sql_tbl[partner_adv_clicks]");
  113. db_query("DELETE FROM $sql_tbl[partner_clicks]");
  114. db_query("DELETE FROM $sql_tbl[partner_views]");
  115. } else {
  116. db_query("DELETE FROM $sql_tbl[partner_adv_clicks] WHERE add_date < '$rsd_limit'");
  117. db_query("DELETE FROM $sql_tbl[partner_clicks] WHERE add_date < '$rsd_limit'");
  118. db_query("DELETE FROM $sql_tbl[partner_views] WHERE add_date < '$rsd_limit'");
  119. }
  120. return func_get_langvar_by_name('msg_adm_summary_aff_stat_del');
  121. }
  122. function func_xaff_mrb_prepare($output)
  123. {
  124. global $current_location, $logged_userid, $partner, $xcart_catalogs, $bannerid, $bid, $iframe_referer, $data, $sql_tbl;
  125. if (empty($_GET['type'])) {
  126. // If the banners are displayed in the partner area
  127. $_partner = $logged_userid;
  128. $_bid = $bannerid;
  129. $data = func_query_first("SELECT * FROM $sql_tbl[partner_banners] WHERE bannerid = '$_bid'");
  130. } else {
  131. $_partner = $partner;
  132. $_bid = $bid;
  133. }
  134. $href = 'home.php?partner=' . $_partner;
  135. $partner_url = $xcart_catalogs['customer'] . '/' . $href . '&amp;bid=' . $_bid . ($iframe_referer ? '&amp;iframe_referer=' . $iframe_referer : "");
  136. $open_window = isset($_GET['type']) && $_GET['type']=='iframe' ? ($data['open_blank'] == 'Y'?'_blank':'_parent') : ($data['open_blank'] == 'Y'?'_blank':'_self');
  137. if (preg_match_all('/<#([a-zA-Z]?)(\d+)#>/Ss', $output, $preg) && !empty($preg[2])) {
  138. foreach($preg[2] as $k => $v) {
  139. $e = func_query_first("SELECT image_type, id, image_x, image_y FROM $sql_tbl[images_L] WHERE id = '$v'");
  140. if (!$e)
  141. continue;
  142. if ($e['image_type'] == "application/x-shockwave-flash") {
  143. $banner_url = urlencode($current_location . '/image.php?type=L&id=' . $e['id']);
  144. $flash_container = $current_location . '/flash_container.swf';
  145. $output = str_replace(
  146. '<#' . $preg[1][$k] . $e['id'] . '#>',
  147. '<object type="application/x-shockwave-flash" data="'.$flash_container.'" width="' . $e['image_x'] . '" height="' . $e['image_y'] . '">
  148. <param name="movie" value="' . $flash_container . '" />
  149. <param name="FlashVars" value="banner_url='.$banner_url.'&partner_url='. urlencode(str_replace('&amp;', '&', $partner_url)) .'&open_window='.$open_window.'" />
  150. <param name="menu" value="false" />
  151. <param name="loop" value="false" />
  152. <param name="quality" value="high" />
  153. <param name="allowScriptAccess" value="always" />
  154. <embed src="'.$flash_container.'" flashVars="banner_url='.$banner_url.'&partner_url='. urlencode(str_replace('&amp;', '&', $partner_url)) .'&open_window='.$open_window.'" quality="high" bgcolor="#ffffff" width="'.$e['image_x'].'" height="'.$e['image_y'].'" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object>',
  155. $output
  156. );
  157. } else {
  158. if ($preg[1][$k] == 'A')
  159. $output = str_replace('<#A' . $e['id'] . '#>', '<#A#><#' . $e['id'] . '#><#/A#>', $output);
  160. $output = str_replace(
  161. '<#' . $e['id'] . '#>',
  162. '<img src="' . $current_location . '/image.php?type=L&amp;id=' . $e['id'] .'" border="0" width="' . $e['image_x'] . '" height="' . $e['image_y'] . '" alt="" />',
  163. $output
  164. );
  165. }
  166. }
  167. $output = preg_replace('/<#\w?\d+#>/Ss', '', $output);
  168. }
  169. $output = str_replace(
  170. array('<#A#>', '<#/A#>'),
  171. array('<a href="' . $partner_url . '" style="border: 0px none;" target="' . $open_window . '">', '</a>'),
  172. $output
  173. );
  174. return $output;
  175. }
  176. function func_get_partner_plan($planid)
  177. {
  178. global $sql_tbl;
  179. $partner_plan_info = func_query_first ("SELECT * FROM $sql_tbl[partner_plans] WHERE plan_id='$planid'");
  180. if (!$partner_plan_info)
  181. return false;
  182. $partner_plan_info['mlm'] = func_query("SELECT * FROM $sql_tbl[partner_tier_commissions] WHERE plan_id = '$planid' ORDER BY level");
  183. $partner_plan_info['mlm_count'] = is_array($partner_plan_info['mlm']) ? count($partner_plan_info['mlm']) : 0;
  184. $partner_plan_info['commissions'] = func_query("SELECT * FROM $sql_tbl[partner_plans_commissions] WHERE plan_id='$planid'");
  185. return $partner_plan_info;
  186. }
  187. function func_get_banner_type_text($banner_type)
  188. {
  189. static $result = array();
  190. if (isset($result[$banner_type]))
  191. return $result[$banner_type];
  192. switch($banner_type) {
  193. case 'T':
  194. $banner_type_text = func_get_langvar_by_name('lbl_text_link');
  195. break;
  196. case 'G':
  197. $banner_type_text = func_get_langvar_by_name('lbl_graphic_banner');
  198. break;
  199. case 'M':
  200. $banner_type_text = func_get_langvar_by_name('lbl_media_rich_banner');
  201. break;
  202. case 'P':
  203. $banner_type_text = func_get_langvar_by_name('lbl_product_banner');
  204. break;
  205. case 'C':
  206. $banner_type_text = func_get_langvar_by_name('lbl_category_banner');
  207. break;
  208. case 'F':
  209. $banner_type_text = func_get_langvar_by_name('lbl_manufacturer_banner');
  210. break;
  211. default:
  212. $banner_type_text = func_get_langvar_by_name('lbl_text_link');
  213. }
  214. $result[$banner_type] = $banner_type_text;
  215. return $banner_type_text;
  216. }
  217. ?>