website.php 969 B

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. if (!isset($_GET['website_code'])) {
  7. throw new \Exception("website_code GET parameter is not set.");
  8. }
  9. $websiteCode = urldecode($_GET['website_code']);
  10. $rootDir = '../../../../';
  11. $websiteDir = $rootDir . 'websites/' . $websiteCode . '/';
  12. $contents = file_get_contents($rootDir . 'index.php');
  13. $websiteParam = <<<EOD
  14. \$params = \$_SERVER;
  15. \$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = '$websiteCode';
  16. \$params[\Magento\Store\Model\StoreManager::PARAM_RUN_TYPE] = 'website';
  17. EOD;
  18. $pattern = '`(try {.*?)(\/app\/bootstrap.*?}\n)(.*?)\$_SERVER`mis';
  19. $replacement = "$1/../..$2\n$websiteParam$3\$params";
  20. $contents = preg_replace($pattern, $replacement, $contents);
  21. $old = umask(0);
  22. mkdir($websiteDir, 0760, true);
  23. umask($old);
  24. copy($rootDir . '.htaccess', $websiteDir . '.htaccess');
  25. file_put_contents($websiteDir . 'index.php', $contents);