home.class.php 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. <?php
  2. /*
  3. * This file is part of the Fred package.
  4. *
  5. * Copyright (c) MODX, LLC
  6. *
  7. * For the full copyright and license information, please view the LICENSE
  8. * file that was distributed with this source code.
  9. */
  10. require_once dirname(dirname(__FILE__)) . '/index.class.php';
  11. /**
  12. * @package fred
  13. * @subpackage controllers
  14. */
  15. class FredHomeManagerController extends FredBaseManagerController
  16. {
  17. protected $permissions = [];
  18. public function process(array $scriptProperties = array())
  19. {
  20. $this->loadPermissions();
  21. }
  22. public function getPageTitle()
  23. {
  24. return $this->modx->lexicon('fred.menu.fred');
  25. }
  26. public function loadCustomCssJs()
  27. {
  28. $this->addJavascript($this->fred->getOption('jsUrl') . 'utils/utils.js');
  29. $this->addJavascript($this->fred->getOption('jsUrl') . 'utils/griddraganddrop.js');
  30. $this->addJavascript($this->fred->getOption('jsUrl') . 'utils/combos.js');
  31. if ($this->permissions['fred_media_sources']) {
  32. $this->addJavascript($this->fred->getOption('jsUrl') . 'home/widgets/media_sources.grid.js');
  33. }
  34. $this->addJavascript($this->fred->getOption('jsUrl') . 'home/widgets/themed_template.window.js');
  35. if ($this->permissions['fred_themed_templates']) {
  36. $this->addJavascript($this->fred->getOption('jsUrl') . 'home/widgets/themed_templates.grid.js');
  37. }
  38. $this->addJavascript($this->fred->getOption('jsUrl') . 'home/widgets/theme.window.js');
  39. $this->addJavascript($this->fred->getOption('jsUrl') . 'home/widgets/dependencies.grid.js');
  40. if ($this->permissions['fred_themes']) {
  41. $this->addJavascript($this->fred->getOption('jsUrl') . 'home/widgets/themes.grid.js');
  42. }
  43. $this->addJavascript($this->fred->getOption('jsUrl') . 'home/widgets/blueprint_category.window.js');
  44. if ($this->permissions['fred_blueprint_categories']) {
  45. $this->addJavascript($this->fred->getOption('jsUrl') . 'home/widgets/blueprint_categories.grid.js');
  46. }
  47. $this->addJavascript($this->fred->getOption('jsUrl') . 'home/widgets/blueprint.window.js');
  48. if ($this->permissions['fred_blueprints']) {
  49. $this->addJavascript($this->fred->getOption('jsUrl') . 'home/widgets/blueprints.grid.js');
  50. }
  51. $this->addJavascript($this->fred->getOption('jsUrl') . 'home/widgets/element_rte_config.window.js');
  52. if ($this->permissions['fred_element_rtes']) {
  53. $this->addJavascript($this->fred->getOption('jsUrl') . 'home/widgets/element_rte_configs.grid.js');
  54. }
  55. $this->addJavascript($this->fred->getOption('jsUrl') . 'home/widgets/element_option_set.window.js');
  56. if ($this->permissions['fred_element_option_sets']) {
  57. $this->addJavascript($this->fred->getOption('jsUrl') . 'home/widgets/element_option_sets.grid.js');
  58. }
  59. $this->addJavascript($this->fred->getOption('jsUrl') . 'home/widgets/element_category.window.js');
  60. if ($this->permissions['fred_element_categories']) {
  61. $this->addJavascript($this->fred->getOption('jsUrl') . 'home/widgets/element_categories.grid.js');
  62. }
  63. $this->addJavascript($this->fred->getOption('jsUrl') . 'home/widgets/element.window.js');
  64. if ($this->permissions['fred_elements']) {
  65. $this->addJavascript($this->fred->getOption('jsUrl') . 'home/widgets/elements.grid.js');
  66. }
  67. $this->addJavascript($this->fred->getOption('jsUrl') . 'home/panel.js');
  68. $this->addLastJavascript($this->fred->getOption('jsUrl') . 'home/page.js');
  69. $this->addHtml('
  70. <script type="text/javascript">
  71. Ext.onReady(function() {
  72. MODx.load({
  73. xtype: "fred-page-home",
  74. permission: ' . json_encode($this->permissions) . '
  75. });
  76. });
  77. </script>
  78. ');
  79. }
  80. public function getTemplateFile()
  81. {
  82. return $this->fred->getOption('templatesPath') . 'home.tpl';
  83. }
  84. protected function loadPermissions()
  85. {
  86. $this->permissions = [
  87. 'fred_elements' => (int)$this->modx->hasPermission('fred_elements'),
  88. 'fred_blueprints' => (int)$this->modx->hasPermission('fred_blueprints'),
  89. 'fred_blueprint_categories' => (int)$this->modx->hasPermission('fred_blueprint_categories'),
  90. 'fred_element_categories' => (int)$this->modx->hasPermission('fred_element_categories'),
  91. 'fred_element_option_sets' => (int)$this->modx->hasPermission('fred_element_option_sets'),
  92. 'fred_element_rtes' => (int)$this->modx->hasPermission('fred_element_rtes'),
  93. 'fred_element_rebuild' => (int)$this->modx->hasPermission('fred_element_rebuild'),
  94. 'fred_themes' => (int)$this->modx->hasPermission('fred_themes'),
  95. 'fred_themed_templates' => (int)$this->modx->hasPermission('fred_themed_templates'),
  96. 'fred_media_sources' => (int)$this->modx->hasPermission('fred_media_sources'),
  97. 'fred_element_delete' => (int)$this->modx->hasPermission('fred_element_delete'),
  98. 'fred_element_save' => (int)$this->modx->hasPermission('fred_element_save'),
  99. 'fred_element_category_save' => (int)$this->modx->hasPermission('fred_element_category_save'),
  100. 'fred_element_category_delete' => (int)$this->modx->hasPermission('fred_element_category_delete'),
  101. 'fred_element_option_sets_save' => (int)$this->modx->hasPermission('fred_element_option_sets_save'),
  102. 'fred_element_rte_config_save' => (int)$this->modx->hasPermission('fred_element_rte_config_save'),
  103. 'fred_element_rte_config_delete' => (int)$this->modx->hasPermission('fred_element_rte_config_delete'),
  104. 'fred_blueprint_categories_save' => (int)$this->modx->hasPermission('fred_blueprint_categories_save'),
  105. 'fred_blueprint_categories_create_public' => (int)$this->modx->hasPermission('fred_blueprint_categories_create_public'),
  106. 'fred_blueprint_categories_delete' => (int)$this->modx->hasPermission('fred_blueprint_categories_delete'),
  107. 'fred_themes_save' => (int)$this->modx->hasPermission('fred_themes_save'),
  108. 'fred_themes_build' => (int)$this->modx->hasPermission('fred_themes_build'),
  109. 'fred_themes_delete' => (int)$this->modx->hasPermission('fred_themes_delete'),
  110. 'fred_themed_templates_save' => (int)$this->modx->hasPermission('fred_themed_templates_save'),
  111. 'fred_themed_templates_delete' => (int)$this->modx->hasPermission('fred_themed_templates_delete'),
  112. 'fred_blueprints_save' => (int)$this->modx->hasPermission('fred_blueprints_save'),
  113. 'fred_blueprints_create_public' => (int)$this->modx->hasPermission('fred_blueprints_create_public'),
  114. 'fred_blueprints_delete' => (int)$this->modx->hasPermission('fred_blueprints_delete'),
  115. ];
  116. }
  117. }