BxDolInstallController.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <?php defined('BX_DOL_INSTALL') or die('hack attempt');
  2. /**
  3. * Copyright (c) UNA, Inc - https://una.io
  4. * MIT License - https://opensource.org/licenses/MIT
  5. *
  6. * @defgroup UnaInstall UNA Install
  7. * @{
  8. */
  9. class BxDolInstallController
  10. {
  11. protected $_oView;
  12. function __construct()
  13. {
  14. $this->_oView = new BxDolInstallView();
  15. }
  16. function run ($sAction = '')
  17. {
  18. $sMethod = 'action' . bx_gen_method_name($sAction);
  19. if ($sAction && method_exists($this, $sMethod))
  20. $this->$sMethod ();
  21. else
  22. $this->actionInitial ();
  23. }
  24. function actionEmpty ()
  25. {
  26. }
  27. function actionAudit ()
  28. {
  29. $this->_oView->pageStart();
  30. $oAudit = new BxDolStudioToolsAudit();
  31. $sAuditOutput = $oAudit->generate();
  32. $iAuditPassed = preg_match_all('/class="ok"/', $sAuditOutput);
  33. $iAuditWarnings = preg_match_all('/class="warn"/', $sAuditOutput);
  34. $iAuditFailed = preg_match_all('/class="fail"/', $sAuditOutput);
  35. $this->_oView->out('audit.php', compact('sAuditOutput', 'iAuditPassed', 'iAuditWarnings', 'iAuditFailed'));
  36. $this->_oView->pageEnd($this->_getTitle());
  37. }
  38. function actionInitial ()
  39. {
  40. $this->_oView->pageStart();
  41. $aLangs = BxDolInstallLang::getInstance()->getAvailableLanguages();
  42. $oAudit = new BxDolStudioToolsAudit();
  43. $aErrors = $oAudit->checkRequirements(BX_DOL_AUDIT_FAIL);
  44. $aWarnings = $oAudit->checkRequirements(BX_DOL_AUDIT_WARN);
  45. $oAudit->generateStyles();
  46. if (empty($aErrors))
  47. $this->_oView->out('initial.php', compact('aLangs', 'aWarnings'));
  48. else
  49. $this->_oView->out('initial_fail.php', compact('aLangs', 'aErrors'));
  50. $this->_oView->pageEnd($this->_getTitle());
  51. }
  52. function actionPermissions ()
  53. {
  54. $this->_oView->pageStart();
  55. $oAdmTools = new BxDolStudioTools();
  56. $sPermissionsStyles = $oAdmTools->generateStyles();
  57. ob_start();
  58. $bPermissionsOk = $oAdmTools->checkPermissions();
  59. $sPermissionsTable = ob_get_clean();
  60. $this->_oView->out('permissions.php', compact('sPermissionsStyles', 'sPermissionsTable', 'bPermissionsOk'));
  61. $this->_oView->setToolbarItem('question', 'https://unacms.com/wiki/installation-overview', _t('_sys_inst_help_permissions'), '_blank');
  62. $this->_oView->pageEnd($this->_getTitle());
  63. }
  64. function actionSiteConfig ()
  65. {
  66. $this->_oView->pageStart();
  67. $oSiteConfig = new BxDolInstallSiteConfig();
  68. $sForm = $oSiteConfig->getFormHtml();
  69. $this->_oView->out('site_config.php', compact('sForm'));
  70. $this->_oView->setToolbarItem('question', 'https://unacms.com/wiki/installation-overview', _t('_sys_inst_help_site_config'), '_blank');
  71. $this->_oView->pageEnd($this->_getTitle());
  72. }
  73. function actionFinish ()
  74. {
  75. require_once(BX_INSTALL_PATH_HEADER);
  76. $oHasher = bx_instance('BxDolInstallerHasher');
  77. $oHasher->hashSystemFiles();
  78. $this->_oView->pageStart();
  79. $sPathToPhp = "/replace/it/with/path/to/php/binary";
  80. $a = array(
  81. '/usr/local/bin/php',
  82. '/usr/bin/php',
  83. '/opt/local/bin/php',
  84. );
  85. foreach ($a as $sPath)
  86. if (file_exists($sPath))
  87. $sPathToPhp = $sPath;
  88. $this->_oView->out('finish.php', compact('sPathToPhp'));
  89. $this->_oView->setToolbarItem('question', 'https://unacms.com/wiki/installation-overview', _t('_sys_inst_help_finish'), '_blank');
  90. $this->_oView->pageEnd($this->_getTitle());
  91. bx_alert('system', 'installed', 0);
  92. }
  93. function actionRemoveInstall ()
  94. {
  95. require_once(BX_INSTALL_PATH_HEADER);
  96. $this->_oView->pageStart();
  97. $this->_oView->out('remove_install.php', array());
  98. $this->_oView->pageEnd($this->_getTitle());
  99. }
  100. protected function _getTitle()
  101. {
  102. return _t('_sys_inst_title', BX_DOL_VER);
  103. }
  104. }
  105. /** @} */