/modules/Products_Map/html_catalog.php

https://github.com/gobsInternetTechnologyGmbH/private_sales · PHP · 141 lines · 82 code · 12 blank · 47 comment · 1 complexity · 214bfd49ae278ec9c852d07914ec3193 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. * Page generation script for catalog
  35. *
  36. * @author Ruslan R. Fazlyev <rrf@x-cart.com>
  37. * @copyright Copyright (c) 2001-2011 Ruslan R. Fazlyev <rrf@x-cart.com>
  38. * @license http://www.x-cart.com/license.php X-Cart license agreement
  39. * @category X-Cart
  40. * @package Modules
  41. * @subpackage Products Map
  42. * @version $Id: html_catalog.php,v 1.4.2.1 2011/01/10 13:12:01 ferz Exp $
  43. * @since 4.4.0
  44. */
  45. if (!defined('XCART_START')) { header('Location: ../../'); die('Access denied');}
  46. $GLOBALS['pmap_generation_flag'] = true;
  47. foreach ($hc_state['catalog_dirs'] as $catdir) {
  48. $hc_state['catalog'] = $catdir;
  49. $current_lng = $catdir['code'];
  50. $pmap_symbols = pmap_get_symbols();
  51. // process each symbol page in the pmap
  52. foreach ($pmap_symbols as $pmap_symbol => $pmap_display) {
  53. // get source code of first page
  54. $pmap_page_params = $additional_hc_data_current['page_params'] . $pmap_symbol;
  55. list($http_headers, $page_src) = func_fetch_page(
  56. $site_location['host'] . ':' . $site_location['port'],
  57. $site_location['path'] . DIR_CUSTOMER . '/' . $additional_hc_data_current['page_url'],
  58. 'sl=' . $catdir['code'] . $shop_closed_var . '&' . $pmap_page_params,
  59. $robot_cookies
  60. );
  61. // generate hc file for first page
  62. $pmap_name_func_params = sprintf($additional_hc_data_current['name_func_params'][0], $pmap_symbol, 1);
  63. convert_page(
  64. $catdir['path'],
  65. $page_src,
  66. $additional_hc_data_current['name_func'],
  67. array($pmap_name_func_params)
  68. );
  69. // find additonal pages
  70. $pmap_url = $additional_hc_data_current['page_url'] . '?' . $pmap_page_params;
  71. $pmap_pattern = '/' . preg_quote($pmap_url) . "&[^\"']*page=(\d+)[&\"']/S";
  72. if (preg_match_all($pmap_pattern, $page_src, $pmap_matches)) {
  73. $pmap_add_pages = array_unique($pmap_matches[1]);
  74. } else {
  75. continue;
  76. }
  77. // generate hc files for additional founded pages
  78. foreach ($pmap_add_pages as $pmap_add_page) {
  79. if ($pmap_add_page != 1) {
  80. list($http_headers, $page_src) = func_fetch_page(
  81. $site_location['host'] . ':' . $site_location['port'],
  82. $site_location['path'] . DIR_CUSTOMER . '/' . $additional_hc_data_current['page_url'],
  83. 'sl=' . $catdir['code'] . $shop_closed_var . '&' . $pmap_page_params . '&page=' . $pmap_add_page,
  84. $robot_cookies
  85. );
  86. $pmap_name_func_params = sprintf($additional_hc_data_current['name_func_params'][0], $pmap_symbol, $pmap_add_page);
  87. convert_page(
  88. $catdir['path'],
  89. $page_src,
  90. $additional_hc_data_current['name_func'],
  91. array($pmap_name_func_params)
  92. );
  93. }
  94. }
  95. }
  96. }
  97. unset(
  98. $pmap_symbols,
  99. $pmap_symbol,
  100. $pmap_display,
  101. $pmap_page_params,
  102. $pmap_url,
  103. $pmap_pattern,
  104. $pmap_add_pages,
  105. $pmap_matches,
  106. $pmap_add_page,
  107. $pmap_name_func_params
  108. );
  109. unset(
  110. $GLOBALS['pmap_generation_flag']
  111. );
  112. ?>