/assets/modules/docmanager/classes/docmanager.class.php

https://github.com/modxcms-jp/evolution-jp · PHP · 109 lines · 97 code · 12 blank · 0 comment · 16 complexity · d7a8c1ab7d2fb0349adbbddcc5713bf1 MD5 · raw file

  1. <?php
  2. class DocManager {
  3. public $lang = array();
  4. public $theme = '';
  5. private $fileRegister = array();
  6. function __construct() {
  7. }
  8. function getLang() {
  9. $_lang = array();
  10. $ph = array();
  11. $managerLanguage = evo()->config['manager_language'];
  12. $userId = evo()->getLoginUserID();
  13. if ($userId) {
  14. $rs = db()->select(
  15. 'setting_name, setting_value'
  16. , '[+prefix+]user_settings'
  17. , "setting_name='manager_language' AND user=".$userId
  18. );
  19. $row = db()->getRow($rs);
  20. if ($row) {
  21. $managerLanguage = $row['setting_value'];
  22. }
  23. }
  24. $docmanager_lang_dir = MODX_BASE_PATH.'assets/modules/docmanager/lang/';
  25. include MODX_CORE_PATH.'lang/english.inc.php';
  26. include $docmanager_lang_dir . 'english.inc.php';
  27. if($managerLanguage !== 'english') {
  28. if(is_file(MODX_CORE_PATH . 'lang/' . $managerLanguage . '.inc.php')) {
  29. include MODX_CORE_PATH . 'lang/' . $managerLanguage . '.inc.php';
  30. }
  31. if(is_file($docmanager_lang_dir . $managerLanguage . '.inc.php')) {
  32. include $docmanager_lang_dir . $managerLanguage . '.inc.php';
  33. }
  34. }
  35. $this->lang = $_lang;
  36. foreach ($_lang as $key => $value) {
  37. $ph['lang.'.$key] = $value;
  38. }
  39. return $ph;
  40. }
  41. function getTheme() {
  42. $theme = db()->select(
  43. 'setting_value'
  44. , '[+prefix+]system_settings'
  45. , "setting_name='manager_theme'"
  46. );
  47. if (db()->getRecordCount($theme)) {
  48. $theme = db()->getRow($theme);
  49. if ($theme['setting_value'] != '') {
  50. $this->theme = '/' . $theme['setting_value'];
  51. } else {
  52. $this->theme = '';
  53. }
  54. return $this->theme;
  55. }
  56. return '';
  57. }
  58. function getFileContents($file) {
  59. if (empty($file)) {
  60. return false;
  61. }
  62. $file = MODX_BASE_PATH.'assets/modules/docmanager/templates/'.$file;
  63. if(array_key_exists($file, $this->fileRegister)) {
  64. return $this->fileRegister[$file];
  65. }
  66. $contents = file_get_contents($file);
  67. $this->fileRegister[$file] = $contents;
  68. return $contents;
  69. }
  70. function parseTemplate($tpl, $ph = array()) {
  71. global $modx;
  72. if (isset($this->fileRegister[$tpl])) {
  73. $tpl = $this->fileRegister[$tpl];
  74. } else {
  75. $tpl = $this->getFileContents($tpl);
  76. }
  77. if($tpl) {
  78. if(strpos($tpl,'</body>')!==false) {
  79. if(!isset($modx->config['mgr_date_picker_path'])) {
  80. $modx->config['mgr_date_picker_path'] = 'media/script/air-datepicker/datepicker.inc.php';
  81. }
  82. $dp = $modx->manager->loadDatePicker($modx->config['mgr_date_picker_path']);
  83. $tpl = str_replace('</body>',$dp.'</body>',$tpl);
  84. }
  85. $ph['settings_version'] = $modx->config['settings_version'];
  86. return preg_replace(
  87. '/(\[\+.*?\+\])/'
  88. ,''
  89. , $modx->parseText(
  90. $modx->mergeSettingsContent($tpl)
  91. , $ph
  92. )
  93. );
  94. }
  95. return '';
  96. }
  97. }