/modules/Wizard/Server/Wizard.php

https://github.com/arianmaykon/ExtDesk · PHP · 105 lines · 66 code · 30 blank · 9 comment · 8 complexity · ef5c196081f6615cc2e131448a0baf3f MD5 · raw file

  1. <?php
  2. class Wizard{
  3. function __construct() {
  4. $server = _DB_HOST;
  5. $driver = _DB_DRIVER;
  6. $user = _DB_USER;
  7. $password = _DB_PASSWORD;
  8. $dbname = _DB_NAME;
  9. $dsn = "$driver:dbname=$dbname;host=$server";
  10. try {
  11. $this->dbh = new PDO($dsn, $user, $password);
  12. } catch (PDOException $e) {
  13. $result = array('success' => false, 'error' => '0', 'msg' => $e->getMessage());
  14. die(json_encode($result));
  15. }
  16. }
  17. function Module_Install($module){
  18. $moduleLow =strtolower($module);
  19. $count_saved=0;
  20. $query = "INSERT INTO modules (js,name,iconCls,module,iconLaunch)
  21. VALUES ('$module','$module','$moduleLow-shortcut','$moduleLow-win','icon-$moduleLow');";
  22. $this->query = $this->dbh->prepare($query);
  23. if ($this->dbh->query($query)) {
  24. $count_saved++;
  25. }
  26. if ($count_saved != 0) {
  27. die ('{"success":true,msg:"El modulo '.$module.' ha sido creado, felicidades."}');
  28. } else {
  29. $lastError = (implode(",", $this->dbh->errorInfo()));
  30. die ('{"success" : false,msg:"No data was saved, mysql says : <i>\'' . $lastError . '\'</i>"}');
  31. }
  32. $d->log($query);
  33. }
  34. function Module_Make(){
  35. // Params...
  36. $template_name = $_GET["template"];
  37. $module_get = $_GET["newModule"];
  38. $module_install= $_GET["installModule"];
  39. $module_get = strtolower($module_get);
  40. $module_get = str_replace(' ', '', $module_get);
  41. $module_get = ucfirst($module_get);
  42. //check if we can write modules directory
  43. $nombre_archivo = 'modules/';
  44. if (is_writable($nombre_archivo)) {
  45. $module=ucfirst($module_get);
  46. $dir_dest = './modules/'.$module;
  47. // if exist we go to home...
  48. if (!is_dir($dir_dest)){
  49. // make the directory
  50. mkdir($dir_dest,0777);
  51. // copy the template
  52. $util = new utils();
  53. $util->recurse_copy("./modules/Wizard/Server/templates/$template_name",$dir_dest);
  54. // send dato to script.php via session
  55. $_SESSION["wizard_module"]=$module;
  56. $_SESSION["wizard_template"]=$template_name;
  57. //run script.php in wizard
  58. $file="./modules/Wizard/Server/templates/$template_name/script.php";
  59. require_once($file);
  60. if ($module_install){
  61. $this->Module_install($module_get);
  62. }else{
  63. die ('{"success":true,msg:"El modulo '.$module.' ha sido creado, felicidades."}');
  64. }
  65. }else{
  66. die ('{"success":false,msg:"El directorio ya existe, no se ha creado ningun modulo"}');
  67. }
  68. } else {
  69. die ('{"success":false,msg:"El directorio ya existe, no se ha creado ningun modulo"}');
  70. }
  71. }
  72. }
  73. //$w=new Wizard();
  74. //$w->Module_Make();
  75. ?>