PageRenderTime 34ms CodeModel.GetById 10ms RepoModel.GetById 0ms app.codeStats 0ms

/modules/shopimporter/ajax.php

http://marocmall.googlecode.com/
PHP | 130 lines | 116 code | 13 blank | 1 comment | 25 complexity | 4763d562a338b089fcda76d8304676e1 MD5 | raw file
Possible License(s): LGPL-2.1
  1. <?php
  2. include_once('../../config/config.inc.php');
  3. include_once('../../init.php');
  4. include_once('../../modules/shopimporter/shopimporter.php');
  5. ini_set('display_errors', 'off');
  6. if (!Tools::getValue('ajax') OR Tools::getValue('token') != sha1(_COOKIE_KEY_.'ajaxShopImporter'))
  7. die;
  8. $moduleName = Tools::getValue('moduleName');
  9. $className = Tools::getValue('className');
  10. $getMethod = Tools::getValue('getMethod');
  11. $limit = Tools::getValue('limit');
  12. $nbr_import = Tools::getValue('nbr_import');
  13. $server = Tools::getValue('server');
  14. $user = Tools::getValue('user');
  15. $password = Tools::getValue('password');
  16. $database = Tools::getValue('database');
  17. $prefix = Tools::getValue('prefix');
  18. $save = Tools::getValue('save');
  19. if (Tools::isSubmit('checkAndSaveConfig'))
  20. {
  21. //cleans the database if an import has already been done
  22. $shopImporter = new shopImporter();
  23. foreach($shopImporter->supportedImports as $key => $import)
  24. if (array_key_exists('alterTable', $import))
  25. $columns = Db::getInstance()->ExecuteS('SHOW COLUMNS FROM `'._DB_PREFIX_.pSQL($import['table']).'`');
  26. foreach ($columns as $column)
  27. if ($column['Field'] == $import['identifier'].'_'.$moduleName)
  28. Db::getInstance()->Execute('ALTER IGNORE TABLE `'._DB_PREFIX_.pSQL($import['table']).'` DROP `'.pSQL($import['identifier'].'_'.$moduleName).'`');
  29. if ($link = @mysql_connect(Tools::getValue('server'), Tools::getValue('user'), Tools::getValue('password')))
  30. {
  31. if (!@mysql_select_db(Tools::getValue('database'), $link))
  32. die('{"hasError" : true, "error" : ["'.Tools::displayError('The database selection cannot be made.').'"]}');
  33. else
  34. {
  35. @mysql_close($link);
  36. die('{"hasError" : false, "error" : []}');
  37. }
  38. }
  39. else
  40. die('{"hasError" : true, "error" : ["'.Tools::displayError('Link to database cannot be established.').'"]}');
  41. }
  42. if (Tools::isSubmit('getData') || Tools::isSubmit('syncLang') || Tools::isSubmit('syncCurrency'))
  43. {
  44. if (Tools::isSubmit('syncLang'))
  45. $save = true;
  46. if (file_exists('../../modules/'.$moduleName.'/'.$moduleName.'.php'))
  47. {
  48. require_once('../../modules/'.$moduleName.'/'.$moduleName.'.php');
  49. $importModule = new $moduleName();
  50. $importModule->server = $server;
  51. $importModule->user = $user;
  52. $importModule->passwd = $password;
  53. $importModule->database = $database;
  54. $importModule->prefix = $prefix;
  55. if (!method_exists($importModule, $getMethod))
  56. die('{"hasError" : true, "error" : ["not_exist"], "datas" : []}');
  57. else
  58. {
  59. $return = call_user_func_array(array($importModule, $getMethod), array($limit, $nbr_import));
  60. $shopImporter = new shopImporter();
  61. $shopImporter->generiqueImport($className, $return, (bool)$save);
  62. }
  63. }
  64. }
  65. if (Tools::isSubmit('truncatTable'))
  66. {
  67. $shopImporter = new shopImporter();
  68. if ($shopImporter->truncateTable($className))
  69. die('{"hasError" : false, "error" : []}');
  70. else
  71. die('{"hasError" : true, "error" : ["'.$className.'"]}');
  72. }
  73. if (Tools::isSubmit('alterTable'))
  74. {
  75. $shopImporter = new shopImporter();
  76. if ($shopImporter->alterTable($className))
  77. die('{"hasError" : false, "error" : []}');
  78. else
  79. die('{"hasError" : true, "error" : ["'.$className.'"]}');
  80. }
  81. if (Tools::isSubmit('displaySpecificOptions'))
  82. {
  83. if (file_exists('../../modules/'.$moduleName.'/'.$moduleName.'.php'))
  84. {
  85. require_once('../../modules/'.$moduleName.'/'.$moduleName.'.php');
  86. $importModule = new $moduleName();
  87. $importModule->server = $server;
  88. $importModule->user = $user;
  89. $importModule->passwd = $password;
  90. $importModule->database = $database;
  91. $importModule->prefix = $prefix;
  92. if ($link = @mysql_connect(Tools::getValue('server'), Tools::getValue('user'), Tools::getValue('password')))
  93. {
  94. if(!@mysql_select_db(Tools::getValue('database'), $link))
  95. die(Tools::displayError('The database selection cannot be made.'));
  96. elseif (method_exists($importModule, 'displaySpecificOptions'))
  97. die($importModule->displaySpecificOptions());
  98. else
  99. die('not_exist');
  100. }
  101. else
  102. die(Tools::displayError('Link to database cannot be established.'));
  103. }
  104. }
  105. if (Tools::isSubmit('validateSpecificOptions'))
  106. {
  107. if (file_exists('../../modules/'.$moduleName.'/'.$moduleName.'.php'))
  108. {
  109. require_once('../../modules/'.$moduleName.'/'.$moduleName.'.php');
  110. $importModule = new $moduleName();
  111. if (!method_exists($importModule, 'validateSpecificOptions'))
  112. die('{"hasError" : true, "error" : ["not_exist"]}');
  113. else
  114. die($importModule->validateSpecificOptions());
  115. }
  116. }
  117. ?>